Move hardcoded aiscripts to database for map 585

Related to #1113
This commit is contained in:
Zyres
2023-07-10 22:25:57 +02:00
parent e4a5c365e3
commit 7793951d37
3 changed files with 58 additions and 262 deletions

View File

@@ -0,0 +1,57 @@
-- Magisters Terrace (585)
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '35', '27609', '0', '0', '5', '5000', '5000', '0', '100', '0', '0', 'Priestess Delrissa - Dispel Magic');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '40', '17843', '0', '0', '5', '7000', '7000', '0', '100', '0', '0', 'Priestess Delrissa - Flash Heal');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '45', '15654', '0', '0', '6', '18000', '18000', '0', '100', '0', '0', 'Priestess Delrissa - Shadow Word: Pain');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '32', '44291', '0', '0', '5', '15000', '15000', '0', '100', '0', '0', 'Priestess Delrissa - Power Word: Shield');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '30', '44174', '0', '0', '5', '18000', '18000', '0', '100', '0', '0', 'Priestess Delrissa - Renew');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24683', '4', '0', '5', '1', '0', '60', '46028', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Sunblade Mage Guard - Glaive Throw');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24683', '4', '0', '5', '1', '0', '20', '44475', '0', '0', '6', '35000', '35000', '0', '100', '0', '0', 'Sunblade Mage Guard - Magic Dampening Field');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24685', '4', '0', '5', '1', '0', '65', '46035', '0', '0', '2', '4000', '4000', '0', '100', '0', '0', 'Sunblade Magister - Frostbolt');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24685', '4', '0', '5', '1', '0', '12', '46036', '0', '0', '0', '40000', '40000', '0', '100', '0', '0', 'Sunblade Magister - Arcane Nova');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '60', '46150', '0', '0', '2', '12000', '12000', '0', '100', '0', '0', 'Coilskar Witch - Forked Lightning');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '15', '44639', '0', '0', '6', '16000', '16000', '0', '100', '0', '0', 'Coilskar Witch - Frost Arrow');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '6', '46151', '0', '0', '0', '40000', '40000', '0', '100', '0', '0', 'Coilskar Witch - Mana Shield');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '75', '35946', '0', '0', '6', '4000', '4000', '0', '100', '0', '0', 'Coilskar Witch - Shoot');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24697', '4', '0', '5', '1', '0', '60', '44640', '0', '0', '2', '8000', '8000', '0', '100', '0', '0', 'Sister of Torment - Lash of Pain');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24697', '4', '0', '5', '1', '0', '20', '44547', '0', '0', '6', '16000', '16000', '0', '100', '0', '0', 'Sister of Torment - Deadly Embrace');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '44267', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Ellrys Duskhallow - Immolate');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '12471', '0', '0', '6', '5000', '5000', '0', '100', '0', '0', 'Ellrys Duskhallow - Shadowbolt');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '14875', '0', '0', '6', '4000', '4000', '0', '100', '0', '0', 'Ellrys Duskhallow - Curse of Agony');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24557', '4', '0', '5', '1', '0', '88', '27615', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Kagani Nightstrike - Kidney Shot');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24557', '4', '0', '5', '1', '0', '20', '12540', '0', '0', '2', '18000', '18000', '0', '100', '0', '0', 'Kagani Nightstrike - Gouge');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24557', '4', '0', '5', '1', '0', '8', '46189', '0', '0', '2', '45000', '45000', '0', '100', '0', '0', 'Kagani Nightstrike - Eviscerate');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24815', '4', '0', '5', '1', '0', '100', '44577', '0', '0', '2', '3000', '3000', '0', '100', '0', '0', 'Sunblade Imp - Firebolt');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '1', '2', '0', '100', '0', '0', '0', '0', '0', '0', '0', '100', '3022', '0', 'Priestess Delrissa - Say Annihilate them');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '3', '2', '0', '100', '0', '0', '0', '0', '0', '0', '0', '100', '3032', '0', 'Priestess Delrissa - Say Not what I had... planned');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '2', '2', '0', '100', '0', '0', '0', '0', '0', '0', '0', '100', '3031', '0', 'Priestess Delrissa - Say Its been a kick, really');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '38595', '0', '0', '6', '9000', '9000', '0', '100', '0', '0', 'Ellrys Duskhallow - Fear');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24554', '4', '0', '5', '1', '0', '25', '11428', '0', '0', '2', '5000', '5000', '0', '100', '0', '0', 'Eramas Brightblaze - Knockdown');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24554', '4', '0', '5', '1', '0', '40', '46182', '0', '0', '1', '2000', '2000', '0', '100', '0', '0', 'Eramas Brightblaze - Snap Kick');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '30', '13323', '0', '0', '6', '16000', '16000', '0', '100', '0', '0', 'Yazzai - Polymorph');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '20', '27619', '0', '0', '0', '300000', '300000', '0', '100', '0', '0', 'Yazzai - Ice Block');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '25', '44178', '0', '0', '6', '20000', '20000', '0', '100', '0', '0', 'Yazzai - Blizzard');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '10', '38384', '0', '0', '0', '19000', '19000', '0', '100', '0', '0', 'Yazzai - Cone of Cold');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '80', '15530', '0', '0', '6', '14000', '14000', '0', '100', '0', '0', 'Yazzai - Frostbolt');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '25', '27577', '0', '0', '6', '8000', '8000', '0', '100', '0', '0', 'Warlord Salaris - Intercept');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '100', '27581', '0', '0', '2', '60000', '60000', '0', '100', '0', '0', 'Warlord Salaris - Disarm');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '22', '23600', '0', '0', '0', '17000', '17000', '0', '100', '0', '0', 'Warlord Salaris - Piercing Howl');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '30', '19134', '0', '0', '6', '9000', '9000', '0', '100', '0', '0', 'Warlord Salaris - Fightening Shout');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '10', '27584', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Warlord Salaris - Hamstering');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '100', '44268', '0', '0', '2', '6000', '6000', '0', '100', '0', '0', 'Warlord Salaris - Mortal Strike');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '90', '44271', '0', '0', '6', '6000', '6000', '0', '100', '0', '0', 'Garaxxas - Aimed Shot');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '90', '15620', '0', '0', '6', '5000', '5000', '0', '100', '0', '0', 'Garaxxas - Shot');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '40', '27634', '0', '0', '6', '8000', '8000', '0', '100', '0', '0', 'Garaxxas - Concussive Shot');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '25', '44285', '0', '0', '6', '12000', '12000', '0', '100', '0', '0', 'Garaxxas - Multi Shot');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '30', '44286', '0', '0', '2', '9000', '9000', '0', '100', '0', '0', 'Garaxxas - Wing Clip');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24553', '4', '0', '5', '1', '0', '40', '21401', '0', '0', '6', '8000', '8000', '0', '100', '0', '0', 'Apoko - Frist Shock');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24553', '4', '0', '5', '1', '0', '50', '44256', '0', '0', '5', '10000', '10000', '0', '100', '0', '0', 'Apoko - Lesser Healing Wave');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24553', '4', '0', '5', '1', '0', '20', '27626', '0', '0', '6', '40000', '40000', '0', '100', '0', '0', 'Apoko - Purge');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24556', '4', '0', '5', '1', '0', '90', '44272', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Zelfan - Goblin Dragon Gun');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24556', '4', '0', '5', '1', '0', '90', '44276', '0', '0', '0', '80000', '80000', '0', '100', '0', '0', 'Zelfan - Explosive Sheep');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24556', '4', '0', '5', '1', '0', '99', '44137', '0', '0', '6', '60000', '60000', '0', '100', '0', '0', 'Zelfan - Rocket Launch');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24684', '4', '0', '5', '1', '0', '20', '44482', '0', '0', '2', '30000', '30000', '0', '100', '0', '0', 'Sunblade Bloodknight - Judgement of Wrath');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24684', '4', '0', '5', '1', '0', '99', '46030', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Sunblade Bloodknight - Seal of Wrath');
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24684', '4', '0', '5', '1', '0', '10', '46029', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Sunblade Bloodknight - Holy Light');
INSERT INTO `world_db_version` VALUES ('133', '20230710-01_hardcoded_ai_scripts');

