#496 need to add a itemstat for hostile spell/beneficial casting speeds

Closed
opened 1 year ago by neatz09 · 3 comments
neatz09 commented 1 year ago

need to expose this to spells + probably tie this to spell_type

need to expose this to spells + probably tie this to spell_type
image commented 1 year ago
Collaborator

we have these fields to implement

info->add_casting_speed(values->abilitycastingspeed);
info->add_spell_reuse_speed(values->spellreusespeed);

#define ITEM_STAT_ABILITYCASTINGSPEED 664 //% Ability Casting Speed #define ITEM_STAT_SPELLREUSESPEED 665 //% Spell Reuse Speed

there is a partial implementation of get_casting_speed, but it isn't called so its just a loose function at the moment

float Entity::CalculateCastingSpeedMod() {
	float cast_speed = info_struct.get_casting_speed();
	
	if(cast_speed > 0)
		return 100 * max((float) 0.5, (float) (1 + (1 - (1 / (1 + (cast_speed * .01))))));
	else if (cast_speed < 0)
		return 100 * min((float) 1.5, (float) (1 + (1 - (1 / (1 + (cast_speed * -.01))))));
	return 0;
}
we have these fields to implement info->add_casting_speed(values->abilitycastingspeed); info->add_spell_reuse_speed(values->spellreusespeed); #define ITEM_STAT_ABILITYCASTINGSPEED 664 //% Ability Casting Speed #define ITEM_STAT_SPELLREUSESPEED 665 //% Spell Reuse Speed there is a partial implementation of get_casting_speed, but it isn't called so its just a loose function at the moment ``` float Entity::CalculateCastingSpeedMod() { float cast_speed = info_struct.get_casting_speed(); if(cast_speed > 0) return 100 * max((float) 0.5, (float) (1 + (1 - (1 / (1 + (cast_speed * .01)))))); else if (cast_speed < 0) return 100 * min((float) 1.5, (float) (1 + (1 - (1 / (1 + (cast_speed * -.01)))))); return 0; } ```
image commented 5 months ago
Collaborator

going to focus this issue on the spell specific ones

#define ITEM_STAT_ABILITYCASTINGSPEED		664 //% Ability Casting Speed
#define ITEM_STAT_SPELLREUSESPEED			665 //% Spell Reuse Speed

we still need to review these:

#define ITEM_STAT_ABILITYREUSESPEED			662 //% Ability Reuse Speed
#define ITEM_STAT_ABILITYRECOVERYSPEED		663 //% Ability Recovery Speed
#define ITEM_STAT_MULTIATTACKCHANCE					641 //% Multi Attack Chance  // inconsistant with db
#define ITEM_STAT_SPELLWEAPONAEAUTOATTACKCHANCE		640 //
#define ITEM_STAT_SPELLMULTIATTACKCHANCE			645 //% Spell Multi Atttack Chance

we don't support spell weapon ae auto attack

0 - no autoattack at all 1 - melee autoattack 2 - ranged autoattack 3 - spell autoattack

we only support 0,1,2 in command_auto_attack

we also don't support spell multi attack chance -- not sure this is even classic

going to focus this issue on the spell specific ones ``` #define ITEM_STAT_ABILITYCASTINGSPEED 664 //% Ability Casting Speed #define ITEM_STAT_SPELLREUSESPEED 665 //% Spell Reuse Speed ``` we still need to review these: ``` #define ITEM_STAT_ABILITYREUSESPEED 662 //% Ability Reuse Speed #define ITEM_STAT_ABILITYRECOVERYSPEED 663 //% Ability Recovery Speed #define ITEM_STAT_MULTIATTACKCHANCE 641 //% Multi Attack Chance // inconsistant with db ``` ``` #define ITEM_STAT_SPELLWEAPONAEAUTOATTACKCHANCE 640 // #define ITEM_STAT_SPELLMULTIATTACKCHANCE 645 //% Spell Multi Atttack Chance ``` we don't support spell weapon ae auto attack 0 - no autoattack at all 1 - melee autoattack 2 - ranged autoattack 3 - spell autoattack we only support 0,1,2 in command_auto_attack we also don't support spell multi attack chance -- not sure this is even classic
image commented 5 months ago
Collaborator

the way these fields work is greater than 0 reduces cast/reuse, less than 0 increases cast/reuse. Whole numbers used to represent percentages.

reduction is limited to 50% (of the standard cast/reuse time) max is limited to 50% over (150% of the standard cast/reuse time)

the way these fields work is greater than 0 reduces cast/reuse, less than 0 increases cast/reuse. Whole numbers used to represent percentages. reduction is limited to 50% (of the standard cast/reuse time) max is limited to 50% over (150% of the standard cast/reuse time)
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.