Scripts/TheSlavePens: Boss Ahune fixes and updates

Fixes some visual problems
Fixes encounter start
Updated codestyle

Closes #22071
This commit is contained in:
sirikfoll
2018-06-22 13:47:02 -03:00
parent eb6e240fd1
commit 35ba5aa138
4 changed files with 636 additions and 837 deletions

View File

@@ -0,0 +1,13 @@
DELETE FROM `creature` WHERE `guid` IN(73427,73428);
INSERT INTO `creature` (`guid`,`id`,`map`,`zoneId`,`areaId`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`,`ScriptName`,`VerifiedBuild`) VALUES
(73427,26121,547,0,0,1,1,0,0,-69.8121,-162.4954,-2.30451,1.710423,300,0,0,1,1,0,0,0,0,'',0),
(73428,26120,547,0,0,1,1,0,0,-98.1029,-230.7864,-10.8085,1.448623,300,0,0,1,1,0,0,0,0,'',0);
DELETE FROM `game_event_creature` WHERE `eventEntry`=1 AND `guid` IN(73427,73428);
INSERT INTO `game_event_creature` (`eventEntry`, `guid`) VALUES
(1,73427),
(1,73428);
DELETE FROM `creature_template_movement` WHERE `CreatureId`=26120;
INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`) VALUES
(26120,0,0,1,0);

View File

