7 uint16_t source, uint16_t target,
8 uint16_t current_damage,
9 uint16_t is_spell_damage,
10 uint32_t is_ranged_damage,
17 return current_damage;
22 uint16_t source, uint16_t target,
23 uint16_t current_damage,
24 uint16_t is_spell_damage,
25 uint32_t is_ranged_damage,
28 if ((!is_ranged_damage) && (!is_spell_damage))
32 current_damage = (uint16_t)((current_damage * spell_data.
params[1]) / 100);
33 return current_damage;
35 return current_damage;
39 uint16_t source, uint16_t target,
40 uint16_t current_damage,
41 uint16_t is_spell_damage,
42 uint32_t is_ranged_damage,
51 uint16_t source, uint16_t target,
52 uint16_t current_damage,
53 uint16_t is_spell_damage,
54 uint32_t is_ranged_damage,
57 if ((!is_ranged_damage) && (!is_spell_damage) && (source != 0))
67 return current_damage;
71 uint16_t source, uint16_t target,
72 uint16_t current_damage,
73 uint16_t is_spell_damage,
74 uint32_t is_ranged_damage,
81 if (shield_value < current_damage)
83 current_damage = current_damage - shield_value;
88 shield_value = shield_value - current_damage;
92 if (shield_value == 0)
100 return current_damage;
104 uint16_t source, uint16_t target,
105 uint16_t current_damage,
106 uint16_t is_spell_damage,
107 uint32_t is_ranged_damage,
111 return current_damage;
115 uint16_t source, uint16_t target,
116 uint16_t current_damage,
117 uint16_t is_spell_damage,
118 uint32_t is_ranged_damage,
125 uint16_t reflect_amount = (uint16_t)((current_damage * spell_data.
params[0]) / 100);
126 if (current_damage < reflect_amount)
129 reflect_amount = current_damage;
133 current_damage = current_damage - reflect_amount;
137 toolboxAPI.dealDamage(_this, target, source, reflect_amount, 1, 0, 0);
145 return current_damage;
149 uint16_t source, uint16_t target,
150 uint16_t current_damage,
151 uint16_t is_spell_damage,
152 uint32_t is_ranged_damage,
159 if (current_health <= current_damage)
161 if (roll_value <= spell_data.
params[2])
163 current_damage = current_health - 1;
166 return current_damage;
170 uint16_t source, uint16_t target,
171 uint16_t current_damage,
172 uint16_t is_spell_damage,
173 uint32_t is_ranged_damage,
179 while (spell_index != 0)
188 return current_damage;
192 uint16_t source, uint16_t target,
193 uint16_t current_damage,
194 uint16_t is_spell_damage,
195 uint32_t is_ranged_damage,
201 while (spell_index != 0)
203 toolboxAPI.removeSpellFromList(_this, target, spell_index);
209 return current_damage;
214 uint16_t source, uint16_t target,
215 uint16_t current_damage,
216 uint16_t is_spell_damage,
217 uint32_t is_ranged_damage,
221 if (mana_left < current_damage)
223 current_damage = current_damage - mana_left;
236 return current_damage;
SpellFunctions * spellAPI
FigureFunctions * figureAPI
ToolboxFunctions * toolboxAPI
EffectFunctions effectAPI
void __thiscall tryClearCheckSpellsBeforeJob(SF_CGdSpell *_this, uint16_t spell_index, uint16_t figure_index)
@ kGdEffectSpellVoodooHitFigure
@ kGdEffectSpellManaShieldHitFigure
@ SPELL_CONSERVATION_SHIELD
@ kGdSpellLineConservation
uint16_t __thiscall hypnotize_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall durability_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall steelskin_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall hypnotize_area_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall mana_shield_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t invulnerability_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall feedback_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall dmg_shield_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall death_grasp_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall feign_death_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)
uint16_t __thiscall conservation_dmg_handler(SF_CGdFigureToolbox *_this, uint16_t source, uint16_t target, uint16_t current_damage, uint16_t is_spell_damage, uint32_t is_ranged_damage, uint16_t spell_id)