Scripts/Halion: refixed Twilight Cutter
Scripts/Garfrost: fixed forge jump
This commit is contained in:
@@ -1026,8 +1026,11 @@ bool SpellInfo::NeedsToBeTriggeredByCaster(SpellInfo const* triggeringSpell) con
|
||||
uint32 mask = 0;
|
||||
for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
|
||||
{
|
||||
if (Effects[i].TargetA.GetTarget() != TARGET_UNIT_CASTER && Effects[i].TargetA.GetTarget() != TARGET_DEST_CASTER)
|
||||
if (Effects[i].TargetA.GetTarget() != TARGET_UNIT_CASTER && Effects[i].TargetA.GetTarget() != TARGET_DEST_CASTER
|
||||
&& Effects[i].TargetB.GetTarget() != TARGET_UNIT_CASTER && Effects[i].TargetB.GetTarget() != TARGET_DEST_CASTER)
|
||||
{
|
||||
mask |= Effects[i].GetProvidedTargetMask();
|
||||
}
|
||||
}
|
||||
|
||||
if (mask & TARGET_FLAG_UNIT_MASK)
|
||||
|
||||
@@ -1620,16 +1620,16 @@ class spell_halion_clear_debuffs : public SpellScriptLoader
|
||||
class TwilightCutterSelector
|
||||
{
|
||||
public:
|
||||
TwilightCutterSelector(Unit* caster, Unit* cutterCaster) : _caster(caster), _cutterCaster(cutterCaster) {}
|
||||
TwilightCutterSelector(Unit* caster, Unit* target) : _caster(caster), _channelTarget(target) {}
|
||||
|
||||
bool operator()(WorldObject* unit)
|
||||
{
|
||||
return !unit->IsInBetween(_caster, _cutterCaster, 4.0f);
|
||||
return !unit->IsInBetween(_caster, _channelTarget, 4.0f);
|
||||
}
|
||||
|
||||
private:
|
||||
Unit* _caster;
|
||||
Unit* _cutterCaster;
|
||||
Unit* _channelTarget;
|
||||
};
|
||||
|
||||
class spell_halion_twilight_cutter : public SpellScriptLoader
|
||||
@@ -1647,13 +1647,10 @@ class spell_halion_twilight_cutter : public SpellScriptLoader
|
||||
return;
|
||||
|
||||
Unit* caster = GetCaster();
|
||||
if (Aura* cutter = caster->GetAura(SPELL_TWILIGHT_CUTTER))
|
||||
if (Unit* channelTarget = ObjectAccessor::GetUnit(*caster, caster->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT)))
|
||||
{
|
||||
if (Unit* cutterCaster = cutter->GetCaster())
|
||||
{
|
||||
unitList.remove_if(TwilightCutterSelector(caster, cutterCaster));
|
||||
return;
|
||||
}
|
||||
unitList.remove_if(TwilightCutterSelector(caster, channelTarget));
|
||||
return;
|
||||
}
|
||||
|
||||
// In case cutter caster werent found for some reason
|
||||
|
||||
@@ -69,8 +69,7 @@ enum Events
|
||||
EVENT_CHILLING_WAVE = 2,
|
||||
EVENT_DEEP_FREEZE = 3,
|
||||
EVENT_FORGE_JUMP = 4,
|
||||
EVENT_FORGING = 5,
|
||||
EVENT_RESUME_ATTACK = 6
|
||||
EVENT_RESUME_ATTACK = 5
|
||||
};
|
||||
|
||||
Position const northForgePos = { 722.5643f, -234.1615f, 527.182f, 2.16421f };
|
||||
@@ -210,9 +209,9 @@ class boss_garfrost : public CreatureScript
|
||||
case EVENT_FORGE_JUMP:
|
||||
me->AttackStop();
|
||||
if (events.IsInPhase(PHASE_TWO))
|
||||
me->GetMotionMaster()->MoveJump(northForgePos, 25.0f, 15.0f);
|
||||
me->GetMotionMaster()->MoveJump(northForgePos, 25.0f, 15.0f, POINT_FORGE);
|
||||
else if (events.IsInPhase(PHASE_THREE))
|
||||
me->GetMotionMaster()->MoveJump(southForgePos, 25.0f, 15.0f);
|
||||
me->GetMotionMaster()->MoveJump(southForgePos, 25.0f, 15.0f, POINT_FORGE);
|
||||
break;
|
||||
case EVENT_RESUME_ATTACK:
|
||||
if (events.IsInPhase(PHASE_TWO))
|
||||
|
||||
@@ -15,11 +15,8 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef DEF_PIT_OF_SARON_H
|
||||
#define DEF_PIT_OF_SARON_H
|
||||
|
||||
#include "Map.h"
|
||||
#include "Creature.h"
|
||||
#ifndef PIT_OF_SARON_H_
|
||||
#define PIT_OF_SARON_H_
|
||||
|
||||
#define PoSScriptName "instance_pit_of_saron"
|
||||
|
||||
@@ -104,4 +101,4 @@ AI* GetPitOfSaronAI(Creature* creature)
|
||||
return GetInstanceAI<AI>(creature, PoSScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif // PIT_OF_SARON_H_
|
||||
|
||||
+4
-4
@@ -21,10 +21,10 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_VOLKHAN_DOOR, DATA_VOLKHAN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ GO_IONAR_DOOR, DATA_IONAR, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ GO_LOKEN_DOOR, DATA_LOKEN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END
|
||||
{ GO_VOLKHAN_DOOR, DATA_VOLKHAN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ GO_IONAR_DOOR, DATA_IONAR, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ GO_LOKEN_DOOR, DATA_LOKEN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END
|
||||
};
|
||||
|
||||
class instance_halls_of_lightning : public InstanceMapScript
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
|
||||
DoorData const doorData[] =
|
||||
{
|
||||
{ GO_SJONNIR_DOOR, DATA_BRANN_EVENT, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END
|
||||
{ GO_SJONNIR_DOOR, DATA_BRANN_EVENT, DOOR_TYPE_PASSAGE, BOUNDARY_NONE },
|
||||
{ 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END
|
||||
};
|
||||
|
||||
class instance_halls_of_stone : public InstanceMapScript
|
||||
|
||||
Reference in New Issue
Block a user