mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-17 08:00:48 +01:00
Scripts/Icecrown Citadel: Corrected line of sight checks for Sindragosa's Ice Tombs
Closes #628
This commit is contained in:
@@ -2018,6 +2018,7 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
( 72528, 'spell_sindragosa_collision_filter'),
|
||||
( 72529, 'spell_sindragosa_collision_filter'),
|
||||
( 72530, 'spell_sindragosa_collision_filter'),
|
||||
( 70117, 'spell_sindragosa_collision_filter'),
|
||||
( 70117, 'spell_sindragosa_icy_grip'),
|
||||
-- Isle of Conquest
|
||||
( 66630, 'spell_gen_gunship_portal'),
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id`=70117 AND `ScriptName`='spell_sindragosa_collision_filter';
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(70117,'spell_sindragosa_collision_filter');
|
||||
@@ -1166,14 +1166,14 @@ class spell_sindragosa_ice_tomb : public SpellScriptLoader
|
||||
class FrostBombTargetSelector
|
||||
{
|
||||
public:
|
||||
FrostBombTargetSelector(Unit* _caster, std::list<Unit*> const& _collisionList) : caster(_caster), collisionList(_collisionList) { }
|
||||
FrostBombTargetSelector(Unit* _caster, std::list<Creature*> const& _collisionList) : caster(_caster), collisionList(_collisionList) { }
|
||||
|
||||
bool operator()(Unit* unit)
|
||||
{
|
||||
if (unit->HasAura(SPELL_ICE_TOMB_DAMAGE))
|
||||
return true;
|
||||
|
||||
for (std::list<Unit*>::const_iterator itr = collisionList.begin(); itr != collisionList.end(); ++itr)
|
||||
for (std::list<Creature*>::const_iterator itr = collisionList.begin(); itr != collisionList.end(); ++itr)
|
||||
if ((*itr)->IsInBetween(caster, unit))
|
||||
return true;
|
||||
|
||||
@@ -1181,7 +1181,7 @@ class FrostBombTargetSelector
|
||||
}
|
||||
|
||||
Unit* caster;
|
||||
std::list<Unit*> const& collisionList;
|
||||
std::list<Creature*> const& collisionList;
|
||||
};
|
||||
|
||||
class spell_sindragosa_collision_filter : public SpellScriptLoader
|
||||
@@ -1193,13 +1193,17 @@ class spell_sindragosa_collision_filter : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_sindragosa_collision_filter_SpellScript);
|
||||
|
||||
bool Validate(SpellEntry const* /*spell*/)
|
||||
{
|
||||
if (!sSpellStore.LookupEntry(SPELL_ICE_TOMB_DAMAGE))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void FilterTargets(std::list<Unit*>& unitList)
|
||||
{
|
||||
std::list<Unit*> tombs;
|
||||
for (std::list<Unit*>::const_iterator itr = unitList.begin(); itr != unitList.end(); ++itr)
|
||||
if ((*itr)->HasAura(SPELL_ICE_TOMB_DAMAGE))
|
||||
tombs.push_back(*itr);
|
||||
|
||||
std::list<Creature*> tombs;
|
||||
GetCreatureListWithEntryInGrid(tombs, GetCaster(), NPC_ICE_TOMB, 200.0f);
|
||||
unitList.remove_if(FrostBombTargetSelector(GetCaster(), tombs));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user