19 uint16_t spell_index_of_type =
26 uint16_t current_damage = (spell_data.
params[1] * damage) / 100;
27 return current_damage;
31 uint16_t source_index,
32 uint16_t target_index,
45 uint16_t spell_index =
51 uint16_t return_damage = (damage * spell_data.
params[0]) / 100;
54 uint16_t final_damage = (damage - return_damage);
55 if (final_damage != 0)
58 source_index, return_damage, 0, 0, 0);
65 uint16_t source_index,
66 uint16_t target_index,
79 uint16_t spell_index =
84 return (damage * spell_data.
params[1]) / 100;
88 uint16_t source_index,
89 uint16_t target_index,
100 if (source_level + 5 <= target_level)
105 if (source_level - 0xf > target_level)
110 uint16_t spell_index =
116 uint16_t tmp_damage = damage * spell_data.
params[1];
119 if (tmp_damage < hp_left)
124 tmp_damage = ((tmp_damage - hp_left) * 100) / tmp_damage;
125 uint16_t chance = 5 * tmp_damage *
126 (5 + (int16_t)(source_level - target_level));
135 uint16_t source_index,
136 uint16_t target_index,
154 uint16_t spell_index =
159 return (damage * spell_data.
params[1]) / 100;
163 uint16_t source_index,
164 uint16_t target_index,
186 uint16_t spell_index =
191 return (damage * spell_data.
params[1]) / 100;
195 uint16_t source_index,
196 uint16_t target_index, uint16_t damage)
222 uint16_t spell_index =
227 return (damage * spell_data.
params[1]) / 100;
231 uint16_t source_index,
232 uint16_t target_index,
236 if (damage == 0x7fff || damage == 0)
241 uint16_t spell_index =
252 std::list<uint16_t> affected_figures;
254 uint16_t element_count = 0;
255 while (figure_id != 0)
258 target_index, figure_id))
260 if (figure_id != target_index)
262 affected_figures.push_back(figure_id);
265 if (element_count == spell_data.
params[1])
272 if (element_count != 0)
274 uint16_t shared_damage = (damage / (element_count + 1));
275 uint16_t remainder = (damage % (element_count + 1));
281 for (
auto t : affected_figures)
284 uint32_t distance =
getDistance(&source_pos, &friend_pos);
285 distance = (distance * 0x578) / 1000;
293 friend_pos = friend_pos;
301 shared_damage, 0, 0, 0);
303 damage = shared_damage + remainder;
SpellFunctions * spellAPI
FigureFunctions * figureAPI
ToolboxFunctions * toolboxAPI
EffectFunctions effectAPI
IteratorFunctions iteratorAPI
uint32_t getDistance(SF_Coord *pointA, SF_Coord *pointB)
bool __thiscall isActionMelee(SF_SGtFigureAction *_this)
@ kGdEffectSpellAssistanceHitFigure
uint16_t __thiscall critical_hits_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
uint16_t __thiscall endurance_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
uint16_t __thiscall warcry_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
uint16_t __thiscall assistance_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
uint16_t __thiscall berserk_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
uint16_t __thiscall riposte_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
uint16_t __thiscall durability_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
uint16_t __thiscall trueshot_onhit_handler(SF_CGdFigureJobs *_this, uint16_t source_index, uint16_t target_index, uint16_t damage)
@ kGdSpellLineAbilityTrueShot
@ kGdSpellLineAbilityDurability
@ kGdSpellLineAbilityCriticalHits
@ kGdSpellLineAbilityWarCry
@ kGdSpellLineAbilityRiposte
@ kGdSpellLineAbilityBerserk
@ kGdSpellLineAbilityEndurance
getTargetAction_ptr getTargetAction
disposeFigureIterator_ptr disposeFigureIterator
getNextFigure_ptr getNextFigure
figureIteratorSetPointers_ptr figureIteratorSetPointers
iteratorSetArea_ptr iteratorSetArea
figureIteratorInit_ptr figureIteratorInit
getRandom_ptr getRandom
Generates a random value up to the specified maximum value.
getResourceSpellData_ptr getResourceSpellData
getSpellID_ptr getSpellID
Retrieves the Spell Effect ID for a given spell index. The spell effect ID can be used to obtain spel...