void Combat::doCombatMana(const CreatureP& caster, const Position& pos, const CombatArea* area, int32_t minChange, int32_t maxChange, const CombatParams& params) { Combat2Var var; var.minChange = minChange; var.maxChange = maxChange; CombatFunc(caster, pos, area, params, CombatManaFunc, (void*)&var); }
void Combat::doCombatHealth(Creature* caster, const Position& pos, const AreaCombat* area, const int32_t& minChange, const int32_t& maxChange, const CombatParams& params) { Combat2Var var; var.minChange = minChange; var.maxChange = maxChange; CombatFunc(caster, pos, area, params, CombatHealthFunc, (void*)&var); }
void Combat::doCombat(Creature* caster, const Position& position) const { //area combat callback function if (params.combatType != COMBAT_NONE) { CombatDamage damage = getCombatDamage(caster, nullptr); if (damage.primary.type != COMBAT_MANADRAIN) { doCombatHealth(caster, position, area, damage, params); } else { doCombatMana(caster, position, area, damage, params); } } else { CombatFunc(caster, position, area, params, CombatnullptrFunc, nullptr); } }
void Combat::doCombat(const CreatureP& caster, const Position& pos) const { //area combat callback function if(params.combatType != COMBAT_NONE) { int32_t minChange = 0, maxChange = 0; getMinMaxValues(caster, nullptr, minChange, maxChange); if(params.combatType != COMBAT_MANADRAIN) doCombatHealth(caster, pos, area, minChange, maxChange, params); else doCombatMana(caster, pos, area, minChange, maxChange, params); } else CombatFunc(caster, pos, area, params, CombatNullFunc, nullptr); }
void Combat::doCombat(Creature* caster, const Position& pos) const { //area combat callback function if(params.combatType != COMBAT_NONE){ int32_t minChange = 0; int32_t maxChange = 0; getMinMaxValues(caster, NULL, minChange, maxChange); if(params.combatType != COMBAT_MANADRAIN){ doCombatHealth(caster, pos, area, minChange, maxChange, params); } else{ doCombatMana(caster, pos, area, minChange, maxChange, params); } } else{ CombatFunc(caster, pos, area, params, CombatNullFunc, NULL); } }
void Combat::doCombatDispel(Creature* caster, const Position& position, const AreaCombat* area, const CombatParams& params) { CombatFunc(caster, position, area, params, CombatDispelFunc, nullptr); }
void Combat::doCombatMana(Creature* caster, const Position& position, const AreaCombat* area, CombatDamage& damage, const CombatParams& params) { CombatFunc(caster, position, area, params, CombatManaFunc, &damage); }
void Combat::doCombatCondition(Creature* caster, const Position& pos, const AreaCombat* area, const CombatParams& params) { CombatFunc(caster, pos, area, params, CombatConditionFunc, NULL); }
void Combat::doCombatDispel(const CreatureP& caster, const Position& pos, const CombatArea* area, const CombatParams& params) { CombatFunc(caster, pos, area, params, CombatDispelFunc, nullptr); }
void Combat::doCombatDispel(Creature* caster, const Position& pos, const CombatArea* area, const CombatParams& params) { CombatFunc(caster, pos, area, params, CombatDispelFunc, NULL); }