diff --git a/sql/world/updates/20230709-00_hardcoded_ai_scripts.sql b/sql/world/updates/20230709-00_hardcoded_ai_scripts.sql new file mode 100644 index 000000000..2687ec4ad --- /dev/null +++ b/sql/world/updates/20230709-00_hardcoded_ai_scripts.sql @@ -0,0 +1,145 @@ +-- Black Temple (564) +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22884', '4', '0', '5', '1', '0', '8', '40079', '0', '0', '6', '20000', '20000', '0', '100', '0', '0', 'Leviathan - Debilitating Spray'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22884', '4', '0', '5', '1', '0', '8', '40078', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Leviathan - Poison Spit'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22884', '4', '0', '5', '1', '0', '7', '40077', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Leviathan - Tail Sweep'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22885', '4', '0', '5', '1', '0', '10', '40087', '0', '0', '0', '25000', '25000', '0', '100', '0', '0', 'Dragon Turtle - Shell Shield'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22885', '4', '0', '5', '1', '0', '8', '40086', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Dragon Turtle - Water Spit'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23083', '4', '0', '5', '1', '0', '10', '41092', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Shadowmoon Riding Hound - Carnivorous Bite'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23083', '4', '0', '5', '1', '0', '8', '25821', '0', '0', '6', '35000', '35000', '0', '100', '0', '0', 'Shadowmoon Riding Hound - Charge'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23083', '4', '0', '5', '1', '0', '6', '8599', '0', '0', '0', '40000', '40000', '0', '100', '0', '0', 'Shadowmoon Riding Hound - Enrage'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22964', '4', '0', '5', '1', '0', '10', '41378', '0', '0', '5', '45000', '45000', '0', '100', '0', '0', 'Sister of Pleasure - Greater Heal'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22964', '4', '0', '5', '1', '0', '10', '41380', '0', '0', '0', '20000', '20000', '0', '100', '0', '0', 'Sister of Pleasure - Holy Nova'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22964', '4', '0', '5', '1', '0', '5', '41362', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Sister of Pleasure - Shared Bonds'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22964', '4', '0', '5', '1', '0', '7', '41381', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Sister of Pleasure - Shell of Life'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22956', '4', '0', '5', '1', '0', '10', '41353', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Sister of Pain - Lash of Pain'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22956', '4', '0', '5', '1', '0', '5', '41369', '0', '0', '0', '60000', '60000', '0', '100', '0', '0', 'Sister of Pain - Painful Rage'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22956', '4', '0', '5', '1', '0', '10', '41355', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Sister of Pain - Shadow Word: Pain'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22956', '4', '0', '5', '1', '0', '5', '41362', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Sister of Pain - Shared Bonds'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22956', '4', '0', '5', '1', '0', '7', '41371', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Sister of Pain - Shell of Pain'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22957', '4', '0', '5', '1', '0', '8', '41397', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Priestess of Dementia - Confusion'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22957', '4', '0', '5', '1', '0', '5', '41404', '0', '0', '0', '60000', '60000', '0', '100', '0', '0', 'Priestess of Dementia - Dementia'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22962', '4', '0', '5', '1', '0', '10', '41351', '0', '0', '6', '30000', '30000', '0', '100', '0', '0', 'Priestess of Delight - Curse of Vitality'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22855', '4', '0', '5', '1', '0', '7', '39649', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Illidari Nightlord - Summon Shadowfiends'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22855', '4', '0', '5', '1', '0', '10', '39645', '0', '0', '0', '25000', '25000', '0', '100', '0', '0', 'Illidari Nightlord - Shadow Inferno'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22855', '4', '0', '5', '1', '0', '7', '41150', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Illidari Nightlord - Fear'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22855', '4', '0', '5', '1', '0', '8', '39647', '0', '0', '6', '35000', '35000', '0', '100', '0', '0', 'Illidari Nightlord - Curse of Mending'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23339', '4', '0', '5', '1', '0', '8', '41170', '0', '0', '6', '40000', '40000', '0', '100', '0', '0', 'Illidari Heartseeker - Curse of the Bleakheart'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23339', '4', '0', '5', '1', '0', '7', '41173', '0', '0', '0', '8000', '8000', '0', '100', '0', '0', 'Illidari Heartseeker - Rapid Shot'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23339', '4', '0', '5', '1', '0', '80', '41169', '0', '0', '2', '2000', '2000', '0', '100', '0', '0', 'Illidari Heartseeker - Shoot'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23339', '4', '0', '5', '1', '0', '7', '41171', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Illidari Heartseeker - Skeleton Shot'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22954', '4', '0', '5', '1', '0', '8', '40938', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Illidari Fearbringer - Illidari Flames'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22954', '4', '0', '5', '1', '0', '7', '40946', '0', '0', '7', '35000', '35000', '0', '100', '0', '0', 'Illidari Fearbringer - Rain of Chaos'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22954', '4', '0', '5', '1', '0', '8', '40936', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Illidari Fearbringer - War Stomp'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22853', '4', '0', '5', '1', '0', '8', '39674', '0', '0', '6', '30000', '30000', '0', '100', '0', '0', 'Illidari Defiler - Banish'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22853', '4', '0', '5', '1', '0', '7', '39672', '0', '0', '6', '45000', '45000', '0', '100', '0', '0', 'Illidari Defiler - Curse of Agony'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22853', '4', '0', '5', '1', '0', '8', '39670', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Illidari Defiler - Fel Immolate'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22853', '4', '0', '5', '1', '0', '7', '39671', '0', '0', '7', '35000', '35000', '0', '100', '0', '0', 'Illidari Defiler - Rain of Chaos'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23337', '4', '0', '5', '1', '0', '10', '15284', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Illidari Centurion - Cleave'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23337', '4', '0', '5', '1', '0', '8', '41168', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Illidari Centurion - Sonic Strike'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22869', '4', '0', '5', '1', '0', '8', '39666', '0', '0', '0', '25000', '25000', '0', '100', '0', '0', 'Illidari Boneslicer - Cloak of Shadows'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22869', '4', '0', '5', '1', '0', '7', '24698', '0', '0', '2', '4000', '4000', '0', '100', '0', '0', 'Illidari Boneslicer - Gouge'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22869', '4', '0', '5', '1', '0', '7', '41176', '0', '0', '2', '30000', '30000', '0', '100', '0', '0', 'Illidari Boneslicer - Shadowstep'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22844', '4', '0', '5', '1', '0', '10', '15284', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Ashtongue Battlelord - Cleave'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22844', '4', '0', '5', '1', '0', '8', '32588', '0', '0', '2', '30000', '30000', '0', '100', '0', '0', 'Ashtongue Battlelord - Concussion Blow'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22844', '4', '0', '5', '1', '0', '8', '41182', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Battlelord - Concussive Throw'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22844', '4', '0', '5', '1', '0', '4', '34970', '0', '0', '0', '50000', '50000', '0', '100', '0', '0', 'Ashtongue Battlelord - Frenzy'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23216', '4', '0', '5', '1', '0', '10', '41178', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Ashtongue Defender - Debilitating Strike'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23216', '4', '0', '5', '1', '0', '7', '41180', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Defender - Shield Bash'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23523', '4', '0', '5', '1', '0', '8', '42024', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Ashtongue Defender - Debilitating Strike'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23523', '4', '0', '5', '1', '0', '6', '42023', '0', '0', '7', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Defender - Shield Bash'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22845', '4', '0', '5', '1', '0', '5', '41185', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Ashtongue Mystic - Bloodlust'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22845', '4', '0', '5', '1', '0', '6', '41114', '0', '0', '5', '35000', '35000', '0', '100', '0', '0', 'Ashtongue Mystic - Chain Heal'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22845', '4', '0', '5', '1', '0', '7', '39589', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Ashtongue Mystic - Cyclone Totem'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22845', '4', '0', '5', '1', '0', '8', '41115', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Mystic - Flame Shock'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22845', '4', '0', '5', '1', '0', '8', '41116', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Mystic - Frost Shock'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22845', '4', '0', '5', '1', '0', '7', '39588', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Ashtongue Mystic - Searing Totem'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22845', '4', '0', '5', '1', '0', '7', '39586', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Ashtongue Mystic - Summon Windfury Totem'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22847', '4', '0', '5', '1', '0', '8', '41187', '0', '0', '2', '40000', '40000', '0', '100', '0', '0', 'Ashtongue Primalist - Multi-Shot'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22847', '4', '0', '5', '1', '0', '80', '41188', '0', '0', '2', '1000', '1000', '0', '100', '0', '0', 'Ashtongue Primalist - Shoot'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22847', '4', '0', '5', '1', '0', '8', '39584', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Ashtongue Primalist - Sweeping Wing Clip'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22847', '4', '0', '5', '1', '0', '7', '41186', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Primalist - Wyvern Sting'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23318', '4', '0', '5', '1', '0', '7', '41978', '0', '0', '2', '30000', '30000', '0', '100', '0', '0', 'Ashtongue Rogue - Debilitating Poison'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23318', '4', '0', '5', '1', '0', '10', '41177', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Ashtongue Rogue - Eviscerate'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23524', '4', '0', '5', '1', '0', '7', '42027', '0', '0', '5', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Primalist - Sweeping Wing Clip'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23524', '0', '0', '5', '1', '0', '7', '42317', '0', '0', '0', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Primalist - Wyvern Sting'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23524', '1', '0', '5', '1', '0', '7', '42318', '0', '0', '0', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Rogue - Debilitating Poison'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23524', '4', '0', '5', '1', '0', '8', '42025', '0', '0', '5', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Rogue - Eviscerate'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23374', '4', '0', '5', '1', '0', '7', '34654', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Ashtongue Stalker - Blind'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23374', '4', '0', '5', '1', '0', '10', '41189', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Ashtongue Stalker - Instant Poison'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23374', '4', '0', '5', '1', '0', '8', '41190', '0', '0', '6', '20000', '20000', '0', '100', '0', '0', 'Ashtongue Stalker - Mind-numbing Poison'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22846', '4', '0', '5', '1', '0', '7', '41183', '0', '0', '2', '35000', '35000', '0', '100', '0', '0', 'Ashtongue Stormcaller - Chain Lightning'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22846', '4', '0', '5', '1', '0', '10', '41184', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Ashtongue Stormcaller - Lightning Bolt'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22846', '4', '0', '5', '1', '0', '10', '41151', '0', '0', '0', '50000', '50000', '0', '100', '0', '0', 'Ashtongue Stormcaller - Lightning Shield'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23196', '4', '0', '1', '1', '0', '100', '41272', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Ashtongue Stalker - Instant Poison'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23196', '4', '0', '5', '1', '0', '5', '8269', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Ashtongue Stalker - Mind-numbing Poison'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23196', '4', '0', '5', '1', '0', '7', '41274', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Ashtongue Stormcaller - Chain Lightning'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23196', '4', '0', '5', '1', '0', '6', '41277', '0', '0', '7', '30000', '30000', '0', '100', '0', '0', 'Ashtongue Stormcaller - Lightning Bolt'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23196', '4', '0', '5', '1', '0', '5', '41276', '0', '0', '7', '40000', '40000', '0', '100', '0', '0', 'Ashtongue Stormcaller - Lightning Shield'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23235', '4', '0', '5', '1', '0', '7', '41194', '0', '0', '2', '40000', '40000', '0', '100', '0', '0', 'Bonechewer Blade Fury - Whirlwind'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23237', '4', '0', '5', '1', '0', '6', '41238', '0', '0', '2', '30000', '30000', '0', '100', '0', '0', 'Bonechewer Blood Prophet - Blood Drain'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23237', '4', '0', '5', '1', '0', '7', '41229', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Bonechewer Blood Prophet - Bloodbolt'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23237', '4', '0', '5', '1', '0', '5', '8269', '0', '0', '0', '50000', '50000', '0', '100', '0', '0', 'Bonechewer Blood Prophet - Frenzy'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23237', '4', '0', '5', '1', '0', '10', '41231', '0', '0', '6', '30000', '30000', '0', '100', '0', '0', 'Bonechewer Blood Prophet - Prophecy of Blood'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23237', '1', '0', '5', '1', '0', '10', '41230', '0', '0', '6', '30000', '30000', '0', '100', '0', '0', 'Bonechewer Blood Prophet - Prophecy of Blood'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23222', '4', '0', '5', '1', '0', '7', '41254', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Bonechewer Brawler - Enrage'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23239', '4', '0', '5', '1', '0', '7', '8269', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Bonechewer Combatant - Frenzy'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23236', '4', '0', '1', '1', '0', '0', '41198', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Bonechewer Shield Disciple - Intervene'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23236', '4', '0', '5', '1', '0', '8', '41197', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Bonechewer Shield Disciple - Shield Bash'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23236', '4', '0', '5', '1', '0', '8', '41196', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Bonechewer Shield Disciple - Shield Wall'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23236', '4', '0', '5', '1', '0', '7', '41213', '0', '0', '6', '30000', '30000', '0', '100', '0', '0', 'Bonechewer Shield Disciple - Throw Shield'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23223', '4', '0', '1', '1', '0', '0', '36140', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Bonechewer Spectator - Charge'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23223', '4', '0', '5', '1', '0', '10', '40505', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Bonechewer Spectator - Cleave'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23223', '4', '0', '5', '1', '0', '7', '25646', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Bonechewer Spectator - Mortal Wound'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23223', '4', '0', '5', '1', '0', '10', '13446', '0', '0', '2', '10000', '10000', '0', '100', '0', '0', 'Bonechewer Spectator - Strike'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23223', '4', '0', '5', '1', '0', '7', '13444', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Bonechewer Spectator - Sunder Armor'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23028', '4', '0', '5', '1', '0', '5', '40851', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Bonechewer Taskmaster - Disgruntled'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23028', '4', '0', '5', '1', '0', '8', '40845', '0', '0', '0', '15000', '15000', '0', '100', '0', '0', 'Bonechewer Taskmaster - Fury'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22963', '4', '0', '5', '1', '0', '8', '40844', '0', '0', '6', '15000', '15000', '0', '100', '0', '0', 'Bonechewer Worker - Throw Pick'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22955', '4', '0', '5', '1', '0', '7', '41345', '0', '0', '6', '40000', '40000', '0', '100', '0', '0', 'Charming Courtesan - Infatuation'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22955', '4', '0', '5', '1', '0', '8', '41346', '0', '0', '6', '20000', '20000', '0', '100', '0', '0', 'Charming Courtesan - Poisonous Throw'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22873', '4', '0', '5', '1', '0', '7', '40080', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Coilskar General - Booming Voice'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22873', '4', '0', '5', '1', '0', '7', '40081', '0', '0', '5', '20000', '20000', '0', '100', '0', '0', 'Coilskar General - Free Friend'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22874', '4', '0', '1', '1', '0', '7', '40084', '0', '0', '6', '35000', '35000', '0', '100', '0', '0', 'Coilskar Harpooner - Harpooners Mark'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22874', '4', '0', '5', '1', '0', '7', '40082', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Coilskar Harpooner - Hooked Net'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22874', '4', '0', '5', '1', '0', '8', '40083', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Coilskar Harpooner - Spear Throw'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22875', '4', '0', '5', '1', '0', '8', '40088', '0', '0', '0', '20000', '20000', '0', '100', '0', '0', 'Coilskar Sea-Caller - Forked Lightning'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22875', '4', '0', '5', '1', '0', '8', '40090', '0', '0', '7', '35000', '35000', '0', '100', '0', '0', 'Coilskar Sea-Caller - Hurricane'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22875', '4', '0', '5', '1', '0', '7', '40091', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Coilskar Sea-Caller - Summon Geyser'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22876', '4', '0', '5', '1', '0', '10', '40096', '0', '0', '0', '20000', '20000', '0', '100', '0', '0', 'Coilskar Soothsayer - Holy Nova'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22876', '4', '0', '5', '1', '0', '8', '40097', '0', '0', '5', '35000', '35000', '0', '100', '0', '0', 'Coilskar Soothsayer - Restoration'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22877', '4', '0', '5', '1', '0', '10', '15284', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Coilskar Wrangler - Cleave'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22877', '4', '0', '5', '1', '0', '8', '40076', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Coilskar Wrangler - Electric Spur'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22877', '4', '0', '5', '1', '0', '8', '40066', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Coilskar Wrangler - Lightning Prod'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22960', '4', '0', '5', '1', '0', '10', '15284', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Dragonmaw Wyrmcaller - Cleave'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22960', '4', '0', '5', '1', '0', '7', '40892', '0', '0', '6', '20000', '20000', '0', '100', '0', '0', 'Dragonmaw Wyrmcaller - Fixate'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22960', '4', '0', '5', '1', '0', '8', '40895', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Dragonmaw Wyrmcaller - Jab'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23172', '4', '0', '5', '1', '0', '6', '38166', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Hand of Gorefiend - Enrage'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23397', '4', '0', '5', '1', '0', '8', '41367', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Illidari Blood Lord - Divine Shield'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23397', '4', '0', '5', '1', '0', '9', '13005', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Illidari Blood Lord - Hammer of Justice'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23397', '4', '0', '5', '1', '0', '8', '41368', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Illidari Blood Lord - Judgement of Command'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22945', '4', '0', '5', '1', '0', '8', '41068', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Shadowmoon Blood Mage - Blood Siphon'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22945', '4', '0', '5', '1', '0', '9', '41072', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Shadowmoon Blood Mage - Bloodbolt'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22880', '4', '0', '5', '1', '0', '8', '41063', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Shadowmoon Champion - Chaotic Light'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22880', '4', '0', '5', '1', '0', '8', '41053', '0', '0', '6', '30000', '30000', '0', '100', '0', '0', 'Shadowmoon Champion - Whirling Blade'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22879', '4', '0', '5', '1', '0', '8', '41034', '0', '0', '0', '35000', '35000', '0', '100', '0', '0', 'Shadowmoon Reaver - Spell Absorption'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23047', '4', '0', '5', '1', '0', '10', '11976', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Shadowmoon Soldier - Strike'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22959', '4', '0', '5', '1', '0', '9', '41395', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Spellbound Attendant - Kick'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22959', '4', '0', '5', '1', '0', '8', '41396', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Spellbound Attendant - Sleep'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22939', '4', '0', '5', '1', '0', '9', '41338', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Temple Concubine - Love Tap'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22939', '4', '0', '5', '1', '0', '7', '41334', '0', '0', '6', '25000', '25000', '0', '100', '0', '0', 'Temple Concubine - Polymorph'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22881', '4', '0', '5', '1', '0', '7', '40095', '0', '0', '0', '20000', '20000', '0', '100', '0', '0', 'Aqueous Surger - Poison Bolt Volley'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22883', '4', '0', '5', '1', '0', '7', '40106', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Aqueous Spawn - Merge'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22883', '4', '0', '5', '1', '0', '8', '40102', '0', '0', '6', '20000', '20000', '0', '100', '0', '0', 'Aqueous Spawn - Sludge Nova'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23394', '4', '0', '5', '1', '0', '8', '41360', '0', '0', '6', '35000', '35000', '0', '100', '0', '0', 'Promenade Sentinel - L5 Arcane Charge'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23398', '4', '0', '5', '1', '0', '10', '41986', '0', '0', '0', '25000', '25000', '0', '100', '0', '0', 'Angered Soul Fragment - Anger'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23111', '4', '0', '5', '1', '0', '10', '40237', '0', '0', '2', '45000', '45000', '0', '100', '0', '0', 'Angered Soul Fragment - Anger'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23999', '4', '0', '5', '1', '0', '8', '41245', '0', '0', '0', '45000', '45000', '0', '100', '0', '0', 'Angered Soul Fragment - Anger'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23109', '4', '0', '5', '1', '0', '8', '40175', '0', '0', '0', '25000', '25000', '0', '100', '0', '0', 'Vengeful Spirit - Spirit Chains'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23109', '4', '0', '5', '1', '0', '6', '40157', '0', '0', '6', '35000', '35000', '0', '100', '0', '0', 'Vengeful Spirit - Spirit Lance'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23109', '4', '0', '5', '1', '0', '6', '40322', '0', '0', '0', '50000', '50000', '0', '100', '0', '0', 'Vengeful Spirit - Spirit Shield'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23109', '4', '0', '5', '1', '0', '9', '40325', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Vengeful Spirit - Spirit Strike'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '23109', '4', '0', '5', '1', '0', '4', '40314', '0', '0', '0', '40000', '40000', '0', '100', '0', '0', 'Vengeful Spirit - Spirit Volley'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22953', '4', '0', '5', '1', '0', '10', '15496', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Wrathbone Flayer - Cleave'); +REPLACE INTO `creature_ai_scripts` VALUES ('8606', '12340', '22953', '4', '0', '5', '1', '0', '7', '39544', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Wrathbone Flayer - Ignored'); + +INSERT INTO `world_db_version` VALUES ('129', '20230709-00_hardcoded_ai_scripts'); diff --git a/src/scripts/InstanceScripts/Tbc/BlackTemple/Raid_BlackTemple.cpp b/src/scripts/InstanceScripts/Tbc/BlackTemple/Raid_BlackTemple.cpp index 82008af14..61fa5cf67 100644 --- a/src/scripts/InstanceScripts/Tbc/BlackTemple/Raid_BlackTemple.cpp +++ b/src/scripts/InstanceScripts/Tbc/BlackTemple/Raid_BlackTemple.cpp @@ -315,29 +315,6 @@ public: ////////////////////////////////////////////////////////////////////////////////////////// // Beast AIs -class DragonTurtleAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new DragonTurtleAI(c); } - explicit DragonTurtleAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(DRAGON_TRUTLE_SHELL_SHIELD, 10.0f, TARGET_SELF, 0, 25); - addAISpell(DRAGON_TURTLE_WATER_SPIT, 8.0f, TARGET_ATTACKING, 3, 20); - } -}; - -class LeviathanAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new LeviathanAI(c); } - explicit LeviathanAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(LEVIATHAN_DEBILITATING_SPRAY, 8.0f, TARGET_RANDOM_SINGLE, 3, 20); - addAISpell(LEVIATHAN_POISON_SPIT, 8.0f, TARGET_RANDOM_SINGLE, 3, 25); - addAISpell(LEVIATHAN_TAIL_SWEEP, 7.0f, TARGET_SELF, 0, 30); - } -}; - class MutantWarHoundAI : public CreatureAIScript { public: @@ -351,81 +328,10 @@ public: } }; -class ShadowmoonRidingHoundAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new ShadowmoonRidingHoundAI(c); } - explicit ShadowmoonRidingHoundAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SHADOWMOON_RIDING_HOUND_CARNIVOROUS_BITE, 10.0f, TARGET_ATTACKING, 0, 20); - addAISpell(SHADOWMOON_RIDING_HOUND_CHARGE, 8.0f, TARGET_RANDOM_SINGLE, 0, 35); - addAISpell(SHADOWMOON_RIDING_HOUND_ENRAGE, 6.0f, TARGET_SELF, 0, 40); - } -}; ////////////////////////////////////////////////////////////////////////////////////////// // Demon AIs -class SisterOfPleasureAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new SisterOfPleasureAI(c); } - explicit SisterOfPleasureAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SISTER_OF_PLEASURE_GREATER_HEAL, 10.0f, TARGET_RANDOM_FRIEND, 2, 45); - addAISpell(SISTER_OF_PLEASURE_HOLY_NOVA, 10.0f, TARGET_SELF, 0, 20); - addAISpell(SISTER_OF_PLEASURE_SHARED_BONDS, 5.0f, TARGET_ATTACKING, 0, 25); - addAISpell(SISTER_OF_PLEASURE_SHELL_OF_LIFE, 7.0f, TARGET_SELF, 1, 45); - } -}; - -class SisterOfPainAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new SisterOfPainAI(c); } - explicit SisterOfPainAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SISTER_OF_PAIN_LASH_OF_PAIN, 10.0f, TARGET_ATTACKING, 0, 25); - addAISpell(SISTER_OF_PAIN_PAINFUL_RAGE, 5.0f, TARGET_SELF, 0, 60); - addAISpell(SISTER_OF_PAIN_SHADOW_WORD_PAIN, 10.0f, TARGET_RANDOM_SINGLE, 0, 25); - addAISpell(SISTER_OF_PAIN_SHARED_BONDS, 5.0f, TARGET_ATTACKING, 0, 25); - addAISpell(SISTER_OF_PAIN_SHELL_OF_PAIN, 7.0f, TARGET_SELF, 1, 45); - } -}; - -class PriestessOfDementiaAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new PriestessOfDementiaAI(c); } - explicit PriestessOfDementiaAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(PRIESTESS_OF_DEMENTIA_CONFUSION, 8.0f, TARGET_SELF, 0, 30); - addAISpell(PRIESTESS_OF_DEMENTIA_DEMENTIA, 5.0f, TARGET_SELF, 0, 60); - } -}; - -class PriestessOfDelightAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new PriestessOfDelightAI(c); } - explicit PriestessOfDelightAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(PRIESTESS_OF_DELIGHT_CURSE_OF_VITALITY, 10.0f, TARGET_RANDOM_SINGLE, 0, 30); - } -}; - -class IllidariNightlordAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new IllidariNightlordAI(c); } - explicit IllidariNightlordAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ILLIDARI_NIGHTLORD_SUMMON_SHADOWFIENDS, 7.0f, TARGET_SELF, 0, 45); // does it work? - addAISpell(ILLIDARI_NIGHTLORD_SHADOW_INFERNO, 10.0f, TARGET_SELF, 0, 25); - addAISpell(ILLIDARI_NIGHTLORD_FEAR, 7.0f, TARGET_SELF, 1, 30); - addAISpell(ILLIDARI_NIGHTLORD_CURSE_OF_MENDING, 8.0f, TARGET_RANDOM_SINGLE, 2, 35); - } -}; class IllidariHeartseekerAI : public CreatureAIScript { @@ -433,16 +339,6 @@ public: static CreatureAIScript* Create(Creature* c) { return new IllidariHeartseekerAI(c); } explicit IllidariHeartseekerAI(Creature* pCreature) : CreatureAIScript(pCreature) { - auto bleakheart = addAISpell(ILLIDARI_HEARTSEEKER_CURSE_OF_THE_BLEAKHEART, 8.0f, TARGET_RANDOM_SINGLE, 0, 40); - bleakheart->setMinMaxDistance(0.0f, 30.0f); - - mRapidShot = addAISpell(ILLIDARI_HEARTSEEKER_RAPID_SHOT, 7.0f, TARGET_SELF, 8, 0); - - auto shoot = addAISpell(ILLIDARI_HEARTSEEKER_SHOOT, 80.0f, TARGET_ATTACKING, 0, 2); - shoot->setMinMaxDistance(0.0f, 30.0f); - - auto shot = addAISpell(ILLIDARI_HEARTSEEKER_SKELETON_SHOT, 7.0f, TARGET_RANDOM_SINGLE, 0, 25); - shot->setMinMaxDistance(0.0f, 30.0f); } void OnCombatStart(Unit* pTarget) override @@ -466,111 +362,13 @@ public: } } } - - CreatureAISpells* mRapidShot; -}; - -class IllidariFearbringerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new IllidariFearbringerAI(c); } - explicit IllidariFearbringerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ILLIDARI_FEARBRINGER_ILLIDARI_FLAMES, 8.0f, TARGET_ATTACKING, 2, 25); - addAISpell(ILLIDARI_FEARBRINGER_RAIN_OF_CHAOS, 7.0f, TARGET_RANDOM_DESTINATION, 0, 35); - addAISpell(ILLIDARI_FEARBRINGER_WAR_STOMP, 8.0f, TARGET_SELF, 0, 35); - } -}; - -class IllidariDefilerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new IllidariDefilerAI(c); } - explicit IllidariDefilerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ILLIDARI_DEFILER_BANISH, 8.0f, TARGET_RANDOM_SINGLE, 1, 30); - addAISpell(ILLIDARI_DEFILER_CURSE_OF_AGONY, 7.0f, TARGET_RANDOM_SINGLE, 0, 45); - addAISpell(ILLIDARI_DEFILER_FEL_IMMOLATE, 8.0f, TARGET_RANDOM_SINGLE, 2, 25); - addAISpell(ILLIDARI_DEFILER_RAIN_OF_CHAOS, 7.0f, TARGET_RANDOM_DESTINATION, 6, 35); - } -}; - -class IllidariCenturionAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new IllidariCenturionAI(c); } - explicit IllidariCenturionAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ILLIDARI_CENTURION_CLEAVE, 10.0f, TARGET_ATTACKING, 0, 20); - addAISpell(ILLIDARI_CENTURION_SONIC_STRIKE, 8.0f, TARGET_SELF, 0, 35); - } -}; - -class IllidariBoneslicerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new IllidariBoneslicerAI(c); } - explicit IllidariBoneslicerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ILLIDARI_BONESLICER_CLOAK_OF_SHADOWS, 8.0f, TARGET_SELF, 0, 25); - addAISpell(ILLIDARI_BONESLICER_GOUGE, 7.0f, TARGET_ATTACKING); - addAISpell(ILLIDARI_BONESLICER_SHADOWSTEP, 7.0f, TARGET_ATTACKING, 0, 30); - } }; ////////////////////////////////////////////////////////////////////////////////////////// // Humanoid AIs -class AshtongueBattlelordAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AshtongueBattlelordAI(c); } - explicit AshtongueBattlelordAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ASHTONGUE_BATTLELORD_CLEAVE, 10.0f, TARGET_ATTACKING, 0, 15); - addAISpell(ASHTONGUE_BATTLELORD_CONCUSSION_BLOW, 8.0f, TARGET_ATTACKING, 0, 30); - addAISpell(ASHTONGUE_BATTLELORD_CONCUSSIVE_THROW, 8.0f, TARGET_RANDOM_SINGLE, 0, 25); - addAISpell(ASHTONGUE_BATTLELORD_ENRAGE, 4.0f, TARGET_SELF, 0, 50); - } -}; -class AshtongueDefenderAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AshtongueDefenderAI(c); } - explicit AshtongueDefenderAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ASHTONGUE_DEFENDER_DEBILITATING_STRIKE, 10.0f, TARGET_ATTACKING, 0, 20); - addAISpell(ASHTONGUE_DEFENDER_SHIELD_BASH, 7.0f, TARGET_ATTACKING, 0, 25); - } -}; +//\ todo Add Totem AIs to AshtonMystic -class AshtongueElementalistAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AshtongueElementalistAI(c); } - explicit AshtongueElementalistAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ASHTONGUE_ELEMENTALIST_LIGHTNING_BOLT, 8.0f, TARGET_ATTACKING, 1, 20); - addAISpell(ASHTONGUE_ELEMENTALIST_RAID_OF_FIRE, 6.0f, TARGET_RANDOM_DESTINATION, 0, 25); - } -}; - -//\ todo Add Totem AIs -class AshtongueMysticAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AshtongueMysticAI(c); } - explicit AshtongueMysticAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ASHTONGUE_MYSTIC_BLOODLUST, 5.0f, TARGET_SELF, 0, 45); - addAISpell(ASHTONGUE_MYSTIC_CHAIN_HEAL, 6.0f, TARGET_RANDOM_FRIEND, 3, 35); - addAISpell(ASHTONGUE_MYSTIC_CYCLONE_TOTEM, 7.0f, TARGET_SELF, 0, 35); - addAISpell(ASHTONGUE_MYSTIC_FLAME_SHOCK, 8.0f, TARGET_ATTACKING, 0, 25); - addAISpell(ASHTONGUE_MYSTIC_FROST_SHOCK, 8.0f, TARGET_ATTACKING, 0, 25); - addAISpell(ASHTONGUE_MYSTIC_SEARING_TOTEM, 7.0f, TARGET_SELF, 0, 35); - addAISpell(ASHTONGUE_MYSTIC_SUMMON_WINDFURY_TOTEM, 7.0f, TARGET_SELF, 0, 35); - } -}; class AshtonguePrimalistAI : public CreatureAIScript { @@ -578,10 +376,6 @@ public: static CreatureAIScript* Create(Creature* c) { return new AshtonguePrimalistAI(c); } explicit AshtonguePrimalistAI(Creature* pCreature) : CreatureAIScript(pCreature) { - addAISpell(ASHTONGUE_PRIMALIST_MULTISHOT, 8.0f, TARGET_ATTACKING, 0, 40); - addAISpell(ASHTONGUE_PRIMALIST_SHOOT, 80.0f, TARGET_ATTACKING, 0, 1); - addAISpell(ASHTONGUE_PRIMALIST_SWEEPING_WING_CLIP, 8.0f, TARGET_ATTACKING, 0, 15, false, true); - addAISpell(ASHTONGUE_PRIMALIST_WYVERN_STRING, 7.0f, TARGET_RANDOM_SINGLE, 0, 25); } void OnCombatStart(Unit* pTarget) override @@ -607,34 +401,6 @@ public: } }; -class AshtongueRogueAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AshtongueRogueAI(c); } - explicit AshtongueRogueAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ASHTONGUE_ROGUE_DEBILITATING_POISON, 7.0f, TARGET_ATTACKING, 0, 30); - addAISpell(ASHTONGUE_ROGUE_EVISCERATE, 10.0f, TARGET_ATTACKING, 0, 15); - } -}; - -class AshtongueSpiritbinderAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AshtongueSpiritbinderAI(c); } - explicit AshtongueSpiritbinderAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ASHTONGUE_SPIRITBINDER_CHAIN_HEAL, 7.0f, TARGET_RANDOM_FRIEND, 1, 25); - - if (!_isHeroic()) // Guessed - addAISpell(ASHTONGUE_SPIRITBINDER_SPIRIT_HEAL, 7.0f, TARGET_SELF, 0, 25); - else - addAISpell(ASHTONGUE_SPIRITBINDER_SPIRIT_HEAL2, 7.0f, TARGET_SELF, 0, 25); - - addAISpell(ASHTONGUE_SPIRITBINDER_SPIRIT_MEND, 8.0f, TARGET_RANDOM_FRIEND, 0, 25); - } -}; - //\brief Completely guessed mechanics class AshtongueStalkerAI : public CreatureAIScript { @@ -642,249 +408,13 @@ public: static CreatureAIScript* Create(Creature* c) { return new AshtongueStalkerAI(c); } explicit AshtongueStalkerAI(Creature* pCreature) : CreatureAIScript(pCreature) { - addAISpell(ASHTONGUE_STALKER_BLIND, 7.0f, TARGET_RANDOM_SINGLE, 1, 25); - addAISpell(ASHTONGUE_STALKER_INSTANT_POISON, 10.0f, TARGET_ATTACKING, 0, 20); - addAISpell(ASHTONGUE_STALKER_MINDNUMBING_POISON, 8.0f, TARGET_RANDOM_SINGLE, 0, 20); _applyAura(ASHTONGUE_STALKER_STEATH); } void OnCombatStop(Unit* /*pTarget*/) override { if (isAlive()) - { _applyAura(ASHTONGUE_STALKER_STEATH); - } - } -}; - -class AshtongueStormcallerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AshtongueStormcallerAI(c); } - explicit AshtongueStormcallerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ASHTONGUE_STORMCALLER_CHAIN_LIGHTNING, 7.0f, TARGET_ATTACKING, 3, 35); - addAISpell(ASHTONGUE_STORMCALLER_LIGHTNING_BOLT, 10.0f, TARGET_ATTACKING, 2, 20); - addAISpell(ASHTONGUE_STORMCALLER_LIGHTNING_SHIELD, 10.0f, TARGET_SELF, 0, 50); - } -}; - -class BonechewerBehemothAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerBehemothAI(c); } - explicit BonechewerBehemothAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - pCharge = addAISpell(BONECHEWER_BEHEMOTH_BEHEMOTH_CHARGE, 0.0f, TARGET_ATTACKING, 0, 20); - addAISpell(BONECHEWER_BEHEMOTH_ENRAGE, 5.0f, TARGET_SELF, 0, 45); - addAISpell(BONECHEWER_BEHEMOTH_FEL_STOMP, 7.0f, TARGET_SELF, 0, 30); - addAISpell(BONECHEWER_BEHEMOTH_FIERY_COMET, 6.0f, TARGET_RANDOM_DESTINATION, 1, 30); - addAISpell(BONECHEWER_BEHEMOTH_METEOR, 5.0f, TARGET_RANDOM_DESTINATION, 2, 40); - } - - void OnCombatStart(Unit* /*pTarget*/) override - { - if (pCharge != nullptr) - { - _castAISpell(pCharge); - } - } - - CreatureAISpells* pCharge; -}; - -class BonechewerBladeFuryAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerBladeFuryAI(c); } - explicit BonechewerBladeFuryAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(BONECHEWER_BLADE_FURY_WHIRLWIND, 7.0f, TARGET_ATTACKING, 8, 40); - } -}; - -class BonechewerBloodProphetAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerBloodProphetAI(c); } - explicit BonechewerBloodProphetAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(BONECHEWER_BLOOD_PROPHET_BLOOD_DRAIN, 6.0f, TARGET_ATTACKING, 5, 30); - addAISpell(BONECHEWER_BLOOD_PROPHET_BLOODBOLT, 7.0f, TARGET_RANDOM_SINGLE, 2, 25); - addAISpell(BONECHEWER_BLOOD_PROPHET_ENRAGE, 5.0f, TARGET_SELF, 0, 50); - - if (_isHeroic()) - addAISpell(BONECHEWER_BLOOD_PROPHET_PROPHECY_OF_BLOOD, 10.0f, TARGET_RANDOM_SINGLE, 0, 30); - else - addAISpell(BONECHEWER_BLOOD_PROPHET_PROPHECY_OF_BLOOD2, 10.0f, TARGET_RANDOM_SINGLE, 0, 30); - } -}; - -class BonechewerBrawlerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerBrawlerAI(c); } - explicit BonechewerBrawlerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(BONECHEWER_BRAWLER_FRENZY, 7.0f, TARGET_SELF, 0, 30); - } -}; - -class BonechewerCombatantAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerCombatantAI(c); } - explicit BonechewerCombatantAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(BONECHEWER_COMBATANT_FRENZY, 7.0f, TARGET_SELF, 0, 45); - } -}; - -class BonechewerShieldDiscipleAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerShieldDiscipleAI(c); } - explicit BonechewerShieldDiscipleAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - pIntervene = addAISpell(BONECHEWER_SHIELD_DISCIPLE_INTERVENE, 0.0f, TARGET_ATTACKING, 0, 20); - addAISpell(BONECHEWER_SHIELD_DISCIPLE_SHIELD_BASH, 8.0f, TARGET_ATTACKING, 0, 25); - addAISpell(BONECHEWER_SHIELD_DISCIPLE_SHIELD_WALL, 8.0f, TARGET_SELF, 0, 35); - addAISpell(BONECHEWER_SHIELD_DISCIPLE_THROW_SHIELD, 7.0f, TARGET_RANDOM_SINGLE, 0, 30); - } - - void OnCombatStart(Unit* /*pTarget*/) override - { - if (pIntervene != nullptr) - { - _castAISpell(pIntervene); - } - } - - CreatureAISpells* pIntervene; -}; - -class BonechewerSpectatorAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerSpectatorAI(c); } - explicit BonechewerSpectatorAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - pCharge = addAISpell(BONECHEWER_SPECTATOR_CHARGE, 0.0f, TARGET_ATTACKING, 0, 20); - addAISpell(BONECHEWER_SPECTATOR_CLEAVE, 10.0f, TARGET_ATTACKING, 0, 25); - addAISpell(BONECHEWER_SPECTATOR_MORTAL_WOUND, 7.0f, TARGET_ATTACKING, 0, 15); - addAISpell(BONECHEWER_SPECTATOR_STRIKE, 10.0f, TARGET_ATTACKING, 0, 10); - addAISpell(BONECHEWER_SPECTATOR_SUNDER_ARMOR, 7.0f, TARGET_ATTACKING, 0, 20); - } - - void OnCombatStart(Unit* /*pTarget*/) override - { - if (pCharge != nullptr) - { - _castAISpell(pCharge); - } - } - - CreatureAISpells* pCharge; -}; - -class BonechewerTaskmasterAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerTaskmasterAI(c); } - explicit BonechewerTaskmasterAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(BONECHEWER_TASKMASTER_DISGRUNTLED, 5.0f, TARGET_SELF, 0, 45); - addAISpell(BONECHEWER_TASKMASTER_FURY, 8.0f, TARGET_SELF, 0, 15); - } -}; - -class BonechewerWorkerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new BonechewerWorkerAI(c); } - explicit BonechewerWorkerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(BONECHEWER_WORKER_THROW_PICK, 8.0f, TARGET_RANDOM_SINGLE, 0, 15); - } -}; - -class CharmingCourtesanAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new CharmingCourtesanAI(c); } - explicit CharmingCourtesanAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(CHARMING_COURTESAN_INFATUATION, 7.0f, TARGET_RANDOM_SINGLE, 20, 40); - addAISpell(CHARMING_COURTESAN_POISONOUS_THROW, 8.0f, TARGET_RANDOM_SINGLE, 0, 20); - } -}; - -class CoilskarGeneralAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new CoilskarGeneralAI(c); } - explicit CoilskarGeneralAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(COILSKAR_GENERAL_BOOMING_VOICE, 7.0f, TARGET_SELF, 0, 35); - addAISpell(COILSKAR_GENERAL_FREE_FRIEND, 7.0f, TARGET_RANDOM_FRIEND, 0, 20); - } -}; - -//\todo Is it Ranged unit throwing spears all the time? -class CoilskarHarpoonerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new CoilskarHarpoonerAI(c); } - explicit CoilskarHarpoonerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - pMark = addAISpell(COILSKAR_HARPOONER_HARPOONERS_MARK, 7.0f, TARGET_RANDOM_SINGLE, 0, 35); - addAISpell(COILSKAR_HARPOONER_HOOKED_NET, 7.0f, TARGET_RANDOM_SINGLE, 0, 25); - addAISpell(COILSKAR_HARPOONER_SPEAR_THROW, 8.0f, TARGET_ATTACKING, 0, 15); - } - - void OnCombatStart(Unit* /*pTarget*/) override - { - if (pMark != nullptr) - { - _castAISpell(pMark); - } - } - - CreatureAISpells* pMark; -}; - -class CoilskarSeacallerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new CoilskarSeacallerAI(c); } - explicit CoilskarSeacallerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(COILSKAR_SEACALLER_FORKED_LIGHTNING, 8.0f, TARGET_SELF, 2, 20); - addAISpell(COILSKAR_SEACALLER_HURRICANE, 8.0f, TARGET_RANDOM_DESTINATION, 20, 35); - addAISpell(COILSKAR_SEACALLER_SUMMON_GEYSER, 7.0f, TARGET_RANDOM_SINGLE, 2, 25); - } -}; - -class CoilskarSoothsayerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new CoilskarSoothsayerAI(c); } - explicit CoilskarSoothsayerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(COILSKAR_SOOTHSAYER_HOLY_NOVA, 10.0f, TARGET_SELF, 0, 20); - addAISpell(COILSKAR_SOOTHSAYER_RESTORATION, 8.0f, TARGET_RANDOM_FRIEND, 2, 35); - } -}; - -class CoilskarWranglerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new CoilskarWranglerAI(c); } - explicit CoilskarWranglerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(COILSKAR_WRANGLER_CLEAVE, 10.0f, TARGET_ATTACKING, 0, 20); - addAISpell(COILSKAR_WRANGLER_ELECTRIC_SPUR, 8.0f, TARGET_SELF, 3, 45); - addAISpell(COILSKAR_WRANGLER_LIGHTNING_PROD, 8.0f, TARGET_RANDOM_SINGLE, 3, 25); } }; @@ -956,18 +486,6 @@ public: } }; -class DragonmawWyrmcallerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new DragonmawWyrmcallerAI(c); } - explicit DragonmawWyrmcallerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(DRAGONMAW_WYRMCALLER_CLEAVE, 10.0f, TARGET_ATTACKING, 0, 15); - addAISpell(DRAGONMAW_WYRMCALLER_FIXATE, 7.0f, TARGET_RANDOM_SINGLE, 0, 20); - addAISpell(DRAGONMAW_WYRMCALLER_JAB, 8.0f, TARGET_ATTACKING, 0, 25); - } -}; - class EnslavedServantAI : public CreatureAIScript { public: @@ -997,16 +515,6 @@ public: int32_t mHealthResetTimer; }; -class HandOfGorefiendAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new HandOfGorefiendAI(c); } - explicit HandOfGorefiendAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(HAND_OF_GOREFIEND_FRENZY, 6.0f, TARGET_SELF, 0, 45); - } -}; - //\todo Mechanics are guessed. I'm also not sure if it's not typical caster unit class IllidariArchonAI : public CreatureAIScript { @@ -1070,18 +578,6 @@ public: } }; -class IllidariBloodLordAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new IllidariBloodLordAI(c); } - explicit IllidariBloodLordAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ILLIDARI_BLOOD_LORD_DIVINE_SHIELD, 8.0f, TARGET_SELF, 0, 30); - addAISpell(ILLIDARI_BLOOD_LORD_HAMMER_OF_JUSTICE, 9.0f, TARGET_ATTACKING, 0, 20); - addAISpell(ILLIDARI_BLOOD_LORD_JUDGEMENT_OF_COMMAND, 8.0f, TARGET_ATTACKING, 0, 25); - } -}; - //\todo Should be summoned by Priestess of Dementia class ImageOfDementiaAI : public CreatureAIScript { @@ -1099,28 +595,6 @@ public: } }; -class ShadowmoonBloodMageAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new ShadowmoonBloodMageAI(c); } - explicit ShadowmoonBloodMageAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SHADOWMOON_BLOOD_MAGE_BLOOD_SIPHON, 8.0f, TARGET_SELF, 0, 35); - addAISpell(SHADOWMOON_BLOOD_MAGE_BLOOD_BOLT, 9.0f, TARGET_RANDOM_SINGLE, 3, 25); - } -}; - -class ShadowmoonChampionAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new ShadowmoonChampionAI(c); } - explicit ShadowmoonChampionAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SHADOWMOON_CHAMPION_CHAOTIC_LIGHT, 8.0f, TARGET_ATTACKING, 0, 25); - addAISpell(SHADOWMOON_CHAMPION_WHIRLING_BLADE, 8.0f, TARGET_RANDOM_SINGLE, 1, 30); // I must check its mechanics - } -}; - class ShadowmoonDeathshaperAI : public CreatureAIScript { public: @@ -1173,14 +647,6 @@ public: } }; -//\todo No entry in my DB, but AI may stay :)? -class ShadowmoonFallenAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new ShadowmoonFallenAI(c); } - explicit ShadowmoonFallenAI(Creature* pCreature) : CreatureAIScript(pCreature) {} -}; - class ShadowmoonHoundmasterAI : public CreatureAIScript { public: @@ -1219,26 +685,6 @@ public: } }; -class ShadowmoonReaverAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new ShadowmoonReaverAI(c); } - explicit ShadowmoonReaverAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SHADOWMOON_REAVER_SPELL_ABSORPTION, 8.0f, TARGET_SELF, 0, 35); - } -}; - -class ShadowmoonSoldierAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new ShadowmoonSoldierAI(c); } - explicit ShadowmoonSoldierAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SHADOWMOON_SOLDIER_STRIKE, 10.0f, TARGET_ATTACKING, 0, 15); - } -}; - //\todo Haven't found informations about Shield Wall ability class ShadowmoonWeaponMasterAI : public CreatureAIScript { @@ -1311,27 +757,6 @@ public: } }; -class SpellboundAttendantAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new SpellboundAttendantAI(c); } - explicit SpellboundAttendantAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SPELLBOUND_ATTENDANT_KICK, 9.0f, TARGET_ATTACKING, 0, 25); - addAISpell(SPELLBOUND_ATTENDANT_SLEEP, 8.0f, TARGET_RANDOM_SINGLE, 1, 25); - } -}; - -class TempleConcubineAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new TempleConcubineAI(c); } - explicit TempleConcubineAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(TEMPLE_CONCUBINE_LOVE_TAP, 9.0f, TARGET_ATTACKING, 0, 25); - addAISpell(TEMPLE_CONCUBINE_POLYMORPH, 7.0f, TARGET_RANDOM_SINGLE, 1, 25); - } -}; ////////////////////////////////////////////////////////////////////////////////////////// // Elemental AIs @@ -1356,26 +781,6 @@ public: CreatureAISpells* mStormBlink; }; -class AqueousSurgerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AqueousSurgerAI(c); } - explicit AqueousSurgerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(AQUEOUS_SURGER_POISON_BOLT_VOLLEY, 7.0f, TARGET_SELF, 0, 20); - } -}; - -class AqueousSpawnAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AqueousSpawnAI(c); } - explicit AqueousSpawnAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(AQUEOUS_SPAWN_MERGE, 7.0f, TARGET_SELF, 11, 45); - addAISpell(AQUEOUS_SPAWN_SLUDGE_NOVA, 8.0f, TARGET_RANDOM_SINGLE, 3, 20); - } -}; class AqueousLordAI : public CreatureAIScript { @@ -1405,29 +810,6 @@ public: uint32_t mAqueousTimerId; }; -////////////////////////////////////////////////////////////////////////////////////////// -// Mechanical AIs -class PromenadeSentinelAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new PromenadeSentinelAI(c); } - explicit PromenadeSentinelAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(PROMENADE_SENTINEL_L5_ARCANE_CHARGE, 8.0f, TARGET_RANDOM_SINGLE, 3, 35); - } -}; - -////////////////////////////////////////////////////////////////////////////////////////// -// Uncategorized AIs -class AngeredSoulFragmentAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new AngeredSoulFragmentAI(c); } - explicit AngeredSoulFragmentAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(ANGERED_SOUL_FRAGMENT_ANGER, 10.0f, TARGET_SELF, 3, 25); - } -}; ////////////////////////////////////////////////////////////////////////////////////////// // Undead AIs @@ -1462,52 +844,6 @@ public: } }; -class ShadowyConstructAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new ShadowyConstructAI(c); } - explicit ShadowyConstructAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SHADOWY_CONSTRUCT_ATROPHY, 10.0f, TARGET_ATTACKING, 0, 45); - } -}; - -class SufferingSoulFragmentAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new SufferingSoulFragmentAI(c); } - explicit SufferingSoulFragmentAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(SUFFERING_SOUL_FRAGMENT_SOUL_BLAST, 8.0f, TARGET_SELF, 2, 30); - } -}; - -//\todo Teron Gorefiend transforms random player into it with those abilities, but AI might be handy too (too overpowered?) - cannot check (no npc in DB) -class VangefulSpiritAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new VangefulSpiritAI(c); } - explicit VangefulSpiritAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(VANGEFUL_SPIRIT_SPIRIT_CHAINS, 8.0f, TARGET_SELF, 0, 25); - addAISpell(VANGEFUL_SPIRIT_SPIRIT_LANCE, 6.0f, TARGET_RANDOM_SINGLE, 0, 35); - addAISpell(VANGEFUL_SPIRIT_SPIRIT_SHIELD, 6.0f, TARGET_SELF, 0, 50); - addAISpell(VANGEFUL_SPIRIT_SPIRIT_STRIKE, 9.0f, TARGET_ATTACKING, 0, 15); - addAISpell(VANGEFUL_SPIRIT_SPIRIT_VOLLEY, 4.0f, TARGET_SELF, 0, 40); - } -}; - -class WrathboneFlayerAI : public CreatureAIScript -{ -public: - static CreatureAIScript* Create(Creature* c) { return new WrathboneFlayerAI(c); } - explicit WrathboneFlayerAI(Creature* pCreature) : CreatureAIScript(pCreature) - { - addAISpell(WRATHBONE_FLAYER_CLEAVE, 10.0f, TARGET_ATTACKING, 0, 15); - addAISpell(WRATHBONE_FLAYER_IGNORED, 7.0f, TARGET_ATTACKING, 0, 25); - } -}; - // Bosses // There are also other sounds, but Idk where they should go (mostly specials and enrage - which erange spell is that O_O) @@ -5308,76 +4644,26 @@ void SetupBlackTemple(ScriptMgr* mgr) ////////////////////////////////////////////////////////////////////////////////////////// // Mobs - mgr->register_creature_script(CN_DRAGON_TURTLE, &DragonTurtleAI::Create); - mgr->register_creature_script(CN_LEVIATHAN, &LeviathanAI::Create); + mgr->register_creature_script(CN_MUTANT_WAR_HOUND, &MutantWarHoundAI::Create); - mgr->register_creature_script(CN_SHADOWMOON_RIDING_HOUND, &ShadowmoonRidingHoundAI::Create); - mgr->register_creature_script(CN_SISTER_OF_PLEASURE, &SisterOfPleasureAI::Create); - mgr->register_creature_script(CN_SISTER_OF_PAIN, &SisterOfPainAI::Create); - mgr->register_creature_script(CN_PRIESTESS_OF_DEMENTIA, &PriestessOfDementiaAI::Create); - mgr->register_creature_script(CN_PRIESTESS_OF_DELIGHT, &PriestessOfDelightAI::Create); - mgr->register_creature_script(CN_ILLIDARI_NIGHTLORD, &IllidariNightlordAI::Create); mgr->register_creature_script(CN_ILLIDARI_HEARTSEEKER, &IllidariHeartseekerAI::Create); - mgr->register_creature_script(CN_ILLIDARI_FEARBRINGER, &IllidariFearbringerAI::Create); - mgr->register_creature_script(CN_ILLIDARI_DEFILER, &IllidariDefilerAI::Create); - mgr->register_creature_script(CN_ILLIDARI_CENTURION, &IllidariCenturionAI::Create); - mgr->register_creature_script(CN_ILLIDARI_BONESLICER, &IllidariBoneslicerAI::Create); - mgr->register_creature_script(CN_ASHTONGUE_BATTLELORD, &AshtongueBattlelordAI::Create); - mgr->register_creature_script(CN_ASHTONGUE_DEFENDER, &AshtongueDefenderAI::Create); - mgr->register_creature_script(CN_ASHTONGUE_ELEMENTALIST, &AshtongueElementalistAI::Create); - mgr->register_creature_script(CN_ASHTONGUE_MYSTIC, &AshtongueMysticAI::Create); mgr->register_creature_script(CN_ASHTONGUE_PRIMALIST, &AshtonguePrimalistAI::Create); - mgr->register_creature_script(CN_ASHTONGUE_ROGUE, &AshtongueRogueAI::Create); - mgr->register_creature_script(CN_ASHTONGUE_SPIRITBINDER, &AshtongueSpiritbinderAI::Create); mgr->register_creature_script(CN_ASHTONGUE_STALKER, &AshtongueStalkerAI::Create); - mgr->register_creature_script(CN_ASHTONGUE_STORMCALLER, &AshtongueStormcallerAI::Create); - mgr->register_creature_script(CN_BONECHEWER_BEHEMOTH, &BonechewerBehemothAI::Create); - mgr->register_creature_script(CN_BONECHEWER_BLADE_FURY, &BonechewerBladeFuryAI::Create); - mgr->register_creature_script(CN_BONECHEWER_BLOOD_PROPHET, &BonechewerBloodProphetAI::Create); - mgr->register_creature_script(CN_BONECHEWER_BRAWLER, &BonechewerBrawlerAI::Create); - mgr->register_creature_script(CN_BONECHEWER_COMBATANT, &BonechewerCombatantAI::Create); - mgr->register_creature_script(CN_BONECHEWER_SHIELD_DISCIPLE, &BonechewerShieldDiscipleAI::Create); - mgr->register_creature_script(CN_BONECHEWER_SPECTATOR, &BonechewerSpectatorAI::Create); - mgr->register_creature_script(CN_BONECHEWER_TASKMASTER, &BonechewerTaskmasterAI::Create); - mgr->register_creature_script(CN_BONECHEWER_WORKER, &BonechewerWorkerAI::Create); - mgr->register_creature_script(CN_CHARMING_COURTESAN, &CharmingCourtesanAI::Create); - mgr->register_creature_script(CN_COILSKAR_GENERAL, &CoilskarGeneralAI::Create); - mgr->register_creature_script(CN_COILSKAR_HARPOONER, &CoilskarHarpoonerAI::Create); - mgr->register_creature_script(CN_COILSKAR_SEACALLER, &CoilskarSeacallerAI::Create); - mgr->register_creature_script(CN_COILSKAR_SOOTHSAYER, &CoilskarSoothsayerAI::Create); - mgr->register_creature_script(CN_COILSKAR_WRANGLER, &CoilskarWranglerAI::Create); mgr->register_creature_script(CN_DRAGONMAW_SKY_STALKER, &DragonmawSkyStalkerAI::Create); mgr->register_creature_script(CN_DRAGONMAW_WIND_REAVER, &DragonmawWindReaverAI::Create); - mgr->register_creature_script(CN_DRAGONMAW_WYRMCALLER, &DragonmawWyrmcallerAI::Create); mgr->register_creature_script(CN_ENSLAVED_SERVANT, &EnslavedServantAI::Create); - mgr->register_creature_script(CN_HAND_OF_GOREFIEND, &HandOfGorefiendAI::Create); mgr->register_creature_script(CN_ILLIDARI_ARCHON, &IllidariArchonAI::Create); mgr->register_creature_script(CN_ILLIDARI_ASSASSIN, &IllidariAssassinAI::Create); mgr->register_creature_script(CN_ILLIDARI_BATTLEMAGE, &IllidariBattlemageAI::Create); - mgr->register_creature_script(CN_ILLIDARI_BLOOD_LORD, &IllidariBloodLordAI::Create); mgr->register_creature_script(CN_IMAGE_OF_DEMENTIA, &ImageOfDementiaAI::Create); - mgr->register_creature_script(CN_SHADOWMOON_BLOOD_MAGE, &ShadowmoonBloodMageAI::Create); - mgr->register_creature_script(CN_SHADOWMOON_CHAMPION, &ShadowmoonChampionAI::Create); mgr->register_creature_script(CN_SHADOWMOON_DEATHSHAPER, &ShadowmoonDeathshaperAI::Create); - mgr->register_creature_script(CN_SHADOWMOON_FALLEN, &ShadowmoonFallenAI::Create); mgr->register_creature_script(CN_SHADOWMOON_HOUNDMASTER, &ShadowmoonHoundmasterAI::Create); - mgr->register_creature_script(CN_SHADOWMOON_REAVER, &ShadowmoonReaverAI::Create); - mgr->register_creature_script(CN_SHADOWMOON_SOLDIER, &ShadowmoonSoldierAI::Create); mgr->register_creature_script(CN_SHADOWMOON_WEAPON_MASTER, &ShadowmoonWeaponMasterAI::Create); - mgr->register_creature_script(CN_SPELLBOUND_ATTENDANT, &SpellboundAttendantAI::Create); - mgr->register_creature_script(CN_TEMPLE_CONCUBINE, &TempleConcubineAI::Create); mgr->register_creature_script(CN_STORM_FURY, &StormFuryAI::Create); - mgr->register_creature_script(CN_AQUEOUS_SURGER, &AqueousSurgerAI::Create); - mgr->register_creature_script(CN_AQUEOUS_SPAWN, &AqueousSpawnAI::Create); mgr->register_creature_script(CN_AQUEOUS_LORD, &AqueousLordAI::Create); - mgr->register_creature_script(CN_PROMENADE_SENTINEL, &PromenadeSentinelAI::Create); - mgr->register_creature_script(CN_ANGERED_SOUL_FRAGMENT, &AngeredSoulFragmentAI::Create); mgr->register_creature_script(CN_ENSLAVED_SOUL, &EnslavedSoulAI::Create); mgr->register_creature_script(CN_HUNGERING_SOUL_FRAGMENT, &HungeringSoulFragmentAI::Create); - mgr->register_creature_script(CN_SHADOWY_CONSTRUCT, &ShadowyConstructAI::Create); - mgr->register_creature_script(CN_SUFFERING_SOUL_FRAGMENT, &SufferingSoulFragmentAI::Create); - mgr->register_creature_script(CN_VANGEFUL_SPIRIT, &VangefulSpiritAI::Create); - mgr->register_creature_script(CN_WRATHBONE_FLAYER, &WrathboneFlayerAI::Create); + //Bosses //mgr->register_creature_script(CN_SUPREMUS, &SupremusAI::Create); diff --git a/src/world/Server/Master.cpp b/src/world/Server/Master.cpp index 19f1f85dd..83c190391 100644 --- a/src/world/Server/Master.cpp +++ b/src/world/Server/Master.cpp @@ -42,7 +42,7 @@ // DB version static const char* REQUIRED_CHAR_DB_VERSION = "20220415-00_account_instance_times"; -static const char* REQUIRED_WORLD_DB_VERSION = "20230519-07_locales_creature"; +static const char* REQUIRED_WORLD_DB_VERSION = "20230709-00_hardcoded_ai_scripts"; volatile bool Master::m_stopEvent = false;