diff options
| author | ForesterDev <11771800+ForesterDev@users.noreply.github.com> | 2020-06-07 11:22:13 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-07 10:22:13 +0200 |
| commit | e3b232fe0e5c21a87d3fe71813e9d750259823f1 (patch) | |
| tree | 58f7306a85e196080ec33a9aa97ba755af955618 /src/server/scripts/World | |
| parent | 1181b636c0cec174367906808c999641ca7897fc (diff) | |
Core/AI: refactor SpellHit and SpellHitTarget. (#24691)
* Core/AI: refactor SpellHit and SpellHitTarget.
- now caster/target is WorldObject instead of Unit
- remove SpellHitByGameObject / SpellHitTargetGameObject (handled by SpellHit / SpellHitTarget)
- rename parameters in scripts according parent methods
* Restore logic in Algalon script
* Changed check for REMORSELESS_WINTER hit to avoid dublicate call, because it has TARGET_UNIT_CASTER for effects 0/1 and TARGET_GAMEOBJECT_SRC_AREA for effect 2
* Fix build after merge
Diffstat (limited to 'src/server/scripts/World')
| -rw-r--r-- | src/server/scripts/World/boss_emerald_dragons.cpp | 4 | ||||
| -rw-r--r-- | src/server/scripts/World/npcs_special.cpp | 18 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp index 93d23db7ca2..98396dfb923 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -383,9 +383,9 @@ class boss_lethon : public CreatureScript } } - void SpellHitTarget(Unit* target, SpellInfo const* spell) override + void SpellHitTarget(WorldObject* target, SpellInfo const* spellInfo) override { - if (spell->Id == SPELL_DRAW_SPIRIT && target->GetTypeId() == TYPEID_PLAYER) + if (spellInfo->Id == SPELL_DRAW_SPIRIT && target->GetTypeId() == TYPEID_PLAYER) { Position targetPos = target->GetPosition(); me->SummonCreature(NPC_SPIRIT_SHADE, targetPos, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 50000); diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index c3704d1aed9..c746b862908 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -818,10 +818,10 @@ public: void JustEngagedWith(Unit* /*who*/) override { } - void SpellHit(Unit* caster, SpellInfo const* spell) override + void SpellHit(WorldObject* caster, SpellInfo const* spellInfo) override { Player* player = caster->ToPlayer(); - if (!player || !me->IsAlive() || spell->Id != 20804) + if (!player || !me->IsAlive() || spellInfo->Id != 20804) return; if (player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE) @@ -1024,9 +1024,9 @@ public: void JustEngagedWith(Unit* /*who*/) override { } - void SpellHit(Unit* caster, SpellInfo const* spell) override + void SpellHit(WorldObject* caster, SpellInfo const* spellInfo) override { - if (spell->Id == SPELL_LESSER_HEAL_R2 || spell->Id == SPELL_FORTITUDE_R1) + if (spellInfo->Id == SPELL_LESSER_HEAL_R2 || spellInfo->Id == SPELL_FORTITUDE_R1) { //not while in combat if (me->IsInCombat()) @@ -1040,16 +1040,16 @@ public: { if (quest && player->GetQuestStatus(quest) == QUEST_STATUS_INCOMPLETE) { - if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) + if (IsHealed && !CanRun && spellInfo->Id == SPELL_FORTITUDE_R1) { - Talk(SAY_THANKS, caster); + Talk(SAY_THANKS, player); CanRun = true; } - else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) + else if (!IsHealed && spellInfo->Id == SPELL_LESSER_HEAL_R2) { - CasterGUID = caster->GetGUID(); + CasterGUID = player->GetGUID(); me->SetStandState(UNIT_STAND_STATE_STAND); - Talk(SAY_HEALED, caster); + Talk(SAY_HEALED, player); IsHealed = true; } } |