View File

@@ -195,26 +195,8 @@ public:
static CreatureAIScript* Create(Creature* c) { return new Priestess_DelrissaAI(c); }
explicit Priestess_DelrissaAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
auto dispelMagic = addAISpell(PRIESTESS_DELRISSA_DISPEL_MAGIC, 35.0f, TARGET_RANDOM_FRIEND, 0, 5);
dispelMagic->setMinMaxDistance(0.0f, 30.0f);
auto flashHeal = addAISpell(PRIESTESS_DELRISSA_FLASH_HEAL, 40.0f, TARGET_RANDOM_FRIEND, 2, 7);
flashHeal->setMinMaxDistance(0.0f, 40.0f);
auto shadowwordPain = addAISpell(PRIESTESS_DELRISSA_SHADOWWORD_PAIN, 45.0f, TARGET_RANDOM_SINGLE, 0, 18);
shadowwordPain->setMinMaxDistance(0.0f, 30.0f);
auto powerwordShield = addAISpell(PRIESTESS_DELRISSA_POWERWORD_SHIELD, 32.0f, TARGET_RANDOM_FRIEND, 0, 15);
powerwordShield->setMinMaxDistance(0.0f, 40.0f);
auto renew = addAISpell(PRIESTESS_DELRISSA_RENEW, 30.0f, TARGET_RANDOM_FRIEND, 0, 18);
renew->setMinMaxDistance(0.0f, 40.0f);
mClearHateList = _addTimer(15000);
mKilledPlayers = 0;
addEmoteForEvent(Event_OnCombatStart, 3022); // Annihilate them.
addEmoteForEvent(Event_OnDied, 3032); // Not what I had... planned.
}
void OnTargetDied(Unit* pTarget) override
@@ -232,13 +214,10 @@ public:
sendDBChatMessage(3029); // Not really much of a "group" anymore, is it?
else if (mKilledPlayers == 4)
sendDBChatMessage(3030); // One is such a lonely number.
else if (mKilledPlayers == 5)
sendDBChatMessage(3031); // It's been a kick, really.
}
void OnCombatStop(Unit* /*pTarget*/) override
{
sendDBChatMessage(3031); // It's been a kick, really.
mKilledPlayers = 0;
}
@@ -256,227 +235,6 @@ protected:
int32_t mClearHateList;
};
class KaganiNightstrikeAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new KaganiNightstrikeAI(c); }
explicit KaganiNightstrikeAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
auto kidneyShot = addAISpell(KAGANI_KIDNEY_SHOT, 80.0f, TARGET_ATTACKING, 0, 25);
kidneyShot->setMinMaxDistance(0.0f, 30.0f);
auto gouge = addAISpell(KAGANI_GOUGE, 20.0f, TARGET_ATTACKING, 0, 18);
gouge->setMinMaxDistance(0.0f, 30.0f);
auto eviscerate = addAISpell(KAGANI_EVISCERATE, 8.0f, TARGET_ATTACKING, 0, 45);
eviscerate->setMinMaxDistance(0.0f, 30.0f);
}
};
class EllrysDuskhallowAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new EllrysDuskhallowAI(c); }
explicit EllrysDuskhallowAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(ELLRYS_IMMOLATE, 75.0f, TARGET_ATTACKING, 2, 15);
auto shadowBolt = addAISpell(ELLRYS_SHADOWBOLT, 75.0f, TARGET_RANDOM_SINGLE, 3, 5);
shadowBolt->setMinMaxDistance(0.0f, 40.0f);
auto curseOfAgony = addAISpell(ELLRYS_CURSE_OF_AGONY, 75.0f, TARGET_RANDOM_SINGLE, 0, 4);
curseOfAgony->setMinMaxDistance(0.0f, 30.0f);
auto fear = addAISpell(ELLRYS_FEAR, 75.0f, TARGET_RANDOM_SINGLE, 2, 9);
fear->setMinMaxDistance(0.0f, 20.0f);
}
};
class EramasBrightblazeAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new EramasBrightblazeAI(c); }
explicit EramasBrightblazeAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(ERAMAS_KNOCKDOWN, 25.0f, TARGET_ATTACKING, 0, 5);
addAISpell(ERAMAS_SNAP_KICK, 40.0f, TARGET_VARIOUS, 0, 2);
}
};
class YazzaiAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new YazzaiAI(c); }
explicit YazzaiAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
auto polymorph = addAISpell(YAZZAI_POLYMORPH, 30.0f, TARGET_RANDOM_SINGLE, 2, 16);
polymorph->setMinMaxDistance(8.0f, 30.0f);
addAISpell(YAZZAI_ICE_BLOCK, 20.0f, TARGET_SELF, 0, 300);
auto blizzard = addAISpell(YAZZAI_BLIZZARD, 25.0f, TARGET_RANDOM_SINGLE, 0, 20);
blizzard->setMinMaxDistance(8.0f, 30.0f);
addAISpell(YAZZAI_CONE_OF_COLD, 10.0f, TARGET_SELF, 0, 19);
auto frostBolt = addAISpell(YAZZAI_FROSTBOLT, 80.0f, TARGET_RANDOM_SINGLE, 3, 14);
frostBolt->setMinMaxDistance(8.0f, 40.0f);
}
};
class WarlordSalarisAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new WarlordSalarisAI(c); }
explicit WarlordSalarisAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
auto intercept = addAISpell(SALARIS_INTERCEPT, 25.0f, TARGET_RANDOM_SINGLE, 0, 8);
intercept->setMinMaxDistance(8.0f, 25.0f);
addAISpell(SALARIS_DISARM, 100.0f, TARGET_ATTACKING, 0, 60);
addAISpell(SALARIS_PIERCING_HOWL, 22.0f, TARGET_SELF, 0, 17);
auto shout = addAISpell(SALARIS_FRIGHTENING_SHOUT, 30.0f, TARGET_RANDOM_SINGLE, 0, 9);
shout->setMinMaxDistance(0.0f, 10.0f);
addAISpell(SALARIS_HAMSTRING, 10.0f, TARGET_ATTACKING, 0, 20);
addAISpell(SALARIS_MORTAL_STRIKE, 100.0f, TARGET_ATTACKING, 0, 6);
}
};
class GaraxxasAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new GaraxxasAI(c); }
explicit GaraxxasAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
auto aimedShot = addAISpell(GARAXXAS_AIMED_SHOT, 90.0f, TARGET_RANDOM_SINGLE, 3, 6);
aimedShot->setMinMaxDistance(5.0f, 35.0f);
auto shoot = addAISpell(GARAXXAS_SHOOT, 90.0f, TARGET_RANDOM_SINGLE, 3, 5);
shoot->setMinMaxDistance(5.0f, 30.0f);
auto concussivShot = addAISpell(GARAXXAS_CONCUSSIV_SHOT, 40.0f, TARGET_RANDOM_SINGLE, 0, 8);
concussivShot->setMinMaxDistance(5.0f, 35.0f);
auto multiShot = addAISpell(GARAXXAS_MULTI_SHOT, 25.0f, TARGET_RANDOM_SINGLE, 0, 12);
multiShot->setMinMaxDistance(5.0f, 30.0f);
addAISpell(GARAXXAS_WING_CLIP, 30.0f, TARGET_ATTACKING, 0, 9);
}
};
class ApokoAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new ApokoAI(c); }
explicit ApokoAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
auto frostShock = addAISpell(APOKO_FROST_SHOCK, 40.0f, TARGET_RANDOM_SINGLE, 0, 8);
frostShock->setMinMaxDistance(0.0f, 20.0f);
auto healingWave = addAISpell(APOKO_LESSER_HEALING_WAVE, 50.0f, TARGET_RANDOM_FRIEND, 2, 10);
healingWave->setMinMaxDistance(0.0f, 40.0f);
auto purge = addAISpell(APOKO_PURGE, 20.0f, TARGET_RANDOM_SINGLE, 0, 40);
purge->setMinMaxDistance(0.0f, 30.0f);
}
};
class ZelfanAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new ZelfanAI(c); }
explicit ZelfanAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(ZELFAN_GOBLIN_DRAGON_GUN, 90.0f, TARGET_ATTACKING, 0, 15);
addAISpell(ZELFAN_HIGH_EXPLOSIV_SHEEP, 90.0f, TARGET_SELF, 2, 80);
auto rocketLaunch = addAISpell(ZELFAN_ROCKET_LAUNCH, 99.0f, TARGET_RANDOM_SINGLE, 4, 60);
rocketLaunch->setMinMaxDistance(0.0f, 45.0f);
}
};
// Trash mobs
class CoilskarWitchAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new CoilskarWitchAI(c); }
explicit CoilskarWitchAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(COILSKAR_WITCH_FORKED_LIGHTNING, 60.0f, TARGET_ATTACKING, 2, 12);
auto frostArrow = addAISpell(COILSKAR_WITCH_FROST_ARROW, 15.0f, TARGET_RANDOM_SINGLE, 0, 16);
frostArrow->setMinMaxDistance(0.0f, 40.0f);
addAISpell(COILSKAR_WITCH_MANA_SHIELD, 6.0f, TARGET_SELF, 0, 40);
auto witchShoot = addAISpell(COILSKAR_WITCH_SHOOT, 75.0f, TARGET_RANDOM_SINGLE, 2, 4);
witchShoot->setMinMaxDistance(5.0f, 30.0f);
}
};
class SisterOfTormentAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new SisterOfTormentAI(c); }
explicit SisterOfTormentAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(SISTER_OF_TORMENT_LASH_OF_PAIN, 60.0f, TARGET_ATTACKING, 0, 8);
auto deadlyEmbracy = addAISpell(SISTER_OF_TORMENT_DEADLY_EMBRACE, 20.0f, TARGET_RANDOM_SINGLE, 2, 16);
deadlyEmbracy->setMinMaxDistance(0.0f, 20.0f);
}
};
class SunbladeBloodKnightAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new SunbladeBloodKnightAI(c); }
explicit SunbladeBloodKnightAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(BLOOD_KNIGHT_JUDGEMENT_OF_WRATH, 20.0f, TARGET_ATTACKING, 0, 30);
addAISpell(BLOOD_KNIGHT_SEAL_OF_WRATH, 99.0f, TARGET_SELF, 0, 30);
auto holyLight = addAISpell(BLOOD_KNIGHT_HOLY_LIGHT, 10.0f, TARGET_SELF, 2, 30);
holyLight->setMinMaxDistance(0.0f, 40.0f);
}
};
class SunbladeImpAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new SunbladeImpAI(c); }
explicit SunbladeImpAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(IMP_FIREBOLT, 100.0f, TARGET_ATTACKING, 2, 3);
}
};
class SunbladeMageGuardAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new SunbladeMageGuardAI(c); }
explicit SunbladeMageGuardAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(MAGE_GUARD_GLAVE_THROW, 60.0f, TARGET_ATTACKING, 0, 25);
auto magicDampening = addAISpell(MAGE_GUARD_MAGIC_DAMPENING_FIELD, 20.0f, TARGET_RANDOM_SINGLE, 1, 35);
magicDampening->setMinMaxDistance(0.0f, 20.0f);
}
};
class SunbladeMagisterAI : public CreatureAIScript
{
public:
static CreatureAIScript* Create(Creature* c) { return new SunbladeMagisterAI(c); }
explicit SunbladeMagisterAI(Creature* pCreature) : CreatureAIScript(pCreature)
{
addAISpell(MAGISTER_FROSTBOLT, 65.0f, TARGET_ATTACKING, 2, 4);
addAISpell(MAGISTER_ARCANE_NOVA, 12.0f, TARGET_SELF, 2, 40);
}
};
void SetupMagistersTerrace(ScriptMgr* mgr)
{
//////////////////////////////////////////////////////////////////////////////////////////
@@ -488,23 +246,4 @@ void SetupMagistersTerrace(ScriptMgr* mgr)
mgr->register_creature_script(BOSS_SELIN_FIREHEART, &SelinFireheartAI::Create);
mgr->register_creature_script(BOSS_VEXALLUS, &VexallusAI::Create);
mgr->register_creature_script(BOSS_PRIEST_DELRISSA, &Priestess_DelrissaAI::Create);
//////////////////////////////////////////////////////////////////////////////////////////
// Priestess Delrissa Encounter Creature AI
mgr->register_creature_script(CN_KAGANI_NIGHTSTRIKE, &KaganiNightstrikeAI::Create);
mgr->register_creature_script(CN_ELLRYS_DUSKHALLOW, &EllrysDuskhallowAI::Create);
mgr->register_creature_script(CN_ERAMAS_BRIGHTBLAZE, &EramasBrightblazeAI::Create);
mgr->register_creature_script(CN_YAZZAI, &YazzaiAI::Create);
mgr->register_creature_script(CN_WARLORD_SALARIS, &WarlordSalarisAI::Create);
mgr->register_creature_script(CN_GARAXXAS, &GaraxxasAI::Create);
mgr->register_creature_script(CN_APOKO, &ApokoAI::Create);
mgr->register_creature_script(CN_ZELFAN, &ZelfanAI::Create);
//////////////////////////////////////////////////////////////////////////////////////////
// Trash Mobs
mgr->register_creature_script(CN_COILSKAR_WITCH, &CoilskarWitchAI::Create);
mgr->register_creature_script(CN_SISTER_OF_TORMENT, &SisterOfTormentAI::Create);
mgr->register_creature_script(CN_SB_IMP, &SunbladeImpAI::Create);
mgr->register_creature_script(CN_SB_MAGE_GUARD, &SunbladeMageGuardAI::Create);
mgr->register_creature_script(CN_SB_MAGISTER, &SunbladeMagisterAI::Create);
}

View File

@@ -42,7 +42,7 @@
// DB version
static const char* REQUIRED_CHAR_DB_VERSION = "20230710-00_characters_taxi";
static const char* REQUIRED_WORLD_DB_VERSION = "20230710-00_taxi_level_data";
static const char* REQUIRED_WORLD_DB_VERSION = "20230710-01_hardcoded_ai_scripts";
volatile bool Master::m_stopEvent = false;