Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2024-09-04 23:45:48 +08:00
282 changed files with 1861 additions and 1430 deletions
@@ -95,7 +95,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
if (!_initTalk)
@@ -347,7 +347,7 @@ class spell_herald_volzaj_insanity : public SpellScript
{
PrepareSpellScript(spell_herald_volzaj_insanity);
bool Load() override { return GetCaster()->GetTypeId() == TYPEID_UNIT; }
bool Load() override { return GetCaster()->IsCreature(); }
void HandleDummyEffect(std::list<WorldObject*>& targets)
{
@@ -362,7 +362,7 @@ class spell_herald_volzaj_insanity : public SpellScript
{
targets.remove_if([this](WorldObject* targetObj) -> bool
{
return !targetObj || targetObj->GetTypeId() != TYPEID_PLAYER || !targetObj->ToPlayer()->IsInCombatWith(GetCaster()) ||
return !targetObj || !targetObj->IsPlayer() || !targetObj->ToPlayer()->IsInCombatWith(GetCaster()) ||
targetObj->GetDistance(GetCaster()) >= (MAX_VISIBILITY_DISTANCE * 2);
});
}
@@ -466,7 +466,7 @@ class spell_volazj_whisper : public SpellScript
});
}
bool Load() override { return GetCaster()->GetTypeId() == TYPEID_UNIT; }
bool Load() override { return GetCaster()->IsCreature(); }
void HandleScriptEffect(SpellEffIndex /* effIndex */)
{
@@ -333,7 +333,7 @@ struct boss_jedoga_shadowseeker : public BossAI
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
{
return;
}
@@ -307,7 +307,7 @@ struct boss_taldaram : public BossAI
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
{
return;
}
@@ -925,7 +925,7 @@ struct boss_sartharion_dragonAI : public BossAI
void KilledUnit(Unit* victim) final
{
if (victim->GetTypeId() != TYPEID_PLAYER || urand(0, 2))
if (!victim->IsPlayer() || urand(0, 2))
{
return;
}
@@ -1053,7 +1053,7 @@ class spell_halion_twilight_phasing : public SpellScript
bool Load() override
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void Phase()
@@ -1116,7 +1116,7 @@ class spell_halion_twilight_realm_aura : public AuraScript
return;
target->RemoveAurasDueToSpell(SPELL_FIERY_COMBUSTION, ObjectGuid::Empty, 0, AURA_REMOVE_BY_ENEMY_SPELL);
if (GetTarget()->GetTypeId() != TYPEID_PLAYER)
if (!GetTarget()->IsPlayer())
return;
GetTarget()->m_Events.AddEvent(new SendEncounterUnit(GetTarget()->ToPlayer()), GetTarget()->m_Events.CalculateTime(500));
}
@@ -1149,7 +1149,7 @@ class spell_halion_leave_twilight_realm_aura : public AuraScript
{
GetTarget()->RemoveAurasDueToSpell(SPELL_TWILIGHT_REALM);
if (GetTarget()->GetTypeId() != TYPEID_PLAYER)
if (!GetTarget()->IsPlayer())
return;
GetTarget()->m_Events.AddEvent(new SendEncounterUnit(GetTarget()->ToPlayer()), GetTarget()->m_Events.CalculateTime(500));
}
@@ -765,7 +765,7 @@ class spell_toc5_light_rain : public SpellScript
{
for( std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); )
{
if ((*itr)->GetTypeId() == TYPEID_UNIT)
if ((*itr)->IsCreature())
if ((*itr)->ToCreature()->GetEntry() == NPC_FOUNTAIN_OF_LIGHT)
{
targets.erase(itr);
@@ -691,7 +691,7 @@ public:
if( me->GetExactDist(plr) <= 5.0f )
if( Vehicle* v = plr->GetVehicle() )
if( Unit* c = v->GetBase() )
if( c->GetTypeId() == TYPEID_UNIT && c->ToCreature()->GetEntry() == (pInstance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_HORDE ? VEHICLE_ARGENT_BATTLEWORG : VEHICLE_ARGENT_WARHORSE) )
if( c->IsCreature() && c->ToCreature()->GetEntry() == (pInstance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_HORDE ? VEHICLE_ARGENT_BATTLEWORG : VEHICLE_ARGENT_WARHORSE) )
{
me->GetMotionMaster()->MovementExpired();
me->GetMotionMaster()->MoveIdle();
@@ -1156,7 +1156,7 @@ public:
{
NPC_BlackKnightGUID = bk->GetGUID();
bk->SendMovementFlagUpdate(); // put him on vehicle visually
if( bk->GetTypeId() == TYPEID_UNIT )
if( bk->IsCreature() )
bk->ToCreature()->SetReactState(REACT_PASSIVE);
}
@@ -400,7 +400,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER || me->GetExactDistSq(who) > 6400.0f) // 80yd*80yd
if (!who->IsPlayer() || me->GetExactDistSq(who) > 6400.0f) // 80yd*80yd
return;
if (me->getStandState() != UNIT_STAND_STATE_STAND)
@@ -846,7 +846,7 @@ public:
{
target->UpdatePosition(*c, false);
target->CastCustomSpell(SPELL_SPIKE_FAIL, SPELLVALUE_MAX_TARGETS, 1);
if( target->GetTypeId() == TYPEID_UNIT )
if( target->IsCreature() )
target->ToCreature()->AI()->DoAction(-1);
Remove();
return;
@@ -172,7 +172,7 @@ public:
break;
case EVENT_SPELL_FIRE_BOMB:
{
if( t->GetTypeId() != TYPEID_PLAYER && pInstance )
if( !t->IsPlayer() && pInstance )
{
GuidVector validPlayers;
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
@@ -342,7 +342,7 @@ public:
if( Vehicle* vk = me->GetVehicleKit() )
if( Unit* snobold = vk->GetPassenger(4) )
{
if( snobold->GetTypeId() == TYPEID_UNIT )
if( snobold->IsCreature() )
{
CAST_AI(npc_snobold_vassal::npc_snobold_vassalAI, snobold->ToCreature()->AI())->TargetGUID = PlayerGUID;
snobold->ToCreature()->AI()->AttackStart(p);
@@ -357,7 +357,7 @@ public:
{
events.RescheduleEvent(EVENT_PICK_SNOBOLD_TARGET, 5s);
if( Unit* snobold = vk->GetPassenger(4) )
if( snobold->GetTypeId() == TYPEID_UNIT )
if( snobold->IsCreature() )
{
bool needDespawn = true;
for( uint8 i = 0; i < 4; ++i )
@@ -118,7 +118,7 @@ public:
return true;
if (item->ItemId == 46017) // Val'anyr, Hammer of Ancient Kings - exception, too powerful
return false;
if (item->ItemLevel == 245 && item->Bonding == BIND_WHEN_EQUIPED) // this also includes items crafted from patterns obtained in ToC 10 norm/hc
if (item->ItemLevel == 245 && item->Bonding == BIND_WHEN_EQUIPPED) // this also includes items crafted from patterns obtained in ToC 10 norm/hc
return true;
if (validDedicatedInsanityItems.find(item->ItemId) != validDedicatedInsanityItems.end()) // list of items dropping from ToC 10 norm/hc and also items ilevel 245 buyable for emblems of triumph
return true;
@@ -84,7 +84,7 @@ class spell_dtk_raise_dead_aura : public AuraScript
bool Load() override
{
return GetUnitOwner()->GetTypeId() == TYPEID_UNIT;
return GetUnitOwner()->IsCreature();
}
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -258,7 +258,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
return;
int32 textId = 0;
@@ -347,7 +347,7 @@ class spell_wailing_souls_periodic_aura : public AuraScript
{
t->SetControlled(false, UNIT_STATE_ROOT);
t->DisableRotate(false);
if (t->GetTypeId() == TYPEID_UNIT)
if (t->IsCreature())
t->ToCreature()->SetReactState(REACT_AGGRESSIVE);
if (t->GetVictim())
{
@@ -333,7 +333,7 @@ class spell_garfrost_permafrost : public SpellScript
if (valid)
{
if (Aura* aur = target->ToUnit()->GetAura(70336))
if (aur->GetStackAmount() >= 10 && caster->GetTypeId() == TYPEID_UNIT)
if (aur->GetStackAmount() >= 10 && caster->IsCreature())
caster->ToCreature()->AI()->SetData(1, aur->GetStackAmount());
targetList.push_back(*itrU);
}
@@ -470,7 +470,7 @@ class spell_krick_explosive_barrage_aura : public AuraScript
{
PreventDefaultAction();
if (Unit* caster = GetCaster())
if (caster->GetTypeId() == TYPEID_UNIT)
if (caster->IsCreature())
{
Map::PlayerList const& players = caster->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
@@ -505,7 +505,7 @@ class spell_exploding_orb_auto_grow_aura : public AuraScript
target->RemoveAurasDueToSpell(SPELL_HASTY_GROW);
target->RemoveAurasDueToSpell(SPELL_AUTO_GROW);
target->RemoveAurasDueToSpell(SPELL_EXPLODING_ORB_VISUAL);
if (target->GetTypeId() == TYPEID_UNIT)
if (target->IsCreature())
target->ToCreature()->DespawnOrUnsummon(2000);
}
}
@@ -1130,7 +1130,7 @@ public:
me->LoadCreaturesAddon(true);
me->SetLootRecipient(nullptr);
me->ResetPlayerDamageReq();
me->SetLastDamagedTime(0);
me->UpdateLeashExtensionTime();
}
};
@@ -1405,7 +1405,7 @@ class spell_pos_rimefang_frost_nova : public SpellScript
if (Unit* caster = GetCaster())
{
Unit::Kill(caster, target);
if (target->GetTypeId() == TYPEID_UNIT)
if (target->IsCreature())
target->ToCreature()->DespawnOrUnsummon(30000);
}
}
@@ -343,7 +343,7 @@ public:
void DamageDealt(Unit* target, uint32& damage, DamageEffectType /*damageType*/) override
{
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return;
if (damage > RAID_MODE<uint32>(23000, 25000, 23000, 25000))
@@ -613,7 +613,7 @@ public:
void DamageDealt(Unit* target, uint32& damage, DamageEffectType /*damageType*/) override
{
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return;
if (damage > RAID_MODE<uint32>(23000, 25000, 23000, 25000))
@@ -907,7 +907,7 @@ public:
void DamageDealt(Unit* target, uint32& damage, DamageEffectType /*damageType*/) override
{
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return;
if (damage > RAID_MODE<uint32>(23000, 25000, 23000, 25000))
@@ -1102,7 +1102,7 @@ public:
if (_introDone)
return;
if (who->GetTypeId() != TYPEID_PLAYER || me->GetExactDist2d(who) > 100.0f)
if (!who->IsPlayer() || me->GetExactDist2d(who) > 100.0f)
{
return;
}
@@ -1335,7 +1335,7 @@ public:
void DamageDealt(Unit* target, uint32& damage, DamageEffectType /*damageType*/) override
{
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
{
return;
}
@@ -1506,7 +1506,7 @@ class spell_taldaram_summon_flame_ball : public SpellScript
bool Load() override
{
if (GetCaster()->GetTypeId() != TYPEID_UNIT)
if (!GetCaster()->IsCreature())
{
return false;
}
@@ -1573,7 +1573,7 @@ class spell_valanar_kinetic_bomb_aura : public AuraScript
void HandleDummyTick(AuraEffect const* /*aurEff*/)
{
Unit* target = GetTarget();
if (target->GetTypeId() != TYPEID_UNIT)
if (!target->IsCreature())
return;
if (Creature* bomb = target->FindNearestCreature(NPC_KINETIC_BOMB, 1.0f, true))
@@ -823,7 +823,7 @@ class spell_blood_queen_vampiric_bite : public SpellScript
return;
}
if (GetCaster()->GetTypeId() != TYPEID_PLAYER || GetCaster()->GetMapId() != 631)
if (!GetCaster()->IsPlayer() || GetCaster()->GetMapId() != 631)
return;
InstanceScript* instance = GetCaster()->GetInstanceScript();
if (!instance || instance->GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) != IN_PROGRESS)
@@ -1259,7 +1259,7 @@ class spell_deathbringer_boiling_blood : public SpellScript
bool Load() override
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void FilterTargets(std::list<WorldObject*>& targets)
@@ -290,13 +290,13 @@ class spell_festergut_pungent_blight : public SpellScript
bool Load() override
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
if (caster->GetTypeId() != TYPEID_UNIT)
if (!caster->IsCreature())
return;
// Get Inhaled Blight id for our difficulty
@@ -383,7 +383,7 @@ public:
bool OnCheck(Player* /*source*/, Unit* target, uint32 /*criteria_id*/) override
{
if (target && target->GetTypeId() == TYPEID_UNIT)
if (target && target->IsCreature())
return target->ToCreature()->AI()->GetData(DATA_INOCULATED_STACK) < 3;
return false;
@@ -602,7 +602,7 @@ public:
Transport::PassengerSet const& passengers = t->GetStaticPassengers();
for (Transport::PassengerSet::const_iterator itr = passengers.begin(); itr != passengers.end(); ++itr)
{
if ((*itr)->GetTypeId() != TYPEID_UNIT || (*itr)->GetEntry() != NPC_GUNSHIP_HULL)
if (!(*itr)->IsCreature() || (*itr)->GetEntry() != NPC_GUNSHIP_HULL)
continue;
(*itr)->ToCreature()->CastSpell((*itr)->ToCreature(), explosionSpell, true);
}
@@ -615,7 +615,7 @@ public:
Transport::PassengerSet const& passengers = t->GetStaticPassengers();
for (Transport::PassengerSet::const_iterator itr = passengers.begin(); itr != passengers.end(); ++itr)
{
if ((*itr)->GetTypeId() != TYPEID_UNIT || (*itr)->GetEntry() != cannonEntry)
if (!(*itr)->IsCreature() || (*itr)->GetEntry() != cannonEntry)
continue;
Creature* cannon = (*itr)->ToCreature();
cannon->CastSpell(cannon, SPELL_EJECT_ALL_PASSENGERS, true);
@@ -661,7 +661,7 @@ public:
Transport::PassengerSet const& passengers = t->GetPassengers();
for (Transport::PassengerSet::const_iterator itr = passengers.begin(); itr != passengers.end(); ++itr)
{
if ((*itr)->GetTypeId() != TYPEID_UNIT)
if (!(*itr)->IsCreature())
continue;
Creature* c = (*itr)->ToCreature();
if (c->GetEntry() == NPC_SKYBREAKER_MARINE || c->GetEntry() == NPC_SKYBREAKER_SERGEANT || c->GetEntry() == NPC_KOR_KRON_REAVER || c->GetEntry() == NPC_KOR_KRON_SERGEANT)
@@ -2080,7 +2080,7 @@ class spell_igb_check_for_players : public SpellScript
bool Load() override
{
_playerCount = 0;
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void CountTargets(std::list<WorldObject*>& targets)
@@ -2302,7 +2302,7 @@ class spell_igb_cannon_blast : public SpellScript
bool Load() override
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void CalculatePower()
@@ -2467,7 +2467,7 @@ public:
bool operator()(WorldObject* unit)
{
return unit->GetTypeId() != TYPEID_PLAYER || unit->GetPositionZ() > 478.0f || !unit->GetTransport() || unit->GetTransport()->GetEntry() != _entry
return !unit->IsPlayer() || unit->GetPositionZ() > 478.0f || !unit->GetTransport() || unit->GetTransport()->GetEntry() != _entry
|| unit->GetMapHeight(unit->GetPhaseMask(), unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ()) < 465.0f;
}
@@ -84,7 +84,7 @@ public:
if (target->GetExactDist(_source) > 175.0f)
return false;
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return false;
if (target->GetPositionX() > -337.0f)
@@ -415,7 +415,7 @@ public:
{
if (Unit* u = v->GetBase())
{
if (u->GetEntry() == NPC_BONE_SPIKE && u->GetTypeId() == TYPEID_UNIT)
if (u->GetEntry() == NPC_BONE_SPIKE && u->IsCreature())
{
u->ToCreature()->AI()->DoAction(-1337);
}
@@ -209,7 +209,7 @@ public:
bool operator()(Unit const* target) const
{
if (!me || !target || target->GetTypeId() != TYPEID_PLAYER)
if (!me || !target || !target->IsPlayer())
return false;
if (me->IsWithinCombatRange(target, 7.0f))
@@ -952,7 +952,7 @@ class spell_putricide_unstable_experiment : public SpellScript
void HandleScript(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
if (GetCaster()->GetTypeId() != TYPEID_UNIT)
if (!GetCaster()->IsCreature())
return;
Creature* creature = GetCaster()->ToCreature();
@@ -1044,7 +1044,7 @@ class spell_putricide_ooze_channel : public SpellScript
bool Load() override
{
_target = nullptr;
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void SelectTarget(std::list<WorldObject*>& targets)
@@ -1318,7 +1318,7 @@ class spell_putricide_mutation_init : public SpellScript
if (!GetExplTargetUnit())
return SPELL_FAILED_BAD_TARGETS;
if (GetExplTargetUnit()->GetTypeId() != TYPEID_PLAYER)
if (!GetExplTargetUnit()->IsPlayer())
return SPELL_FAILED_TARGET_NOT_PLAYER;
SpellCustomErrors extension = SPELL_CUSTOM_ERROR_NONE;
@@ -360,7 +360,7 @@ public:
if (!summoner)
return;
if (summoner->GetTypeId() != TYPEID_UNIT)
if (!summoner->IsCreature())
{
return;
}
@@ -651,7 +651,7 @@ class spell_rotface_large_ooze_combine : public SpellScript
if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_ROTFACE)))
if (rotface->IsAlive())
{
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
if (GetCaster()->IsCreature())
GetCaster()->ToCreature()->AI()->Talk(EMOTE_UNSTABLE_EXPLOSION);
rotface->AI()->Talk(SAY_UNSTABLE_EXPLOSION);
}
@@ -708,7 +708,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScript
if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(DATA_ROTFACE)))
if (rotface->IsAlive())
{
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
if (GetCaster()->IsCreature())
GetCaster()->ToCreature()->AI()->Talk(EMOTE_UNSTABLE_EXPLOSION);
rotface->AI()->Talk(SAY_UNSTABLE_EXPLOSION);
}
@@ -792,7 +792,7 @@ class spell_rotface_unstable_ooze_explosion_suicide_aura : public AuraScript
{
PreventDefaultAction();
Unit* target = GetTarget();
if (target->GetTypeId() != TYPEID_UNIT)
if (!target->IsCreature())
return;
target->SetVisible(false);
@@ -252,7 +252,7 @@ public:
if (target->GetExactDist(_source) > 80.0f)
return false;
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return false;
if (target->HasAura(SPELL_FROST_IMBUED_BLADE))
@@ -1154,7 +1154,7 @@ class spell_sindragosa_soul_preservation_aura : public AuraScript
{
s->CastSpell(s, 72466, true);
s->RemoveAurasDueToSpell(72424);
if (s->GetTypeId() == TYPEID_UNIT) s->ToCreature()->SetLootMode(3);
if (s->IsCreature()) s->ToCreature()->SetLootMode(3);
SetDuration(1);
}
}
@@ -386,7 +386,7 @@ public:
return false;
if (!target->IsAlive())
return false;
if (_playerOnly && target->GetTypeId() != TYPEID_PLAYER)
if (_playerOnly && !target->IsPlayer())
return false;
if (_maxDist && _source->GetExactDist(target) > _maxDist)
return false;
@@ -412,7 +412,7 @@ public:
return false;
if (!target->IsAlive())
return false;
if (_playerOnly && target->GetTypeId() != TYPEID_PLAYER)
if (_playerOnly && !target->IsPlayer())
return false;
if (target == _source->GetVictim())
return false;
@@ -446,7 +446,7 @@ public:
return false;
if (!target->IsAlive())
return false;
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return false;
if (_source->GetExactDist(target) > 100.0f)
return false;
@@ -600,7 +600,7 @@ public:
bool operator()(Unit* unit) const
{
if (!unit || unit->GetTypeId() != TYPEID_PLAYER || unit == _sourceObj || _sourceObj->GetVictim() == unit || !unit->isTargetableForAttack())
if (!unit || !unit->IsPlayer() || unit == _sourceObj || _sourceObj->GetVictim() == unit || !unit->isTargetableForAttack())
return false;
if (unit->HasAura(SPELL_PLAGUE_AVOIDANCE) || unit->HasAura(SPELL_BOSS_HITTIN_YA_AURA) || unit->HasAura(_notAura1) || unit->HasAura(_notAura2))
return false;
@@ -2078,7 +2078,7 @@ class spell_the_lich_king_shadow_trap_periodic : public SpellScript
GetCaster()->CastSpell((Unit*)nullptr, SPELL_SHADOW_TRAP_KNOCKBACK, true);
if (Aura* a = GetCaster()->GetAura(SPELL_SHADOW_TRAP_AURA))
a->SetDuration(0);
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
if (GetCaster()->IsCreature())
GetCaster()->ToCreature()->DespawnOrUnsummon(3000);
}
@@ -2102,7 +2102,7 @@ class spell_the_lich_king_ice_burst_target_search : public SpellScript
if (unitList.empty())
return;
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
if (GetCaster()->IsCreature())
GetCaster()->ToCreature()->AI()->DoAction(-1);
}
@@ -2336,7 +2336,7 @@ class VehicleCheck
public:
bool operator()(WorldObject* unit)
{
return (unit->GetTypeId() != TYPEID_UNIT && unit->GetTypeId() != TYPEID_PLAYER) || unit->ToUnit()->GetVehicle();
return (!unit->IsCreature() && !unit->IsPlayer()) || unit->ToUnit()->GetVehicle();
}
};
@@ -2804,7 +2804,7 @@ class spell_the_lich_king_vile_spirit_move_target_search : public SpellScript
bool Load() override
{
_target = nullptr;
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void SelectTarget(std::list<WorldObject*>& targets)
@@ -967,7 +967,7 @@ public:
bool CanAIAttack(Unit const* target) const override
{
// do not see targets inside Frostwing Halls when we are not there
return target->GetTypeId() != TYPEID_PLAYER && (me->GetPositionY() > 2660.0f) == (target->GetPositionY() > 2660.0f) && target->GetEntry() != NPC_SINDRAGOSA;
return !target->IsPlayer() && (me->GetPositionY() > 2660.0f) == (target->GetPositionY() > 2660.0f) && target->GetEntry() != NPC_SINDRAGOSA;
}
private:
@@ -1757,7 +1757,7 @@ public:
void SpellHitTarget(Unit* c, SpellInfo const* spell) override
{
if (spell->Id == 71306 && c->GetTypeId() == TYPEID_UNIT) // Twisted Winds
if (spell->Id == 71306 && c->IsCreature()) // Twisted Winds
{
Position myPos = me->GetPosition();
me->NearTeleportTo(c->GetPositionX(), c->GetPositionY(), c->GetPositionZ(), c->GetOrientation());
@@ -401,7 +401,7 @@ public:
case NPC_SE_HIGH_OVERLORD_SAURFANG:
if (TeamIdInInstance == TEAM_ALLIANCE)
{
creature->UpdateEntry(NPC_SE_MURADIN_BRONZEBEARD, creature->GetCreatureData());
creature->UpdateEntry(NPC_SE_MURADIN_BRONZEBEARD, true);
creature->LoadEquipment();
}
DeathbringerSaurfangEventGUID = creature->GetGUID();
@@ -135,7 +135,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -21,6 +21,7 @@
#include "SpellInfo.h"
#include "naxxramas.h"
using namespace Faerlina;
void AddSC_boss_faerlina()
@@ -131,7 +131,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
if (!urand(0, 3))
@@ -24,6 +24,7 @@
#include "SpellScriptLoader.h"
#include "naxxramas.h"
using namespace FourHorsemen;
void AddSC_boss_four_horsemen()
@@ -247,7 +247,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -23,6 +23,7 @@
#include "SpellScriptLoader.h"
#include "naxxramas.h"
using namespace Gluth;
void AddSC_boss_gluth()
@@ -147,7 +147,7 @@ public:
return false;
Map::PlayerList const& pList = me->GetMap()->GetPlayers();
for (const auto& itr : pList)
for (auto const& itr : pList)
{
Player* player = itr.GetSource();
if (!player || !player->IsAlive())
@@ -24,6 +24,7 @@
#include "SpellScriptLoader.h"
#include "naxxramas.h"
using namespace Gothik;
void AddSC_boss_gothik()
@@ -311,7 +311,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
Talk(SAY_KILL);
@@ -375,7 +375,7 @@ public:
{
bool checklife = false;
bool checkdead = false;
for (const auto& i : PlayerList)
for (auto const& i : PlayerList)
{
Player* player = i.GetSource();
if (player->IsAlive() &&
@@ -22,6 +22,7 @@
#include "boss_heigan.h"
using namespace Heigan;
void AddSC_boss_heigan()
@@ -9,40 +9,40 @@
namespace Heigan {
enum HeiganSays
enum Says
{
HEIGAN_SAY_AGGRO = 0,
HEIGAN_SAY_SLAY = 1,
HEIGAN_SAY_TAUNT = 2,
HEIGAN_EMOTE_DEATH = 3,
HEIGAN_EMOTE_DANCE = 4,
HEIGAN_EMOTE_DANCE_END = 5,
HEIGAN_SAY_DANCE = 6
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_TAUNT = 2,
EMOTE_DEATH = 3,
EMOTE_DANCE = 4,
EMOTE_DANCE_END = 5,
SAY_DANCE = 6
};
enum HeiganSpells
enum Spells
{
HEIGAN_SPELL_SPELL_DISRUPTION = 29310,
HEIGAN_SPELL_DECREPIT_FEVER_10 = 29998,
HEIGAN_SPELL_DECREPIT_FEVER_25 = 55011,
HEIGAN_SPELL_PLAGUE_CLOUD = 29350,
HEIGAN_SPELL_TELEPORT_SELF = 30211
SPELL_SPELL_DISRUPTION = 29310,
SPELL_DECREPIT_FEVER_10 = 29998,
SPELL_DECREPIT_FEVER_25 = 55011,
SPELL_PLAGUE_CLOUD = 29350,
SPELL_TELEPORT_SELF = 30211
};
enum HeiganEvents
enum Events
{
HEIGAN_EVENT_DISRUPTION = 1,
HEIGAN_EVENT_DECEPIT_FEVER = 2,
HEIGAN_EVENT_ERUPT_SECTION = 3,
HEIGAN_EVENT_SWITCH_PHASE = 4,
HEIGAN_EVENT_SAFETY_DANCE = 5,
HEIGAN_EVENT_PLAGUE_CLOUD = 6
EVENT_DISRUPTION = 1,
EVENT_DECEPIT_FEVER = 2,
EVENT_ERUPT_SECTION = 3,
EVENT_SWITCH_PHASE = 4,
EVENT_SAFETY_DANCE = 5,
EVENT_PLAGUE_CLOUD = 6
};
enum HeiganMisc
enum Misc
{
HEIGAN_PHASE_SLOW_DANCE = 0,
HEIGAN_PHASE_FAST_DANCE = 1
PHASE_SLOW_DANCE = 0,
PHASE_FAST_DANCE = 1
};
class boss_heigan : public CreatureScript
@@ -86,10 +86,10 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
Talk(HEIGAN_SAY_SLAY);
Talk(SAY_SLAY);
if (pInstance)
{
pInstance->SetData(DATA_IMMORTAL_FAIL, 0);
@@ -99,14 +99,14 @@ public:
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
Talk(HEIGAN_EMOTE_DEATH);
Talk(EMOTE_DEATH);
}
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
me->SetInCombatWithZone();
Talk(HEIGAN_SAY_AGGRO);
Talk(SAY_AGGRO);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_HEIGAN_ENTER_GATE)))
@@ -114,7 +114,7 @@ public:
go->SetGoState(GO_STATE_READY);
}
}
StartFightPhase(HEIGAN_PHASE_SLOW_DANCE);
StartFightPhase(PHASE_SLOW_DANCE);
}
void StartFightPhase(uint8 phase)
@@ -122,30 +122,30 @@ public:
currentSection = 3;
currentPhase = phase;
events.Reset();
if (phase == HEIGAN_PHASE_SLOW_DANCE)
if (phase == PHASE_SLOW_DANCE)
{
me->CastStop();
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat();
events.ScheduleEvent(HEIGAN_EVENT_DISRUPTION, 12s, 15s);
events.ScheduleEvent(HEIGAN_EVENT_DECEPIT_FEVER, 17s);
events.ScheduleEvent(HEIGAN_EVENT_ERUPT_SECTION, 15s);
events.ScheduleEvent(HEIGAN_EVENT_SWITCH_PHASE, 90s);
events.ScheduleEvent(EVENT_DISRUPTION, 12s, 15s);
events.ScheduleEvent(EVENT_DECEPIT_FEVER, 17s);
events.ScheduleEvent(EVENT_ERUPT_SECTION, 15s);
events.ScheduleEvent(EVENT_SWITCH_PHASE, 90s);
}
else // if (phase == HEIGAN_PHASE_FAST_DANCE)
else // if (phase == PHASE_FAST_DANCE)
{
Talk(HEIGAN_EMOTE_DANCE);
Talk(HEIGAN_SAY_DANCE);
Talk(EMOTE_DANCE);
Talk(SAY_DANCE);
me->AttackStop();
me->StopMoving();
me->SetReactState(REACT_PASSIVE);
me->CastSpell(me, HEIGAN_SPELL_TELEPORT_SELF, false);
me->CastSpell(me, SPELL_TELEPORT_SELF, false);
me->SetFacingTo(2.40f);
events.ScheduleEvent(HEIGAN_EVENT_PLAGUE_CLOUD, 1s);
events.ScheduleEvent(HEIGAN_EVENT_ERUPT_SECTION, 7s);
events.ScheduleEvent(HEIGAN_EVENT_SWITCH_PHASE, 45s);
events.ScheduleEvent(EVENT_PLAGUE_CLOUD, 1s);
events.ScheduleEvent(EVENT_ERUPT_SECTION, 7s);
events.ScheduleEvent(EVENT_SWITCH_PHASE, 45s);
}
events.ScheduleEvent(HEIGAN_EVENT_SAFETY_DANCE, 5s);
events.ScheduleEvent(EVENT_SAFETY_DANCE, 5s);
}
bool IsInRoom(Unit* who)
@@ -172,29 +172,29 @@ public:
switch (events.ExecuteEvent())
{
case HEIGAN_EVENT_DISRUPTION:
me->CastSpell(me, HEIGAN_SPELL_SPELL_DISRUPTION, false);
case EVENT_DISRUPTION:
me->CastSpell(me, SPELL_SPELL_DISRUPTION, false);
events.Repeat(10s);
break;
case HEIGAN_EVENT_DECEPIT_FEVER:
me->CastSpell(me, RAID_MODE(HEIGAN_SPELL_DECREPIT_FEVER_10, HEIGAN_SPELL_DECREPIT_FEVER_25), false);
case EVENT_DECEPIT_FEVER:
me->CastSpell(me, RAID_MODE(SPELL_DECREPIT_FEVER_10, SPELL_DECREPIT_FEVER_25), false);
events.Repeat(22s, 25s);
break;
case HEIGAN_EVENT_PLAGUE_CLOUD:
me->CastSpell(me, HEIGAN_SPELL_PLAGUE_CLOUD, false);
case EVENT_PLAGUE_CLOUD:
me->CastSpell(me, SPELL_PLAGUE_CLOUD, false);
break;
case HEIGAN_EVENT_SWITCH_PHASE:
if (currentPhase == HEIGAN_PHASE_SLOW_DANCE)
case EVENT_SWITCH_PHASE:
if (currentPhase == PHASE_SLOW_DANCE)
{
StartFightPhase(HEIGAN_PHASE_FAST_DANCE);
StartFightPhase(PHASE_FAST_DANCE);
}
else
{
StartFightPhase(HEIGAN_PHASE_SLOW_DANCE);
Talk(HEIGAN_EMOTE_DANCE_END); // avoid play the emote on aggro
StartFightPhase(PHASE_SLOW_DANCE);
Talk(EMOTE_DANCE_END); // avoid play the emote on aggro
}
break;
case HEIGAN_EVENT_ERUPT_SECTION:
case EVENT_ERUPT_SECTION:
if (pInstance)
{
pInstance->SetData(DATA_HEIGAN_ERUPTION, currentSection);
@@ -208,16 +208,16 @@ public:
}
moveRight ? currentSection++ : currentSection--;
}
if (currentPhase == HEIGAN_PHASE_SLOW_DANCE)
if (currentPhase == PHASE_SLOW_DANCE)
{
Talk(HEIGAN_SAY_TAUNT);
Talk(SAY_TAUNT);
}
events.Repeat(currentPhase == HEIGAN_PHASE_SLOW_DANCE ? 10s : 4s);
events.Repeat(currentPhase == PHASE_SLOW_DANCE ? 10s : 4s);
break;
case HEIGAN_EVENT_SAFETY_DANCE:
case EVENT_SAFETY_DANCE:
{
Map::PlayerList const& pList = me->GetMap()->GetPlayers();
for (const auto& itr : pList)
for (auto const& itr : pList)
{
if (IsInRoom(itr.GetSource()) && !itr.GetSource()->IsAlive())
{
@@ -23,6 +23,7 @@
#include "SpellScriptLoader.h"
#include "naxxramas.h"
using namespace Kelthuzad;
void AddSC_boss_kelthuzad()
@@ -251,7 +251,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -553,7 +553,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER && !who->IsPet())
if (!who->IsPlayer() && !who->IsPet())
return;
ScriptedAI::MoveInLineOfSight(who);
@@ -20,6 +20,7 @@
#include "ScriptedCreature.h"
#include "naxxramas.h"
using namespace Noth;
void AddSC_boss_noth()
@@ -8,20 +8,20 @@
namespace Noth {
enum NothSays
enum Says
{
NOTH_SAY_AGGRO = 0,
NOTH_SAY_SUMMON = 1,
NOTH_SAY_SLAY = 2,
NOTH_SAY_DEATH = 3,
NOTH_EMOTE_SUMMON = 4,
NOTH_EMOTE_SUMMON_WAVE = 5,
NOTH_EMOTE_TELEPORT_BALCONY = 6,
NOTH_EMOTE_TELEPORT_BACK = 7,
NOTH_EMOTE_BLINK = 8
SAY_AGGRO = 0,
SAY_SUMMON = 1,
SAY_SLAY = 2,
SAY_DEATH = 3,
EMOTE_SUMMON = 4,
EMOTE_SUMMON_WAVE = 5,
EMOTE_TELEPORT_BALCONY = 6,
EMOTE_TELEPORT_BACK = 7,
EMOTE_BLINK = 8
};
enum NothSpells
enum Spells
{
SPELL_CURSE_OF_THE_PLAGUEBRINGER_10 = 29213,
SPELL_CURSE_OF_THE_PLAGUEBRINGER_25 = 54835,
@@ -30,11 +30,11 @@ enum NothSpells
SPELL_SUMMON_PLAGUED_WARRIORS = 29237,
SPELL_TELEPORT = 29216,
SPELL_TELEPORT_BACK = 29231,
NOTH_SPELL_BERSERK = 68378,
SPELL_BERSERK = 68378,
SPELL_BLINK = 29208
};
enum NothEvents
enum Events
{
EVENT_CURSE = 1,
EVENT_CRIPPLE = 2,
@@ -47,7 +47,7 @@ enum NothEvents
EVENT_BALCONY_SUMMON_REAL = 9
};
enum NothMisc
enum Misc
{
NPC_PLAGUED_WARRIOR = 16984,
NPC_PLAGUED_CHAMPION = 16983,
@@ -158,7 +158,7 @@ public:
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
Talk(NOTH_SAY_AGGRO);
Talk(SAY_AGGRO);
StartGroundPhase();
if (pInstance)
{
@@ -183,7 +183,7 @@ public:
me->NearTeleportTo(nothPosition.GetPositionX(), nothPosition.GetPositionY(), nothPosition.GetPositionZ(), nothPosition.GetOrientation(), true);
}
BossAI::JustDied(killer);
Talk(NOTH_SAY_DEATH);
Talk(SAY_DEATH);
if (pInstance)
{
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_NOTH_ENTRY_GATE)))
@@ -195,10 +195,10 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
Talk(NOTH_SAY_SLAY);
Talk(SAY_SLAY);
if (pInstance)
{
pInstance->SetData(DATA_IMMORTAL_FAIL, 0);
@@ -228,8 +228,8 @@ public:
events.Repeat(25s);
break;
case EVENT_SUMMON_PLAGUED_WARRIOR_ANNOUNCE:
Talk(NOTH_SAY_SUMMON);
Talk(NOTH_EMOTE_SUMMON);
Talk(SAY_SUMMON);
Talk(EMOTE_SUMMON);
events.Repeat(30s);
events.ScheduleEvent(EVENT_SUMMON_PLAGUED_WARRIOR_REAL, 4s);
break;
@@ -238,7 +238,7 @@ public:
SummonHelper(NPC_PLAGUED_WARRIOR, RAID_MODE(2, 3));
break;
case EVENT_MOVE_TO_BALCONY:
Talk(NOTH_EMOTE_TELEPORT_BALCONY);
Talk(EMOTE_TELEPORT_BALCONY);
me->CastSpell(me, SPELL_TELEPORT, true);
StartBalconyPhase();
break;
@@ -246,12 +246,12 @@ public:
DoResetThreatList();
me->CastSpell(me, RAID_MODE(SPELL_CRIPPLE_10, SPELL_CRIPPLE_25), false);
me->CastSpell(me, SPELL_BLINK, true);
Talk(NOTH_EMOTE_BLINK);
Talk(EMOTE_BLINK);
events.Repeat(30s);
break;
// BALCONY
case EVENT_BALCONY_SUMMON_ANNOUNCE:
Talk(NOTH_EMOTE_SUMMON_WAVE);
Talk(EMOTE_SUMMON_WAVE);
events.Repeat(30s);
events.ScheduleEvent(EVENT_BALCONY_SUMMON_REAL, 4s);
break;
@@ -272,12 +272,12 @@ public:
}
break;
case EVENT_MOVE_TO_GROUND:
Talk(NOTH_EMOTE_TELEPORT_BACK);
Talk(EMOTE_TELEPORT_BACK);
me->CastSpell(me, SPELL_TELEPORT_BACK, true);
timesInBalcony++;
if (timesInBalcony == 3)
{
DoCastSelf(NOTH_SPELL_BERSERK);
DoCastSelf(SPELL_BERSERK);
}
StartGroundPhase();
break;
@@ -20,6 +20,7 @@
#include "ScriptedCreature.h"
#include "naxxramas.h"
using namespace PatchWerk;
void AddSC_boss_patchwerk()
@@ -8,33 +8,33 @@
namespace PatchWerk {
enum PatchwerkYells
enum Yells
{
PATCHWERK_SAY_AGGRO = 0,
PATCHWERK_SAY_SLAY = 1,
PATCHWERK_SAY_DEATH = 2,
PATCHWERK_EMOTE_BERSERK = 3,
PATCHWERK_EMOTE_ENRAGE = 4
SAY_AGGRO = 0,
SAY_SLAY = 1,
SAY_DEATH = 2,
EMOTE_BERSERK = 3,
EMOTE_ENRAGE = 4
};
enum PatchwerkSpells
enum Spells
{
SPELL_HATEFUL_STRIKE_10 = 41926,
SPELL_HATEFUL_STRIKE_25 = 59192,
PATCHWERK_SPELL_FRENZY = 28131,
PATCHWERK_SPELL_BERSERK = 26662,
SPELL_FRENZY = 28131,
SPELL_BERSERK = 26662,
SPELL_SLIME_BOLT = 32309
};
enum PatchwerkEvents
enum Events
{
PATCHWERK_EVENT_HEALTH_CHECK = 1,
EVENT_HEALTH_CHECK = 1,
EVENT_HATEFUL_STRIKE = 2,
EVENT_SLIME_BOLT = 3,
PATCHWERK_EVENT_BERSERK = 4
EVENT_BERSERK = 4
};
enum PatchwerkMisc
enum Misc
{
ACHIEV_TIMED_START_EVENT = 10286
};
@@ -67,12 +67,12 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
if (!urand(0, 3))
{
Talk(PATCHWERK_SAY_SLAY);
Talk(SAY_SLAY);
}
if (pInstance)
{
@@ -83,17 +83,17 @@ public:
void JustDied(Unit* killer) override
{
BossAI::JustDied(killer);
Talk(PATCHWERK_SAY_DEATH);
Talk(SAY_DEATH);
}
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
Talk(PATCHWERK_SAY_AGGRO);
Talk(SAY_AGGRO);
me->SetInCombatWithZone();
events.ScheduleEvent(EVENT_HATEFUL_STRIKE, 1500ms);
events.ScheduleEvent(PATCHWERK_EVENT_BERSERK, 6min);
events.ScheduleEvent(PATCHWERK_EVENT_HEALTH_CHECK, 1s);
events.ScheduleEvent(EVENT_BERSERK, 6min);
events.ScheduleEvent(EVENT_HEALTH_CHECK, 1s);
if (pInstance)
{
pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
@@ -159,20 +159,20 @@ public:
events.Repeat(1s);
break;
}
case PATCHWERK_EVENT_BERSERK:
Talk(PATCHWERK_EMOTE_BERSERK);
me->CastSpell(me, PATCHWERK_SPELL_BERSERK, true);
case EVENT_BERSERK:
Talk(EMOTE_BERSERK);
me->CastSpell(me, SPELL_BERSERK, true);
events.ScheduleEvent(EVENT_SLIME_BOLT, 3s);
break;
case EVENT_SLIME_BOLT:
me->CastSpell(me, SPELL_SLIME_BOLT, false);
events.Repeat(3s);
break;
case PATCHWERK_EVENT_HEALTH_CHECK:
case EVENT_HEALTH_CHECK:
if (me->GetHealthPct() <= 5)
{
Talk(PATCHWERK_EMOTE_ENRAGE);
me->CastSpell(me, PATCHWERK_SPELL_FRENZY, true);
Talk(EMOTE_ENRAGE);
me->CastSpell(me, SPELL_FRENZY, true);
break;
}
events.Repeat(1s);
@@ -21,6 +21,7 @@
#include "naxxramas.h"
#include "SpellInfo.h"
using namespace Razuvious;
void AddSC_boss_razuvious()
@@ -210,7 +210,7 @@ public:
void DamageTaken(Unit* who, uint32& damage, DamageEffectType, SpellSchoolMask) override
{
// Damage done by the controlled Death Knight understudies should also count toward damage done by players
if(who && who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_DEATH_KNIGHT_UNDERSTUDY)
if(who && who->IsCreature() && who->GetEntry() == NPC_DEATH_KNIGHT_UNDERSTUDY)
{
me->LowerPlayerDamageReq(damage);
}
@@ -23,6 +23,7 @@
#include "SpellScriptLoader.h"
#include "naxxramas.h"
using namespace Sapphiron;
void AddSC_boss_sapphiron()
@@ -130,7 +130,7 @@ public:
if (PlList.IsEmpty())
return;
for (const auto& i : PlList)
for (auto const& i : PlList)
{
if (Player* player = i.GetSource())
{
@@ -388,7 +388,7 @@ public:
case EVENT_HUNDRED_CLUB:
{
Map::PlayerList const& pList = me->GetMap()->GetPlayers();
for (const auto& itr : pList)
for (auto const& itr : pList)
{
if (itr.GetSource()->GetResistance(SPELL_SCHOOL_FROST) > 100 && pInstance)
{
@@ -24,6 +24,7 @@
#include "SpellScriptLoader.h"
#include "naxxramas.h"
using namespace Thaddius;
void AddSC_boss_thaddius()
@@ -197,7 +197,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -477,7 +477,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
if (pInstance)
@@ -635,7 +635,7 @@ class spell_thaddius_pos_neg_charge : public SpellScript
if (!target)
return;
if (target->HasAura(GetTriggeringSpell()->Id) || target->GetTypeId() != TYPEID_PLAYER)
if (target->HasAura(GetTriggeringSpell()->Id) || !target->IsPlayer())
{
SetHitDamage(0);
}
@@ -245,7 +245,7 @@ class spell_boss_magus_telestra_summon_telestra_clones_aura : public AuraScript
bool Load() override
{
return GetUnitOwner()->GetTypeId() == TYPEID_UNIT;
return GetUnitOwner()->IsCreature();
}
void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -354,7 +354,7 @@ public:
void IsSummonedBy(WorldObject* summoner) override
{
if (summoner->GetTypeId() != TYPEID_PLAYER)
if (!summoner->IsPlayer())
{
return;
}
@@ -392,7 +392,7 @@ public:
void PassengerBoarded(Unit* passenger, int8 /*seatid*/, bool add) override
{
if (passenger->GetTypeId() != TYPEID_PLAYER)
if (!passenger->IsPlayer())
return;
if (add)
@@ -197,7 +197,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -132,7 +132,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -162,7 +162,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -183,7 +183,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -401,7 +401,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER || urand(0, 2))
if (!victim->IsPlayer() || urand(0, 2))
return;
Talk(SAY_ALGALON_KILL);
@@ -1018,7 +1018,7 @@ public:
void SpellHit(Unit* caster, SpellInfo const* spell) override
{
if (spell->Id != SPELL_CONSTELLATION_PHASE_EFFECT || caster->GetTypeId() != TYPEID_UNIT)
if (spell->Id != SPELL_CONSTELLATION_PHASE_EFFECT || !caster->IsCreature())
return;
if (InstanceScript* instance = me->GetInstanceScript())
@@ -310,7 +310,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
if (_phase == 3)
@@ -488,7 +488,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER)
if (!who->IsPlayer())
return;
Talk(SAY_MOLGEIM_SLAY);
@@ -706,7 +706,7 @@ public:
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER || urand(0, 2))
if (!who->IsPlayer() || urand(0, 2))
return;
Talk(SAY_BRUNDIR_SLAY);
@@ -194,7 +194,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER || urand(0, 2))
if (!victim->IsPlayer() || urand(0, 2))
return;
Talk(SAY_SLAY);
@@ -447,7 +447,7 @@ public:
case EVENT_REINSTALL:
for (uint8 i = RAID_MODE(0, 2); i < 4; ++i)
if (Unit* seat = vehicle->GetPassenger(i))
if (seat->GetTypeId() == TYPEID_UNIT)
if (seat->IsCreature())
seat->ToCreature()->AI()->EnterEvadeMode();
Talk(FLAME_LEVIATHAN_EMOTE_REACTIVATE);
return;
@@ -758,7 +758,7 @@ public:
void PassengerBoarded(Unit* who, int8 seatId, bool apply) override
{
if (who->GetTypeId() != TYPEID_PLAYER || !me->GetVehicle())
if (!who->IsPlayer() || !me->GetVehicle())
return;
who->ApplySpellImmune(63847, IMMUNITY_ID, 63847, apply); // SPELL_FLAME_VENTS_TRIGGER
@@ -780,7 +780,7 @@ public:
{
turret->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE);
turret->SetImmuneToAll(true);
if (turret->GetTypeId() == TYPEID_UNIT)
if (turret->IsCreature())
turret->ToCreature()->AI()->EnterEvadeMode();
}
}
@@ -829,7 +829,7 @@ public:
bool CanAIAttack(Unit const* who) const override
{
if (!who || who->GetTypeId() != TYPEID_PLAYER || !who->GetVehicle() || who->GetVehicleBase()->GetEntry() != NPC_SEAT)
if (!who || !who->IsPlayer() || !who->GetVehicle() || who->GetVehicleBase()->GetEntry() != NPC_SEAT)
return false;
return true;
}
@@ -1231,7 +1231,7 @@ public:
{
if (!_lock)
{
if (who->GetTypeId() != TYPEID_PLAYER && !who->IsVehicle())
if (!who->IsPlayer() && !who->IsVehicle())
return;
// MIMIRON
@@ -1753,7 +1753,7 @@ class spell_vehicle_grab_pyrite : public SpellScript
GetCaster()->CastSpell(parent, SPELL_ADD_PYRITE, true);
target->CastSpell(seat, GetEffectValue());
if (target->GetTypeId() == TYPEID_UNIT)
if (target->IsCreature())
target->ToCreature()->DespawnOrUnsummon(1300);
}
}
@@ -1927,7 +1927,7 @@ class spell_demolisher_ride_vehicle : public SpellScript
SpellCastResult CheckCast()
{
if (GetCaster()->GetTypeId() != TYPEID_PLAYER)
if (!GetCaster()->IsPlayer())
return SPELL_CAST_OK;
Unit* target = this->GetExplTargetUnit();
@@ -307,7 +307,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER || urand(0, 2))
if (!victim->IsPlayer() || urand(0, 2))
return;
Talk(SAY_SLAY);
@@ -486,7 +486,7 @@ class spell_aura_of_despair_aura : public AuraScript
if (Unit* caster = GetCaster())
if (Unit* target = GetTarget())
{
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return;
target->CastSpell(target, SPELL_AURA_OF_DESPAIR_2, true);
@@ -614,7 +614,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_VEZAX && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(1);
return target && target->GetEntry() == NPC_VEZAX && target->IsCreature() && target->ToCreature()->AI()->GetData(1);
}
};
@@ -625,7 +625,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_VEZAX && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(2);
return target && target->GetEntry() == NPC_VEZAX && target->IsCreature() && target->ToCreature()->AI()->GetData(2);
}
};
@@ -578,7 +578,7 @@ public:
{
if (t->IsPlayer())
return !t->HasAura(SPELL_FLASH_FREEZE_TRAPPED_PLAYER);
else if (t->GetTypeId() == TYPEID_UNIT)
else if (t->IsCreature())
return !t->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC);
return true;
@@ -702,7 +702,7 @@ public:
{
if (Unit* s = me->ToTempSummon()->GetSummonerUnit())
{
if ((s->IsPlayer() && !s->HasAura(SPELL_FLASH_FREEZE_TRAPPED_PLAYER)) || (s->GetTypeId() == TYPEID_UNIT && !s->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC)))
if ((s->IsPlayer() && !s->HasAura(SPELL_FLASH_FREEZE_TRAPPED_PLAYER)) || (s->IsCreature() && !s->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC)))
me->DespawnOrUnsummon(2000);
else if (s->IsPlayer())
if (InstanceScript* instanceScript = me->GetInstanceScript())
@@ -1354,14 +1354,14 @@ class spell_hodir_flash_freeze_aura : public AuraScript
{
Unit* target = GetTarget();
Unit* caster = GetCaster();
if (!target || !caster || caster->GetTypeId() != TYPEID_UNIT)
if (!target || !caster || !caster->IsCreature())
return;
if (Aura* aur = target->GetAura(target->IsPlayer() ? SPELL_FLASH_FREEZE_TRAPPED_PLAYER : SPELL_FLASH_FREEZE_TRAPPED_NPC))
{
if (Unit* caster2 = aur->GetCaster())
{
if (caster2->GetTypeId() == TYPEID_UNIT)
if (caster2->IsCreature())
{
caster2->ToCreature()->DespawnOrUnsummon();
}
@@ -1378,7 +1378,7 @@ class spell_hodir_flash_freeze_aura : public AuraScript
caster->ToCreature()->AI()->JustSummoned(c);
}
}
else if (target->GetTypeId() == TYPEID_UNIT)
else if (target->IsCreature())
{
if( Creature* c = target->SummonCreature(NPC_FLASH_FREEZE_NPC, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000) )
{
@@ -1483,7 +1483,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_HODIR && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(1);
return target && target->GetEntry() == NPC_HODIR && target->IsCreature() && target->ToCreature()->AI()->GetData(1);
}
};
@@ -1494,7 +1494,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_HODIR && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(2);
return target && target->GetEntry() == NPC_HODIR && target->IsCreature() && target->ToCreature()->AI()->GetData(2);
}
};
@@ -1505,7 +1505,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_HODIR && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(3);
return target && target->GetEntry() == NPC_HODIR && target->IsCreature() && target->ToCreature()->AI()->GetData(3);
}
};
@@ -1516,7 +1516,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_HODIR && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(4);
return target && target->GetEntry() == NPC_HODIR && target->IsCreature() && target->ToCreature()->AI()->GetData(4);
}
};
@@ -542,7 +542,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
if (!target || target->GetTypeId() != TYPEID_UNIT)
if (!target || !target->IsCreature())
return false;
return !!target->ToCreature()->AI()->GetData(1337);
}
@@ -707,7 +707,7 @@ public:
if (target == _victim && _me->GetThreatMgr().GetThreatListSize() > 1)
return true;
if (target->GetTypeId() != TYPEID_PLAYER)
if (!target->IsPlayer())
return true;
return false;
@@ -724,7 +724,7 @@ class spell_ulduar_stone_grip_cast_target : public SpellScript
bool Load() override
{
if (GetCaster()->GetTypeId() != TYPEID_UNIT)
if (!GetCaster()->IsCreature())
return false;
return true;
}
@@ -1342,7 +1342,7 @@ public:
if( Vehicle* vk = me->GetVehicleKit() )
for (uint8 i = 0; i < 2; ++i)
if (Unit* r = vk->GetPassenger(5 + i))
if (r->GetTypeId() == TYPEID_UNIT)
if (r->IsCreature())
r->ToCreature()->DespawnOrUnsummon(1);
}
@@ -1438,7 +1438,7 @@ public:
exitPos.m_positionZ += 2.0f * Phase;
r->_ExitVehicle(&exitPos);
me->RemoveAurasByType(SPELL_AURA_CONTROL_VEHICLE, r->GetGUID());
if (r->GetTypeId() == TYPEID_UNIT)
if (r->IsCreature())
r->ToCreature()->AI()->SetData(0, 0);
}
}
@@ -2155,7 +2155,7 @@ class spell_mimiron_p3wx2_laser_barrage_aura : public AuraScript
{
if (Unit* caster = GetCaster())
{
if (caster->GetTypeId() != TYPEID_UNIT)
if (!caster->IsCreature())
return;
uint32 diff = getMSTimeDiff(_lastMSTime, GameTime::GetGameTimeMS().count());
if (_lastOrientation == -1.0f)
@@ -2466,7 +2466,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_MIMIRON && target->GetTypeId() == TYPEID_UNIT && target->ToCreature()->AI()->GetData(1);
return target && target->GetEntry() == NPC_MIMIRON && target->IsCreature() && target->ToCreature()->AI()->GetData(1);
}
};
@@ -2477,7 +2477,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_MIMIRON && target->GetTypeId() == TYPEID_UNIT && !target->ToCreature()->AI()->GetData(11);
return target && target->GetEntry() == NPC_MIMIRON && target->IsCreature() && !target->ToCreature()->AI()->GetData(11);
}
};
@@ -2488,7 +2488,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_MIMIRON && target->GetTypeId() == TYPEID_UNIT && !target->ToCreature()->AI()->GetData(12);
return target && target->GetEntry() == NPC_MIMIRON && target->IsCreature() && !target->ToCreature()->AI()->GetData(12);
}
};
@@ -2499,7 +2499,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetEntry() == NPC_MIMIRON && target->GetTypeId() == TYPEID_UNIT && !target->ToCreature()->AI()->GetData(13);
return target && target->GetEntry() == NPC_MIMIRON && target->IsCreature() && !target->ToCreature()->AI()->GetData(13);
}
};
@@ -711,7 +711,7 @@ public:
if (_introSpoken)
return;
if (who->GetTypeId() != TYPEID_PLAYER || me->GetExactDist2d(who) > 15.0f)
if (!who->IsPlayer() || me->GetExactDist2d(who) > 15.0f)
return;
_introSpoken = true;
@@ -1153,7 +1153,7 @@ public:
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
{
return target && target->GetTypeId() == TYPEID_UNIT && target->GetEntry() == NPC_RAZORSCALE && target->ToCreature()->AI()->GetData(1);
return target && target->IsCreature() && target->GetEntry() == NPC_RAZORSCALE && target->ToCreature()->AI()->GetData(1);
}
};
@@ -427,7 +427,7 @@ public:
{
summons.Summon(cr);
if (Unit* owner = me->GetVehicleBase())
if (owner->GetTypeId() == TYPEID_UNIT)
if (owner->IsCreature())
owner->ToCreature()->AI()->JustSummoned(cr);
}
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
@@ -1103,7 +1103,7 @@ public:
if (Creature* algalon = instance->GetCreature(m_uiAlgalonGUID))
algalon->AI()->DoAction(ACTION_FEEDS_ON_TEARS_FAILED);
}
else if (unit->GetTypeId() == TYPEID_UNIT && unit->GetAreaId() == 4656 /*Conservatory of Life*/)
else if (unit->IsCreature() && unit->GetAreaId() == 4656 /*Conservatory of Life*/)
{
if (GameTime::GetGameTime().count() > (m_conspeedatoryAttempt + DAY))
{
@@ -328,7 +328,7 @@ public:
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() != TYPEID_PLAYER)
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
@@ -404,7 +404,7 @@ class spell_svala_ritual_strike : public SpellScript
{
if (Unit* unitTarget = GetHitUnit())
{
if (unitTarget->GetTypeId() != TYPEID_UNIT)
if (!unitTarget->IsCreature())
return;
Unit::DealDamage(GetCaster(), unitTarget, 7000, nullptr, DIRECT_DAMAGE);
@@ -217,7 +217,7 @@ public:
void HandlePeriodicDummy(AuraEffect const* /*aurEff*/)
{
Unit* target = GetTarget();
if (target->GetTypeId() == TYPEID_UNIT && GetAura()->GetStackAmount() >= 10)
if (target->IsCreature() && GetAura()->GetStackAmount() >= 10)
{
target->CastSpell(target, SPELL_OVERCHARGED_BLAST, true);
Unit::Kill(target, target, false);
@@ -45,7 +45,7 @@ class spell_q11919_q11940_drake_hunt_aura : public AuraScript
bool Load() override
{
return GetOwner()->GetTypeId() == TYPEID_UNIT;
return GetOwner()->IsCreature();
}
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
@@ -217,7 +217,7 @@ public:
{
ScriptedAI::MoveInLineOfSight(who);
if (who->GetTypeId() != TYPEID_UNIT)
if (!who->IsCreature())
return;
if (who->GetEntry() == NPC_ORPHANED_MAMMOTH_CALF && me->IsWithinDistInMap(who, 10.0f))
@@ -314,7 +314,7 @@ public:
void JustDied(Unit* killer) override
{
if (!killer || killer->GetTypeId() != TYPEID_PLAYER)
if (!killer || !killer->IsPlayer())
{
return;
}
@@ -694,7 +694,7 @@ public:
if (Vehicle* gryphon = me->GetVehicleKit())
if (Unit* villager = gryphon->GetPassenger(1))
{
if (villager->GetTypeId() != TYPEID_UNIT)
if (!villager->IsCreature())
return;
if (Creature* seat = villager->ToCreature())
@@ -1296,7 +1296,7 @@ public:
if (Unit* vb = c->GetVehicleBase())
{
if (Unit* pass = vb->GetVehicleKit()->GetPassenger(0))
if (pass->GetTypeId() == TYPEID_UNIT)
if (pass->IsCreature())
pass->ToCreature()->DespawnOrUnsummon(1);
vb->RemoveAllAuras();
vb->ToCreature()->DespawnOrUnsummon(1);
@@ -1323,7 +1323,7 @@ public:
void SpellHitTarget(Unit* target, SpellInfo const* spell) override
{
if (spell->Id == SPELL_SAC_REPEL_HAMMER && target->GetTypeId() == TYPEID_UNIT)
if (spell->Id == SPELL_SAC_REPEL_HAMMER && target->IsCreature())
{
target->CastSpell((Unit*)nullptr, SPELL_SAC_THROW_HAMMER, true);
target->ToCreature()->DespawnOrUnsummon(1);
@@ -1469,7 +1469,7 @@ public:
explicit GhoulTargetCheck(bool alive) : _alive(alive) {}
bool operator()(WorldObject* object) const
{
return _alive ^ (object->GetTypeId() != TYPEID_UNIT || ((Unit*)object)->GetDisplayId() != 11686);
return _alive ^ (!object->IsCreature() || ((Unit*)object)->GetDisplayId() != 11686);
}
private:
bool _alive;
@@ -1489,7 +1489,7 @@ class spell_q24545_aod_special : public SpellScript
{
PreventHitDefaultEffect(effIndex);
if (Unit* target = GetHitUnit())
if (target->GetTypeId() == TYPEID_UNIT)
if (target->IsCreature())
target->ToCreature()->AI()->DoAction(GetSpellInfo()->Id == 70790 ? -2 : -1);
}
@@ -1648,7 +1648,7 @@ public:
void IsSummonedBy(WorldObject* summoner) override
{
if (!summoner || summoner->GetTypeId() != TYPEID_PLAYER)
if (!summoner || !summoner->IsPlayer())
return;
uint8 id = GetSpeachId();
@@ -967,7 +967,7 @@ class spell_shredder_delivery : public SpellScript
bool Load() override
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
return GetCaster()->IsCreature();
}
void HandleScript(SpellEffIndex /*effIndex*/)
@@ -139,7 +139,7 @@ public:
void setphase(short newPhase)
{
Unit* summoner = me->ToTempSummon() ? me->ToTempSummon()->GetSummonerUnit() : nullptr;
if (!summoner || summoner->GetTypeId() != TYPEID_PLAYER)
if (!summoner || !summoner->IsPlayer())
return;
switch (newPhase)
@@ -51,7 +51,7 @@ public:
void MoveInLineOfSight(Unit* who) override
{
if (who->GetTypeId() != TYPEID_PLAYER || me->GetDistance(who) > 8.0f || who->ToPlayer()->GetQuestStatus(QUEST_BLACK_KNIGHT_CURSE) != QUEST_STATUS_INCOMPLETE)
if (!who->IsPlayer() || me->GetDistance(who) > 8.0f || who->ToPlayer()->GetQuestStatus(QUEST_BLACK_KNIGHT_CURSE) != QUEST_STATUS_INCOMPLETE)
return;
if (me->FindNearestCreature(NPC_CULT_ASSASSIN, 30.0f))
@@ -1248,7 +1248,7 @@ public:
if (!summoner)
return;
if (summoner->GetTypeId() != TYPEID_PLAYER)
if (!summoner->IsPlayer())
return;
Player* player = summoner->ToPlayer();
@@ -1493,7 +1493,7 @@ public:
if (me->GetAreaId() != AREA_SUNREAVER_PAVILION && me->GetAreaId() != AREA_SILVER_COVENANT_PAVILION)
return;
if (!who || who->GetTypeId() != TYPEID_PLAYER || !me->IsHostileTo(who) || !me->isInBackInMap(who, 5.0f))
if (!who || !who->IsPlayer() || !me->IsHostileTo(who) || !me->isInBackInMap(who, 5.0f))
return;
if (who->HasAura(SPELL_TRESPASSER_H) || who->HasAura(SPELL_TRESPASSER_A))
@@ -875,7 +875,7 @@ public:
for (uint8 i = 1; i < 4; ++i)
if (Unit* prisoner = me->GetVehicleKit()->GetPassenger(i))
{
if (prisoner->GetTypeId() != TYPEID_UNIT)
if (!prisoner->IsCreature())
return;
prisoner->CastSpell(player, SPELL_KILL_CREDIT_PRISONER, true);
prisoner->CastSpell(prisoner, SPELL_SUMMON_LIBERATED, true);
@@ -34,6 +34,7 @@
#include "SpellScriptLoader.h"
#include "Vehicle.h"
#include "World.h"
#include <cmath>
enum eWGqueuenpctext
{
@@ -1089,7 +1090,7 @@ class spell_wg_reduce_damage_by_distance : public SpellScript
float maxDistance = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster()); // Xinef: always stored in EFFECT_0
float distance = std::min<float>(GetHitUnit()->GetDistance(*GetExplTargetDest()), maxDistance);
int32 damage = std::max<int32>(0, int32(GetHitDamage() - floor(GetHitDamage() * (distance / maxDistance))));
int32 damage = std::max<int32>(0, int32(GetHitDamage() - std::floor(GetHitDamage() * (distance / maxDistance))));
SetHitDamage(damage);
}