@@ -28,6 +28,21 @@ gets instead the deserter debuff.
#include "Map.h"
#include "the_slave_pens.h"
ObjectData const creatureData[] =
{
{ NPC_AHUNE, DATA_AHUNE },
{ NPC_FROZEN_CORE, DATA_FROZEN_CORE },
{ NPC_AHUNE_LOC_BUNNY, DATA_AHUNE_BUNNY },
{ NPC_SHAMAN_BONFIRE_BUNNY_000, DATA_BONFIRE_BUNNY_000 },
{ NPC_SHAMAN_BONFIRE_BUNNY_001, DATA_BONFIRE_BUNNY_001 },
{ NPC_SHAMAN_BONFIRE_BUNNY_002, DATA_BONFIRE_BUNNY_002 },
{ NPC_SHAMAN_BEAM_BUNNY_000, DATA_BEAM_BUNNY_000 },
{ NPC_SHAMAN_BEAM_BUNNY_001, DATA_BEAM_BUNNY_001 },
{ NPC_SHAMAN_BEAM_BUNNY_002, DATA_BEAM_BUNNY_002 },
{ NPC_LUMA_SKYMOTHER, DATA_LUMA_SKYMOTHER },
{ 0, 0, }
};
class instance_the_slave_pens : public InstanceMapScript
{
public:
@@ -38,66 +53,30 @@ public:
instance_the_slave_pens_InstanceMapScript(Map* map) : InstanceScript(map)
{
counter = DATA_FLAMECALLER_000;
LoadObjectData(creatureData, nullptr);
}
void OnCreatureCreate(Creature* creature) override
{
switch (creature->GetEntry())
{
case NPC_AHUNE:
AhuneGUID = creature->GetGUID();
break;
case NPC_FROZEN_CORE:
FrozenCoreGUID = creature->GetGUID();
break;
case NPC_AHUNE_LOC_BUNNY:
AhuneBunnyGUID = creature->GetGUID();
break;
case NPC_SHAMAN_BONFIRE_BUNNY_000:
BonfireBunnyGUIDs[0] = creature->GetGUID();
break;
case NPC_SHAMAN_BONFIRE_BUNNY_001:
BonfireBunnyGUIDs[1] = creature->GetGUID();
break;
case NPC_SHAMAN_BONFIRE_BUNNY_002:
BonfireBunnyGUIDs[2] = creature->GetGUID();
break;
case NPC_SHAMAN_BEAM_BUNNY_000:
BeamBunnyGUIDs[0] = creature->GetGUID();
break;
case NPC_SHAMAN_BEAM_BUNNY_001:
BeamBunnyGUIDs[1] = creature->GetGUID();
break;
case NPC_SHAMAN_BEAM_BUNNY_002:
BeamBunnyGUIDs[2] = creature->GetGUID();
break;
case NPC_LUMA_SKYMOTHER:
LumaGUID = creature->GetGUID();
break;
case NPC_EARTHEN_RING_FLAMECALLER:
SetGuidData(counter, creature->GetGUID());
++counter;
break;
default:
break;
}
}
InstanceScript::OnCreatureCreate(creature);
void SetGuidData(uint32 data, ObjectGuid guid) override
{
switch (data)
if (creature->GetEntry() == NPC_EARTHEN_RING_FLAMECALLER)
{
case DATA_FLAMECALLER_000:
FlameCallerGUIDs[0] = guid;
break;
case DATA_FLAMECALLER_001:
FlameCallerGUIDs[1] = guid;
break;
case DATA_FLAMECALLER_002:
FlameCallerGUIDs[2] = guid;
break;
default:
break;
switch (counter)
{
case DATA_FLAMECALLER_000:
FlameCallerGUIDs[0] = creature->GetGUID();
break;
case DATA_FLAMECALLER_001:
FlameCallerGUIDs[1] = creature->GetGUID();
break;
case DATA_FLAMECALLER_002:
FlameCallerGUIDs[2] = creature->GetGUID();
break;
default:
break;
}
++counter;
}
}
@@ -105,32 +84,12 @@ public:
{
switch (type)
{
case DATA_AHUNE:
return AhuneGUID;
case DATA_AHUNE_BUNNY:
return AhuneBunnyGUID;
case DATA_FROZEN_CORE:
return FrozenCoreGUID;
case DATA_FLAMECALLER_000:
return FlameCallerGUIDs[0];
case DATA_FLAMECALLER_001:
return FlameCallerGUIDs[1];
case DATA_FLAMECALLER_002:
return FlameCallerGUIDs[2];
case DATA_BONFIRE_BUNNY_000:
return BonfireBunnyGUIDs[0];
case DATA_BONFIRE_BUNNY_001:
return BonfireBunnyGUIDs[1];
case DATA_BONFIRE_BUNNY_002:
return BonfireBunnyGUIDs[2];
case DATA_BEAM_BUNNY_000:
return BeamBunnyGUIDs[0];
case DATA_BEAM_BUNNY_001:
return BeamBunnyGUIDs[1];
case DATA_BEAM_BUNNY_002:
return BeamBunnyGUIDs[2];
case DATA_LUMA_SKYMOTHER:
return LumaGUID;
default:
break;
}
@@ -138,13 +97,7 @@ public:
}
protected:
ObjectGuid AhuneGUID;
ObjectGuid AhuneBunnyGUID;
ObjectGuid FrozenCoreGUID;
ObjectGuid LumaGUID;
ObjectGuid FlameCallerGUIDs[3];
ObjectGuid BonfireBunnyGUIDs[3];
ObjectGuid BeamBunnyGUIDs[3];
uint8 counter;
};

View File

@@ -57,9 +57,7 @@ enum SPCreaturesIds
NPC_SHAMAN_BONFIRE_BUNNY_002 = 25973,
NPC_SHAMAN_BEAM_BUNNY_000 = 25964,
NPC_SHAMAN_BEAM_BUNNY_001 = 25965,
NPC_SHAMAN_BEAM_BUNNY_002 = 25966,
NPC_WHISP_DEST_BUNNY = 26120,
NPC_WHISP_SOURCE_BUNNY = 26121
NPC_SHAMAN_BEAM_BUNNY_002 = 25966
};
enum SPGameObjectIds
@@ -74,4 +72,6 @@ inline AI* GetSlavePensAI(T* obj)
return GetInstanceAI<AI>(obj, SPScriptName);
}
#define RegisterSlavePensCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetSlavePensAI)
#endif // SLAVE_PENS_H