Scripts/BWD: setup instance script for Blackwing Descent

This commit is contained in:
Ovahlord committed 2018-11-18 02:58:28 +01:00
1 parent 3213968da2
commit a9351fab00
4 files changed
+199

No files matched your search

@@ -0,0 +1 @@
UPDATE `instance_template` SET `script`= 'instance_blackwing_descent' WHERE `map`= 669;
@@ -0,0 +1,66 @@
/*
* Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/>
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_BLACKWING_DESCENT_H
#define DEF_BLACKWING_DESCENT_H
#include "CreatureAIImpl.h"
#define DataHeader "BWD"
#define BWDScriptName "instance_blackwing_descent"
uint32 const EncounterCount = 6;
enum BWDDataTypes
{
// Bosses
DATA_MAGMAW = 0,
DATA_OMNOTRON_DEFENSE_SYSTEM = 1,
DATA_CHIMAERON = 2,
DATA_ATRAMEDES = 3,
DATA_MALORIAK = 4,
DATA_NEFARIANS_END = 5
};
enum BWDCreatureIds
{
// Bosses
BOSS_MAGMAW = 41570,
BOSS_MAGMATRON = 42178,
BOSS_ARCANOTRON = 42166,
BOSS_TOXITRON = 42180,
BOSS_ELECTRON = 42179,
BOSS_CHIMAERON = 43296,
BOSS_ATRAMEDES = 41442,
BOSS_MALORIAK = 41378,
BOSS_NEFARIAN = 41376
};
enum BWDGameObjectIds
{
};
template <class AI, class T>
inline AI* GetBlackwingDescentAI(T* obj)
{
return GetInstanceAI<AI>(obj, BWDcriptName);
}
#define RegisterBlackwingDescentCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetBlackwingDescentAI)
#endif
@@ -0,0 +1,130 @@
/*
* Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/>
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptMgr.h"
#include "Creature.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "blackwing_descent.h"
ObjectData const creatureData[] =
{
{ 0, 0 } // END
};
ObjectData const gameobjectData[] =
{
{ 0, 0 } // END
};
DoorData const doorData[] =
{
{ 0, 0, DOOR_TYPE_ROOM } // END
};
class instance_blackwing_descent : public InstanceMapScript
{
public:
instance_blackwing_descent() : InstanceMapScript(BWDScriptName, 669) { }
struct instance_blackwing_descent_InstanceMapScript : public InstanceScript
{
instance_blackwing_descent_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, gameobjectData);
LoadDoorData(doorData);
Initialize();
}
void Initialize()
{
}
void OnCreatureCreate(Creature* creature) override
{
InstanceScript::OnCreatureCreate(creature);
/*
switch (creature->GetEntry())
{
default:
break;
}
*/
}
void OnGameObjectCreate(GameObject* go) override
{
InstanceScript::OnGameObjectCreate(go);
}
bool SetBossState(uint32 type, EncounterState state) override
{
if (!InstanceScript::SetBossState(type, state))
return false;
return true;
}
/*
void SetData(uint32 type, uint32 data) override
{
switch (type)
{
default:
break;
}
}
*/
/*
uint32 GetData(uint32 type) const override
{
switch (type)
{
}
return 0;
}
*/
/*
void WriteSaveDataMore(std::ostringstream& data) override
{
}
*/
/*
void ReadSaveDataMore(std::istringstream& data) override
{
}
*/
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
return new instance_blackwing_descent_InstanceMapScript(map);
}
};
void AddSC_instance_blackwing_descent()
{
new instance_blackwing_descent();
}
@@ -73,6 +73,7 @@ void AddSC_boss_flamegor();
void AddSC_boss_chromaggus();
void AddSC_boss_nefarian();
void AddSC_instance_blackwing_lair();
void AddSC_instance_blackwing_descent(); //Blackwing Descent
void AddSC_instance_deadmines(); //Deadmines
void AddSC_boss_glubtok();
void AddSC_boss_helix_gearbreaker();
@@ -294,6 +295,7 @@ void AddEasternKingdomsScripts()
AddSC_boss_chromaggus();
AddSC_boss_nefarian();
AddSC_instance_blackwing_lair();
AddSC_instance_blackwing_descent(); //Blackwing Descent
AddSC_instance_deadmines(); //Deadmines
AddSC_boss_glubtok();
AddSC_boss_helix_gearbreaker();