diff options
author | Jeremy <Golrag@users.noreply.github.com> | 2024-02-26 22:33:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-26 22:33:07 +0100 |
commit | 409adfa7a5372dedd40d6f40650c901f6fd646a6 (patch) | |
tree | 01757abae94b4662985ae78d1bcb610516ba79bf | |
parent | 5f69c1fe0d3dd5db644102070bb25dd8de2c7934 (diff) |
Core/Battlegrounds: Isle of Conquest Rework (#29687)
-rw-r--r-- | sql/updates/world/master/2024_02_26_11_world.sql | 976 | ||||
-rw-r--r-- | src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp | 1184 | ||||
-rw-r--r-- | src/server/game/Battlegrounds/Zones/BattlegroundIC.h | 897 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 14 | ||||
-rw-r--r-- | src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp | 153 |
5 files changed, 1739 insertions, 1485 deletions
diff --git a/sql/updates/world/master/2024_02_26_11_world.sql b/sql/updates/world/master/2024_02_26_11_world.sql new file mode 100644 index 00000000000..52b601c0f4e --- /dev/null +++ b/sql/updates/world/master/2024_02_26_11_world.sql @@ -0,0 +1,976 @@ +SET @CGUID := 223912; +SET @OGUID := 166877; + +SET @SPAWNGROUP := 1201; + +DELETE FROM `spell_area` WHERE `spell` IN (68719, 68720); +INSERT INTO `spell_area` (`spell`, `area`, `gender`, `flags`) VALUES +(68719, 4710, 2, 0x3), +(68720, 4710, 2, 0x3); + +DELETE FROM `conditions` where `SourceTypeOrReferenceId` = 17 AND `SourceEntry` IN (68719, 68720); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(17, 0, 68720, 0, 0, 11, 4308, 1, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Quarry - Horde Controlled'), +(17, 0, 68720, 0, 0, 6, 67, 0, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Quarry - Team Horde'), +(17, 0, 68720, 0, 1, 11, 4309, 1, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Quarry - Alliance Controlled'), +(17, 0, 68720, 0, 1, 6, 469, 0, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Quarry - Team Alliance'), +(17, 0, 68719, 0, 0, 11, 4313, 1, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Oil Refinery - Horde Controlled'), +(17, 0, 68719, 0, 0, 6, 67, 0, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Oil Refinery - Team Horde'), +(17, 0, 68719, 0, 1, 11, 4314, 1, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Oil Refinery - Alliance Controlled'), +(17, 0, 68719, 0, 1, 6, 469, 0, 0, 0, 0, 0, '', 'Isle of Conquest - Spell - Oil Refinery - Team Alliance'); + +DELETE FROM `spawn_group_template` WHERE `groupId` BETWEEN @SPAWNGROUP+0 AND @SPAWNGROUP+1000; +INSERT INTO `spawn_group_template` (`groupId`, `groupName`, `groupFlags`) VALUES +(@SPAWNGROUP+0, 'Isle of Conquest - Horde Keep - Horde Controlled - Banner & Spirit Guide', 0x20), +(@SPAWNGROUP+1, 'Isle of Conquest - Horde Keep - Horde Contested - Banner', 0x20), +(@SPAWNGROUP+2, 'Isle of Conquest - Horde Keep - Alliance Contested - Banner', 0x20), +(@SPAWNGROUP+3, 'Isle of Conquest - Horde Keep - Alliance Controlled - Banner & Spirit Guide', 0x20), + +(@SPAWNGROUP+4, 'Isle of Conquest - Alliance Keep - Horde Controlled - Banner & Spirit Guide', 0x20), +(@SPAWNGROUP+5, 'Isle of Conquest - Alliance Keep - Horde Contested - Banner', 0x20), +(@SPAWNGROUP+6, 'Isle of Conquest - Alliance Keep - Alliance Contested - Banner', 0x20), +(@SPAWNGROUP+7, 'Isle of Conquest - Alliance Keep - Alliance Controlled - Banner & Spirit Guide', 0x20), + +(@SPAWNGROUP+8, 'Isle of Conquest - Quarry - Neutral Controlled - Banner', 0x20), +(@SPAWNGROUP+9, 'Isle of Conquest - Quarry - Horde Controlled - Banner & Miners', 0x20), +(@SPAWNGROUP+10, 'Isle of Conquest - Quarry - Horde Contested - Banner', 0x20), +(@SPAWNGROUP+11, 'Isle of Conquest - Quarry - Alliance Contested - Banner', 0x20), +(@SPAWNGROUP+12, 'Isle of Conquest - Quarry - Alliance Controlled - Banner & Miners', 0x20), + +(@SPAWNGROUP+13, 'Isle of Conquest - Refinery - Neutral Controlled - Banner', 0x20), +(@SPAWNGROUP+14, 'Isle of Conquest - Refinery - Horde Controlled - Banner', 0x20), +(@SPAWNGROUP+15, 'Isle of Conquest - Refinery - Horde Contested - Banner', 0x20), +(@SPAWNGROUP+16, 'Isle of Conquest - Refinery - Alliance Contested - Banner', 0x20), +(@SPAWNGROUP+17, 'Isle of Conquest - Refinery - Alliance Controlled - Banner', 0x20), + +(@SPAWNGROUP+18, 'Isle of Conquest - Docks - Neutral Controlled - Banner', 0x20), +(@SPAWNGROUP+19, 'Isle of Conquest - Docks - Horde Controlled - Banner & Spirit Guide', 0x20), +(@SPAWNGROUP+20, 'Isle of Conquest - Docks - Horde Contested - Banner', 0x20), +(@SPAWNGROUP+21, 'Isle of Conquest - Docks - Alliance Contested - Banner', 0x20), +(@SPAWNGROUP+22, 'Isle of Conquest - Docks - Alliance Controlled - Banner & Spirit Guide', 0x20), +(@SPAWNGROUP+23, 'Isle of Conquest - Docks - Horde Controlled - Vehicles', 0x0), +(@SPAWNGROUP+24, 'Isle of Conquest - Docks - Alliance Controlled - Vehicles', 0x0), + +(@SPAWNGROUP+25, 'Isle of Conquest - Workshop - Neutral Controlled - Banner', 0x20), +(@SPAWNGROUP+26, 'Isle of Conquest - Workshop - Horde Controlled - Banner & Spirit Guide & Bombs', 0x20), +(@SPAWNGROUP+27, 'Isle of Conquest - Workshop - Horde Contested - Banner', 0x20), +(@SPAWNGROUP+28, 'Isle of Conquest - Workshop - Alliance Contested - Banner', 0x20), +(@SPAWNGROUP+29, 'Isle of Conquest - Workshop - Alliance Controlled - Banner & Spirit Guide & Bombs', 0x20), +(@SPAWNGROUP+30, 'Isle of Conquest - Workshop - Horde Controlled - Vehicles', 0x0), +(@SPAWNGROUP+31, 'Isle of Conquest - Workshop - Alliance Controlled - Vehicles', 0x0), + +(@SPAWNGROUP+32, 'Isle of Conquest - Hangar - Neutral Controlled - Banner', 0x20), +(@SPAWNGROUP+33, 'Isle of Conquest - Hangar - Horde Controlled - Banner & Spirit Guide & Teleporter', 0x20), +(@SPAWNGROUP+34, 'Isle of Conquest - Hangar - Horde Contested - Banner', 0x20), +(@SPAWNGROUP+35, 'Isle of Conquest - Hangar - Alliance Contested - Banner', 0x20), +(@SPAWNGROUP+36, 'Isle of Conquest - Hangar - Alliance Controlled - Banner & Spirit Guide & Teleporter', 0x20), + +(@SPAWNGROUP+37, 'Isle of Conquest - Horde Keep - Breached', 0x20), +(@SPAWNGROUP+38, 'Isle of Conquest - Alliance Keep - Breached', 0x20), + +(@SPAWNGROUP+39, 'Isle of Conquest - Horde Front Gate - Broken', 0x20), +(@SPAWNGROUP+40, 'Isle of Conquest - Alliance East Gate - Broken', 0x20); + +DELETE FROM `spawn_group` WHERE `groupId` BETWEEN @SPAWNGROUP+0 AND @SPAWNGROUP+1000; +INSERT INTO `spawn_group` (`groupId`, `spawnType`, `spawnId`) VALUES +(@SPAWNGROUP+0, 1, @OGUID+2), +(@SPAWNGROUP+0, 0, @CGUID+140), +(@SPAWNGROUP+1, 1, @OGUID+145), +(@SPAWNGROUP+2, 1, @OGUID+146), +(@SPAWNGROUP+3, 1, @OGUID+147), +(@SPAWNGROUP+3, 0, @CGUID+147), + +(@SPAWNGROUP+4, 1, @OGUID+149), +(@SPAWNGROUP+4, 0, @CGUID+144), +(@SPAWNGROUP+5, 1, @OGUID+99), +(@SPAWNGROUP+6, 1, @OGUID+148), +(@SPAWNGROUP+7, 1, @OGUID+22), +(@SPAWNGROUP+7, 0, @CGUID+143), + +(@SPAWNGROUP+8, 1, @OGUID+16), +(@SPAWNGROUP+9, 1, @OGUID+44), + +(@SPAWNGROUP+9, 0, @OGUID+326), -- honorable defender +(@SPAWNGROUP+9, 0, @CGUID+80), -- Forsaken miners +(@SPAWNGROUP+9, 0, @CGUID+81), +(@SPAWNGROUP+9, 0, @CGUID+82), +(@SPAWNGROUP+9, 0, @CGUID+83), +(@SPAWNGROUP+9, 0, @CGUID+84), +(@SPAWNGROUP+9, 0, @CGUID+85), +(@SPAWNGROUP+9, 0, @CGUID+86), +(@SPAWNGROUP+9, 0, @CGUID+87), +(@SPAWNGROUP+9, 0, @CGUID+88), +(@SPAWNGROUP+9, 0, @CGUID+89), +(@SPAWNGROUP+9, 0, @CGUID+90), +(@SPAWNGROUP+9, 0, @CGUID+91), +(@SPAWNGROUP+9, 0, @CGUID+92), + +(@SPAWNGROUP+10, 1, @OGUID+43), +(@SPAWNGROUP+11, 1, @OGUID+24), +(@SPAWNGROUP+12, 1, @OGUID+29), +(@SPAWNGROUP+12, 0, @CGUID+150), +(@SPAWNGROUP+12, 0, @CGUID+47), -- Human miners +(@SPAWNGROUP+12, 0, @CGUID+48), +(@SPAWNGROUP+12, 0, @CGUID+49), +(@SPAWNGROUP+12, 0, @CGUID+50), +(@SPAWNGROUP+12, 0, @CGUID+51), +(@SPAWNGROUP+12, 0, @CGUID+52), +(@SPAWNGROUP+12, 0, @CGUID+53), +(@SPAWNGROUP+12, 0, @CGUID+54), +(@SPAWNGROUP+12, 0, @CGUID+55), +(@SPAWNGROUP+12, 0, @CGUID+56), +(@SPAWNGROUP+12, 0, @CGUID+57), +(@SPAWNGROUP+12, 0, @CGUID+59), +(@SPAWNGROUP+12, 0, @CGUID+60), + +(@SPAWNGROUP+13, 1, @OGUID+100), +(@SPAWNGROUP+14, 1, @OGUID+78), +(@SPAWNGROUP+14, 0, @CGUID+157), +(@SPAWNGROUP+15, 1, @OGUID+142), +(@SPAWNGROUP+16, 1, @OGUID+144), +(@SPAWNGROUP+17, 1, @OGUID+143), +(@SPAWNGROUP+17, 0, @CGUID+158), + +(@SPAWNGROUP+18, 1, @OGUID+141), +(@SPAWNGROUP+19, 1, @OGUID+45), +(@SPAWNGROUP+19, 0, @CGUID+72), +(@SPAWNGROUP+19, 0, @CGUID+155), +(@SPAWNGROUP+20, 1, @OGUID+138), +(@SPAWNGROUP+21, 1, @OGUID+140), +(@SPAWNGROUP+22, 1, @OGUID+139), +(@SPAWNGROUP+22, 0, @CGUID+139), +(@SPAWNGROUP+22, 0, @CGUID+156), + +(@SPAWNGROUP+23, 0, @CGUID+75), +(@SPAWNGROUP+23, 0, @CGUID+73), +(@SPAWNGROUP+23, 0, @CGUID+74), +(@SPAWNGROUP+23, 0, @CGUID+99), +(@SPAWNGROUP+23, 0, @CGUID+77), +(@SPAWNGROUP+23, 0, @CGUID+78), +(@SPAWNGROUP+23, 0, @CGUID+76), + +(@SPAWNGROUP+24, 0, @CGUID+125), +(@SPAWNGROUP+24, 0, @CGUID+123), +(@SPAWNGROUP+24, 0, @CGUID+124), +(@SPAWNGROUP+24, 0, @CGUID+126), +(@SPAWNGROUP+24, 0, @CGUID+128), +(@SPAWNGROUP+24, 0, @CGUID+129), +(@SPAWNGROUP+24, 0, @CGUID+127), + +(@SPAWNGROUP+25, 1, @OGUID+6), +(@SPAWNGROUP+26, 1, @OGUID+26), +(@SPAWNGROUP+26, 0, @CGUID+43), +(@SPAWNGROUP+26, 0, @CGUID+153), +(@SPAWNGROUP+26, 1, @OGUID+27), +(@SPAWNGROUP+26, 1, @OGUID+28), +(@SPAWNGROUP+27, 1, @OGUID+9), +(@SPAWNGROUP+28, 1, @OGUID+137), +(@SPAWNGROUP+29, 1, @OGUID+136), +(@SPAWNGROUP+29, 0, @CGUID+146), +(@SPAWNGROUP+29, 0, @CGUID+154), +(@SPAWNGROUP+29, 1, @OGUID+150), +(@SPAWNGROUP+29, 1, @OGUID+151), + +(@SPAWNGROUP+30, 0, @CGUID+45), +(@SPAWNGROUP+30, 0, @CGUID+42), +(@SPAWNGROUP+30, 0, @CGUID+41), +(@SPAWNGROUP+30, 0, @CGUID+44), +(@SPAWNGROUP+30, 0, @CGUID+46), + +(@SPAWNGROUP+31, 0, @CGUID+137), +(@SPAWNGROUP+31, 0, @CGUID+135), +(@SPAWNGROUP+31, 0, @CGUID+134), +(@SPAWNGROUP+31, 0, @CGUID+136), +(@SPAWNGROUP+31, 0, @CGUID+138), + +(@SPAWNGROUP+32, 1, @OGUID+8), +(@SPAWNGROUP+33, 1, @OGUID+30), +(@SPAWNGROUP+33, 1, @OGUID+35), +(@SPAWNGROUP+33, 1, @OGUID+36), +(@SPAWNGROUP+33, 1, @OGUID+34), +(@SPAWNGROUP+33, 1, @OGUID+31), +(@SPAWNGROUP+33, 1, @OGUID+33), +(@SPAWNGROUP+33, 1, @OGUID+32), +(@SPAWNGROUP+33, 0, @CGUID+64), +(@SPAWNGROUP+33, 0, @CGUID+151), +(@SPAWNGROUP+33, 0, @CGUID+194), +(@SPAWNGROUP+34, 1, @OGUID+25), +(@SPAWNGROUP+35, 1, @OGUID+135), +(@SPAWNGROUP+36, 1, @OGUID+134), +(@SPAWNGROUP+36, 0, @CGUID+145), +(@SPAWNGROUP+36, 0, @CGUID+152), +(@SPAWNGROUP+36, 0, @CGUID+195), +(@SPAWNGROUP+36, 1, @OGUID+152), +(@SPAWNGROUP+36, 1, @OGUID+153), +(@SPAWNGROUP+36, 1, @OGUID+154), +(@SPAWNGROUP+36, 1, @OGUID+155), +(@SPAWNGROUP+36, 1, @OGUID+156), +(@SPAWNGROUP+36, 1, @OGUID+157), + +(@SPAWNGROUP+37, 0, @CGUID+208), +(@SPAWNGROUP+37, 0, @CGUID+209), +(@SPAWNGROUP+37, 0, @CGUID+210), +(@SPAWNGROUP+37, 0, @CGUID+211), +(@SPAWNGROUP+37, 0, @CGUID+212), +(@SPAWNGROUP+37, 0, @CGUID+213), +(@SPAWNGROUP+37, 0, @CGUID+214), +(@SPAWNGROUP+37, 0, @CGUID+215), +(@SPAWNGROUP+37, 0, @CGUID+216), + +(@SPAWNGROUP+38, 0, @CGUID+199), +(@SPAWNGROUP+38, 0, @CGUID+200), +(@SPAWNGROUP+38, 0, @CGUID+201), +(@SPAWNGROUP+38, 0, @CGUID+202), +(@SPAWNGROUP+38, 0, @CGUID+203), +(@SPAWNGROUP+38, 0, @CGUID+204), +(@SPAWNGROUP+38, 0, @CGUID+205), +(@SPAWNGROUP+38, 0, @CGUID+206), +(@SPAWNGROUP+38, 0, @CGUID+207), + +(@SPAWNGROUP+39, 0, @CGUID+196), +(@SPAWNGROUP+39, 0, @CGUID+197), +(@SPAWNGROUP+39, 0, @CGUID+198), + +(@SPAWNGROUP+40, 0, @CGUID+130), +(@SPAWNGROUP+40, 0, @CGUID+131), +(@SPAWNGROUP+40, 0, @CGUID+132), +(@SPAWNGROUP+40, 0, @CGUID+133); + +DELETE FROM `graveyard_zone` WHERE `ID` IN (1480, 1481, 1482, 1483, 1484, 1485, 1486); +INSERT INTO `graveyard_zone` (`ID`, `GhostZone`, `Comment`) VALUES +(1480, 4710, 'Isle of Conquest - Docks'), +(1481, 4710, 'Isle of Conquest - Airport'), +(1482, 4710, 'Isle of Conquest - Workshop'), +(1483, 4710, 'Isle of Conquest - Alliance Default'), +(1484, 4710, 'Isle of Conquest - Horde Default'), +(1485, 4710, 'Isle of Conquest - Alliance Keep'), +(1486, 4710, 'Isle of Conquest - Horde Keep'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 27 AND `SourceEntry` IN (1480, 1481, 1482, 1483, 1484, 1485, 1486); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceEntry`, `SourceGroup`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `Comment`) VALUES +-- Docks +-- -- Alliance +(27, 1480, 4710, 0, 6, 469, 0, 'Graveyard - Isle of Conquest - Docks - Team Alliance'), +(27, 1480, 4710, 0, 11, 4304, 1, 'Graveyard - Isle of Conquest - Docks - Alliance Controlled'), +-- -- Horde +(27, 1480, 4710, 1, 6, 67, 0, 'Graveyard - Isle of Conquest - Docks - Team Horde'), +(27, 1480, 4710, 1, 11, 4303, 1, 'Graveyard - Isle of Conquest - Docks - Horde Controlled'), +-- Hangar +-- -- Alliance +(27, 1481, 4710, 0, 6, 469, 0, 'Graveyard - Isle of Conquest - Hangar - Team Alliance'), +(27, 1481, 4710, 0, 11, 4299, 1, 'Graveyard - Isle of Conquest - Hangar - Alliance Controlled'), +-- -- Horde +(27, 1481, 4710, 1, 6, 67, 0, 'Graveyard - Isle of Conquest - Hangar - Team Horde'), +(27, 1481, 4710, 1, 11, 4298, 1, 'Graveyard - Isle of Conquest - Hangar - Horde Controlled'), +-- Workshop +-- -- Alliance +(27, 1482, 4710, 0, 6, 469, 0, 'Graveyard - Isle of Conquest - Workshop - Team Alliance'), +(27, 1482, 4710, 0, 11, 4229, 1, 'Graveyard - Isle of Conquest - Workshop - Alliance Controlled'), +-- -- Horde +(27, 1482, 4710, 1, 6, 67, 0, 'Graveyard - Isle of Conquest - Workshop - Team Horde'), +(27, 1482, 4710, 1, 11, 4230, 1, 'Graveyard - Isle of Conquest - Workshop - Horde Controlled'), +-- Defaults (fallback) +-- -- Alliance +(27, 1483, 4710, 0, 6, 469, 0, 'Graveyard - Isle of Conquest - Alliance Base - Team Alliance'), +(27, 1483, 4710, 0, 11, 4339, 0, 'Graveyard - Isle of Conquest - Alliance Base - Keep NOT Alliance Controlled'), +-- -- Horde +(27, 1484, 4710, 1, 6, 67, 0, 'Graveyard - Isle of Conquest - Horde Base - Team Horde'), +(27, 1484, 4710, 1, 11, 4345, 0, 'Graveyard - Isle of Conquest - Horde Base - Keep NOT Horde Controlled'), +-- Alliance Keep +-- -- Alliance +(27, 1485, 4710, 0, 6, 469, 0, 'Graveyard - Isle of Conquest - Alliance Keep - Team Alliance'), +(27, 1485, 4710, 0, 11, 4339, 1, 'Graveyard - Isle of Conquest - Alliance Keep - Alliance Controlled'), +-- -- Horde +(27, 1485, 4710, 1, 6, 67, 0, 'Graveyard - Isle of Conquest - Alliance Keep - Team Horde'), +(27, 1485, 4710, 1, 11, 4340, 1, 'Graveyard - Isle of Conquest - Alliance Keep - Horde Controlled'), +-- Horde Keep +-- -- Alliance +(27, 1486, 4710, 0, 6, 469, 0, 'Graveyard - Isle of Conquest - Horde Keep - Team Alliance'), +(27, 1486, 4710, 0, 11, 4344, 1, 'Graveyard - Isle of Conquest - Horde Keep - Alliance Controlled'), +-- -- Horde +(27, 1486, 4710, 1, 6, 67, 0, 'Graveyard - Isle of Conquest - Horde Keep - Team Horde'), +(27, 1486, 4710, 1, 11, 4345, 1, 'Graveyard - Isle of Conquest - Horde Keep - Horde Controlled'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=33 AND `SourceEntry` BETWEEN @SPAWNGROUP+0 AND @SPAWNGROUP+1000; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `Comment`) VALUES +(33, @SPAWNGROUP+0, 0, 11, 4345, 1, 'Isle of Conquest - Spawn Group - Horde Keep - Horde Controlled'), +(33, @SPAWNGROUP+1, 0, 11, 4348, 1, 'Isle of Conquest - Spawn Group - Horde Keep - Horde Contested'), +(33, @SPAWNGROUP+2, 0, 11, 4347, 1, 'Isle of Conquest - Spawn Group - Horde Keep - Alliance Contested'), +(33, @SPAWNGROUP+3, 0, 11, 4344, 1, 'Isle of Conquest - Spawn Group - Horde Keep - Alliance Controlled'), + +(33, @SPAWNGROUP+4, 0, 11, 4340, 1, 'Isle of Conquest - Spawn Group - Alliance Keep - Horde Controlled'), +(33, @SPAWNGROUP+5, 0, 11, 4343, 1, 'Isle of Conquest - Spawn Group - Alliance Keep - Horde Contested'), +(33, @SPAWNGROUP+6, 0, 11, 4342, 1, 'Isle of Conquest - Spawn Group - Alliance Keep - Alliance Contested'), +(33, @SPAWNGROUP+7, 0, 11, 4339, 1, 'Isle of Conquest - Spawn Group - Alliance Keep - Alliance Controlled'), + +(33, @SPAWNGROUP+8, 0, 11, 4306, 1, 'Isle of Conquest - Spawn Group - Quarry - Neutral Controlled'), +(33, @SPAWNGROUP+9, 0, 11, 4308, 1, 'Isle of Conquest - Spawn Group - Quarry - Horde Controlled'), +(33, @SPAWNGROUP+10, 0, 11, 4307, 1, 'Isle of Conquest - Spawn Group - Quarry - Horde Contested'), +(33, @SPAWNGROUP+11, 0, 11, 4310, 1, 'Isle of Conquest - Spawn Group - Quarry - Alliance Contested'), +(33, @SPAWNGROUP+12, 0, 11, 4309, 1, 'Isle of Conquest - Spawn Group - Quarry - Alliance Controlled'), + +(33, @SPAWNGROUP+13, 0, 11, 4311, 1, 'Isle of Conquest - Spawn Group - Refinery - Neutral Controlled'), +(33, @SPAWNGROUP+14, 0, 11, 4313, 1, 'Isle of Conquest - Spawn Group - Refinery - Horde Controlled'), +(33, @SPAWNGROUP+15, 0, 11, 4312, 1, 'Isle of Conquest - Spawn Group - Refinery - Horde Contested'), +(33, @SPAWNGROUP+16, 0, 11, 4315, 1, 'Isle of Conquest - Spawn Group - Refinery - Alliance Contested'), +(33, @SPAWNGROUP+17, 0, 11, 4314, 1, 'Isle of Conquest - Spawn Group - Refinery - Alliance Controlled'), + +(33, @SPAWNGROUP+18, 0, 11, 4301, 1, 'Isle of Conquest - Spawn Group - Docks - Neutral Controlled'), +(33, @SPAWNGROUP+19, 0, 11, 4303, 1, 'Isle of Conquest - Spawn Group - Docks - Horde Controlled'), +(33, @SPAWNGROUP+20, 0, 11, 4302, 1, 'Isle of Conquest - Spawn Group - Docks - Horde Contested'), +(33, @SPAWNGROUP+21, 0, 11, 4305, 1, 'Isle of Conquest - Spawn Group - Docks - Alliance Contested'), +(33, @SPAWNGROUP+22, 0, 11, 4304, 1, 'Isle of Conquest - Spawn Group - Docks - Alliance Controlled'), +(33, @SPAWNGROUP+23, 0, 11, 4303, 1, 'Isle of Conquest - Spawn Group - Docks, Vehicles - Horde Controlled'), +(33, @SPAWNGROUP+24, 0, 11, 4304, 1, 'Isle of Conquest - Spawn Group - Docks, Vehicles - Alliance Controlled'), + +(33, @SPAWNGROUP+25, 0, 11, 4294, 1, 'Isle of Conquest - Spawn Group - Workshop - Neutral Controlled'), +(33, @SPAWNGROUP+26, 0, 11, 4230, 1, 'Isle of Conquest - Spawn Group - Workshop - Horde Controlled'), +(33, @SPAWNGROUP+27, 0, 11, 4293, 1, 'Isle of Conquest - Spawn Group - Workshop - Horde Contested'), +(33, @SPAWNGROUP+28, 0, 11, 4228, 1, 'Isle of Conquest - Spawn Group - Workshop - Alliance Contested'), +(33, @SPAWNGROUP+29, 0, 11, 4229, 1, 'Isle of Conquest - Spawn Group - Workshop - Alliance Controlled'), +(33, @SPAWNGROUP+30, 0, 11, 4230, 1, 'Isle of Conquest - Spawn Group - Workshop, Vehicles - Horde Controlled'), +(33, @SPAWNGROUP+31, 0, 11, 4229, 1, 'Isle of Conquest - Spawn Group - Workshop, Vehicles - Alliance Controlled'), + +(33, @SPAWNGROUP+32, 0, 11, 4296, 1, 'Isle of Conquest - Spawn Group - Hangar - Neutral Controlled'), +(33, @SPAWNGROUP+33, 0, 11, 4298, 1, 'Isle of Conquest - Spawn Group - Hangar - Horde Controlled'), +(33, @SPAWNGROUP+34, 0, 11, 4297, 1, 'Isle of Conquest - Spawn Group - Hangar - Horde Contested'), +(33, @SPAWNGROUP+35, 0, 11, 4300, 1, 'Isle of Conquest - Spawn Group - Hangar - Alliance Contested'), +(33, @SPAWNGROUP+36, 0, 11, 4299, 1, 'Isle of Conquest - Spawn Group - Hangar - Alliance Controlled'), + +(33, @SPAWNGROUP+37, 0, 11, 4322, 1, 'Isle of Conquest - Spawn Group - Horde Keep Breached'), +(33, @SPAWNGROUP+37, 1, 11, 4321, 1, 'Isle of Conquest - Spawn Group - Horde Keep Breached'), +(33, @SPAWNGROUP+37, 2, 11, 4320, 1, 'Isle of Conquest - Spawn Group - Horde Keep Breached'), + +(33, @SPAWNGROUP+38, 0, 11, 4323, 1, 'Isle of Conquest - Spawn Group - Alliance Keep Breached'), +(33, @SPAWNGROUP+38, 1, 11, 4324, 1, 'Isle of Conquest - Spawn Group - Alliance Keep Breached'), +(33, @SPAWNGROUP+38, 2, 11, 4325, 1, 'Isle of Conquest - Spawn Group - Alliance Keep Breached'), + +(33, @SPAWNGROUP+39, 0, 11, 4322, 1, 'Isle of Conquest - Spawn Group - Horde Front Gate Breached'), +(33, @SPAWNGROUP+40, 0, 11, 4325, 1, 'Isle of Conquest - Spawn Group - Alliance East Gate Breached'); + +UPDATE `gameobject_template` SET `ScriptName` = 'go_ioc_capturable_object' WHERE `entry` IN (195393,195391,195398,195396,195338,195336,195334,195343,195341,195339,195157,195151,195149,195133,195130,195132,195158,195155,195153); +UPDATE `gameobject_template` SET `ScriptName` = 'go_ioc_contested_object' WHERE `entry` IN (195394,195392,195399,195397,195337,195335,195342,195340,195152,195150,195145,195144,195156,195154); + +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+10000; +-- Keep cannons +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `StringId`, `VerifiedBuild`) VALUES +(@CGUID+159, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1156.2222900390625, -866.80902099609375, 87.8754425048828125, 4.660028934478759765, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+160, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1137.7222900390625, -688.51739501953125, 88.402252197265625, 3.31612563133239746, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+161, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 410.142364501953125, -754.515625, 87.79909515380859375, 1.780235767364501953, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+162, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1138.892333984375, -835.734375, 88.37462615966796875, 2.984513044357299804, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+163, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1135.1353759765625, -840.73785400390625, 88.0251922607421875, 3.019419670104980468, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+164, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1160.02783203125, -660.935791015625, 87.9332122802734375, 1.413716673851013183, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+165, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1167.1285400390625, -669.2117919921875, 87.96822357177734375, 1.361356854438781738, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+166, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1142.5885009765625, -691.9461669921875, 87.97562408447265625, 3.31612563133239746, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+167, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1162.078125, -863.717041015625, 88.35797119140625, 4.799655437469482421, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+168, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 404.736114501953125, -754.79864501953125, 87.79889678955078125, 1.780235767364501953, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+169, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 415.82464599609375, -753.796875, 87.798980712890625, 1.780235767364501953, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+170, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1164.5504150390625, -663.984375, 88.35713958740234375, 1.396263360977172851, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+171, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1134.701416015625, -683.89581298828125, 88.040863037109375, 3.246312379837036132, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+172, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1166.1319580078125, -858.390625, 87.96527099609375, 4.817108631134033203, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+173, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 1144.326416015625, -833.30902099609375, 87.9267730712890625, 3.001966238021850585, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+174, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 425.0694580078125, -879.8507080078125, 88.0445556640625, 0.436332315206527709, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+175, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 426.998260498046875, -785.85589599609375, 87.799102783203125, 5.742133140563964843, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+176, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 427.477447509765625, -884.93927001953125, 88.04461669921875, 0.436332315206527709, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+177, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 429.357635498046875, -780.796875, 87.79906463623046875, 5.79449319839477539, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+178, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 429.9132080078125, -890.435791015625, 88.04461669921875, 0.436332315206527709, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+179, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 431.729156494140625, -775.66839599609375, 87.7990875244140625, 5.8817596435546875, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+180, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 408.055572509765625, -911.8819580078125, 88.0445404052734375, 4.642575740814208984, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+181, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 413.609375, -912.388916015625, 88.04470062255859375, 4.660028934478759765, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+182, 34944, 628, 4710, 4752, '0', 0, 0, 0, 0, 402.5538330078125, -911.29339599609375, 88.044647216796875, 4.572762489318847656, 7200, 0, 0, 451676, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162); -- Keep Cannon (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 75925 - Facing Saver, 52455 - PvP Vehicle Health Regen Suppression) + +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +-- triggers +(@CGUID+5, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1287.376708984375, -1079.4444580078125, 2.130718231201171875, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+6, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1247.611083984375, -1102.5694580078125, 4.007014274597167968, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+7, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1272.234375, -1093.9010009765625, 0.447357356548309326, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+8, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1248.8646240234375, -1136.9617919921875, 3.470679283142089843, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+9, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1267.7413330078125, -1158.6302490234375, 2.388451337814331054, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+10, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1272.71875, -1125.421875, 3.611910343170166015, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+11, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1301.310791015625, -1117.357666015625, 1.536232352256774902, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+12, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1298.07470703125, -1152.48095703125, 1.257777333259582519, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+13, 23472, 628, 4710, 4752, '0', 0, 0, 0, 0, 1236.77783203125, -1177.361083984375, 4.7059326171875, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+19, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 774.84722900390625, -887.0711669921875, 56.27956008911132812, 1.466076612472534179, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+20, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 774.90802001953125, -886.982666015625, 56.26288986206054687, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+21, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 775.37677001953125, -887.11456298828125, 56.132415771484375, 1.466076612472534179, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+22, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 775.11456298828125, -886.8663330078125, 56.20595550537109375, 1.466076612472534179, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+23, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 774.7725830078125, -887.326416015625, 56.29906082153320312, 1.466076612472534179, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+24, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 775.22222900390625, -886.796875, 56.17631912231445312, 1.466076612472534179, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+25, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 775.09552001953125, -887.046875, 56.21084976196289062, 1.466076612472534179, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+26, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 775.12847900390625, -887.234375, 56.20093154907226562, 1.466076612472534179, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+29, 22515, 628, 4710, 4752, '0', 0, 0, 0, 0, 766.93402099609375, -900.967041015625, 35.64332199096679687, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+32, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1230.5850830078125, -1207.892333984375, 4.828125476837158203, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+33, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1254.03125, -1201.3697509765625, 2.774367332458496093, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+34, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1290.9305419921875, -1191.8489990234375, 1.83943641185760498, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+35, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1273.85595703125, -1219.5416259765625, 2.406368255615234375, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+36, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1238.5660400390625, -1238.717041015625, 4.824849605560302734, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+37, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1233.2239990234375, -1260.123291015625, 12.68245506286621093, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+38, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1262.0086669921875, -1248.3958740234375, 2.581503152847290039, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+120, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1267.96875, -1038.8125, 0.826364338397979736, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+121, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1263.2447509765625, -1064.015625, 2.007972240447998046, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+122, 23472, 628, 4710, 0, '0', 0, 0, 0, 0, 1303.3958740234375, -1062.3836669921875, 0.083269335329532623, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- World Trigger (Large AOI, Not Immune PC/NPC) (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+183, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1401.1336669921875, -1167.3350830078125, 4.88478851318359375, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162), -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+184, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1400.73095703125, -1144.4913330078125, 5.117686271667480468, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162), -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+185, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1446.5260009765625, -1338.8958740234375, 4.475928306579589843, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162), -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+186, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1449.9879150390625, -1327.798583984375, 4.599755287170410156, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162), -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+187, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1444.998291015625, -1349.861083984375, 5.181267261505126953, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162), -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+188, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1448.560791015625, -1333.5191650390625, 4.450309276580810546, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162), -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+189, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1400.267333984375, -1150.576416015625, 5.154570579528808593, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162), -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+190, 36171, 628, 4710, 4752, '0', 0, 0, 0, 0, 1400.4114990234375, -1155.9913330078125, 5.118544578552246093, 0, 7200, 0, 0, 36, 0, 0, NULL, NULL, NULL, NULL, 53162); -- World Trigger (Infinite AOI) (Area: Horde Keep - Difficulty: 0) CreateObject1 + +-- Honorable Defenders +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+79, 35380, 628, 4710, 4748, '0', 0, 0, 0, 0, 250.65625, -1159.37158203125, 17.28952980041503906, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Honorable Defender Trigger (Horde) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +-- Keep +(@CGUID+148, 35380, 628, 4710, 4748, '0', 0, 0, 0, 0, 1212.0365, -762.69617, 48.91625, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Horde) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +(@CGUID+149, 35379, 628, 4710, 4748, '0', 0, 0, 0, 0, 347.64062, -836.16144, 48.91625, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Alliance) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +-- Quarry +(@CGUID+150, 35379, 628, 4710, 4748, '0', 0, 0, 0, 0, 250.65625, -1159.37158203125, 17.28952980041503906, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Alliance) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +-- Hangar +(@CGUID+151, 35380, 628, 4710, 4748, '0', 0, 0, 0, 0, 807.780029296875, -1000.07000732421875, 132.3809967041015625, 4.345870018005371093, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Horde) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +(@CGUID+152, 35379, 628, 4710, 4748, '0', 0, 0, 0, 0, 807.780029296875, -1000.07000732421875, 132.3809967041015625, 4.345870018005371093, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Alliance) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +-- Workshop +(@CGUID+153, 35380, 628, 4710, 4748, '0', 0, 0, 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Horde) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +(@CGUID+154, 35379, 628, 4710, 4748, '0', 0, 0, 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Alliance) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +-- Docks +(@CGUID+155, 35380, 628, 4710, 4748, '0', 0, 0, 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Horde) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +(@CGUID+156, 35379, 628, 4710, 4748, '0', 0, 0, 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Alliance) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +-- Refinery +(@CGUID+157, 35380, 628, 4710, 4748, '0', 0, 0, 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0), -- Honorable Defender Trigger (Horde) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) +(@CGUID+158, 35379, 628, 4710, 4748, '0', 0, 0, 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 0); -- Honorable Defender Trigger (Alliance) (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 66157 - Honorable Defender) + +-- Spirit Guides +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+43, 13117, 628, 4710, 4750, '0', 0, 0, 0, 1, 774.51214599609375, -646.88543701171875, 9.864583015441894531, 4.625122547149658203, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53007), -- Horde Spirit Guide (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 9036 - Ghost) +(@CGUID+64, 13117, 628, 4710, 0, '0', 0, 0, 0, 1, 784.1475830078125, -1095.6510009765625, 135.53009033203125, 3.141592741012573242, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53007), -- Horde Spirit Guide (Area: 0 - Difficulty: 0) CreateObject2 (Auras: 9036 - Ghost) +(@CGUID+72, 13117, 628, 4710, 4748, '0', 0, 0, 0, 1, 628.53643798828125, -277.392364501953125, 11.30339336395263671, 5.934119224548339843, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53007), -- Horde Spirit Guide (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 9036 - Ghost) +(@CGUID+139, 13116, 628, 4710, 4747, '0', 0, 0, 0, 1, 628.7725830078125, -277.508697509765625, 11.31214237213134765, 5.934119224548339843, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Alliance Spirit Guide (Area: Workshop - Difficulty: 0) CreateObject2 (Auras: 9036 - Ghost) +(@CGUID+140, 13117, 628, 4710, 4749, '0', 0, 0, 0, 1, 1301.5086669921875, -832.77777099609375, 48.99958038330078125, 1.553343057632446289, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Horde Spirit Guide (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 9036 - Ghost, 9617 - Ghost Visual) +(@CGUID+141, 13117, 628, 4710, 4749, '0', 0, 0, 0, 1, 1147.3472900390625, -1245.0885009765625, 16.68014335632324218, 1.919862151145935058, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Horde Spirit Guide (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 9036 - Ghost, 9617 - Ghost Visual) +(@CGUID+142, 13116, 628, 4710, 4749, '0', 0, 0, 0, 1, 440.23089599609375, -309.12847900390625, 51.89045333862304687, 5.846852779388427734, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Alliance Spirit Guide (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 9036 - Ghost, 9617 - Ghost Visual) +(@CGUID+143, 13116, 628, 4710, 4749, '0', 0, 0, 0, 1, 278.041656494140625, -883.46875, 50.00659942626953125, 1.535889744758605957, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Alliance Spirit Guide (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 9036 - Ghost, 9617 - Ghost Visual) +(@CGUID+144, 13117, 628, 4710, 4753, '0', 0, 0, 0, 1, 277.92535400390625, -883.40625, 50.00659942626953125, 1.448623299598693847, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Horde Spirit Guide (Area: Alliance Keep - Difficulty: 0) CreateObject2 (Auras: 9036 - Ghost) +(@CGUID+145, 13116, 628, 4710, 4750, '0', 0, 0, 0, 1, 784.3836669921875, -1095.7691650390625, 135.528228759765625, 3.141592741012573242, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Alliance Spirit Guide (Area: Hangar - Difficulty: 0) CreateObject1 (Auras: 9036 - Ghost, 9617 - Ghost Visual) +(@CGUID+146, 13116, 628, 4710, 4753, '0', 0, 0, 0, 1, 774.748291015625, -647.00177001953125, 9.865810394287109375, 4.625122547149658203, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162), -- Alliance Spirit Guide (Area: Alliance Keep - Difficulty: 0) CreateObject2 (Auras: 9036 - Ghost) +(@CGUID+147, 13116, 628, 4710, 4752, '0', 0, 0, 0, 1, 1301.3055419921875, -832.671875, 48.99958038330078125, 1.518436431884765625, 7200, 0, 0, 1129190, 6310, 0, NULL, NULL, NULL, NULL, 53162); -- Alliance Spirit Guide (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: 9036 - Ghost) + +-- Oil-covered Hawk +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+0, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 885.9461669921875, -531.1475830078125, 0.391945332288742065, 4.450589656829833984, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+1, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 885.05206298828125, -509.729156494140625, 5.066973686218261718, 4.450589656829833984, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+2, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 808.64410400390625, -688.920166015625, 2.001918315887451171, 2.164208173751831054, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+3, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 1337.30908203125, -367.446197509765625, 0.230803340673446655, 5.689773082733154296, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+4, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 1363.3697509765625, -407.01910400390625, 0.812617301940917968, 5.550147056579589843, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+14, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 1349.1353759765625, -439.118072509765625, 0.259844332933425903, 5.550147056579589843, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+15, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 1299.670166015625, -409.2413330078125, 0.27183234691619873, 1.308996915817260742, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+16, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 772.76739501953125, -570.3524169921875, 0.388206332921981811, 0, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+17, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 784.54339599609375, -546.90625, 1.641917347908020019, 4.450589656829833984, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+18, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 704.05902099609375, -663.295166015625, 2.097845315933227539, 0, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+27, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 661.36114501953125, -729.45660400390625, 0.237812340259552001, 2.164208173751831054, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+28, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 694.9288330078125, -589.59893798828125, 2.620331287384033203, 2.164208173751831054, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+30, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 716.6492919921875, -562.93402099609375, 1.780481338500976562, 4.258603572845458984, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+31, 25748, 628, 4710, 4752, '0', 0, 0, 0, 0, 676.1788330078125, -626.0538330078125, 1.276142358779907226, 5.113814830780029296, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Horde Keep - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+39, 25748, 628, 4710, 4750, '0', 0, 0, 0, 0, 886.8507080078125, -683.80902099609375, 0.453427344560623168, 2.164208173751831054, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Hangar - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+40, 25748, 628, 4710, 4750, '0', 0, 0, 0, 0, 838.48956298828125, -633.26910400390625, 1.17678534984588623, 5.585053443908691406, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Hangar - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+96, 25748, 628, 4710, 0, '0', 0, 0, 0, 0, 579.23089599609375, -601.15106201171875, 1.009244322776794433, 0, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+97, 25748, 628, 4710, 0, '0', 0, 0, 0, 0, 560.88714599609375, -575.36285400390625, 0.648507297039031982, 5.096361160278320312, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+98, 25748, 628, 4710, 0, '0', 0, 0, 0, 0, 605.94097900390625, -542.11981201171875, 0.608721315860748291, 3.612831592559814453, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+101, 25748, 628, 4710, 0, '0', 0, 0, 0, 0, 928.25177001953125, -589.420166015625, 0.77868729829788208, 3.141592741012573242, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+111, 25748, 628, 4710, 4749, '0', 0, 0, 0, 0, 1273.1129150390625, -500.0850830078125, 0.449441343545913696, 1.151917338371276855, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Oil-covered Hawk (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) +(@CGUID+112, 25748, 628, 4710, 4749, '0', 0, 0, 0, 0, 1319.3663330078125, -458.55035400390625, 0.339978337287902832, 1.518436431884765625, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007); -- Oil-covered Hawk (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 45948 - Oil Coat) + +-- Demolishers +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `stringId`, `VerifiedBuild`) VALUES +(@CGUID+41, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 761.80902099609375, -854.2274169921875, 12.52632427215576171, 1.466076612472534179, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+42, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 793.0555419921875, -852.71875, 12.56713294982910156, 1.710422635078430175, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+44, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 751.828125, -852.732666015625, 12.52509784698486328, 1.466076612472534179, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+45, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 783.47222900390625, -853.9600830078125, 12.54775047302246093, 1.710422635078430175, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+46, 35069, 628, 4710, 4750, '0', 0, 0, 0, 0, 773.6805419921875, -884.092041015625, 16.8090362548828125, 1.588249564170837402, 180, 0, 0, 3161732, 100, 0, NULL, NULL, NULL, NULL, NULL, 53007), -- Siege Engine (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: ) +(@CGUID+134, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 761.80902099609375, -854.2274169921875, 12.52632427215576171, 1.466076612472534179, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 0), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+135, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 793.0555419921875, -852.71875, 12.56713294982910156, 1.710422635078430175, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 0), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+136, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 751.828125, -852.732666015625, 12.52509784698486328, 1.466076612472534179, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 0), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+137, 34775, 628, 4710, 4750, '0', 0, 0, 0, 0, 783.47222900390625, -853.9600830078125, 12.54775047302246093, 1.710422635078430175, 180, 0, 0, 1693785, 0, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 0), -- Demolisher (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+138, 34776, 628, 4710, 4750, '0', 0, 0, 0, 0, 773.6805419921875, -884.092041015625, 16.8090362548828125, 1.588249564170837402, 180, 0, 0, 3161732, 100, 0, NULL, NULL, NULL, NULL, NULL, 0); -- Siege Engine (Area: Hangar - Difficulty: 0) CreateObject2 (Auras: ) + +-- Fires (missing lots of them) +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+130, 35377, 628, 4710, 4753, '0', 0, 0, 0, 0, 366.77777099609375, -903.25347900390625, 73.65229034423828125, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Door Fire (Area: Alliance Keep - Difficulty: 0) CreateObject2 (Auras: 67359 - Door Fire) +(@CGUID+131, 35377, 628, 4710, 4753, '0', 0, 0, 0, 0, 368.43402099609375, -899.44793701171875, 87.982452392578125, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Door Fire (Area: Alliance Keep - Difficulty: 0) CreateObject2 (Auras: 67359 - Door Fire) +(@CGUID+132, 35377, 628, 4710, 4753, '0', 0, 0, 0, 0, 323.576385498046875, -904.24481201171875, 88.535675048828125, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Door Fire (Area: Alliance Keep - Difficulty: 0) CreateObject2 (Auras: 67359 - Door Fire) +(@CGUID+133, 35377, 628, 4710, 4753, '0', 0, 0, 0, 0, 320.60589599609375, -901.0850830078125, 70.51508331298828125, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Door Fire (Area: Alliance Keep - Difficulty: 0) CreateObject2 (Auras: 67359 - Door Fire) +(@CGUID+196, 35377, 628, 4710, 4752, '0', 0, 0, 0, 0, 1148.296875, -762.80731201171875, 89.02325439453125, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Door Fire (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: 67359 - Door Fire) +(@CGUID+197, 35377, 628, 4710, 4752, '0', 0, 0, 0, 0, 1153.4444580078125, -786.17364501953125, 71.0856475830078125, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Door Fire (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: 67359 - Door Fire) +(@CGUID+198, 35377, 628, 4710, 4752, '0', 0, 0, 0, 0, 1150.1180419921875, -750.0399169921875, 81.47015380859375, 0, 7200, 0, 0, 152441, 0, 0, NULL, NULL, NULL, NULL, 53162); -- Door Fire (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: 67359 - Door Fire) + +-- Penguins +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+100, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 601.43231201171875, -353.758697509765625, 0.924143314361572265, 5.550147056579589843, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+102, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 531.89581298828125, -206.338546752929687, 0.520865321159362792, 4.24114990234375, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+103, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 616.2413330078125, -190.244796752929687, 0.807831287384033203, 4.450589656829833984, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+104, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 635.31427001953125, -189.84722900390625, 0.78067028522491455, 3.490658521652221679, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+105, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 616.91839599609375, -192.489578247070312, 0.796478331089019775, 1.047197580337524414, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+106, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 634.48956298828125, -186.022567749023437, 0.813599288463592529, 1.448623299598693847, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+107, 32498, 628, 4710, 4749, '0', 0, 0, 0, 0, 647.0399169921875, -171.010421752929687, 0.305968344211578369, 1.448623299598693847, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+108, 32498, 628, 4710, 4749, '0', 0, 0, 0, 0, 934.37847900390625, -303.7413330078125, 0.178161337971687316, 3.490658521652221679, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+109, 32498, 628, 4710, 4749, '0', 0, 0, 0, 0, 947.670166015625, -177.96875, 0.290117323398590087, 3.490658521652221679, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+110, 32498, 628, 4710, 4749, '0', 0, 0, 0, 0, 958.3125, -159.871536254882812, 0.705229341983795166, 1.448623299598693847, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: Docks - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+113, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 1375.9114990234375, -297.821197509765625, 0.546406328678131103, 3.40339207649230957, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+114, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 1378.828125, -298.42535400390625, 0.51107335090637207, 2.94960641860961914, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+115, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 1378.0035400390625, -297.005218505859375, 0.515660345554351806, 1.047197580337524414, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+116, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 1377.28125, -286.373260498046875, 0.519130349159240722, 3.490658521652221679, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+117, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 1386.9791259765625, -297.375, 0.532947301864624023, 0.331612557172775268, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+118, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 1388.5521240234375, -297.086822509765625, 0.534635305404663085, 3.490658521652221679, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) +(@CGUID+119, 32498, 628, 4710, 0, '0', 0, 0, 0, 0, 1399.6927490234375, -297.20660400390625, 0.76446533203125, 3.490658521652221679, 7200, 0, 0, 2035, 0, 0, NULL, NULL, NULL, NULL, 53007); -- Glacier Penguin (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 51583 - [DND] Creature Random Size (0 - 50)) + +-- Catapults +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `StringId`, `VerifiedBuild`) VALUES +(@CGUID+76, 34793, 628, 4710, 4748, '0', 0, 0, 0, 0, 770.5382080078125, -321.857635498046875, 12.71080684661865234, 4.729842185974121093, 180, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Catapult (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+77, 34793, 628, 4710, 4748, '0', 0, 0, 0, 0, 791.59027099609375, -321.149322509765625, 12.71045589447021484, 4.677482128143310546, 180, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Catapult (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+78, 34793, 628, 4710, 4748, '0', 0, 0, 0, 0, 780.91668701171875, -321.430572509765625, 12.71062374114990234, 4.694935798645019531, 180, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Catapult (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+99, 34793, 628, 4710, 0, '0', 0, 0, 0, 0, 802.60418701171875, -322.34722900390625, 12.70589637756347656, 4.660028934478759765, 180, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1735', 53007), -- Catapult (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+126, 34793, 628, 4710, 4747, '0', 0, 0, 0, 0, 770.375, -321.84027099609375, 12.71123027801513671, 4.729842185974121093, 7200, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Catapult (Area: Workshop - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+127, 34793, 628, 4710, 4747, '0', 0, 0, 0, 0, 802.44097900390625, -322.329864501953125, 12.70589733123779296, 4.660028934478759765, 7200, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Catapult (Area: Workshop - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+128, 34793, 628, 4710, 4747, '0', 0, 0, 0, 0, 780.75347900390625, -321.40972900390625, 12.71072578430175781, 4.694935798645019531, 7200, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162), -- Catapult (Area: Workshop - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+129, 34793, 628, 4710, 4747, '0', 0, 0, 0, 0, 791.4305419921875, -321.1319580078125, 12.71054267883300781, 4.677482128143310546, 7200, 0, 0, 564595, 100, 0, NULL, NULL, NULL, NULL, 'bg_ioc_faction_1732', 53162); -- Catapult (Area: Workshop - Difficulty: 0) CreateObject1 (Auras: 52455 - PvP Vehicle Health Regen Suppression) + +-- Glaive Throwers +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+73, 35273, 628, 4710, 4748, '0', 0, 0, 0, 0, 787.47918701171875, -343.060760498046875, 12.25117206573486328, 4.712388992309570312, 180, 0, 0, 1027563, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glaive Thrower (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+74, 35273, 628, 4710, 4748, '0', 0, 0, 0, 0, 802.65106201171875, -343.291656494140625, 12.17534732818603515, 4.712388992309570312, 180, 0, 0, 1027563, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glaive Thrower (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+75, 35273, 628, 4710, 4748, '0', 0, 0, 0, 0, 771.842041015625, -342.401031494140625, 12.19386196136474609, 4.712388992309570312, 180, 0, 0, 1027563, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Glaive Thrower (Area: Quarry - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+123, 34802, 628, 4710, 4747, '0', 0, 0, 0, 0, 787.31597900390625, -343.04339599609375, 12.24087047576904296, 4.712388992309570312, 7200, 0, 0, 1027563, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Glaive Thrower (Area: Workshop - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+124, 34802, 628, 4710, 4747, '0', 0, 0, 0, 0, 802.65106201171875, -343.248260498046875, 12.17302513122558593, 4.712388992309570312, 7200, 0, 0, 1027563, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Glaive Thrower (Area: Workshop - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) +(@CGUID+125, 34802, 628, 4710, 4747, '0', 0, 0, 0, 0, 771.68231201171875, -342.380218505859375, 12.19341564178466796, 4.712388992309570312, 7200, 0, 0, 1027563, 0, 0, NULL, NULL, NULL, NULL, 53162); -- Glaive Thrower (Area: Workshop - Difficulty: 0) CreateObject2 (Auras: 52455 - PvP Vehicle Health Regen Suppression) + +-- Human Miners +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+47, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 300.42535400390625, -1180.0069580078125, 16.7330169677734375, 1.431169986724853515, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+48, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 302.197906494140625, -1141.2257080078125, 30.97160530090332031, 5.497786998748779296, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+49, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 320.243072509765625, -1147.7430419921875, 34.2675628662109375, 4.084070205688476562, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+50, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 331.192718505859375, -1129.8316650390625, 19.95678901672363281, 3.647738218307495117, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+51, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 273.28125, -1260.579833984375, 42.1154632568359375, 4.956735134124755859, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+52, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 303.885406494140625, -1243.829833984375, 25.91202926635742187, 4.660028934478759765, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+53, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 374.927093505859375, -1160.296875, 28.20929718017578125, 5.235987663269042968, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+54, 61696, 628, 4710, 4750, '0', 0, 0, 0, 1, 231.904510498046875, -1076.3663330078125, 17.85601425170898437, 1.884955525398254394, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: Hangar - Difficulty: 0) CreateObject1 +(@CGUID+55, 61696, 628, 4710, 0, '0', 0, 0, 0, 1, 203.451385498046875, -1102.0382080078125, 8.814992904663085937, 3.560471534729003906, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+56, 61696, 628, 4710, 0, '0', 0, 0, 0, 1, 226.626739501953125, -1068.6961669921875, 27.455169677734375, 1.623156189918518066, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+57, 61696, 628, 4710, 0, '0', 0, 0, 0, 1, 197.4131927490234375, -1107.0260009765625, 16.24344825744628906, 2.460914134979248046, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+59, 61696, 628, 4710, 0, '0', 0, 0, 0, 1, 174.62847900390625, -1132.4410400390625, 10.53891181945800781, 2.94960641860961914, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Human Miner (Area: 0 - Difficulty: 0) CreateObject1 +(@CGUID+60, 61696, 628, 4710, 0, '0', 0, 0, 0, 1, 172.86285400390625, -1174.263916015625, 2.087067365646362304, 3.281219005584716796, 7200, 0, 0, 118565, 0, 0, NULL, NULL, NULL, NULL, 53007); -- Human Miner (Area: 0 - Difficulty: 0) CreateObject1 + +-- Peasant workers +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+58, 19444, 628, 4710, 0, '0', 0, 0, 0, 4, 302.064239501953125, -893.94793701171875, 66.069427490234375, 4.223696708679199218, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+61, 19444, 628, 4710, 0, '0', 0, 0, 0, 2, 299.6358642578125, -872.642822265625, 48.95278167724609375, 5.4851837158203125, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) (possible waypoints or random movement) +(@CGUID+62, 19444, 628, 4710, 0, '0', 0, 0, 0, 4, 265.80902099609375, -891.12847900390625, 76.61261749267578125, 0.890117883682250976, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+63, 19444, 628, 4710, 0, '0', 0, 0, 0, 4, 252.734375, -893.67706298828125, 62.05205535888671875, 5.585053443908691406, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+65, 19444, 628, 4710, 0, '0', 0, 0, 0, 4, 236.64410400390625, -880.6024169921875, 50.06217193603515625, 2.513274192810058593, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+66, 19444, 628, 4710, 0, '0', 0, 0, 0, 2, 233.032989501953125, -874.2430419921875, 64.42089080810546875, 3.31612563133239746, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+67, 19444, 628, 4710, 0, '0', 0, 0, 0, 0, 387.5, -780.22918701171875, 48.91879653930664062, 0.055398445576429367, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: 0 - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) (possible waypoints or random movement) +(@CGUID+68, 19444, 628, 4710, 4748, '0', 0, 0, 0, 2, 265.3125, -795.59893798828125, 48.99958038330078125, 2.757620096206665039, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+69, 19444, 628, 4710, 4748, '0', 0, 0, 0, 4, 255.423614501953125, -791.1163330078125, 52.6163177490234375, 1.65806281566619873, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+70, 19444, 628, 4710, 4748, '0', 0, 0, 0, 4, 258.33160400390625, -792.6961669921875, 63.36460113525390625, 5.98647928237915039, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+71, 19444, 628, 4710, 4748, '0', 0, 0, 0, 0, 271.357635498046875, -790.48785400390625, 48.96506500244140625, 6.009759426116943359, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) (possible waypoints or random movement) +(@CGUID+93, 19444, 628, 4710, 4748, '0', 0, 0, 0, 4, 240.986114501953125, -787.29864501953125, 73.56451416015625, 5.777040004730224609, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+94, 19444, 628, 4710, 4748, '0', 0, 0, 0, 2, 265.524322509765625, -778.732666015625, 48.99958038330078125, 2.111848354339599609, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Peasant Worker (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) +(@CGUID+95, 19444, 628, 4710, 4748, '0', 0, 0, 0, 2, 238.8090362548828125, -786.42535400390625, 55.42572784423828125, 3.385938644409179687, 7200, 0, 0, 225838, 0, 0, NULL, NULL, NULL, NULL, 53007); -- Peasant Worker (Area: Quarry - Difficulty: 0) CreateObject1 (Auras: 18950 - Invisibility and Stealth Detection) + +-- Forsaken Miner +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+80, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 226.626739501953125, -1068.6961669921875, 27.455169677734375, 1.623156189918518066, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+81, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 174.62847900390625, -1132.4410400390625, 10.53891181945800781, 2.94960641860961914, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+82, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 300.42535400390625, -1180.0069580078125, 16.7330169677734375, 1.431169986724853515, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+83, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 231.904510498046875, -1076.3663330078125, 17.85601425170898437, 1.884955525398254394, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+84, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 197.4131927490234375, -1107.0260009765625, 16.24344825744628906, 2.460914134979248046, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+85, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 203.451385498046875, -1102.0382080078125, 8.814992904663085937, 3.560471534729003906, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+86, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 302.197906494140625, -1141.2257080078125, 30.97160530090332031, 5.497786998748779296, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+87, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 320.243072509765625, -1147.7430419921875, 34.2675628662109375, 4.084070205688476562, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+88, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 331.192718505859375, -1129.8316650390625, 19.95678901672363281, 3.647738218307495117, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject2 +(@CGUID+89, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 273.28125, -1260.579833984375, 42.1154632568359375, 4.956735134124755859, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject1 +(@CGUID+90, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 303.885406494140625, -1243.829833984375, 25.91202926635742187, 4.660028934478759765, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject1 +(@CGUID+91, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 172.86285400390625, -1174.263916015625, 2.087067365646362304, 3.281219005584716796, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject1 +(@CGUID+92, 15075, 628, 4710, 4748, '0', 0, 0, 0, 1, 374.927093505859375, -1160.296875, 28.20929718017578125, 5.235987663269042968, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007); -- Forsaken Miner (Area: Quarry - Difficulty: 0) CreateObject1 + +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+191, 51435, 641, 4710, 4752, '0', 0, 0, 0, 0, -13.1210212707519531, -0.0992838516831398, 24.45633125305175781, 3.106686115264892578, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Alliance Gunship (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+192, 51436, 642, 4710, 4752, '0', 0, 0, 0, 0, -5.64433193206787109, 0.352720469236373901, 34.79607009887695312, 3.03687286376953125, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Horde Gunship (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+193, 35003, 642, 4710, 4750, '0', 0, 0, 0, 0, 2.516399621963500976, -3.52628135681152343, 34.24978256225585937, 1.558264493942260742, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007); -- Horde Gunship Captain (Area: Hangar - Difficulty: 0) CreateObject1 (Auras: 47934 - [DND] Force Response - Salute (0. Aura)) (possible waypoints or random movement) + +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `ScriptName`, `VerifiedBuild`) VALUES +(@CGUID+194, 35003, 628, 4710, 4750, '0', 0, 0, 0, 0, 825.66668701171875, -994.00518798828125, 134.3568878173828125, 3.40339207649230957, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 'npc_ioc_gunship_captain', 53162), -- Horde Gunship Captain (Area: Hangar - Difficulty: 0) CreateObject2 +(@CGUID+195, 51435, 628, 4710, 4750, '0', 0, 0, 0, 0, 825.66668701171875, -994.00518798828125, 134.3568878173828125, 3.40339207649230957, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 'npc_ioc_gunship_captain', 0); -- Alliance Gunship Captain (Area: Hangar - Difficulty: 0) CreateObject2 + +-- keep bosses +INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `unit_flags2`, `unit_flags3`, `VerifiedBuild`) VALUES +(@CGUID+199, 34924, 628, 4710, 4747, '0', 0, 0, 0, 1, 224.982635498046875, -831.57293701171875, 60.90335464477539062, 0, 7200, 0, 0, 44038410, 0, 0, NULL, NULL, NULL, NULL, 53162), -- High Commander Halford Wyrmbane (Area: Workshop - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+200, 34919, 628, 4710, 4753, '0', 0, 0, 0, 1, 262.763885498046875, -837.32293701171875, 50.52349090576171875, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53007), -- 7th Legion Infantry (Area: Alliance Keep - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+201, 34919, 628, 4710, 4753, '0', 0, 0, 0, 1, 262.90972900390625, -830.4757080078125, 50.52349472045898437, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53007), -- 7th Legion Infantry (Area: Alliance Keep - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+202, 34919, 628, 4710, 4753, '0', 0, 0, 0, 1, 262.87847900390625, -833.8680419921875, 50.52349472045898437, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53007), -- 7th Legion Infantry (Area: Alliance Keep - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+203, 34919, 628, 4710, 4753, '0', 0, 0, 0, 1, 262.967010498046875, -826.7725830078125, 50.52349090576171875, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53007), -- 7th Legion Infantry (Area: Alliance Keep - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+204, 34919, 628, 4710, 0, '0', 0, 0, 0, 1, 224.376739501953125, -827.40106201171875, 60.90335464477539062, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- 7th Legion Infantry (Area: 0 - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+205, 34919, 628, 4710, 0, '0', 0, 0, 0, 1, 223.3229217529296875, -833.21875, 60.90335464477539062, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- 7th Legion Infantry (Area: 0 - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+206, 34919, 628, 4710, 0, '0', 0, 0, 0, 1, 223.8402862548828125, -835.513916015625, 60.90335464477539062, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- 7th Legion Infantry (Area: 0 - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+207, 34919, 628, 4710, 0, '0', 0, 0, 0, 1, 223.2934112548828125, -829.2100830078125, 60.90335464477539062, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- 7th Legion Infantry (Area: 0 - Difficulty: 0) CreateObject1 (Auras: ) +(@CGUID+208, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1294.7535400390625, -761.451416015625, 70.0415496826171875, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (possible waypoints or random movement) +(@CGUID+209, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1300.5399169921875, -764.08160400390625, 50.70293045043945312, 2.897246599197387695, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: ) (possible waypoints or random movement) +(@CGUID+210, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1295.7100830078125, -757.5399169921875, 70.04154205322265625, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (possible waypoints or random movement) +(@CGUID+211, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1300.4322509765625, -775.70660400390625, 50.70293045043945312, 2.897246599197387695, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: ) (possible waypoints or random movement) +(@CGUID+212, 34922, 628, 4710, 4752, '0', 0, 0, 0, 1, 1295.439208984375, -765.732666015625, 70.0540618896484375, 0, 7200, 0, 0, 44038410, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Overlord Agmar (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: 177684 - Unit Frame) +(@CGUID+213, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1294.9600830078125, -770.52606201171875, 70.04145050048828125, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (possible waypoints or random movement) +(@CGUID+214, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1300.8697509765625, -757.95831298828125, 50.70293045043945312, 2.897246599197387695, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: ) (possible waypoints or random movement) +(@CGUID+215, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1300.76220703125, -769.58331298828125, 50.70293045043945312, 2.897246599197387695, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (Auras: ) (possible waypoints or random movement) +(@CGUID+216, 34918, 628, 4710, 4752, '0', 0, 0, 0, 1, 1296.0660400390625, -774.78472900390625, 70.04144287109375, 0, 7200, 0, 0, 56460, 0, 0, NULL, NULL, NULL, NULL, 53162), -- Kor'kron Guard (Area: Horde Keep - Difficulty: 0) CreateObject2 (possible waypoints or random movement) +(@CGUID+217, 36169, 628, 4710, 4752, '0', 0, 0, 0, 1, 1233.154541015625, -685.33331298828125, 49.32620620727539062, 0.506145477294921875, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 (possible waypoints or random movement) +(@CGUID+218, 36169, 628, 4710, 4752, '0', 0, 0, 0, 1, 1323.454833984375, -717.48956298828125, 52.20786285400390625, 2.617993831634521484, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+219, 36169, 628, 4710, 4752, '0', 0, 0, 0, 1, 1251.34375, -685.13543701171875, 49.13456344604492187, 3.857177734375, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+220, 36167, 628, 4710, 4752, '0', 0, 0, 0, 0, 1325.0972900390625, -804.70660400390625, 49.04310226440429687, 3.333578824996948242, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Wolf (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+221, 36169, 628, 4710, 4752, '0', 0, 0, 0, 1, 1315.248291015625, -713.0242919921875, 65.445953369140625, 0.279252678155899047, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+222, 36169, 628, 4710, 4752, '0', 0, 0, 0, 1, 1333.7083740234375, -710.1319580078125, 48.9995880126953125, 4.206243515014648437, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+223, 36167, 628, 4710, 4752, '0', 0, 0, 0, 0, 1353.0225830078125, -832.2742919921875, 49.07046890258789062, 2.373647689819335937, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Wolf (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+224, 36169, 628, 4710, 4752, '0', 0, 0, 0, 1, 1317.84375, -696.78302001953125, 48.943145751953125, 4.520402908325195312, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 (possible waypoints or random movement) +(@CGUID+225, 36167, 628, 4710, 4752, '0', 0, 0, 0, 0, 1332.24658203125, -842.1007080078125, 49.14832305908203125, 2.600540637969970703, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Wolf (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+226, 36169, 628, 4710, 4752, '0', 0, 0, 0, 1, 1321.1754150390625, -706.3507080078125, 69.2999267578125, 0.03490658476948738, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Bor'gorok Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+227, 36154, 628, 4710, 4752, '0', 0, 0, 0, 0, 1159.3350830078125, -817.39581298828125, 48.95509719848632812, 0, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Valgarde Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+228, 36154, 628, 4710, 4752, '0', 0, 0, 0, 0, 1188.6007080078125, -845.0538330078125, 49.0836944580078125, 2.129301786422729492, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Valgarde Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+229, 36154, 628, 4710, 4752, '0', 0, 0, 0, 0, 1157.2274169921875, -822.576416015625, 53.09723663330078125, 0, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007), -- [DND] Valgarde Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@CGUID+230, 36154, 628, 4710, 4752, '0', 0, 0, 0, 0, 1158.7066650390625, -822.921875, 49.03955078125, 0.558505356311798095, 7200, 0, 0, 112919, 0, 0, NULL, NULL, NULL, NULL, 53007); -- [DND] Valgarde Peon (Area: Horde Keep - Difficulty: 0) CreateObject1 + +-- Delete duplicate cannons +DELETE FROM `creature` WHERE `guid` IN (142965, 142966, 142967, 142968, 142969, 142970, 142971, 142972, 142973, 142974); +-- update current cannons +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -12.1064128875732421, `position_y` = -31.969635009765625, `position_z` = 34.463897705078125, `orientation` = 4.625122547149658203, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75000; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = 19.46366691589355468, `position_y` = -30.7939929962158203, `position_z` = 36.30840682983398437, `orientation` = 4.852015495300292968, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75001; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -2.48760795593261718, `position_y` = -31.9885425567626953, `position_z` = 34.92169570922851562, `orientation` = 4.834561824798583984, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75002; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = 10.26639747619628906, `position_y` = -32.0712966918945312, `position_z` = 35.81895065307617187, `orientation` = 4.852015495300292968, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75003; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -21.4009037017822265, `position_y` = -31.3430347442626953, `position_z` = 34.2563323974609375, `orientation` = 4.677482128143310546, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75004; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -31.0354042053222656, `position_y` = 24.86196708679199218, `position_z` = 21.7027435302734375, `orientation` = 1.65806281566619873, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75005; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -12.4733877182006835, `position_y` = 25.72649765014648437, `position_z` = 21.678131103515625, `orientation` = 1.65806281566619873, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75006; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -21.4492530822753906, `position_y` = 25.398895263671875, `position_z` = 21.66955757141113281, `orientation` = 1.65806281566619873, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75007; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -41.7122764587402343, `position_y` = 22.90813636779785156, `position_z` = 22.60103225708007812, `orientation` = 1.902408838272094726, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75008; +UPDATE `creature` SET `spawnDifficulties` = '0', `position_x` = -2.81130409240722656, `position_y` = 25.78116035461425781, `position_z` = 21.69147872924804687, `orientation` = 1.65806281566619873, `curhealth` = 451676, `VerifiedBuild` = 53162 WHERE `guid` = 75009; + +DELETE FROM `creature_addon` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+10000; +INSERT INTO `creature_addon` (`guid`, `PathId`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES +(@CGUID+58, 0, 0, 0, 0, 0, 1, 0, 234, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+61, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+62, 0, 0, 0, 0, 0, 1, 0, 234, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+63, 0, 0, 0, 0, 0, 1, 0, 234, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+65, 0, 0, 0, 0, 0, 1, 0, 234, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+66, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+67, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+68, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+69, 0, 0, 0, 0, 0, 1, 0, 234, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+70, 0, 0, 0, 0, 0, 1, 0, 234, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+71, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+93, 0, 0, 0, 0, 0, 1, 0, 234, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+94, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+95, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, '18950'), -- Peasant Worker - 18950 - Invisibility and Stealth Detection +(@CGUID+217, 0, 0, 0, 0, 0, 1, 0, 69, 0, 0, 0, 0, ''), -- [DND] Bor'gorok Peon +(@CGUID+218, 0, 0, 0, 0, 0, 1, 0, 69, 0, 0, 0, 0, ''), -- [DND] Bor'gorok Peon +(@CGUID+220, 0, 0, 0, 0, 0, 1, 0, 418, 0, 0, 0, 0, ''), -- [DND] Bor'gorok Wolf +(@CGUID+221, 0, 0, 0, 0, 0, 1, 0, 69, 0, 0, 0, 0, ''), -- [DND] Bor'gorok Peon +(@CGUID+224, 0, 0, 0, 0, 0, 1, 0, 69, 0, 0, 0, 0, ''), -- [DND] Bor'gorok Peon +(@CGUID+226, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, ''); -- [DND] Bor'gorok Peon + +UPDATE `creature_template_addon` SET `StandState`=1 WHERE `entry`=25748; -- 25748 (Oil-covered Hawk) - Oil Coat +UPDATE `creature_template_addon` SET `auras`='52455' WHERE `entry`=34775; -- 34775 (Demolisher) - PvP Vehicle Health Regen Suppression +UPDATE `creature_template_addon` SET `PvpFlags`=1 WHERE `entry`=35069; -- 35069 (Siege Engine) +UPDATE `creature_template_addon` SET `auras`='52455' WHERE `entry`=34793; -- 34793 (Catapult) - PvP Vehicle Health Regen Suppression +UPDATE `creature_template_addon` SET `auras`='52455' WHERE `entry`=35273; -- 35273 (Glaive Thrower) - PvP Vehicle Health Regen Suppression +UPDATE `creature_template_addon` SET `visibilityDistanceType`=5, `auras`='177684' WHERE `entry`=34924; -- 34924 (High Commander Halford Wyrmbane) - Unit Frame +UPDATE `creature_template_addon` SET `auras`='67359' WHERE `entry`=35377; -- 35377 (Door Fire) - Door Fire +UPDATE `creature_template_addon` SET `auras`='75925 52455' WHERE `entry`=34944; -- 34944 (Keep Cannon) - Facing Saver, PvP Vehicle Health Regen Suppression + +DELETE FROM `creature_template_addon` WHERE `entry` IN (15075 /*Forsaken Miner*/, 61696 /*Human Miner*/, 36148 /*36148 ([DND] Forsaken Mariner)*/, 35380 /*35380 (Honorable Defender Trigger (Horde)) - Honorable Defender*/, 35003 /*35003 (Horde Gunship Captain) - [DND] Force Response - Salute (0. Aura)*/, 36164 /*36164 (Kor'kron Reaver)*/, 36152 /*36152 (Navigator Saracen)*/, 36151 /*36151 (Navigator Taylor)*/); +INSERT INTO `creature_template_addon` (`entry`, `PathId`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES +(36148, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, ''), -- 36148 ([DND] Forsaken Mariner) +(35380, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, '66157'), -- 35380 (Honorable Defender Trigger (Horde)) - Honorable Defender +(35003, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, '47934'), -- 35003 (Horde Gunship Captain) - [DND] Force Response - Salute (0. Aura) +(36164, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, ''), -- 36164 (Kor'kron Reaver) +(36152, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, ''), -- 36152 (Navigator Saracen) +(36151, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, ''), -- 36151 (Navigator Taylor) +(61696, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, ''), -- 61696 (Human Miner) +(15075, 0, 0, 0, 0, 0, 1, 0, 233, 0, 0, 0, 0, ''); -- 15075 (Forsaken Miner) + +UPDATE `creature_template` SET `faction` = 1732 WHERE `entry` = 34802; + +UPDATE `creature_template` SET `ScriptName` = 'npc_ioc_siege_engine' WHERE `entry` IN (34776, 35069); + +UPDATE `creature_template` SET `ScriptName` = '' WHERE `ScriptName` = 'npc_ioc_gunship_captain'; + +UPDATE `creature_template_difficulty` SET `ContentTuningID`=958, `VerifiedBuild`=53162 WHERE (`Entry`=34919 AND `DifficultyID`=0); -- 7th Legion Infantry +UPDATE `creature_template_difficulty` SET `ContentTuningID`=958, `VerifiedBuild`=53162 WHERE (`Entry`=34924 AND `DifficultyID`=0); -- High Commander Halford Wyrmbane + +DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+10000; +-- Cosmetics +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+0, 195377, 628, 4710, 4752, '0', 0, 0, 1162.2100830078125, -790.54339599609375, 48.91624832153320312, 2.277654170989990234, 0, 0, 0.908143043518066406, 0.418660014867782592, 7200, 255, 1, 53007), -- Bonfire (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+3, 195403, 628, 4710, 4752, '0', 0, 0, 1262.579833984375, -781.86114501953125, 48.81315994262695312, 2.042031526565551757, 0, 0, 0.852639198303222656, 0.522500097751617431, 7200, 255, 1, 53007), -- Brazier (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+37, 195425, 628, 4710, 0, '0', 0, 0, 223.8183746337890625, -839.3519287109375, 60.79163360595703125, 1.090830326080322265, 0, 0, 0.518773078918457031, 0.854911983013153076, 7200, 255, 1, 53007), -- Brazier (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+40, 195424, 628, 4710, 4748, '0', 0, 0, 224.2770843505859375, -822.7701416015625, 60.79163360595703125, 2.068215370178222656, 0, 0, 0.859406471252441406, 0.511292934417724609, 7200, 255, 1, 53007), -- Brazier (Area: Quarry - Difficulty: 0) CreateObject1 +(@OGUID+47, 160411, 628, 4710, 0, '0', 0, 0, 761.462158203125, -446.683807373046875, 22.56014823913574218, 0.24434363842010498, 0, 0, 0.121868133544921875, 0.992546260356903076, 7200, 255, 1, 53007), -- Stove (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+48, 160413, 628, 4710, 0, '0', 0, 0, 762.9974365234375, -445.86358642578125, 22.85254096984863281, 3.28996133804321289, 0, 0, -0.99724960327148437, 0.074116282165050506, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+49, 160415, 628, 4710, 0, '0', 0, 0, 762.24468994140625, -444.7945556640625, 22.85254096984863281, 4.302238941192626953, 0, 0, -0.83628559112548828, 0.5482940673828125, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+50, 160414, 628, 4710, 0, '0', 0, 0, 762.9208984375, -447.259063720703125, 22.85254096984863281, 2.827429771423339843, 0, 0, 0.987688064575195312, 0.156436234712600708, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+51, 195418, 628, 4710, 0, '0', 0, 0, 632.15643310546875, -304.5028076171875, 5.487901687622070312, 1.156033277511596679, 0, 0, 0.54636383056640625, 0.837547957897186279, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+52, 195411, 628, 4710, 0, '0', 0, 0, 633.96527099609375, -283.52777099609375, 5.453640937805175781, 2.369039058685302734, 0, 0, 0.926318168640136718, 0.376742124557495117, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+53, 195410, 628, 4710, 0, '0', 0, 0, 632.8760986328125, -282.461181640625, 5.453640937805175781, 5.432093620300292968, 0, 0, -0.41281795501708984, 0.910813570022583007, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+54, 195413, 628, 4710, 0, '0', 0, 0, 631.4180908203125, -278.137115478515625, 5.486441612243652343, 5.432093620300292968, 0, 0, -0.41281795501708984, 0.910813570022583007, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+55, 195412, 628, 4710, 0, '0', 0, 0, 632.63323974609375, -279.27374267578125, 5.486441612243652343, 2.369039058685302734, 0, 0, 0.926318168640136718, 0.376742124557495117, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+56, 195415, 628, 4710, 0, '0', 0, 0, 634.68426513671875, -276.426177978515625, 5.486584663391113281, 0.03029748611152172, 0, 0, 0.015148162841796875, 0.999885261058807373, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+57, 160416, 628, 4710, 0, '0', 0, 0, 798.32391357421875, -444.950897216796875, 22.56005096435546875, 5.26216888427734375, 0, 0, -0.48862075805664062, 0.872496306896209716, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+58, 195414, 628, 4710, 0, '0', 0, 0, 635.79608154296875, -276.2947998046875, 5.486584663391113281, 3.250456571578979492, 0, 0, -0.99851894378662109, 0.054405026137828826, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+59, 195417, 628, 4710, 0, '0', 0, 0, 642.7708740234375, -269.137420654296875, 5.488974571228027343, 5.432093620300292968, 0, 0, -0.41281795501708984, 0.910813570022583007, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+60, 195416, 628, 4710, 0, '0', 0, 0, 643.86004638671875, -270.20391845703125, 5.488974571228027343, 2.369039058685302734, 0, 0, 0.926318168640136718, 0.376742124557495117, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+61, 186897, 628, 4710, 0, '0', 0, 0, 819.2640380859375, -461.961181640625, 22.76141166687011718, 1.579522609710693359, -0.00304460525512695, -0.00312519073486328, 0.710178375244140625, 0.704008281230926513, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+62, 186899, 628, 4710, 0, '0', 0, 0, 817.4462890625, -470.46966552734375, 25.37198638916015625, 4.721118450164794921, 0, 0, -0.70401382446289062, 0.710186243057250976, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+63, 186901, 628, 4710, 0, '0', 0, 0, 826.9306640625, -470.380340576171875, 25.37198638916015625, 4.721118450164794921, 0, 0, -0.70401382446289062, 0.710186243057250976, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+64, 186900, 628, 4710, 0, '0', 0, 0, 822.15185546875, -470.433563232421875, 25.37198638916015625, 4.721118450164794921, 0, 0, -0.70401382446289062, 0.710186243057250976, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+65, 186903, 628, 4710, 0, '0', 0, 0, 822.2222900390625, -474.467803955078125, 25.37198638916015625, 1.579522013664245605, 0, 0, 0.710185050964355468, 0.704015016555786132, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+66, 186902, 628, 4710, 0, '0', 0, 0, 817.5167236328125, -474.503936767578125, 25.37198638916015625, 1.579522013664245605, 0, 0, 0.710185050964355468, 0.704015016555786132, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+67, 186904, 628, 4710, 0, '0', 0, 0, 827.00103759765625, -474.41461181640625, 25.37198638916015625, 1.579522013664245605, 0, 0, 0.710185050964355468, 0.704015016555786132, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+68, 160419, 628, 4710, 0, '0', 0, 0, 814.930908203125, -470.815521240234375, 33.63730621337890625, 3.159062385559082031, 0, 0, -0.99996185302734375, 0.008734640665352344, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+69, 160418, 628, 4710, 0, '0', 0, 0, 810.23651123046875, -461.2003173828125, 25.46265792846679687, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+70, 160420, 628, 4710, 0, '0', 0, 0, 813.23382568359375, -475.408050537109375, 33.57374954223632812, 6.213373661041259765, 0, 0, -0.03489875793457031, 0.999390840530395507, 7200, 255, 1, 53007), -- Stove (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+71, 186922, 628, 4710, 0, '0', 0, 0, 826.15289306640625, -461.984771728515625, 22.514923095703125, 1.570796370506286621, -0.00617122650146484, -0.00617027282714843, 0.707079887390136718, 0.707079827785491943, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+72, 186896, 628, 4710, 0, '0', 0, 0, 834.20782470703125, -461.825592041015625, 22.30665206909179687, 1.570796370506286621, -0.00617122650146484, -0.00617027282714843, 0.707079887390136718, 0.707079827785491943, 7200, 255, 1, 53007), -- Bench (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+73, 174863, 628, 4710, 0, '0', 0, 0, 903.29071044921875, -457.344818115234375, 18.13561820983886718, 2.234017848968505859, 0, 0, 0.898793220520019531, 0.438372820615768432, 7200, 255, 1, 53007), -- Stove (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+74, 160409, 628, 4710, 0, '0', 0, 0, 901.24652099609375, -457.39837646484375, 18.39345932006835937, 0.008724239654839038, 0, 0, 0.004362106323242187, 0.999990463256835937, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+75, 160410, 628, 4710, 0, '0', 0, 0, 902.2344970703125, -455.507965087890625, 18.39345932006835937, 5.279621601104736328, 0, 0, -0.4809885025024414, 0.876726925373077392, 7200, 255, 1, 53007), -- Chair (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+81, 160409, 628, 4710, 4749, '0', 0, 0, 1067.9530029296875, -338.4100341796875, 18.82249069213867187, 1.466073274612426757, 0, 0, 0.669129371643066406, 0.743145942687988281, 7200, 255, 1, 53007), -- Chair (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+82, 160410, 628, 4710, 4749, '0', 0, 0, 1066.1865234375, -337.214385986328125, 18.82249069213867187, 0.453785061836242675, 0, 0, 0.224950790405273437, 0.974370121955871582, 7200, 255, 1, 53007), -- Chair (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+83, 174863, 628, 4710, 4749, '0', 0, 0, 1068.1312255859375, -336.372894287109375, 18.56464958190917968, 3.691374778747558593, 0, 0, -0.96245479583740234, 0.271441996097564697, 7200, 255, 1, 53007), -- Stove (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+84, 160416, 628, 4710, 4749, '0', 0, 0, 1081.805419921875, -358.63665771484375, 18.5531463623046875, 1.928588032722473144, 0, 0, 0.821646690368652343, 0.569997072219848632, 7200, 255, 1, 53007), -- Chair (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+85, 160411, 628, 4710, 4749, '0', 0, 0, 1118.320556640625, -363.9691162109375, 18.55324363708496093, 3.194002151489257812, 0, 0, -0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 53007), -- Stove (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+86, 160413, 628, 4710, 4749, '0', 0, 0, 1116.656982421875, -364.481353759765625, 18.84563636779785156, 6.239553451538085937, 0, 0, -0.02181434631347656, 0.99976205825805664, 7200, 255, 1, 53007), -- Chair (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+87, 160415, 628, 4710, 4749, '0', 0, 0, 1117.19189453125, -365.67437744140625, 18.84563636779785156, 0.968655109405517578, 0, 0, 0.465613365173339843, 0.884988248348236083, 7200, 255, 1, 53007), -- Chair (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+88, 160414, 628, 4710, 4749, '0', 0, 0, 1116.9984130859375, -363.1260986328125, 18.84563636779785156, 5.777042865753173828, 0, 0, -0.25037860870361328, 0.968147993087768554, 7200, 255, 1, 53007), -- Chair (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+95, 195376, 628, 4710, 0, '0', 0, 0, 1162.9132080078125, -734.578125, 48.89479446411132812, 3.298687219619750976, 0, 0, -0.99691677093505859, 0.078466430306434631, 7200, 255, 1, 53007), -- Bonfire (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+96, 195402, 628, 4710, 0, '0', 0, 0, 1262.2083740234375, -751.357666015625, 48.81328201293945312, 2.268925428390502929, 0, 0, 0.906307220458984375, 0.422619491815567016, 7200, 255, 1, 53007), -- Brazier (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+97, 195207, 628, 4710, 0, '0', 0, 0, 1281.7579345703125, -732.84429931640625, 87.1573944091796875, 3.150726795196533203, 0.012359142303466796, -0.01225185394287109, -0.99983882904052734, 0.004414829425513744, 7200, 255, 1, 53007), -- Bonfire (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+98, 195208, 628, 4710, 0, '0', 0, 0, 1282.3419189453125, -799.76226806640625, 87.135711669921875, 3.150327444076538085, 0, 0, -0.99999046325683593, 0.004367320332676172, 7200, 255, 1, 53007), -- Bonfire (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+113, 195209, 628, 4710, 4752, '0', 0, 0, 1358.814697265625, -797.898681640625, 87.2953338623046875, 3.133123159408569335, 0.0067901611328125, -0.01746177673339843, 0.999814987182617187, 0.004353650845587253, 7200, 255, 1, 53007), -- Bonfire (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+114, 195210, 628, 4710, 4752, '0', 0, 0, 1358.0614013671875, -732.17840576171875, 87.16064453125, 3.150349617004394531, -0.005615234375, -0.0065164566040039, -0.99995326995849609, 0.004414829425513744, 7200, 255, 1, 53007); -- Bonfire (Area: Horde Keep - Difficulty: 0) CreateObject1 + +-- Teleporters +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+4, 195315, 628, 4710, 4752, '0', 0, 0, 425.67535400390625, -857.09027099609375, 48.51041793823242187, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 7200, 255, 1, 53007), -- Teleporter (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+10, 195316, 628, 4710, 0, '0', 0, 0, 397.088531494140625, -859.3819580078125, 48.8993072509765625, 1.640606880187988281, 0, 0, 0.731352806091308593, 0.6819993257522583, 7200, 255, 1, 53007), -- Teleporter (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+11, 195316, 628, 4710, 0, '0', 0, 0, 323.539947509765625, -888.36114501953125, 48.91973495483398437, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 7200, 255, 1, 53007), -- Teleporter (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+12, 195315, 628, 4710, 0, '0', 0, 0, 311.920135498046875, -913.97222900390625, 48.81592178344726562, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 53007), -- Teleporter (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+17, 195316, 628, 4710, 4750, '0', 0, 0, 326.28472900390625, -777.3663330078125, 49.02083206176757812, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 7200, 255, 1, 53007), -- Teleporter (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+20, 195315, 628, 4710, 4750, '0', 0, 0, 324.635406494140625, -749.12847900390625, 49.3601837158203125, 0.017452461645007133, 0, 0, 0.008726119995117187, 0.999961912631988525, 7200, 255, 1, 53007), -- Teleporter (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+76, 195313, 628, 4710, 4749, '0', 0, 0, 1158.76220703125, -746.18231201171875, 48.62767791748046875, 4.764749526977539062, 0, 0, -0.6883544921875, 0.725374460220336914, 7200, 255, 1, 53007), -- Teleporter (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+77, 195314, 628, 4710, 4749, '0', 0, 0, 1143.25, -779.59893798828125, 48.62895584106445312, 1.640606880187988281, 0, 0, 0.731352806091308593, 0.6819993257522583, 7200, 255, 1, 53007), -- Teleporter (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+79, 195314, 628, 4710, 4749, '0', 0, 0, 1236.53125, -669.4149169921875, 48.27285385131835937, 0.104719325900077819, 0, 0, 0.052335739135742187, 0.998629570007324218, 7200, 255, 1, 53007), -- Teleporter (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+80, 195313, 628, 4710, 4749, '0', 0, 0, 1235.52783203125, -683.87152099609375, 49.30397415161132812, 3.194002151489257812, 0, 0, -0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 53007), -- Teleporter (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+92, 195313, 628, 4710, 4749, '0', 0, 0, 1233.2725830078125, -844.52606201171875, 48.882415771484375, 6.265733242034912109, 0, 0, -0.00872611999511718, 0.999961912631988525, 7200, 255, 1, 53007), -- Teleporter (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+94, 195314, 628, 4710, 4749, '0', 0, 0, 1235.0867919921875, -857.8975830078125, 48.91625595092773437, 3.071766138076782226, 0, 0, 0.999390602111816406, 0.034906134009361267, 7200, 255, 1, 53007), -- Teleporter (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+101, 195701, 628, 4710, 4752, '0', 0, 0, 397.1163330078125, -859.37847900390625, 48.89894485473632812, 1.640606880187988281, 0, 0, 0.731352806091308593, 0.6819993257522583, 7200, 255, 1, 53007), -- Teleporter Effects (Alliance) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+102, 195702, 628, 4710, 4752, '0', 0, 0, 1235.0711669921875, -857.95660400390625, 48.91625595092773437, 3.054326534271240234, 0, 0, 0.999048233032226562, 0.043619260191917419, 7200, 255, 1, 53007), -- Teleporter Effects (Horde) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+103, 195701, 628, 4710, 4752, '0', 0, 0, 326.265625, -777.34722900390625, 49.02154541015625, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 7200, 255, 1, 53007), -- Teleporter Effects (Alliance) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+104, 195702, 628, 4710, 4752, '0', 0, 0, 1158.640625, -746.1475830078125, 48.62769317626953125, 4.782202720642089843, 0, 0, -0.68199825286865234, 0.731353819370269775, 7200, 255, 1, 53007), -- Teleporter Effects (Horde) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+105, 195702, 628, 4710, 4752, '0', 0, 0, 1235.595458984375, -683.8055419921875, 49.30275344848632812, 3.211419343948364257, 0, 0, -0.9993906021118164, 0.034906134009361267, 7200, 255, 1, 53007), -- Teleporter Effects (Horde) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+106, 195701, 628, 4710, 4752, '0', 0, 0, 324.633697509765625, -749.1475830078125, 49.35897445678710937, 0.017452461645007133, 0, 0, 0.008726119995117187, 0.999961912631988525, 7200, 255, 1, 53007), -- Teleporter Effects (Alliance) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+107, 195702, 628, 4710, 4752, '0', 0, 0, 1236.4583740234375, -669.34375, 48.26840591430664062, 0.087265998125076293, 0, 0, 0.043619155883789062, 0.999048233032226562, 7200, 255, 1, 53007), -- Teleporter Effects (Horde) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+108, 195701, 628, 4710, 4752, '0', 0, 0, 311.911468505859375, -913.98614501953125, 48.81566238403320312, 3.089183330535888671, 0, 0, 0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 53007), -- Teleporter Effects (Alliance) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+109, 195702, 628, 4710, 4752, '0', 0, 0, 1233.24658203125, -844.57293701171875, 48.88356781005859375, 0.017452461645007133, 0, 0, 0.008726119995117187, 0.999961912631988525, 7200, 255, 1, 53007), -- Teleporter Effects (Horde) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+110, 195701, 628, 4710, 4752, '0', 0, 0, 323.55035400390625, -888.34722900390625, 48.91978836059570312, 0.017452461645007133, 0, 0, 0.008726119995117187, 0.999961912631988525, 7200, 255, 1, 53007), -- Teleporter Effects (Alliance) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+111, 195702, 628, 4710, 4752, '0', 0, 0, 1143.24658203125, -779.623291015625, 48.62913894653320312, 1.623155713081359863, 0, 0, 0.725374221801757812, 0.688354730606079101, 7200, 255, 1, 53007), -- Teleporter Effects (Horde) (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+112, 195701, 628, 4710, 4752, '0', 0, 0, 425.685760498046875, -857.092041015625, 48.50996017456054687, 4.660029888153076171, 0, 0, -0.72537422180175781, 0.688354730606079101, 7200, 255, 1, 53007); -- Teleporter Effects (Alliance) (Area: Horde Keep - Difficulty: 0) CreateObject1 + +-- Gates +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+115, 195699, 628, 4710, 4752, '0', 0, 0, 351.614593505859375, -762.75, 48.91624832153320312, 4.712389945983886718, 0, 0, -0.70710659027099609, 0.707106947898864746, 7200, 255, 1, 53007), -- Alliance Gate (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+116, 195698, 628, 4710, 4752, '0', 0, 0, 413.479156494140625, -833.94964599609375, 48.5237579345703125, 3.141592741012573242, 0, 0, -1, 0, 7200, 252, 1, 53007), -- Alliance Gate (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+117, 195700, 628, 4710, 4752, '0', 0, 0, 351.024322509765625, -903.326416015625, 48.92471694946289062, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 7200, 0, 1, 53007), -- Alliance Gate (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+118, 195703, 628, 4710, 4752, '0', 0, 0, 413.4791259765625, -833.94964599609375, 48.5237579345703125, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, 53007), -- Doodad_ND_Human_Gate_ClosedFX_Door01 (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+119, 195223, 628, 4710, 4752, '0', 0, 0, 1283.0460205078125, -765.87847900390625, 50.82971954345703125, 3.150327444076538085, 0, 0, -0.99999046325683593, 0.004367320332676172, 7200, 255, 1, 53007), -- Horde Keep Portcullis (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+120, 195491, 628, 4710, 4752, '0', 0, 0, 1218.7430419921875, -851.154541015625, 48.25328445434570312, 4.712392330169677734, 0, 0, -0.70710563659667968, 0.707107901573181152, 7200, 255, 1, 53007), -- Doodad_ND_WinterOrc_Wall_GateFX_Door01 (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+121, 195437, 628, 4710, 4752, '0', 0, 0, 1156.8858642578125, -843.998291015625, 48.63224029541015625, 0.732933998107910156, 0, 0, 0.358319282531738281, 0.933599114418029785, 7200, 255, 1, 53007), -- Doodad_VR_Portcullis01 (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+122, 195436, 628, 4710, 4752, '0', 0, 0, 399.80194091796875, -885.20751953125, 50.19386672973632812, 2.515995502471923828, 0, 0, 0.951476097106933593, 0.307722687721252441, 7200, 255, 1, 53007), -- Portcullis (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+123, 195491, 628, 4710, 4752, '0', 0, 0, 1150.90283203125, -762.60589599609375, 47.50767898559570312, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, 53007), -- Doodad_ND_WinterOrc_Wall_GateFX_Door01 (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+124, 195495, 628, 4710, 4752, '0', 0, 0, 1217.8992919921875, -676.94793701171875, 47.63407516479492187, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 7200, 255, 1, 53007), -- Horde Gate (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+125, 195494, 628, 4710, 4752, '0', 0, 0, 1150.90283203125, -762.60589599609375, 47.50767898559570312, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, 53007), -- Horde Gate (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+126, 195496, 628, 4710, 4752, '0', 0, 0, 1218.7430419921875, -851.154541015625, 48.25328445434570312, 4.712389945983886718, 0, 0, -0.70710659027099609, 0.707106947898864746, 7200, 255, 1, 53007), -- Horde Gate (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+127, 195703, 628, 4710, 4752, '0', 0, 0, 351.614593505859375, -762.75, 48.91624832153320312, 4.712392330169677734, 0, 0, -0.70710563659667968, 0.707107901573181152, 7200, 255, 1, 53007), -- Doodad_ND_Human_Gate_ClosedFX_Door01 (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+128, 195451, 628, 4710, 4752, '0', 0, 0, 288.15972900390625, -832.59527587890625, 51.41080093383789062, 6.257006168365478515, 0, 0, -0.01308917999267578, 0.999914348125457763, 7200, 255, 1, 53007), -- Portcullis (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+129, 195452, 628, 4710, 4752, '0', 0, 0, 273.03271484375, -832.19915771484375, 51.41080093383789062, 6.257006168365478515, 0, 0, -0.01308917999267578, 0.999914348125457763, 7200, 255, 1, 53007), -- Portcullis (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+130, 195437, 628, 4710, 4752, '0', 0, 0, 1157.047119140625, -682.36041259765625, 48.6322479248046875, 5.454051017761230468, 0, 0, -0.40279388427734375, 0.915290713310241699, 7200, 255, 1, 53007), -- Doodad_VR_Portcullis01 (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+131, 195436, 628, 4710, 4752, '0', 0, 0, 401.0240478515625, -780.7237548828125, 49.94826889038085937, 3.754217147827148437, 0, 0, -0.95345211029052734, 0.301544517278671264, 7200, 255, 1, 53007), -- Portcullis (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+132, 195703, 628, 4710, 4752, '0', 0, 0, 351.024322509765625, -903.326416015625, 48.92471694946289062, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 7200, 255, 1, 53007), -- Doodad_ND_Human_Gate_ClosedFX_Door01 (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+133, 195491, 628, 4710, 4752, '0', 0, 0, 1217.8992919921875, -676.94793701171875, 47.63407516479492187, 1.570795774459838867, 0, 0, 0.707106590270996093, 0.707106947898864746, 7200, 255, 1, 53007); -- Doodad_ND_WinterOrc_Wall_GateFX_Door01 (Area: Horde Keep - Difficulty: 0) CreateObject1 + +-- Bombs +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+13, 195332, 628, 4710, 4750, '0', 0, 0, 298.104156494140625, -861.02606201171875, 48.9162750244140625, 3.52557229995727539, 0, 0, -0.98162651062011718, 0.190812408924102783, 10, 255, 1, 53007), -- Huge Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+14, 195332, 628, 4710, 4750, '0', 0, 0, 297.321197509765625, -851.3211669921875, 48.91627120971679687, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 10, 255, 1, 53007), -- Huge Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+18, 195332, 628, 4710, 4750, '0', 0, 0, 302.135406494140625, -810.70831298828125, 48.91624832153320312, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 10, 255, 1, 53007), -- Huge Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+19, 195332, 628, 4710, 4750, '0', 0, 0, 300.37152099609375, -818.732666015625, 48.91624832153320312, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 10, 255, 1, 53007), -- Huge Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+89, 195333, 628, 4710, 4749, '0', 0, 0, 1268.5086669921875, -738.12152099609375, 48.91749954223632812, 5.235987663269042968, 0, 0, -0.5, 0.866025388240814208, 10, 255, 1, 53007), -- Huge Seaforium Bombs (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+90, 195333, 628, 4710, 4749, '0', 0, 0, 1268.30908203125, -745.78302001953125, 48.9187774658203125, 0.785396754741668701, 0, 0, 0.38268280029296875, 0.923879802227020263, 10, 255, 1, 53007), -- Huge Seaforium Bombs (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+91, 195333, 628, 4710, 4749, '0', 0, 0, 1273.0660400390625, -786.57293701171875, 48.94191741943359375, 5.340708732604980468, 0, 0, -0.45398998260498046, 0.891006767749786376, 10, 255, 1, 53007), -- Huge Seaforium Bombs (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+93, 195333, 628, 4710, 4749, '0', 0, 0, 1273.8489990234375, -796.27777099609375, 48.93642807006835937, 3.52557229995727539, 0, 0, -0.98162651062011718, 0.190812408924102783, 10, 255, 1, 53007); -- Huge Seaforium Bombs (Area: Docks - Difficulty: 0) CreateObject1 + +-- Hangar +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+7, 195131, 628, 4710, 0, '0', 0, 0, 807.779541015625, -1000.06768798828125, 132.38140869140625, 4.363324165344238281, 0, 0, -0.81915187835693359, 0.573576688766479492, 7200, 255, 1, 53007), -- Flagpole (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+8, 195158, 628, 4710, 0, '0', 0, 0, 807.780029296875, -1000.07000732421875, 132.3809967041015625, 4.345870018005371093, 0, 0, -0.82412624359130859, 0.566406130790710449, 7200, 255, 1, 53007), -- Hangar Banner (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+25, 195156, 628, 4710, 4750, '0', 0, 0, 807.780029296875, -1000.07000732421875, 132.3809967041015625, 4.345870018005371093, 0, 0, -0.82412624359130859, 0.566406130790710449, 7200, 255, 1, 53007), -- Horde Banner (Area: Hangar - Difficulty: 0) CreateObject2 +(@OGUID+30, 195155, 628, 4710, 0, '0', 0, 0, 807.780029296875, -1000.07000732421875, 132.3809967041015625, 4.363324165344238281, 0, 0, -0.81915187835693359, 0.573576688766479492, 7200, 255, 1, 53007), -- Horde Banner (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+31, 195326, 628, 4710, 0, '0', 0, 0, 739.0225830078125, -1106.6614990234375, 134.7550811767578125, 2.426007747650146484, 0, 0, 0.936672210693359375, 0.350207358598709106, 7200, 255, 1, 53007), -- Horde Gunship Portal (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+32, 195706, 628, 4710, 0, '0', 0, 0, 672.0867919921875, -1156.7864990234375, 133.7056732177734375, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 53007), -- Horde Gunship Portal Effects (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+33, 195326, 628, 4710, 0, '0', 0, 0, 672.07989501953125, -1156.7760009765625, 133.7056732177734375, 1.832594871520996093, 0, 0, 0.793353080749511718, 0.608761727809906005, 7200, 255, 1, 53007), -- Horde Gunship Portal (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+34, 195706, 628, 4710, 0, '0', 0, 0, 739.013916015625, -1106.6614990234375, 134.7548370361328125, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 53007), -- Horde Gunship Portal Effects (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+35, 195706, 628, 4710, 0, '0', 0, 0, 827.92364501953125, -993.29864501953125, 134.2002105712890625, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 53007), -- Horde Gunship Portal Effects (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+36, 195326, 628, 4710, 0, '0', 0, 0, 827.921875, -993.32464599609375, 134.1971893310546875, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 1, 53007), -- Horde Gunship Portal (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+134, 195153, 628, 0, 0, '0', 0, 0, 807.780029296875, -1000.07000732421875, 132.3809967041015625, 4.363324165344238281, 0, 0, -0.81915187835693359, 0.573576688766479492, 7200, 255, 1, 0), -- Alliance Banner +(@OGUID+135, 195154, 628, 0, 0, '0', 0, 0, 807.780029296875, -1000.07000732421875, 132.3809967041015625, 4.345870018005371093, 0, 0, -0.82412624359130859, 0.566406130790710449, 7200, 255, 1, 0), -- Alliance Banner +(@OGUID+152, 195705, 628, 4710, 4752, '0', 0, 0, 827.9617919921875, -994.4757080078125, 134.0702667236328125, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 53162), -- Alliance Gunship Portal Effects (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+153, 195320, 628, 4710, 4752, '0', 0, 0, 738.61285400390625, -1106.5833740234375, 134.7453155517578125, 2.548179388046264648, 0, 0, 0.956304550170898437, 0.292372345924377441, 7200, 255, 1, 53162), -- Alliance Gunship Portal (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+154, 195705, 628, 4710, 4752, '0', 0, 0, 672.263916015625, -1157.0347900390625, 133.7056732177734375, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 53162), -- Alliance Gunship Portal Effects (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+155, 195705, 628, 4710, 4752, '0', 0, 0, 738.795166015625, -1106.74658203125, 134.7429656982421875, 3.141592741012573242, 0, 0, -1, 0, 7200, 255, 0, 53162), -- Alliance Gunship Portal Effects (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+156, 195320, 628, 4710, 4752, '0', 0, 0, 827.95831298828125, -994.467041015625, 134.0712432861328125, 0, 0, 0, 0, 1, 7200, 255, 1, 53162), -- Alliance Gunship Portal (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+157, 195320, 628, 4710, 4752, '0', 0, 0, 672.28302001953125, -1156.9947509765625, 133.7056732177734375, 1.378809213638305664, 0, 0, 0.636077880859375, 0.771624863147735595, 7200, 255, 1, 53162); -- Alliance Gunship Portal (Area: Horde Keep - Difficulty: 0) CreateObject1 + +-- Workshop +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `stringId`, `VerifiedBuild`) VALUES +(@OGUID+5, 195131, 628, 4710, 0, '0', 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 0, 0, 0.719339370727539062, 0.694658815860748291, 7200, 255, 1, NULL, 53007), -- Flagpole (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+6, 195133, 628, 4710, 0, '0', 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 0, 0, 0.719339370727539062, 0.694658815860748291, 7200, 255, 1, NULL, 53007), -- Workshop Banner (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+9, 195145, 628, 4710, 0, '0', 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 0, 0, 0.719339370727539062, 0.694658815860748291, 7200, 255, 1, NULL, 53007), -- Horde Banner (Area: 0 - Difficulty: 0) CreateObject2 +(@OGUID+26, 195130, 628, 4710, 4750, '0', 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 0, 0, 0.719339370727539062, 0.694658815860748291, 7200, 255, 1, NULL, 53007), -- Horde Banner (Area: Hangar - Difficulty: 0) CreateObject2 +(@OGUID+27, 195237, 628, 4710, 4750, '0', 0, 0, 750.6007080078125, -864.59722900390625, 13.47540664672851562, 1.937312245368957519, 0, 0, 0.824125289916992187, 0.566407561302185058, 10, 255, 1, 'bg_ioc_faction_1735', 53007), -- Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject2 +(@OGUID+28, 195237, 628, 4710, 4750, '0', 0, 0, 785.5086669921875, -864.71527099609375, 13.39930534362792968, 2.478367090225219726, 0, 0, 0.94551849365234375, 0.325568377971649169, 10, 255, 1, 'bg_ioc_faction_1735', 53007), -- Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject2 +(@OGUID+136, 195132, 628, 4710, 4750, '0', 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 0, 0, 0.719339370727539062, 0.694658815860748291, 7200, 255, 1, NULL, 0), -- Alliance Banner +(@OGUID+137, 195144, 628, 4710, 0, '0', 0, 0, 776.22900390625, -804.28302001953125, 6.450520038604736328, 1.605701684951782226, 0, 0, 0.719339370727539062, 0.694658815860748291, 7200, 255, 1, NULL, 0), -- Alliance Banner +(@OGUID+150, 195237, 628, 4710, 4750, '0', 0, 0, 750.6007080078125, -864.59722900390625, 13.47540664672851562, 1.937312245368957519, 0, 0, 0.824125289916992187, 0.566407561302185058, 10, 255, 1, 'bg_ioc_faction_1732', 53007), -- Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject2 +(@OGUID+151, 195237, 628, 4710, 4750, '0', 0, 0, 785.5086669921875, -864.71527099609375, 13.39930534362792968, 2.478367090225219726, 0, 0, 0.94551849365234375, 0.325568377971649169, 10, 255, 1, 'bg_ioc_faction_1732', 53007); -- Seaforium Bombs (Area: Hangar - Difficulty: 0) CreateObject2 + +-- Quarry +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+15, 195131, 628, 4710, 4750, '0', 0, 0, 251.015625, -1159.3160400390625, 17.23760032653808593, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 7200, 255, 1, 53007), -- Flagpole (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+16, 195338, 628, 4710, 4750, '0', 0, 0, 251.015625, -1159.3160400390625, 17.23760032653808593, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 7200, 255, 1, 53007), -- Quarry Banner (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+24, 195335, 628, 4710, 4750, '0', 0, 0, 251.015625, -1159.3160400390625, 17.23760032653808593, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 7200, 255, 1, 53007), -- Alliance Banner (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+29, 195334, 628, 4710, 4750, '0', 0, 0, 251.015625, -1159.3160400390625, 17.23760032653808593, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 7200, 255, 0, 53007), -- Alliance Banner (Area: Hangar - Difficulty: 0) CreateObject2 +(@OGUID+43, 195337, 628, 4710, 4748, '0', 0, 0, 251.015625, -1159.3160400390625, 17.23760032653808593, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 7200, 255, 1, 53007), -- Horde Banner (Area: Quarry - Difficulty: 0) CreateObject2 +(@OGUID+44, 195336, 628, 4710, 4748, '0', 0, 0, 251.015625, -1159.3160400390625, 17.23760032653808593, 4.031712055206298828, 0, 0, -0.90258502960205078, 0.430511653423309326, 7200, 255, 1, 53007); -- Horde Banner (Area: Quarry - Difficulty: 0) CreateObject2 + +-- Docks +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+45, 195151, 628, 4710, 0, '0', 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 7200, 255, 1, 53007), -- Horde Banner (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+46, 195131, 628, 4710, 0, '0', 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 7200, 255, 1, 53007), -- Flagpole (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+138, 195152, 628, 4710, 0, '0', 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 7200, 255, 1, 0), -- Horde Banner (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+139, 195149, 628, 4710, 0, '0', 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 7200, 255, 1, 0), -- Alliance Banner (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+140, 195150, 628, 4710, 0, '0', 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 7200, 255, 1, 0), -- Alliance Banner (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+141, 195157, 628, 4710, 0, '0', 0, 0, 726.385009765625, -360.204986572265625, 17.81529998779296875, 4.677483558654785156, 0, 0, -0.71933937072753906, 0.694658815860748291, 7200, 255, 1, 0); -- Dock Banner + +-- Refinery +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+1, 195131, 628, 4710, 4752, '0', 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 7200, 255, 1, 53007), -- Flagpole (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+78, 195341, 628, 4710, 4749, '0', 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 7200, 255, 1, 53007), -- Horde Banner (Area: Docks - Difficulty: 0) CreateObject1 +(@OGUID+100, 195343, 628, 4710, 4752, '0', 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 7200, 255, 1, 53007), -- Refinery Banner (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+142, 195342, 628, 4710, 4749, '0', 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 7200, 255, 1, 0), -- Horde Banner +(@OGUID+143, 195339, 628, 4710, 4749, '0', 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 7200, 255, 1, 0), -- Alliance Banner +(@OGUID+144, 195340, 628, 4710, 4749, '0', 0, 0, 1269.501708984375, -400.80902099609375, 37.62525177001953125, 4.520402908325195312, 0, 0, -0.77162456512451171, 0.636078238487243652, 7200, 255, 1, 0); -- Alliance Banner + +-- Horde Keep +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+2, 195393, 628, 4710, 4752, '0', 0, 0, 1284.7552490234375, -705.66839599609375, 48.91626358032226562, 3.194002151489257812, 0, 0, -0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 53007), -- Horde Banner (Area: Horde Keep - Difficulty: 0) CreateObject1 +(@OGUID+23, 195439, 628, 4710, 4750, '0', 0, 0, 1284.7552490234375, -705.66839599609375, 48.91626358032226562, 3.194002151489257812, 0, 0, -0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 53007), -- Flagpole (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+145, 195394, 628, 4710, 4752, '0', 0, 0, 1284.7552490234375, -705.66839599609375, 48.91626358032226562, 3.194002151489257812, 0, 0, -0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 0), -- Horde Banner +(@OGUID+146, 195392, 628, 4710, 4752, '0', 0, 0, 1284.7552490234375, -705.66839599609375, 48.91626358032226562, 3.194002151489257812, 0, 0, -0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 0), -- Alliance Banner +(@OGUID+147, 195391, 628, 4710, 4752, '0', 0, 0, 1284.7552490234375, -705.66839599609375, 48.91626358032226562, 3.194002151489257812, 0, 0, -0.99965667724609375, 0.026201646775007247, 7200, 255, 1, 0); -- Alliance Banner + +-- Alliance Keep +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+21, 195439, 628, 4710, 4750, '0', 0, 0, 299.15277099609375, -784.58856201171875, 48.91624832153320312, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 7200, 255, 1, 53007), -- Flagpole (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+22, 195396, 628, 4710, 4750, '0', 0, 0, 299.15277099609375, -784.58856201171875, 48.91624832153320312, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 7200, 255, 1, 53007), -- Alliance Banner (Area: Hangar - Difficulty: 0) CreateObject1 +(@OGUID+99, 195399, 628, 4710, 4753, '0', 0, 0, 299.15277099609375, -784.58856201171875, 48.91624832153320312, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 7200, 255, 1, 53007), -- Horde Banner (Area: Alliance Keep - Difficulty: 0) CreateObject2 +(@OGUID+148, 195397, 628, 4710, 4753, '0', 0, 0, 299.15277099609375, -784.58856201171875, 48.91624832153320312, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 7200, 255, 1, 0), -- Alliance Banner +(@OGUID+149, 195398, 628, 4710, 4753, '0', 0, 0, 299.15277099609375, -784.58856201171875, 48.91624832153320312, 6.12610626220703125, 0, 0, -0.07845878601074218, 0.996917366981506347, 7200, 255, 1, 0); -- Horde Banner + +-- Statues Collision in alliance keep +INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES +(@OGUID+38, 375005, 628, 4710, 0, '0', 0, 0, 217.08160400390625, -842.29339599609375, 61.00786209106445312, 0.98643660545349121, 0, 0, 0.473463058471679687, 0.880813658237457275, 7200, 255, 1, 53007), -- Collision PC Size (Blocks LoS) (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+39, 375005, 628, 4710, 0, '0', 0, 0, 215.703125, -841.4617919921875, 61.00786209106445312, 0.98643660545349121, 0, 0, 0.473463058471679687, 0.880813658237457275, 7200, 255, 1, 53007), -- Collision PC Size (Blocks LoS) (Area: 0 - Difficulty: 0) CreateObject1 +(@OGUID+41, 375005, 628, 4710, 4748, '0', 0, 0, 218.1215362548828125, -819.22222900390625, 61.00786209106445312, 0.4928361177444458, 0, 0, 0.243931770324707031, 0.969792366027832031, 7200, 255, 1, 53007), -- Collision PC Size (Blocks LoS) (Area: Quarry - Difficulty: 0) CreateObject1 +(@OGUID+42, 375005, 628, 4710, 4748, '0', 0, 0, 216.5677032470703125, -820.17364501953125, 61.00786209106445312, 0.4928361177444458, 0, 0, 0.243931770324707031, 0.969792366027832031, 7200, 255, 1, 53007); -- Collision PC Size (Blocks LoS) (Area: Quarry - Difficulty: 0) CreateObject1 + +DELETE FROM `gameobject_addon` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+10000; +INSERT INTO `gameobject_addon` (`guid`, `parent_rotation0`, `parent_rotation1`, `parent_rotation2`, `parent_rotation3`, `WorldEffectID`, `AIAnimKitID`) VALUES +(@OGUID+37, 0, 0, -0.01308943517506122, 0.999914348125457763, 0, 0), -- Brazier +(@OGUID+40, 0, 0, -0.01308943517506122, 0.999914348125457763, 0, 0), -- Brazier +(@OGUID+47, 0, 0, 0.982450366020202636, 0.186524167656898498, 0, 0), -- Stove +(@OGUID+48, 0, 0, 0.982450366020202636, 0.186524167656898498, 0, 0), -- Chair +(@OGUID+49, 0, 0, 0.982450366020202636, 0.186524167656898498, 0, 0), -- Chair +(@OGUID+50, 0, 0, 0.982450366020202636, 0.186524167656898498, 0, 0), -- Chair +(@OGUID+51, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+52, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+53, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+54, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+55, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+56, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+57, 0, 0, 0.982450366020202636, 0.186524167656898498, 0, 0), -- Chair +(@OGUID+58, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+59, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+60, 0, 0, 0.366501331329345703, 0.930417537689208984, 0, 0), -- Chair +(@OGUID+61, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+62, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+63, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+64, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+65, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+66, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+67, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+68, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Chair +(@OGUID+69, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Chair +(@OGUID+70, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Stove +(@OGUID+71, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+72, 0, 0, 0.999961912631988525, -0.00872652977705001, 0, 0), -- Bench +(@OGUID+73, 0, 0, -0.69151294231414794, 0.722364068031311035, 0, 0), -- Stove +(@OGUID+74, 0, 0, -0.69151294231414794, 0.722364068031311035, 0, 0), -- Chair +(@OGUID+75, 0, 0, -0.69151294231414794, 0.722364068031311035, 0, 0), -- Chair +(@OGUID+81, 0, 0, -0.03489945083856582, 0.999390840530395507, 0, 0), -- Chair +(@OGUID+82, 0, 0, -0.03489945083856582, 0.999390840530395507, 0, 0), -- Chair +(@OGUID+83, 0, 0, -0.03489945083856582, 0.999390840530395507, 0, 0), -- Stove +(@OGUID+84, 0, 0, -0.27982896566390991, 0.960049867630004882, 0, 0), -- Chair +(@OGUID+85, 0, 0, -0.27982896566390991, 0.960049867630004882, 0, 0), -- Stove +(@OGUID+86, 0, 0, -0.27982896566390991, 0.960049867630004882, 0, 0), -- Chair +(@OGUID+87, 0, 0, -0.27982896566390991, 0.960049867630004882, 0, 0), -- Chair +(@OGUID+88, 0, 0, -0.27982896566390991, 0.960049867630004882, 0, 0), -- Chair +(@OGUID+97, 0, 0, 0.999990463256835937, -0.00436332821846008, 0, 0), -- Bonfire +(@OGUID+98, 0, 0, 0.999990463256835937, -0.00436332821846008, 0, 0), -- Bonfire +(@OGUID+115, 0, 0, 0, 1, 0, 0), -- Alliance Gate +(@OGUID+116, 0, 0, 0, 1, 0, 0), -- Alliance Gate +(@OGUID+117, 0, 0, 0, 1, 0, 0), -- Alliance Gate +(@OGUID+118, 0, 0, 1, -0.00000004371138828, 0, 0), -- Doodad_ND_Human_Gate_ClosedFX_Door01 +(@OGUID+119, 0, 0, 0.999990463256835937, -0.00436332821846008, 0, 0), -- Horde Keep Portcullis +(@OGUID+120, 0, 0, -0.70710641145706176, 0.707107126712799072, 0, 0), -- Doodad_ND_WinterOrc_Wall_GateFX_Door01 +(@OGUID+113, 0, 0, 0.999990463256835937, -0.00436332821846008, 0, 0), -- Bonfire +(@OGUID+114, 0, 0, 0.999990463256835937, -0.00436332821846008, 0, 0), -- Bonfire +(@OGUID+121, 0, 0, 0.358319789171218872, 0.933598935604095458, 0, 0), -- Doodad_VR_Portcullis01 +(@OGUID+122, 0, 0, 0.951476275920867919, 0.307722091674804687, 0, 0), -- Portcullis +(@OGUID+123, 0, 0, 1, -0.00000004371138828, 0, 0), -- Doodad_ND_WinterOrc_Wall_GateFX_Door01 +(@OGUID+124, 0, 0, 0, 1, 0, 0), -- Horde Gate +(@OGUID+125, 0, 0, 0, 1, 0, 0), -- Horde Gate +(@OGUID+126, 0, 0, 0, 1, 0, 0), -- Horde Gate +(@OGUID+127, 0, 0, -0.70710641145706176, 0.707107126712799072, 0, 0), -- Doodad_ND_Human_Gate_ClosedFX_Door01 +(@OGUID+128, 0, 0, -0.01308943517506122, 0.999914348125457763, 0, 0), -- Portcullis +(@OGUID+129, 0, 0, -0.01308943517506122, 0.999914348125457763, 0, 0), -- Portcullis +(@OGUID+130, 0, 0, -0.4027940034866333, 0.915290653705596923, 0, 0), -- Doodad_VR_Portcullis01 +(@OGUID+131, 0, 0, 0.953452110290527343, -0.30154460668563842, 0, 0), -- Portcullis +(@OGUID+132, 0, 0, 0.707106590270996093, 0.707106947898864746, 0, 0), -- Doodad_ND_Human_Gate_ClosedFX_Door01 +(@OGUID+133, 0, 0, 0.707106590270996093, 0.707106947898864746, 0, 0); -- Doodad_ND_WinterOrc_Wall_GateFX_Door01 + +UPDATE `gameobject_template_addon` SET `flags` = `flags` & ~0x1 WHERE `entry` IN (195133, 195151, 195153, 195155, 195157, 195158, 195339, 195341, 195396); +UPDATE `gameobject_template_addon` SET `flags` = `flags` | 0x10 WHERE `entry` IN (195396, 195393); + +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_ioc_damaged'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(67323, 'spell_ioc_damaged'); + +DELETE FROM `areatrigger_scripts` WHERE `entry` IN (9176, 9178, 5535, 5536); +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(9176, 'at_ioc_exploit'), +(9178, 'at_ioc_exploit'), +(5535, 'at_ioc_backdoor_job'), +(5536, 'at_ioc_backdoor_job'); diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp index e34a0adaf52..639fa4510de 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp @@ -22,6 +22,7 @@ #include "Map.h" #include "ObjectMgr.h" #include "Player.h" +#include "TemporarySummon.h" #include "Transport.h" #include "UnitAI.h" #include "Vehicle.h" @@ -32,336 +33,173 @@ enum IsleOfConquestPvpStats PVP_STAT_BASES_DEFENDED = 246 }; -BattlegroundIC::BattlegroundIC(BattlegroundTemplate const* battlegroundTemplate) : Battleground(battlegroundTemplate) +enum IsleOfConquestGameObjects { - BgObjects.resize(MAX_NORMAL_GAMEOBJECTS_SPAWNS + MAX_AIRSHIPS_SPAWNS + MAX_HANGAR_TELEPORTERS_SPAWNS + MAX_FORTRESS_TELEPORTERS_SPAWNS + MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS + MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS); - BgCreatures.resize(MAX_NORMAL_NPCS_SPAWNS + MAX_WORKSHOP_SPAWNS + MAX_DOCKS_SPAWNS + MAX_SPIRIT_GUIDES_SPAWNS + MAX_HANGAR_NPCS_SPAWNS); - - for (uint8 i = 0; i < 2; ++i) - factionReinforcements[i] = MAX_REINFORCEMENTS; - - for (uint8 i = 0; i < BG_IC_MAXDOOR; ++i) - GateStatus[i] = BG_IC_GATE_OK; + GO_TELEPORTER_1 = 195314, // 195314 H-OUT 66549 + GO_TELEPORTER_2 = 195313, // 195313 H-IN 66548 + + GO_TELEPORTER_3 = 195315, // 195315 A-OUT 66549 + GO_TELEPORTER_4 = 195316, // 195316 A-IN 66548 + + GO_TELEPORTER_EFFECTS_A = 195701, + GO_TELEPORTER_EFFECTS_H = 195702, + + GO_DOODAD_HU_PORTCULLIS01 = 195436, + GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01 = 195703, + GO_DOODAD_PORTCULLISACTIVE02 = 195452, + GO_DOODAD_VR_PORTCULLIS01 = 195437, + + GO_HORDE_GATE_1 = 195494, + GO_HORDE_GATE_2 = 195495, + GO_HORDE_GATE_3 = 195496, + + GO_ALLIANCE_GATE_1 = 195699, + GO_ALLIANCE_GATE_2 = 195700, + GO_ALLIANCE_GATE_3 = 195698, + + GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01 = 195491, + + // banners + GO_BANNER_WORKSHOP_CONTROLLED_H = 195130, + GO_BANNER_WORKSHOP_CONTROLLED_A = 195132, + GO_BANNER_WORKSHOP_CONTROLLED_N = 195133, + GO_BANNER_WORKSHOP_CONTESTED_A = 195144, + GO_BANNER_WORKSHOP_CONTESTED_H = 195145, + + GO_BANNER_DOCKS_CONTROLLED_A = 195149, + GO_BANNER_DOCKS_CONTESTED_A = 195150, + GO_BANNER_DOCKS_CONTROLLED_H = 195151, + GO_BANNER_DOCKS_CONTESTED_H = 195152, + GO_BANNER_DOCKS_CONTROLLED_N = 195157, + + GO_BANNER_HANGAR_CONTROLLED_A = 195153, + GO_BANNER_HANGAR_CONTESTED_A = 195154, + GO_BANNER_HANGAR_CONTROLLED_H = 195155, + GO_BANNER_HANGAR_CONTESTED_H = 195156, + GO_BANNER_HANGAR_CONTROLLED_N = 195158, + + GO_BANNER_QUARRY_CONTROLLED_A = 195334, + GO_BANNER_QUARRY_CONTROLLED_H = 195336, + GO_BANNER_QUARRY_CONTESTED_A = 195335, + GO_BANNER_QUARRY_CONTESTED_H = 195337, + GO_BANNER_QUARRY_CONTROLLED_N = 195338, + + GO_BANNER_REFINERY_CONTROLLED_A = 195339, + GO_BANNER_REFINERY_CONTROLLED_H = 195341, + GO_BANNER_REFINERY_CONTESTED_A = 195340, + GO_BANNER_REFINERY_CONTESTED_H = 195342, + GO_BANNER_REFINERY_CONTROLLED_N = 195343, + + GO_BANNER_HORDE_KEEP_CONTROLLED_A = 195391, + GO_BANNER_HORDE_KEEP_CONTROLLED_H = 195393, + GO_BANNER_HORDE_KEEP_CONTESTED_A = 195392, + GO_BANNER_HORDE_KEEP_CONTESTED_H = 195394, + + GO_BANNER_ALLIANCE_KEEP_CONTROLLED_A = 195396, + GO_BANNER_ALLIANCE_KEEP_CONTROLLED_H = 195398, + GO_BANNER_ALLIANCE_KEEP_CONTESTED_A = 195397, + GO_BANNER_ALLIANCE_KEEP_CONTESTED_H = 195399, + + GO_KEEP_GATE_H = 195223, + GO_KEEP_GATE_A = 195451, + GO_KEEP_GATE_2_A = 195452, + + GO_HORDE_GUNSHIP = 195276, + GO_ALLIANCE_GUNSHIP = 195121 +}; - closeFortressDoorsTimer = CLOSE_DOORS_TIME; // the doors are closed again... in a special way - doorsClosed = false; - docksTimer = DOCKS_UPDATE_TIME; - resourceTimer = IC_RESOURCE_TIME; +static constexpr Seconds IOC_RESOURCE_TIMER = 45s; - for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; ++i) - nodePoint[i] = nodePointInitial[i]; +Position const GunshipTeleportTriggerPosition[2] = +{ + { 11.69964981079101562f, 0.034145999699831008f, 20.62075996398925781f, 3.211405754089355468f }, + { 7.30560922622680664f, -0.09524600207805633f, 34.51021575927734375f, 3.159045934677124023f } +}; - siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME; +BattlegroundIC::BattlegroundIC(BattlegroundTemplate const* battlegroundTemplate) : Battleground(battlegroundTemplate) +{ + _factionReinforcements = { MAX_REINFORCEMENTS, MAX_REINFORCEMENTS }; - gunshipHorde = nullptr; - gunshipAlliance = nullptr; -} + _gateStatus = { BG_IC_GATE_OK, BG_IC_GATE_OK, BG_IC_GATE_OK, BG_IC_GATE_OK, BG_IC_GATE_OK, BG_IC_GATE_OK }; -BattlegroundIC::~BattlegroundIC() { } + _gunshipGUIDs = { }; + _cannonGUIDs = { }; + _nodePoints = { }; + _keepGateGUIDs = { }; + _keepBannerGUIDs = { }; -void BattlegroundIC::HandlePlayerResurrect(Player* player) -{ - if (nodePoint[NODE_TYPE_QUARRY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H)) - player->CastSpell(player, SPELL_QUARRY, true); + _nodePoints[NODE_TYPE_REFINERY] = std::make_unique<ICNodePoint>(IsleOfConquestNodeState::Neutral, nodePointInitial[NODE_TYPE_REFINERY]); + _nodePoints[NODE_TYPE_QUARRY] = std::make_unique<ICNodePoint>(IsleOfConquestNodeState::Neutral, nodePointInitial[NODE_TYPE_QUARRY]); + _nodePoints[NODE_TYPE_DOCKS] = std::make_unique<ICNodePoint>(IsleOfConquestNodeState::Neutral, nodePointInitial[NODE_TYPE_DOCKS]); + _nodePoints[NODE_TYPE_HANGAR] = std::make_unique<ICNodePoint>(IsleOfConquestNodeState::Neutral, nodePointInitial[NODE_TYPE_HANGAR]); + _nodePoints[NODE_TYPE_WORKSHOP] = std::make_unique<ICNodePoint>(IsleOfConquestNodeState::Neutral, nodePointInitial[NODE_TYPE_WORKSHOP]); + _nodePoints[NODE_TYPE_GRAVEYARD_A] = std::make_unique<ICNodePoint>(IsleOfConquestNodeState::ControlledA, nodePointInitial[NODE_TYPE_GRAVEYARD_A]); + _nodePoints[NODE_TYPE_GRAVEYARD_H] = std::make_unique<ICNodePoint>(IsleOfConquestNodeState::ControlledH, nodePointInitial[NODE_TYPE_GRAVEYARD_H]); - if (nodePoint[NODE_TYPE_REFINERY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H)) - player->CastSpell(player, SPELL_OIL_REFINERY, true); + _resourceTimer.Reset(IOC_RESOURCE_TIMER); } +BattlegroundIC::~BattlegroundIC() = default; + void BattlegroundIC::PostUpdateImpl(uint32 diff) { if (GetStatus() != STATUS_IN_PROGRESS) return; - if (!doorsClosed) - { - if (closeFortressDoorsTimer <= diff) - { - RemoveObjectFromWorld(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01); - RemoveObjectFromWorld(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01); - RemoveObjectFromWorld(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02); - RemoveObjectFromWorld(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02); - RemoveObjectFromWorld(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03); - RemoveObjectFromWorld(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03); - - GetBGObject(BG_IC_GO_ALLIANCE_GATE_1)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); - GetBGObject(BG_IC_GO_HORDE_GATE_1)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); - GetBGObject(BG_IC_GO_ALLIANCE_GATE_2)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); - GetBGObject(BG_IC_GO_HORDE_GATE_2)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); - GetBGObject(BG_IC_GO_ALLIANCE_GATE_3)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); - GetBGObject(BG_IC_GO_HORDE_GATE_3)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); - - doorsClosed = true; - } else closeFortressDoorsTimer -= diff; - } - - for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; ++i) - { - if (nodePoint[i].nodeType == NODE_TYPE_DOCKS) - { - if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A || - nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H) - { - if (docksTimer <= diff) - { - // we need to confirm this, i am not sure if this every 3 minutes - for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_4_A : BG_IC_NPC_CATAPULT_4_H); ++u) - { - if (Creature* catapult = GetBGCreature(u)) - { - if (!catapult->IsAlive()) - catapult->Respawn(true); - } - } - - // we need to confirm this is blizzlike, not sure if it is every 3 minutes - for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_A : BG_IC_NPC_GLAIVE_THROWER_2_H); ++u) - { - if (Creature* glaiveThrower = GetBGCreature(u)) - { - if (!glaiveThrower->IsAlive()) - glaiveThrower->Respawn(true); - } - } - - docksTimer = DOCKS_UPDATE_TIME; - } else docksTimer -= diff; - } - } - - if (nodePoint[i].nodeType == NODE_TYPE_WORKSHOP) - { - if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A || - nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H) - { - if (siegeEngineWorkshopTimer <= diff) - { - uint8 siegeType = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_A : BG_IC_NPC_SIEGE_ENGINE_H); - - if (Creature* siege = GetBGCreature(siegeType)) // this always should be true - { - if (siege->IsAlive()) - { - if (siege->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANT_SWIM | UNIT_FLAG_IMMUNE_TO_PC)) - { - // following sniffs the vehicle always has UNIT_FLAG_CANNOT_SWIM - siege->SetUninteractible(false); - siege->SetImmuneToPC(false); - } - else - siege->SetHealth(siege->GetMaxHealth()); - } - else - siege->Respawn(true); - } - - // we need to confirm if it is every 3 minutes - for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_4_A : BG_IC_NPC_DEMOLISHER_4_H); ++u) - { - if (Creature* demolisher = GetBGCreature(u)) - { - if (!demolisher->IsAlive()) - demolisher->Respawn(true); - } - } - siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME; - } else siegeEngineWorkshopTimer -= diff; - } - } - - // the point is waiting for a change on its banner - if (nodePoint[i].needChange) - { - if (nodePoint[i].timer <= diff) - { - uint32 nextBanner = GetNextBanner(&nodePoint[i], nodePoint[i].faction, true); - - nodePoint[i].last_entry = nodePoint[i].gameobject_entry; - nodePoint[i].gameobject_entry = nextBanner; - // nodePoint[i].faction = the faction should be the same one... - - GameObject* banner = GetBGObject(nodePoint[i].gameobject_type); - - if (!banner) // this should never happen - return; - - float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() }; - - DelObject(nodePoint[i].gameobject_type); - AddObject(nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY); - - GetBGObject(nodePoint[i].gameobject_type)->SetFaction(nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_Factions[1] : BG_IC_Factions[0]); - - UpdateNodeWorldState(&nodePoint[i]); - HandleCapturedNodes(&nodePoint[i], false); - - if (nodePoint[i].faction == TEAM_ALLIANCE) - SendBroadcastText(ICNodes[i].TextAllianceTaken, CHAT_MSG_BG_SYSTEM_ALLIANCE); - else - SendBroadcastText(ICNodes[i].TextHordeTaken, CHAT_MSG_BG_SYSTEM_HORDE); - - nodePoint[i].needChange = false; - nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; - } else nodePoint[i].timer -= diff; - } - } - - if (resourceTimer <= diff) + _scheduler.Update(diff); + _resourceTimer.Update(diff); + if (_resourceTimer.Passed()) { for (uint8 i = 0; i < NODE_TYPE_DOCKS; ++i) { - if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A || - nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H) + if (_nodePoints[i]->GetLastControlledTeam() != TEAM_NEUTRAL && !_nodePoints[i]->IsContested()) { - factionReinforcements[nodePoint[i].faction] += 1; - RewardHonorToTeam(RESOURCE_HONOR_AMOUNT, nodePoint[i].faction == TEAM_ALLIANCE ? ALLIANCE : HORDE); - UpdateWorldState((nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_ALLIANCE_REINFORCEMENTS : BG_IC_HORDE_REINFORCEMENTS), factionReinforcements[nodePoint[i].faction]); + _factionReinforcements[_nodePoints[i]->GetLastControlledTeam()] += 1; + RewardHonorToTeam(RESOURCE_HONOR_AMOUNT, _nodePoints[i]->GetLastControlledTeam() == TEAM_ALLIANCE ? ALLIANCE : HORDE); + UpdateWorldState((_nodePoints[i]->GetLastControlledTeam() == TEAM_ALLIANCE ? BG_IC_ALLIANCE_REINFORCEMENTS : BG_IC_HORDE_REINFORCEMENTS), _factionReinforcements[_nodePoints[i]->GetLastControlledTeam()]); } } - resourceTimer = IC_RESOURCE_TIME; - } else resourceTimer -= diff; -} - -void BattlegroundIC::StartingEventCloseDoors() -{ -} - -void BattlegroundIC::StartingEventOpenDoors() -{ - //after 20 seconds they should be despawned - DoorOpen(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01); - DoorOpen(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01); - DoorOpen(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02); - DoorOpen(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02); - DoorOpen(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03); - DoorOpen(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03); - - DoorOpen(BG_IC_GO_DOODAD_HU_PORTCULLIS01_1); - DoorOpen(BG_IC_GO_DOODAD_HU_PORTCULLIS01_2); - DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_1); - DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2); - - for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i) - GetBGObject(BG_IC_Teleporters[i].type)->RemoveFlag(GO_FLAG_NOT_SELECTABLE); - - for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i) - GetBGObject(BG_IC_TeleporterEffects[i].type)->SetGoState(GO_STATE_ACTIVE); -} - -void BattlegroundIC::AddPlayer(Player* player, BattlegroundQueueTypeId queueId) -{ - Battleground::AddPlayer(player, queueId); - if (nodePoint[NODE_TYPE_QUARRY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H)) - player->CastSpell(player, SPELL_QUARRY, true); - - if (nodePoint[NODE_TYPE_REFINERY].nodeState == (GetPlayerTeam(player->GetGUID()) == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H)) - player->CastSpell(player, SPELL_OIL_REFINERY, true); -} - -void BattlegroundIC::RemovePlayer(Player* player, ObjectGuid /*guid*/, uint32 /*team*/) -{ - if (player) - { - player->RemoveAura(SPELL_QUARRY); - player->RemoveAura(SPELL_OIL_REFINERY); + _resourceTimer.Reset(IOC_RESOURCE_TIMER); } } -void BattlegroundIC::HandleAreaTrigger(Player* player, uint32 trigger, bool entered) -{ - // this is wrong way to implement these things. On official it done by gameobject spell cast. - if (GetStatus() == STATUS_WAIT_JOIN && !entered) - if (trigger == 9176 || trigger == 9178) - TeleportPlayerToExploitLocation(player); - - /// @hack: this spell should be cast by npc 22515 (World Trigger) and not by the player - if (trigger == 5555 && GetPlayerTeam(player->GetGUID()) == HORDE) - { - if (GateStatus[BG_IC_A_FRONT] != BG_IC_GATE_DESTROYED - && GateStatus[BG_IC_A_WEST] != BG_IC_GATE_DESTROYED - && GateStatus[BG_IC_A_EAST] != BG_IC_GATE_DESTROYED) - player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true); - } - else if (trigger == 5535 && GetPlayerTeam(player->GetGUID()) == ALLIANCE) - { - if (GateStatus[BG_IC_H_FRONT] != BG_IC_GATE_DESTROYED - && GateStatus[BG_IC_H_WEST] != BG_IC_GATE_DESTROYED - && GateStatus[BG_IC_H_EAST] != BG_IC_GATE_DESTROYED) - player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true); - } -} - -bool BattlegroundIC::SetupBattleground() +void BattlegroundIC::StartingEventOpenDoors() { - for (uint8 i = 0; i < MAX_NORMAL_GAMEOBJECTS_SPAWNS; ++i) + auto gameobjectAction = [&](GuidVector const& guids, std::function<void(GameObject*)> const& action) -> void { - if (!AddObject(BG_IC_ObjSpawnlocs[i].type, BG_IC_ObjSpawnlocs[i].entry, BG_IC_ObjSpawnlocs[i].x, BG_IC_ObjSpawnlocs[i].y, BG_IC_ObjSpawnlocs[i].z, BG_IC_ObjSpawnlocs[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY)) - { - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning gameobject {}", BG_IC_ObjSpawnlocs[i].entry); - return false; - } - } + for (ObjectGuid const& guid : guids) + if (GameObject* gameObject = GetBgMap()->GetGameObject(guid)) + action(gameObject); + }; - for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i) + gameobjectAction(_mainGateDoorGUIDs, [&](GameObject* gameobject) -> void { - if (!AddObject(BG_IC_Teleporters[i].type, BG_IC_Teleporters[i].entry, BG_IC_Teleporters[i].x, BG_IC_Teleporters[i].y, BG_IC_Teleporters[i].z, BG_IC_Teleporters[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY)) - { - TC_LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject {}", BG_IC_Teleporters[i].entry); - return false; - } - } + gameobject->UseDoorOrButton(); + gameobject->DespawnOrUnsummon(20s); + }); - for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i) + gameobjectAction(_portcullisGUIDs, [&](GameObject* gameobject) -> void { - if (!AddObject(BG_IC_TeleporterEffects[i].type, BG_IC_TeleporterEffects[i].entry, BG_IC_TeleporterEffects[i].x, BG_IC_TeleporterEffects[i].y, BG_IC_TeleporterEffects[i].z, BG_IC_TeleporterEffects[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY)) - { - TC_LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject {}", BG_IC_Teleporters[i].entry); - return false; - } - } + gameobject->UseDoorOrButton(); + }); - for (uint8 i = 2; i < MAX_NORMAL_NPCS_SPAWNS; ++i) + gameobjectAction(_teleporterGUIDs, [&](GameObject* gameobject) -> void { - if (!AddCreature(BG_IC_NpcSpawnlocs[i].entry, BG_IC_NpcSpawnlocs[i].type, BG_IC_NpcSpawnlocs[i].x, BG_IC_NpcSpawnlocs[i].y, BG_IC_NpcSpawnlocs[i].z, BG_IC_NpcSpawnlocs[i].o, BG_IC_NpcSpawnlocs[i].team, RESPAWN_ONE_DAY)) - { - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning creature {}", BG_IC_NpcSpawnlocs[i].entry); - return false; - } - } + gameobject->RemoveFlag(GO_FLAG_NOT_SELECTABLE); + }); - if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+3, BG_IC_SpiritGuidePos[5], TEAM_ALLIANCE) - || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+4, BG_IC_SpiritGuidePos[6], TEAM_HORDE) - || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+5, BG_IC_SpiritGuidePos[7], TEAM_ALLIANCE) - || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+6, BG_IC_SpiritGuidePos[8], TEAM_HORDE)) + gameobjectAction(_teleporterEffectGUIDs, [&](GameObject* gameobject) -> void { - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn initial spirit guide!"); - return false; - } - - gunshipHorde = sTransportMgr->CreateTransport(GO_HORDE_GUNSHIP, GetBgMap()); - gunshipAlliance = sTransportMgr->CreateTransport(GO_ALLIANCE_GUNSHIP, GetBgMap()); + gameobject->SetGoState(GO_STATE_ACTIVE); + }); - if (!gunshipAlliance || !gunshipHorde) + _scheduler.Schedule(20s, [&](TaskContext) { - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error creating gunships!"); - return false; - } - - gunshipHorde->EnableMovement(false); - gunshipAlliance->EnableMovement(false); - - // setting correct factions for Keep Cannons - for (uint8 i = BG_IC_NPC_KEEP_CANNON_1; i <= BG_IC_NPC_KEEP_CANNON_12; ++i) - GetBGCreature(i)->SetFaction(BG_IC_Factions[0]); - for (uint8 i = BG_IC_NPC_KEEP_CANNON_13; i <= BG_IC_NPC_KEEP_CANNON_24; ++i) - GetBGCreature(i)->SetFaction(BG_IC_Factions[1]); - - // correcting spawn time for keeps bombs - for (uint8 i = BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1; i < BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4; ++i) - GetBGObject(i)->SetRespawnTime(10); - - return true; + for (ObjectGuid const& guid : _wallGUIDs) + if (GameObject* gameobject = GetBgMap()->GetGameObject(guid)) + gameobject->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED); + }); } void BattlegroundIC::HandleKillUnit(Creature* unit, Unit* killer) @@ -397,520 +235,472 @@ void BattlegroundIC::HandleKillPlayer(Player* player, Player* killer) Battleground::HandleKillPlayer(player, killer); - TeamId victimTeamId = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())); - factionReinforcements[victimTeamId] -= 1; + TeamId const victimTeamId = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())); + _factionReinforcements[victimTeamId] -= 1; - UpdateWorldState((GetPlayerTeam(player->GetGUID()) == ALLIANCE ? BG_IC_ALLIANCE_REINFORCEMENTS : BG_IC_HORDE_REINFORCEMENTS), factionReinforcements[victimTeamId]); + UpdateWorldState((GetPlayerTeam(player->GetGUID()) == ALLIANCE ? BG_IC_ALLIANCE_REINFORCEMENTS : BG_IC_HORDE_REINFORCEMENTS), _factionReinforcements[victimTeamId]); // we must end the battleground - if (factionReinforcements[victimTeamId] < 1) + if (_factionReinforcements[victimTeamId] < 1) EndBattleground(GetPlayerTeam(killer->GetGUID())); } -void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target_obj) +uint32 BattlegroundIC::GetGateIDFromEntry(uint32 id) { - if (GetStatus() != STATUS_IN_PROGRESS) - return; - - // All the node points are iterated to find the clicked one - for (uint8 i = 0; i < MAX_NODE_TYPES; ++i) + switch (id) { - if (nodePoint[i].gameobject_entry == target_obj->GetEntry()) - { - TeamId teamId = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())); - - // THIS SHOULD NEEVEER HAPPEN - if (nodePoint[i].faction == teamId) - return; + case GO_HORDE_GATE_1: + return BG_IC_H_FRONT; + case GO_HORDE_GATE_2: + return BG_IC_H_WEST; + case GO_HORDE_GATE_3: + return BG_IC_H_EAST; + case GO_ALLIANCE_GATE_3: + return BG_IC_A_FRONT; + case GO_ALLIANCE_GATE_1: + return BG_IC_A_WEST; + case GO_ALLIANCE_GATE_2: + return BG_IC_A_EAST; + default: + return 0; + } +} - uint32 nextBanner = GetNextBanner(&nodePoint[i], teamId, false); +int32 BattlegroundIC::GetWorldStateFromGateEntry(uint32 id, bool open) +{ + int32 uws = 0; - // we set the new settings of the nodePoint - nodePoint[i].faction = teamId; - nodePoint[i].last_entry = nodePoint[i].gameobject_entry; - nodePoint[i].gameobject_entry = nextBanner; + switch (id) + { + case GO_HORDE_GATE_1: + uws = (open ? BG_IC_GATE_FRONT_H_WS_OPEN : BG_IC_GATE_FRONT_H_WS_CLOSED); + break; + case GO_HORDE_GATE_2: + uws = (open ? BG_IC_GATE_WEST_H_WS_OPEN : BG_IC_GATE_WEST_H_WS_CLOSED); + break; + case GO_HORDE_GATE_3: + uws = (open ? BG_IC_GATE_EAST_H_WS_OPEN : BG_IC_GATE_EAST_H_WS_CLOSED); + break; + case GO_ALLIANCE_GATE_3: + uws = (open ? BG_IC_GATE_FRONT_A_WS_OPEN : BG_IC_GATE_FRONT_A_WS_CLOSED); + break; + case GO_ALLIANCE_GATE_1: + uws = (open ? BG_IC_GATE_WEST_A_WS_OPEN : BG_IC_GATE_WEST_A_WS_CLOSED); + break; + case GO_ALLIANCE_GATE_2: + uws = (open ? BG_IC_GATE_EAST_A_WS_OPEN : BG_IC_GATE_EAST_A_WS_CLOSED); + break; + default: + break; + } + return uws; +} - // this is just needed if the next banner is grey - if (nodePoint[i].banners[BANNER_A_CONTESTED] == nextBanner || nodePoint[i].banners[BANNER_H_CONTESTED] == nextBanner) - { - nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner) - nodePoint[i].needChange = true; +void BattlegroundIC::UpdateNodeWorldState(ICNodePoint const& node) +{ + UpdateWorldState(node.GetNodeInfo().WorldStateIds.ConflictA, node.GetState() == IsleOfConquestNodeState::ConflictA); + UpdateWorldState(node.GetNodeInfo().WorldStateIds.ConflictH, node.GetState() == IsleOfConquestNodeState::ConflictH); + UpdateWorldState(node.GetNodeInfo().WorldStateIds.ControlledA, node.GetState() == IsleOfConquestNodeState::ControlledA); + UpdateWorldState(node.GetNodeInfo().WorldStateIds.ControlledH, node.GetState() == IsleOfConquestNodeState::ControlledH); + UpdateWorldState(node.GetNodeInfo().WorldStateIds.Uncontrolled, node.GetState() == IsleOfConquestNodeState::Neutral); +} - // if we are here means that the point has been lost, or it is the first capture +ICNodePointType BattlegroundIC::BannerToNodeType(uint32 bannerId) +{ + switch (bannerId) + { + case GO_BANNER_ALLIANCE_KEEP_CONTESTED_A: + case GO_BANNER_ALLIANCE_KEEP_CONTESTED_H: + case GO_BANNER_ALLIANCE_KEEP_CONTROLLED_A: + case GO_BANNER_ALLIANCE_KEEP_CONTROLLED_H: + return NODE_TYPE_GRAVEYARD_A; + case GO_BANNER_HORDE_KEEP_CONTESTED_A: + case GO_BANNER_HORDE_KEEP_CONTESTED_H: + case GO_BANNER_HORDE_KEEP_CONTROLLED_A: + case GO_BANNER_HORDE_KEEP_CONTROLLED_H: + return NODE_TYPE_GRAVEYARD_H; + case GO_BANNER_DOCKS_CONTESTED_A: + case GO_BANNER_DOCKS_CONTESTED_H: + case GO_BANNER_DOCKS_CONTROLLED_A: + case GO_BANNER_DOCKS_CONTROLLED_H: + case GO_BANNER_DOCKS_CONTROLLED_N: + return NODE_TYPE_DOCKS; + case GO_BANNER_HANGAR_CONTESTED_A: + case GO_BANNER_HANGAR_CONTESTED_H: + case GO_BANNER_HANGAR_CONTROLLED_A: + case GO_BANNER_HANGAR_CONTROLLED_H: + case GO_BANNER_HANGAR_CONTROLLED_N: + return NODE_TYPE_HANGAR; + case GO_BANNER_WORKSHOP_CONTESTED_A: + case GO_BANNER_WORKSHOP_CONTESTED_H: + case GO_BANNER_WORKSHOP_CONTROLLED_A: + case GO_BANNER_WORKSHOP_CONTROLLED_H: + case GO_BANNER_WORKSHOP_CONTROLLED_N: + return NODE_TYPE_WORKSHOP; + case GO_BANNER_QUARRY_CONTESTED_A: + case GO_BANNER_QUARRY_CONTESTED_H: + case GO_BANNER_QUARRY_CONTROLLED_A: + case GO_BANNER_QUARRY_CONTROLLED_H: + case GO_BANNER_QUARRY_CONTROLLED_N: + return NODE_TYPE_QUARRY; + case GO_BANNER_REFINERY_CONTESTED_A: + case GO_BANNER_REFINERY_CONTESTED_H: + case GO_BANNER_REFINERY_CONTROLLED_A: + case GO_BANNER_REFINERY_CONTROLLED_H: + case GO_BANNER_REFINERY_CONTROLLED_N: + return NODE_TYPE_REFINERY; + default: + break; + } - if (nodePoint[i].nodeType != NODE_TYPE_REFINERY && nodePoint[i].nodeType != NODE_TYPE_QUARRY) - if (!BgCreatures[BG_IC_NPC_SPIRIT_GUIDE_1 + uint32(nodePoint[i].nodeType) - 2].IsEmpty()) - DelCreature(BG_IC_NPC_SPIRIT_GUIDE_1 + uint32(nodePoint[i].nodeType) - 2); + return MAX_NODE_TYPES; +} - UpdatePvpStat(player, PVP_STAT_BASES_ASSAULTED, 1); +void BattlegroundIC::HandleCapturedNodes(ICNodePoint& node) +{ + if (node.GetLastControlledTeam() == TEAM_NEUTRAL) + return; - if (nodePoint[i].faction == TEAM_ALLIANCE) - SendBroadcastText(ICNodes[i].TextAssaulted, CHAT_MSG_BG_SYSTEM_ALLIANCE, player); - else - SendBroadcastText(ICNodes[i].TextAssaulted, CHAT_MSG_BG_SYSTEM_HORDE, player); + switch (node.GetNodeInfo().NodeType) + { + case NODE_TYPE_QUARRY: + case NODE_TYPE_REFINERY: + GetBgMap()->UpdateAreaDependentAuras(); + break; + case NODE_TYPE_HANGAR: + if (Transport* transport = GetBgMap()->GetTransport(_gunshipGUIDs[node.GetLastControlledTeam()])) + { + // Can't have this in spawngroup, creature is on a transport + if (TempSummon* trigger = transport->SummonPassenger(NPC_WORLD_TRIGGER_NOT_FLOATING, GunshipTeleportTriggerPosition[node.GetLastControlledTeam()], TEMPSUMMON_MANUAL_DESPAWN)) + _gunshipTeleportTarget = trigger->GetGUID(); - HandleContestedNodes(&nodePoint[i]); + transport->EnableMovement(true); } - else if (nextBanner == nodePoint[i].banners[BANNER_A_CONTROLLED] || nextBanner == nodePoint[i].banners[BANNER_H_CONTROLLED]) // if we are going to spawn the definitve faction banner, we dont need the timer anymore - { - nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; - nodePoint[i].needChange = false; - if (nodePoint[i].faction == TEAM_ALLIANCE) - SendBroadcastText(ICNodes[i].TextDefended, CHAT_MSG_BG_SYSTEM_ALLIANCE, player); - else - SendBroadcastText(ICNodes[i].TextDefended, CHAT_MSG_BG_SYSTEM_HORDE, player); + for (ObjectGuid const& guid : _cannonGUIDs[node.GetLastControlledTeam()]) + if (Creature* cannon = GetBgMap()->GetCreature(guid)) + cannon->SetUninteractible(false); + break; + default: + break; + } +} - HandleCapturedNodes(&nodePoint[i], true); - UpdatePvpStat(player, PVP_STAT_BASES_DEFENDED, 1); - } +WorldSafeLocsEntry const* BattlegroundIC::GetExploitTeleportLocation(Team team) +{ + return sObjectMgr->GetWorldSafeLoc(team == ALLIANCE ? IC_EXPLOIT_TELEPORT_LOCATION_ALLIANCE : IC_EXPLOIT_TELEPORT_LOCATION_HORDE); +} - GameObject* banner = GetBGObject(nodePoint[i].gameobject_type); +void BattlegroundIC::OnCreatureCreate(Creature* creature) +{ + Battleground::OnCreatureCreate(creature); + if (creature->HasStringId("bg_ioc_faction_1735")) + creature->SetFaction(FACTION_HORDE_GENERIC_WG); + else if (creature->HasStringId("bg_ioc_faction_1732")) + creature->SetFaction(FACTION_ALLIANCE_GENERIC_WG); - if (!banner) // this should never happen - return; + switch (creature->GetEntry()) + { + case NPC_ALLIANCE_GUNSHIP_CANNON: + _cannonGUIDs[TEAM_ALLIANCE].emplace_back(creature->GetGUID()); + creature->SetUninteractible(true); + creature->SetControlled(true, UNIT_STATE_ROOT); + break; + case NPC_HORDE_GUNSHIP_CANNON: + _cannonGUIDs[TEAM_HORDE].emplace_back(creature->GetGUID()); + creature->SetUninteractible(true); + creature->SetControlled(true, UNIT_STATE_ROOT); + break; + default: + break; + } +} - float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() }; +void BattlegroundIC::OnGameObjectCreate(GameObject* gameobject) +{ + Battleground::OnGameObjectCreate(gameobject); - DelObject(nodePoint[i].gameobject_type); - if (!AddObject(nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY)) - { - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a banner (type: {}, entry: {}). Isle of Conquest BG cancelled.", nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry); - EndBattleground(TEAM_OTHER); - } + if (gameobject->IsDestructibleBuilding()) + _wallGUIDs.emplace_back(gameobject->GetGUID()); - GetBGObject(nodePoint[i].gameobject_type)->SetFaction(nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_Factions[1] : BG_IC_Factions[0]); + if (gameobject->HasStringId("bg_ioc_faction_1735")) + gameobject->SetFaction(FACTION_HORDE_GENERIC_WG); + else if (gameobject->HasStringId("bg_ioc_faction_1732")) + gameobject->SetFaction(FACTION_ALLIANCE_GENERIC_WG); - UpdateNodeWorldState(&nodePoint[i]); - // we dont need iterating if we are here - // If the needChange bool was set true, we will handle the rest in the Update Map function. - return; - } + switch (gameobject->GetEntry()) + { + case GO_TELEPORTER_1: + case GO_TELEPORTER_2: + case GO_TELEPORTER_3: + case GO_TELEPORTER_4: + _teleporterGUIDs.emplace_back(gameobject->GetGUID()); + break; + case GO_TELEPORTER_EFFECTS_A: + case GO_TELEPORTER_EFFECTS_H: + _teleporterEffectGUIDs.emplace_back(gameobject->GetGUID()); + break; + case GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01: + case GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01: + _mainGateDoorGUIDs.emplace_back(gameobject->GetGUID()); + break; + case GO_DOODAD_HU_PORTCULLIS01: + case GO_DOODAD_VR_PORTCULLIS01: + _portcullisGUIDs.emplace_back(gameobject->GetGUID()); + break; + case GO_KEEP_GATE_H: + _keepGateGUIDs[TEAM_HORDE].emplace_back(gameobject->GetGUID()); + break; + case GO_KEEP_GATE_A: + case GO_KEEP_GATE_2_A: + _keepGateGUIDs[TEAM_ALLIANCE].emplace_back(gameobject->GetGUID()); + break; + case GO_BANNER_ALLIANCE_KEEP_CONTROLLED_A: + _keepBannerGUIDs[TEAM_ALLIANCE] = gameobject->GetGUID(); + break; + case GO_BANNER_HORDE_KEEP_CONTROLLED_H: + _keepBannerGUIDs[TEAM_HORDE] = gameobject->GetGUID(); + break; + default: + break; } } -void BattlegroundIC::UpdateNodeWorldState(ICNodePoint* node) +void BattlegroundIC::OnMapSet(BattlegroundMap* map) { - //updating worldstate - if (node->gameobject_entry == node->banners[BANNER_A_CONTROLLED]) - node->nodeState = NODE_STATE_CONTROLLED_A; - else if (node->gameobject_entry == node->banners[BANNER_A_CONTESTED]) - node->nodeState = NODE_STATE_CONFLICT_A; - else if (node->gameobject_entry == node->banners[BANNER_H_CONTROLLED]) - node->nodeState = NODE_STATE_CONTROLLED_H; - else if (node->gameobject_entry == node->banners[BANNER_H_CONTESTED]) - node->nodeState = NODE_STATE_CONFLICT_H; - - int32 worldstate = node->worldStates[node->nodeState]; - - // with this we are sure we dont bug the client - for (uint8 i = 0; i < 5; ++i) + Battleground::OnMapSet(map); + + if (Transport* transport = sTransportMgr->CreateTransport(GO_HORDE_GUNSHIP, map)) { - if (node->worldStates[i] == worldstate) - continue; - UpdateWorldState(node->worldStates[i], 0); + _gunshipGUIDs[TEAM_HORDE] = transport->GetGUID(); + transport->EnableMovement(false); } - UpdateWorldState(worldstate, 1); - UpdateWorldState(node->worldStates[5], node->nodeState == NODE_STATE_CONTROLLED_H ? 2 : node->nodeState == NODE_STATE_CONTROLLED_A ? 1 : 0); + if (Transport* transport = sTransportMgr->CreateTransport(GO_ALLIANCE_GUNSHIP, map)) + { + _gunshipGUIDs[TEAM_ALLIANCE] = transport->GetGUID(); + transport->EnableMovement(false); + } } -uint32 BattlegroundIC::GetNextBanner(ICNodePoint* node, uint32 team, bool returnDefinitve) +void BattlegroundIC::DoAction(uint32 actionId, WorldObject* source, WorldObject* target) { - // this is only used in the update map function - if (returnDefinitve) - // here is a special case, here we must return the definitve faction banner after the grey banner was spawned 1 minute - return node->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTROLLED : BANNER_H_CONTROLLED)]; - - // there were no changes, this point has never been captured by any faction or at least clicked - if (node->last_entry == 0) - // 1 returns the CONTESTED ALLIANCE BANNER, 3 returns the HORDE one - return node->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTESTED : BANNER_H_CONTESTED)]; - - // If the actual banner is the definitive faction banner, we must return the grey banner of the player's faction - if (node->gameobject_entry == node->banners[BANNER_A_CONTROLLED] || node->gameobject_entry == node->banners[BANNER_H_CONTROLLED]) - return node->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTESTED : BANNER_H_CONTESTED)]; - - // If the actual banner is the grey faction banner, we must return the previous banner - if (node->gameobject_entry == node->banners[BANNER_A_CONTESTED] || node->banners[BANNER_H_CONTESTED]) - return node->last_entry; - - // we should never be here... - TC_LOG_ERROR("bg.battleground", "Isle Of Conquest: Unexpected return in GetNextBanner function"); - return 0; -} -void BattlegroundIC::HandleContestedNodes(ICNodePoint* node) -{ - if (node->nodeType == NODE_TYPE_HANGAR) + switch (actionId) { - if (gunshipAlliance && gunshipHorde) - (node->faction == TEAM_ALLIANCE ? gunshipHorde : gunshipAlliance)->EnableMovement(false); - - for (uint8 u = BG_IC_GO_HANGAR_TELEPORTER_1; u <= BG_IC_GO_HANGAR_TELEPORTER_3; ++u) - DelObject(u); + case ACTION_IOC_INTERACT_CAPTURABLE_OBJECT: + OnPlayerInteractWithBanner(WorldObject::ToPlayer(source), WorldObject::ToGameObject(target)); + break; + case ACTION_IOC_CAPTURE_CAPTURABLE_OBJECT: + HandleCaptureNodeAction(WorldObject::ToGameObject(target)); + break; + default: + break; + } +} - for (uint8 u = BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1; u <= BG_IC_GO_HANGAR_TELEPORTER_EFFECT_3; ++u) - DelObject(u); +void BattlegroundIC::OnPlayerInteractWithBanner(Player* player, GameObject* banner) +{ + if (!player || !banner) + return; - DelCreature(BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING); + Team const playerTeam = GetPlayerTeam(player->GetGUID()); + TeamId const playerTeamId = GetTeamIndexByTeamId(playerTeam); + ICNodePointType const nodeType = BannerToNodeType(banner->GetEntry()); + if (nodeType == MAX_NODE_TYPES) + return; - for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u) - { - uint8 type = BG_IC_NPC_GUNSHIP_CAPTAIN_1 + u; - DelCreature(type); - } + ICNodePoint& node = *_nodePoints[nodeType]; - std::list<Creature*> cannons; - if (node->faction == TEAM_HORDE) - gunshipAlliance->GetCreatureListWithEntryInGrid(cannons, NPC_ALLIANCE_GUNSHIP_CANNON, 150.0f); - else - gunshipHorde->GetCreatureListWithEntryInGrid(cannons, NPC_HORDE_GUNSHIP_CANNON, 150.0f); + bool assault = false; + bool defend = false; - for (Creature* cannon : cannons) - { - cannon->GetVehicleKit()->RemoveAllPassengers(); - cannon->SetUninteractible(true); - } - } - else if (node->nodeType == NODE_TYPE_WORKSHOP) + switch (node.GetState()) { - DelObject(BG_IC_GO_SEAFORIUM_BOMBS_1); - DelObject(BG_IC_GO_SEAFORIUM_BOMBS_2); + case IsleOfConquestNodeState::Neutral: + assault = true; + break; + case IsleOfConquestNodeState::ControlledH: + assault = playerTeamId != TEAM_HORDE; + break; + case IsleOfConquestNodeState::ControlledA: + assault = playerTeamId != TEAM_ALLIANCE; + break; + case IsleOfConquestNodeState::ConflictA: + defend = playerTeamId == node.GetLastControlledTeam(); + assault = !defend && playerTeamId == TEAM_HORDE; + break; + case IsleOfConquestNodeState::ConflictH: + defend = playerTeamId == node.GetLastControlledTeam(); + assault = !defend && playerTeamId == TEAM_ALLIANCE; + break; } + + if (assault) + OnPlayerAssaultNode(player, node); + else if (defend) + OnPlayerDefendNode(player, node); + + GetBgMap()->UpdateSpawnGroupConditions(); } -void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture) +void BattlegroundIC::OnPlayerAssaultNode(Player* player, ICNodePoint& node) { - if (node->nodeType != NODE_TYPE_REFINERY && node->nodeType != NODE_TYPE_QUARRY) - { - if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1 + uint32(node->nodeType) - 2, BG_IC_SpiritGuidePos[node->nodeType], node->faction)) - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn spirit guide! point: {}, team: {}, ", node->nodeType, node->faction); - } + if (!player) + return; - switch (node->gameobject_type) - { - case BG_IC_GO_HANGAR_BANNER: - { - if (!gunshipAlliance || !gunshipHorde) - break; + Team const playerTeam = GetPlayerTeam(player->GetGUID()); + TeamId const playerTeamId = GetTeamIndexByTeamId(playerTeam); - std::list<Creature*> cannons; - if (node->faction == TEAM_ALLIANCE) - gunshipAlliance->GetCreatureListWithEntryInGrid(cannons, NPC_ALLIANCE_GUNSHIP_CANNON, 150.0f); - else - gunshipHorde->GetCreatureListWithEntryInGrid(cannons, NPC_HORDE_GUNSHIP_CANNON, 150.0f); + IsleOfConquestNodeState const newState = playerTeamId == TEAM_HORDE ? IsleOfConquestNodeState::ConflictH : IsleOfConquestNodeState::ConflictA; + node.UpdateState(newState); - for (Creature* cannon : cannons) - cannon->SetUninteractible(false); + UpdatePvpStat(player, PVP_STAT_BASES_ASSAULTED, 1); - for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u) - { - uint8 type = BG_IC_GO_HANGAR_TELEPORTER_1 + u; - if (!AddObject(type, (node->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL : GO_HORDE_GUNSHIP_PORTAL), BG_IC_HangarTeleporters[u], 0, 0, 0, 0, RESPAWN_ONE_DAY)) - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u); - } + ChatMsg const messageType = playerTeamId == TEAM_ALLIANCE ? CHAT_MSG_BG_SYSTEM_ALLIANCE : CHAT_MSG_BG_SYSTEM_HORDE; + SendBroadcastText(node.GetNodeInfo().TextIds.Assaulted, messageType, player); + UpdateNodeWorldState(node); - for (uint8 u = 0; u < MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS; ++u) - { - uint8 type = BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1 + u; - if (!AddObject(type, (node->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS : GO_HORDE_GUNSHIP_PORTAL_EFFECTS), BG_IC_HangarTeleporterEffects[u], 0, 0, 0, 0, RESPAWN_ONE_DAY, GO_STATE_ACTIVE)) - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal effects. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u); - } + // apply side effects of each node, only if it wasn't neutral before + if (node.GetLastControlledTeam() == TEAM_NEUTRAL) + return; - for (uint8 u = 0; u < MAX_TRIGGER_SPAWNS_PER_FACTION; ++u) - { - if (!AddCreature(NPC_WORLD_TRIGGER_NOT_FLOATING, BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING, BG_IC_HangarTrigger[node->faction], node->faction, RESPAWN_ONE_DAY, node->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)) - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING); - } + switch (node.GetNodeInfo().NodeType) + { + case NODE_TYPE_HANGAR: + if (Transport* transport = GetBgMap()->GetTransport(_gunshipGUIDs[node.GetLastControlledTeam()])) + transport->EnableMovement(false); - for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u) + for (ObjectGuid const& guid : _cannonGUIDs[node.GetLastControlledTeam()]) + { + if (Creature* cannon = GetBgMap()->GetCreature(guid)) { - uint8 type = BG_IC_NPC_GUNSHIP_CAPTAIN_1 + u; - - if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_1) - if (AddCreature(node->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[node->faction == TEAM_ALLIANCE ? 2 : 0], node->faction, RESPAWN_ONE_DAY)) - GetBGCreature(BG_IC_NPC_GUNSHIP_CAPTAIN_1)->GetAI()->DoAction(ACTION_GUNSHIP_READY); - - if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_2) - if (!AddCreature(node->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[node->faction == TEAM_ALLIANCE ? 3 : 1], node->faction, RESPAWN_ONE_DAY, node->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)) - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_GUNSHIP_CAPTAIN_2); + cannon->GetVehicleKit()->RemoveAllPassengers(); + cannon->SetUninteractible(true); } - - (node->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->EnableMovement(true); - break; } - case BG_IC_GO_QUARRY_BANNER: - RemoveAuraOnTeam(SPELL_QUARRY, (node->faction == TEAM_ALLIANCE ? HORDE : ALLIANCE)); - CastSpellOnTeam(SPELL_QUARRY, (node->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE)); + + // Despawn teleport trigger target + if (Creature* creature = FindBgMap()->GetCreature(_gunshipTeleportTarget)) + creature->DespawnOrUnsummon(); break; - case BG_IC_GO_REFINERY_BANNER: - RemoveAuraOnTeam(SPELL_OIL_REFINERY, (node->faction == TEAM_ALLIANCE ? HORDE : ALLIANCE)); - CastSpellOnTeam(SPELL_OIL_REFINERY, (node->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE)); + default: break; - case BG_IC_GO_DOCKS_BANNER: - if (recapture) - break; + } +} - if (docksTimer < DOCKS_UPDATE_TIME) - docksTimer = DOCKS_UPDATE_TIME; +void BattlegroundIC::OnPlayerDefendNode(Player* player, ICNodePoint& node) +{ + if (!player) + return; - // we must del opposing faction vehicles when the node is captured (unused ones) - for (uint8 i = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_H : BG_IC_NPC_GLAIVE_THROWER_1_A); i < (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_H : BG_IC_NPC_GLAIVE_THROWER_2_A); ++i) - { - if (Creature* glaiveThrower = GetBGCreature(i, false)) - { - if (Vehicle* vehicleGlaive = glaiveThrower->GetVehicleKit()) - { - if (!vehicleGlaive->GetPassenger(0)) - DelCreature(i); - } - } - } + Team const playerTeam = GetPlayerTeam(player->GetGUID()); + TeamId const playerTeamId = GetTeamIndexByTeamId(playerTeam); - for (uint8 i = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_H : BG_IC_NPC_CATAPULT_1_A); i < (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_4_H : BG_IC_NPC_CATAPULT_4_A); ++i) - { - if (Creature* catapult = GetBGCreature(i, false)) - { - if (Vehicle* vehicleGlaive = catapult->GetVehicleKit()) - { - if (!vehicleGlaive->GetPassenger(0)) - DelCreature(i); - } - } - } + node.UpdateState(playerTeamId == TEAM_HORDE ? IsleOfConquestNodeState::ControlledH : IsleOfConquestNodeState::ControlledA); + HandleCapturedNodes(node); + UpdatePvpStat(player, PVP_STAT_BASES_DEFENDED, 1); - // spawning glaive throwers - for (uint8 i = 0; i < MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION; ++i) - { - uint8 type = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H)+i; + ChatMsg const messageType = playerTeamId == TEAM_ALLIANCE ? CHAT_MSG_BG_SYSTEM_ALLIANCE : CHAT_MSG_BG_SYSTEM_HORDE; + SendBroadcastText(node.GetNodeInfo().TextIds.Defended, messageType, player); + UpdateNodeWorldState(node); +} - if (GetBGCreature(type, false) && GetBGCreature(type)->IsAlive()) - continue; +void BattlegroundIC::ProcessEvent(WorldObject* target, uint32 eventId, WorldObject* invoker) +{ + Battleground::ProcessEvent(target, eventId, invoker); - if (AddCreature(node->faction == TEAM_ALLIANCE ? NPC_GLAIVE_THROWER_A : NPC_GLAIVE_THROWER_H, type, BG_IC_DocksVehiclesGlaives[i], node->faction, RESPAWN_ONE_DAY)) - GetBGCreature(type)->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]); - } + if (GameObject* obj = Object::ToGameObject(target)) + if (obj->GetGoType() == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING) + if (obj->GetGOInfo()->destructibleBuilding.DestroyedEvent == eventId) + OnGateDestroyed(obj, invoker); +} - // spawning catapults - for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; ++i) - { - uint8 type = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H)+i; +void BattlegroundIC::HandleCaptureNodeAction(GameObject* banner) +{ + if (!banner) + return; - if (GetBGCreature(type, false) && GetBGCreature(type)->IsAlive()) - continue; + ICNodePointType const nodeType = BannerToNodeType(banner->GetEntry()); + if (nodeType == MAX_NODE_TYPES) + return; - if (AddCreature(NPC_CATAPULT, type, BG_IC_DocksVehiclesCatapults[i], node->faction, RESPAWN_ONE_DAY)) - GetBGCreature(type)->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]); - } - break; - case BG_IC_GO_WORKSHOP_BANNER: - { - if (siegeEngineWorkshopTimer < WORKSHOP_UPDATE_TIME) - siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME; + ICNodePoint& node = *_nodePoints[nodeType]; + if (node.GetState() == IsleOfConquestNodeState::ConflictH) + node.UpdateState(IsleOfConquestNodeState::ControlledH); + else if (node.GetState() == IsleOfConquestNodeState::ConflictA) + node.UpdateState(IsleOfConquestNodeState::ControlledA); - if (!recapture) - { - // we must del opposing faction vehicles when the node is captured (unused ones) - for (uint8 i = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_H : BG_IC_NPC_DEMOLISHER_1_A); i < (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_4_H : BG_IC_NPC_DEMOLISHER_4_A); ++i) - { - if (Creature* demolisher = GetBGCreature(i, false)) - { - if (Vehicle* vehicleDemolisher = demolisher->GetVehicleKit()) - { - // is IsVehicleInUse working as expected? - if (!vehicleDemolisher->IsVehicleInUse()) - DelCreature(i); - } - } - } - - for (uint8 i = 0; i < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; ++i) - { - uint8 type = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H)+i; - - if (GetBGCreature(type, false) && GetBGCreature(type)->IsAlive()) - continue; - - if (AddCreature(NPC_DEMOLISHER, type, BG_IC_WorkshopVehicles[i], node->faction, RESPAWN_ONE_DAY)) - GetBGCreature(type)->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]); - } - - // we check if the opossing siege engine is in use - int8 enemySiege = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_H : BG_IC_NPC_SIEGE_ENGINE_A); - - if (Creature* siegeEngine = GetBGCreature(enemySiege, false)) - { - if (Vehicle* vehicleSiege = siegeEngine->GetVehicleKit()) - { - // is VehicleInUse working as expected ? - if (!vehicleSiege->IsVehicleInUse()) - DelCreature(enemySiege); - } - } - - uint8 siegeType = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_A : BG_IC_NPC_SIEGE_ENGINE_H); - if (!GetBGCreature(siegeType, false) || !GetBGCreature(siegeType)->IsAlive()) - { - AddCreature((node->faction == TEAM_ALLIANCE ? NPC_SIEGE_ENGINE_A : NPC_SIEGE_ENGINE_H), siegeType, - BG_IC_WorkshopVehicles[4], node->faction, RESPAWN_ONE_DAY); - - if (Creature* siegeEngine = GetBGCreature(siegeType)) - { - siegeEngine->SetUnitFlag(UNIT_FLAG_CANT_SWIM); - siegeEngine->SetUninteractible(true); - siegeEngine->SetImmuneToPC(true); - siegeEngine->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]); - } - } - } + HandleCapturedNodes(node); - for (uint8 i = 0; i < MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION; ++i) - { - AddObject(BG_IC_GO_SEAFORIUM_BOMBS_1+i, GO_SEAFORIUM_BOMBS, - workshopBombs[i].GetPositionX(), workshopBombs[i].GetPositionY(), - workshopBombs[i].GetPositionZ(), workshopBombs[i].GetOrientation(), - 0, 0, 0, 0, 10); - - if (GameObject* seaforiumBombs = GetBGObject(BG_IC_GO_SEAFORIUM_BOMBS_1+i)) - { - seaforiumBombs->SetRespawnTime(10); - seaforiumBombs->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]); - } - } - break; - } - default: - break; - } + ChatMsg const messageType = node.GetLastControlledTeam() == TEAM_ALLIANCE ? CHAT_MSG_BG_SYSTEM_ALLIANCE : CHAT_MSG_BG_SYSTEM_HORDE; + uint32 const textId = node.GetLastControlledTeam() == TEAM_ALLIANCE ? node.GetNodeInfo().TextIds.AllianceTaken : node.GetNodeInfo().TextIds.HordeTaken; + SendBroadcastText(textId, messageType); + UpdateNodeWorldState(node); } -void BattlegroundIC::DestroyGate(Player* player, GameObject* go) +void BattlegroundIC::OnGateDestroyed(GameObject* gate, WorldObject* destroyer) { - GateStatus[GetGateIDFromEntry(go->GetEntry())] = BG_IC_GATE_DESTROYED; - int32 uws_open = GetWorldStateFromGateEntry(go->GetEntry(), true); - int32 uws_close = GetWorldStateFromGateEntry(go->GetEntry(), false); - if (uws_open) + _gateStatus[GetGateIDFromEntry(gate->GetEntry())] = BG_IC_GATE_DESTROYED; + int32 const wsGateOpen = GetWorldStateFromGateEntry(gate->GetEntry(), true); + int32 const wsGateClosed = GetWorldStateFromGateEntry(gate->GetEntry(), false); + if (wsGateOpen) { - UpdateWorldState(uws_close, 0); - UpdateWorldState(uws_open, 1); - } - if (GetPlayerTeam(player->GetGUID()) == ALLIANCE) - { - DoorOpen(BG_IC_GO_HORDE_KEEP_PORTCULLIS); - GetBGObject(BG_IC_GO_HORDE_BANNER)->RemoveFlag(GO_FLAG_NOT_SELECTABLE); - } - else - { - DoorOpen(BG_IC_GO_DOODAD_PORTCULLISACTIVE02); - GetBGObject(BG_IC_GO_ALLIANCE_BANNER)->RemoveFlag(GO_FLAG_NOT_SELECTABLE); + UpdateWorldState(wsGateClosed, 0); + UpdateWorldState(wsGateOpen, 1); } + TeamId teamId = TEAM_NEUTRAL; uint32 textId; ChatMsg msgType; - switch (go->GetEntry()) + switch (gate->GetEntry()) { case GO_HORDE_GATE_1: textId = BG_IC_TEXT_FRONT_GATE_HORDE_DESTROYED; msgType = CHAT_MSG_BG_SYSTEM_ALLIANCE; + teamId = TEAM_HORDE; break; case GO_HORDE_GATE_2: textId = BG_IC_TEXT_WEST_GATE_HORDE_DESTROYED; msgType = CHAT_MSG_BG_SYSTEM_ALLIANCE; + teamId = TEAM_HORDE; break; case GO_HORDE_GATE_3: textId = BG_IC_TEXT_EAST_GATE_HORDE_DESTROYED; msgType = CHAT_MSG_BG_SYSTEM_ALLIANCE; + teamId = TEAM_HORDE; break; case GO_ALLIANCE_GATE_1: textId = BG_IC_TEXT_WEST_GATE_ALLIANCE_DESTROYED; msgType = CHAT_MSG_BG_SYSTEM_HORDE; + teamId = TEAM_ALLIANCE; break; case GO_ALLIANCE_GATE_2: textId = BG_IC_TEXT_EAST_GATE_ALLIANCE_DESTROYED; msgType = CHAT_MSG_BG_SYSTEM_HORDE; + teamId = TEAM_ALLIANCE; break; case GO_ALLIANCE_GATE_3: textId = BG_IC_TEXT_FRONT_GATE_ALLIANCE_DESTROYED; msgType = CHAT_MSG_BG_SYSTEM_HORDE; + teamId = TEAM_ALLIANCE; break; default: return; } - if (go->GetEntry() == GO_HORDE_GATE_1 || go->GetEntry() == GO_HORDE_GATE_2 || go->GetEntry() == GO_HORDE_GATE_3) - { - if (!GetBgMap()->GetCreature(BgCreatures[BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].type]) && !AddCreature(BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].entry, BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].type, BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].x, BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].y, BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].z, BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].o, BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].team, RESPAWN_ONE_DAY)) - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning creature {}", BG_IC_NpcSpawnlocs[BG_IC_NPC_OVERLORD_AGMAR].entry); - } - else if (go->GetEntry() == GO_ALLIANCE_GATE_1 || go->GetEntry() == GO_ALLIANCE_GATE_2 || go->GetEntry() == GO_ALLIANCE_GATE_3) - { - if (!GetBgMap()->GetCreature(BgCreatures[BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].type]) && !AddCreature(BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].entry, BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].type, BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].x, BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].y, BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].z, BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].o, BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].team, RESPAWN_ONE_DAY)) - TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning creature {}", BG_IC_NpcSpawnlocs[BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE].entry); - } - - SendBroadcastText(textId, msgType); -} - -WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveyard(Player* player) -{ - TeamId teamIndex = GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID())); - - // Is there any occupied node for this team? - std::vector<uint8> nodes; - for (uint8 i = 0; i < MAX_NODE_TYPES; ++i) - if (nodePoint[i].faction == GetTeamIndexByTeamId(GetPlayerTeam(player->GetGUID()))) - nodes.push_back(i); - - WorldSafeLocsEntry const* good_entry = nullptr; - // If so, select the closest node to place ghost on - if (!nodes.empty()) + if (teamId != TEAM_NEUTRAL) { - float player_x = player->GetPositionX(); - float player_y = player->GetPositionY(); + GuidVector const keepGates = _keepGateGUIDs[teamId]; + ObjectGuid const bannerGuid = _keepBannerGUIDs[teamId]; - float mindist = 999999.0f; - for (uint8 i = 0; i < nodes.size(); ++i) - { - WorldSafeLocsEntry const*entry = sObjectMgr->GetWorldSafeLoc(BG_IC_GraveyardIds[nodes[i]]); - if (!entry) - continue; - float dist = (entry->Loc.GetPositionX() - player_x) * (entry->Loc.GetPositionX() - player_x) + (entry->Loc.GetPositionY() - player_y) * (entry->Loc.GetPositionY() - player_y); - if (mindist > dist) - { - mindist = dist; - good_entry = entry; - } - } - nodes.clear(); - } - // If not, place ghost on starting location - if (!good_entry) - good_entry = sObjectMgr->GetWorldSafeLoc(BG_IC_GraveyardIds[uint32(teamIndex) + MAX_NODE_TYPES]); - - return good_entry; -} + for (ObjectGuid const& guid : keepGates) + if (GameObject* keepGate = GetBgMap()->GetGameObject(guid)) + keepGate->UseDoorOrButton(); -WorldSafeLocsEntry const * BattlegroundIC::GetExploitTeleportLocation(Team team) -{ - return sObjectMgr->GetWorldSafeLoc(team == ALLIANCE ? IC_EXPLOIT_TELEPORT_LOCATION_ALLIANCE : IC_EXPLOIT_TELEPORT_LOCATION_HORDE); -} - -bool BattlegroundIC::IsSpellAllowed(uint32 spellId, Player const* player) const -{ - switch (spellId) - { - case SPELL_OIL_REFINERY: - case SPELL_QUARRY: - { - uint32 team = GetPlayerTeam(player->GetGUID()); - uint8 nodeType = spellId == SPELL_OIL_REFINERY ? NODE_TYPE_REFINERY : NODE_TYPE_QUARRY; - uint8 nodeState = team == ALLIANCE ? NODE_STATE_CONTROLLED_A : NODE_STATE_CONTROLLED_H; - return GetNodeState(nodeType) == nodeState; - } - default: - break; + if (GameObject* banner = GetBgMap()->GetGameObject(bannerGuid)) + banner->RemoveFlag(GO_FLAG_NOT_SELECTABLE); } - return true; + SendBroadcastText(textId, msgType, destroyer); } diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h index a72a2b39d2c..c7d47d90d1f 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h +++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h @@ -20,6 +20,8 @@ #include "Battleground.h" #include "Object.h" +#include "TaskScheduler.h" +#include "Timer.h" const uint32 BG_IC_Factions[2] = { @@ -49,384 +51,13 @@ enum creaturesIC NPC_WORLD_TRIGGER_HORDE_FRIENDLY = 20212 }; -enum gameobjectsIC -{ - GO_ALLIANCE_BANNER = 195396, - - GO_ALLIANCE_GATE_1 = 195699, - GO_ALLIANCE_GATE_2 = 195698, - GO_ALLIANCE_GATE_3 = 195700, - - GO_ALLIANCE_GUNSHIP_PORTAL = 195320, - - GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS = 195705, - - GO_BENCH_1 = 186896, - GO_BENCH_2 = 186922, - GO_BENCH_3 = 186899, - GO_BENCH_4 = 186904, - GO_BENCH_5 = 186897, - - GO_BONFIRE_1 = 195376, - GO_BONFIRE_2 = 195208, - GO_BONFIRE_3 = 195210, - GO_BONFIRE_4 = 195207, - GO_BONFIRE_5 = 195209, - GO_BONFIRE_6 = 195377, - - GO_DOCKS_BANNER = 195157, - - GO_DOODAD_HU_PORTCULLIS01 = 195436, - - GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01 = 195703, - - GO_DOODAD_PORTCULLISACTIVE01 = 195451, - - GO_DOODAD_PORTCULLISACTIVE02 = 195452, - - GO_DOODAD_VR_PORTCULLIS01 = 195437, - - GO_CHAIR_1 = 195410, - GO_CHAIR_2 = 195414, - GO_CHAIR_3 = 160415, - GO_CHAIR_4 = 195418, - GO_CHAIR_5 = 195416, - GO_CHAIR_6 = 160410, - GO_CHAIR_7 = 160418, - GO_CHAIR_8 = 160416, - GO_CHAIR_9 = 160419, - - GO_FLAGPOLE_1 = 195131, - GO_FLAGPOLE_2 = 195439, - - GO_GUNSHIP_PORTAL_1 = 195371, - GO_GUNSHIP_PORTAL_2 = 196413, - - GO_HANGAR_BANNER = 195158, - - GO_HORDE_BANNER = 195393, - - GO_HORDE_GATE_1 = 195494, - GO_HORDE_GATE_2 = 195496, - GO_HORDE_GATE_3 = 195495, - - GO_HORDE_GUNSHIP_PORTAL = 195326, - - GO_HORDE_GUNSHIP_PORTAL_EFFECTS = 195706, - - GO_HORDE_KEEP_PORTCULLIS = 195223, - - GO_HUGE_SEAFORIUM_BOMB_A = 195332, - GO_HUGE_SEAFORIUM_BOMB_H = 195333, - - GO_QUARRY_BANNER = 195338, - GO_REFRESHMENT_PORTAL = 186811, - GO_SEAFORIUM_BOMBS = 195237, - - GO_STOVE_1 = 174863, - GO_STOVE_2 = 160411, - - GO_TELEPORTER_1 = 195314, // 195314 H-OUT 66549 - GO_TELEPORTER_2 = 195313, // 195313 H-IN 66548 - - GO_TELEPORTER_3 = 195315, // 195315 A-OUT 66549 - GO_TELEPORTER_4 = 195316, // 195316 A-IN 66548 - - GO_TELEPORTER_EFFECTS_A = 195701, - GO_TELEPORTER_EFFECTS_H = 195702, - - GO_WORKSHOP_BANNER = 195133, - - GO_BRAZIER_1 = 195402, - GO_BRAZIER_2 = 195403, - GO_BRAZIER_3 = 195425, - GO_BRAZIER_4 = 195424, - - GO_REFINERY_BANNER = 195343, - - GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01 = 195491, - - GO_ALLIANCE_BANNER_DOCK = 195153, - GO_ALLIANCE_BANNER_DOCK_CONT = 195154, - GO_HORDE_BANNER_DOCK = 195155, - GO_HORDE_BANNER_DOCK_CONT = 195156, - - GO_HORDE_BANNER_HANGAR = 195130, - GO_HORDE_BANNER_HANGAR_CONT = 195145, - GO_ALLIANCE_BANNER_HANGAR = 195132, - GO_ALLIANCE_BANNER_HANGAR_CONT = 195144, - - GO_ALLIANCE_BANNER_QUARRY = 195334, - GO_ALLIANCE_BANNER_QUARRY_CONT = 195335, - GO_HORDE_BANNER_QUARRY = 195336, - GO_HORDE_BANNER_QUARRY_CONT = 195337, - - GO_ALLIANCE_BANNER_REFINERY = 195339, - GO_ALLIANCE_BANNER_REFINERY_CONT = 195340, - GO_HORDE_BANNER_REFINERY = 195341, - GO_HORDE_BANNER_REFINERY_CONT = 195342, - - GO_ALLIANCE_BANNER_WORKSHOP = 195149, - GO_ALLIANCE_BANNER_WORKSHOP_CONT = 195150, - GO_HORDE_BANNER_WORKSHOP = 195151, - GO_HORDE_BANNER_WORKSHOP_CONT = 195152, - - GO_ALLIANCE_BANNER_GRAVEYARD_A = 195396, - GO_ALLIANCE_BANNER_GRAVEYARD_A_CONT = 195397, - GO_HORDE_BANNER_GRAVEYARD_A = 195398, - GO_HORDE_BANNER_GRAVEYARD_A_CONT = 195399, - - GO_ALLIANCE_BANNER_GRAVEYARD_H = 195391, - GO_ALLIANCE_BANNER_GRAVEYARD_H_CONT = 195392, - GO_HORDE_BANNER_GRAVEYARD_H = 195393, - GO_HORDE_BANNER_GRAVEYARD_H_CONT = 195394, - - GO_HORDE_GUNSHIP = 195276, - GO_ALLIANCE_GUNSHIP = 195121 -}; - #define MAX_REINFORCEMENTS 400 -enum Times -{ - WORKSHOP_UPDATE_TIME = 180000, // 3 minutes - DOCKS_UPDATE_TIME = 180000, // not sure if it is 3 minutes - IC_RESOURCE_TIME = 45000, // not sure, need more research - CLOSE_DOORS_TIME = 20000, - BANNER_STATE_CHANGE_TIME = 60000, - TRANSPORT_PERIOD_TIME = 120000 -}; - enum Actions { - ACTION_GUNSHIP_READY = 1 -}; - -struct ICNpc -{ - uint32 type; - uint32 entry; - TeamId team; - float x; - float y; - float z; - float o; -}; - -enum BG_IC_GOs -{ - BG_IC_GO_ALLIANCE_BANNER = 0, - - BG_IC_GO_ALLIANCE_GATE_1, - BG_IC_GO_ALLIANCE_GATE_2, - BG_IC_GO_ALLIANCE_GATE_3, - - BG_IC_GO_BENCH_1, - BG_IC_GO_BENCH_2, - BG_IC_GO_BENCH_3, - BG_IC_GO_BENCH_4, - BG_IC_GO_BENCH_5, - - BG_IC_GO_BONFIRE_1, - BG_IC_GO_BONFIRE_2, - BG_IC_GO_BONFIRE_3, - BG_IC_GO_BONFIRE_4, - BG_IC_GO_BONFIRE_5, - BG_IC_GO_BONFIRE_6, - - BG_IC_GO_BRAZIER_1, - BG_IC_GO_BRAZIER_2, - BG_IC_GO_BRAZIER_3, - BG_IC_GO_BRAZIER_4, - - BG_IC_GO_CHAIR_1, - BG_IC_GO_CHAIR_2, - BG_IC_GO_CHAIR_3_1, - BG_IC_GO_CHAIR_4, - BG_IC_GO_CHAIR_5, - BG_IC_GO_CHAIR_6_1, - BG_IC_GO_CHAIR_7, - BG_IC_GO_CHAIR_3_2, - BG_IC_GO_CHAIR_6_2, - BG_IC_GO_CHAIR_8_1, - BG_IC_GO_CHAIR_8_2, - BG_IC_GO_CHAIR_9, - - BG_IC_GO_DOCKS_BANNER, - - BG_IC_GO_DOODAD_HU_PORTCULLIS01_1, - BG_IC_GO_DOODAD_HU_PORTCULLIS01_2, - - BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, - BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02, - BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03, - - BG_IC_GO_DOODAD_PORTCULLISACTIVE01, - - BG_IC_GO_DOODAD_PORTCULLISACTIVE02, - - BG_IC_GO_DOODAD_VR_PORTCULLIS01_1, - BG_IC_GO_DOODAD_VR_PORTCULLIS01_2, - - BG_IC_GO_FLAGPOLE_1_1, - BG_IC_GO_FLAGPOLE_2_1, - BG_IC_GO_FLAGPOLE_2_2, - BG_IC_GO_FLAGPOLE_1_2, - BG_IC_GO_FLAGPOLE_1_3, - BG_IC_GO_FLAGPOLE_1_4, - BG_IC_GO_FLAGPOLE_1_5, - BG_IC_GO_FLAGPOLE_1_6, - - BG_IC_GO_HANGAR_BANNER, - - BG_IC_GO_HORDE_BANNER, - - BG_IC_GO_HORDE_GATE_1, - BG_IC_GO_HORDE_GATE_2, - BG_IC_GO_HORDE_GATE_3, - - BG_IC_GO_HORDE_KEEP_PORTCULLIS, - - BG_IC_GO_QUARRY_BANNER, - - BG_IC_GO_STOVE_1_1, - BG_IC_GO_STOVE_2_1, - BG_IC_GO_STOVE_1_2, - BG_IC_GO_STOVE_2_2, - - BG_IC_GO_WORKSHOP_BANNER, - - BG_IC_GO_REFINERY_BANNER, - - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_2, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_3, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_4, - - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_1, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_2, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_3, - BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4, - - BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, - BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02, - BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03, - - BG_IC_GO_SEAFORIUM_BOMBS_1, - BG_IC_GO_SEAFORIUM_BOMBS_2, - - BG_IC_GO_HANGAR_TELEPORTER_1, - BG_IC_GO_HANGAR_TELEPORTER_2, - BG_IC_GO_HANGAR_TELEPORTER_3, - - BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1, - BG_IC_GO_HANGAR_TELEPORTER_EFFECT_2, - BG_IC_GO_HANGAR_TELEPORTER_EFFECT_3, - - BG_IC_GO_TELEPORTER_1_1, - BG_IC_GO_TELEPORTER_1_2, - BG_IC_GO_TELEPORTER_2_1, - BG_IC_GO_TELEPORTER_3_1, - BG_IC_GO_TELEPORTER_2_2, - BG_IC_GO_TELEPORTER_4_1, - BG_IC_GO_TELEPORTER_3_2, - BG_IC_GO_TELEPORTER_3_3, - BG_IC_GO_TELEPORTER_4_2, - BG_IC_GO_TELEPORTER_4_3, - BG_IC_GO_TELEPORTER_1_3, - BG_IC_GO_TELEPORTER_2_3, - - BG_IC_GO_TELEPORTER_EFFECTS_A_1, - BG_IC_GO_TELEPORTER_EFFECTS_A_2, - BG_IC_GO_TELEPORTER_EFFECTS_A_3, - BG_IC_GO_TELEPORTER_EFFECTS_A_4, - BG_IC_GO_TELEPORTER_EFFECTS_A_5, - BG_IC_GO_TELEPORTER_EFFECTS_A_6, - - BG_IC_GO_TELEPORTER_EFFECTS_H_1, - BG_IC_GO_TELEPORTER_EFFECTS_H_2, - BG_IC_GO_TELEPORTER_EFFECTS_H_3, - BG_IC_GO_TELEPORTER_EFFECTS_H_4, - BG_IC_GO_TELEPORTER_EFFECTS_H_5, - BG_IC_GO_TELEPORTER_EFFECTS_H_6 -}; - -enum BG_IC_NPCs -{ - BG_IC_NPC_OVERLORD_AGMAR = 0, - BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE, - BG_IC_NPC_KOR_KRON_GUARD_1, - BG_IC_NPC_KOR_KRON_GUARD_2, - BG_IC_NPC_KOR_KRON_GUARD_3, - BG_IC_NPC_KOR_KRON_GUARD_4, - BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1, - BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2, - BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3, - BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4, - BG_IC_NPC_KEEP_CANNON_1, - BG_IC_NPC_KEEP_CANNON_2, - BG_IC_NPC_KEEP_CANNON_3, - BG_IC_NPC_KEEP_CANNON_4, - BG_IC_NPC_KEEP_CANNON_5, - BG_IC_NPC_KEEP_CANNON_6, - BG_IC_NPC_KEEP_CANNON_7, - BG_IC_NPC_KEEP_CANNON_8, - BG_IC_NPC_KEEP_CANNON_9, - BG_IC_NPC_KEEP_CANNON_10, - BG_IC_NPC_KEEP_CANNON_11, - BG_IC_NPC_KEEP_CANNON_12, - BG_IC_NPC_KEEP_CANNON_13, - BG_IC_NPC_KEEP_CANNON_14, - BG_IC_NPC_KEEP_CANNON_15, - BG_IC_NPC_KEEP_CANNON_16, - BG_IC_NPC_KEEP_CANNON_17, - BG_IC_NPC_KEEP_CANNON_18, - BG_IC_NPC_KEEP_CANNON_19, - BG_IC_NPC_KEEP_CANNON_20, - BG_IC_NPC_KEEP_CANNON_21, - BG_IC_NPC_KEEP_CANNON_22, - BG_IC_NPC_KEEP_CANNON_23, - BG_IC_NPC_KEEP_CANNON_24, - - BG_IC_NPC_SIEGE_ENGINE_A, - BG_IC_NPC_SIEGE_ENGINE_H, - - BG_IC_NPC_DEMOLISHER_1_A, - BG_IC_NPC_DEMOLISHER_2_A, - BG_IC_NPC_DEMOLISHER_3_A, - BG_IC_NPC_DEMOLISHER_4_A, - - BG_IC_NPC_DEMOLISHER_1_H, - BG_IC_NPC_DEMOLISHER_2_H, - BG_IC_NPC_DEMOLISHER_3_H, - BG_IC_NPC_DEMOLISHER_4_H, - - BG_IC_NPC_GLAIVE_THROWER_1_A, - BG_IC_NPC_GLAIVE_THROWER_2_A, - BG_IC_NPC_GLAIVE_THROWER_1_H, - BG_IC_NPC_GLAIVE_THROWER_2_H, - - BG_IC_NPC_CATAPULT_1_A, - BG_IC_NPC_CATAPULT_2_A, - BG_IC_NPC_CATAPULT_3_A, - BG_IC_NPC_CATAPULT_4_A, - - BG_IC_NPC_CATAPULT_1_H, - BG_IC_NPC_CATAPULT_2_H, - BG_IC_NPC_CATAPULT_3_H, - BG_IC_NPC_CATAPULT_4_H, - - BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING, - BG_IC_NPC_GUNSHIP_CAPTAIN_1, - BG_IC_NPC_GUNSHIP_CAPTAIN_2, - - BG_IC_NPC_SPIRIT_GUIDE_1, - BG_IC_NPC_SPIRIT_GUIDE_2, - BG_IC_NPC_SPIRIT_GUIDE_3, - BG_IC_NPC_SPIRIT_GUIDE_4, - BG_IC_NPC_SPIRIT_GUIDE_5, - BG_IC_NPC_SPIRIT_GUIDE_6, - BG_IC_NPC_SPIRIT_GUIDE_7 + ACTION_GUNSHIP_READY = 1, + ACTION_IOC_INTERACT_CAPTURABLE_OBJECT = 2, + ACTION_IOC_CAPTURE_CAPTURABLE_OBJECT = 3 }; enum BannersTypes @@ -437,276 +68,12 @@ enum BannersTypes BANNER_H_CONTESTED }; -enum BG_IC_MaxSpawns -{ - MAX_NORMAL_GAMEOBJECTS_SPAWNS = BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03+1, - MAX_NORMAL_NPCS_SPAWNS = BG_IC_NPC_KEEP_CANNON_24+1, - MAX_WORKSHOP_SPAWNS = 10, - MAX_DOCKS_SPAWNS = 12, - MAX_SPIRIT_GUIDES_SPAWNS = 7, - MAX_HANGAR_TELEPORTERS_SPAWNS = 3, - MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS = 3, - MAX_AIRSHIPS_SPAWNS = 2, - MAX_FORTRESS_GATES_SPAWNS = 6, - MAX_FORTRESS_TELEPORTERS_SPAWNS = 12, - MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS = 12, - MAX_HANGAR_NPCS_SPAWNS = 3, - - // docks - MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION = 2, - MAX_CATAPULTS_SPAWNS_PER_FACTION = 4, - - // workshop - MAX_DEMOLISHERS_SPAWNS_PER_FACTION = 4, - MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION = 2, - - // Hangar - MAX_TRIGGER_SPAWNS_PER_FACTION = 1, - MAX_CAPTAIN_SPAWNS_PER_FACTION = 2, -}; - enum BG_IC_ExploitTeleportLocations { IC_EXPLOIT_TELEPORT_LOCATION_ALLIANCE = 3986, IC_EXPLOIT_TELEPORT_LOCATION_HORDE = 3983 }; -const ICNpc BG_IC_NpcSpawnlocs[MAX_NORMAL_NPCS_SPAWNS] = -{ - {BG_IC_NPC_OVERLORD_AGMAR, NPC_OVERLORD_AGMAR, TEAM_HORDE, 1295.44f, -765.733f, 70.0541f, 0.0f}, //Overlord Agmar 1 - {BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE, NPC_HIGH_COMMANDER_HALFORD_WYRMBANE, TEAM_ALLIANCE, 224.983f, -831.573f, 60.9034f, 0.0f}, //High Commander Halford Wyrmbane 2 - {BG_IC_NPC_KOR_KRON_GUARD_1, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1296.01f, -773.256f, 69.958f, 0.292168f}, // 3 - {BG_IC_NPC_KOR_KRON_GUARD_2, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.94f, -757.756f, 69.9587f, 6.02165f}, // 4 - {BG_IC_NPC_KOR_KRON_GUARD_3, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.09f, -760.927f, 69.9587f, 5.94311f}, // 5 - {BG_IC_NPC_KOR_KRON_GUARD_4, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.13f, -769.7f, 69.95f, 0.34f}, // 6 - - {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.969f, -822.958f, 60.8151f, 0.46337f}, // 7 - {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 224.211f, -826.952f, 60.8188f, 6.25961f}, // 8 - {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.119f, -838.386f, 60.8145f, 5.64857f}, // 9 - {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.889f, -835.102f, 60.8201f, 6.21642f}, // 10 - - {BG_IC_NPC_KEEP_CANNON_1, NPC_KEEP_CANNON, TEAM_ALLIANCE, 415.825f, -754.634f, 87.799f, 1.78024f}, // 11 - {BG_IC_NPC_KEEP_CANNON_2, NPC_KEEP_CANNON, TEAM_ALLIANCE, 410.142f, -755.332f, 87.7991f, 1.78024f}, // 12 - {BG_IC_NPC_KEEP_CANNON_3, NPC_KEEP_CANNON, TEAM_ALLIANCE, 424.33f, -879.352f, 88.0446f, 0.436332f}, // 13 - {BG_IC_NPC_KEEP_CANNON_4, NPC_KEEP_CANNON, TEAM_ALLIANCE, 425.602f, -786.646f, 87.7991f, 5.74213f}, // 14 - {BG_IC_NPC_KEEP_CANNON_5, NPC_KEEP_CANNON, TEAM_ALLIANCE, 426.743f, -884.939f, 87.9613f, 0.436332f}, // 15 - {BG_IC_NPC_KEEP_CANNON_6, NPC_KEEP_CANNON, TEAM_ALLIANCE, 404.736f, -755.495f, 87.7989f, 1.78024f}, // 16 - {BG_IC_NPC_KEEP_CANNON_7, NPC_KEEP_CANNON, TEAM_ALLIANCE, 428.375f, -780.797f, 87.7991f, 5.79449f}, // 17 - {BG_IC_NPC_KEEP_CANNON_8, NPC_KEEP_CANNON, TEAM_ALLIANCE, 429.175f, -890.436f, 88.0446f, 0.436332f}, // 18 - {BG_IC_NPC_KEEP_CANNON_9, NPC_KEEP_CANNON, TEAM_ALLIANCE, 430.872f, -775.278f, 87.7991f, 5.88176f}, // 19 - {BG_IC_NPC_KEEP_CANNON_10, NPC_KEEP_CANNON, TEAM_ALLIANCE, 408.056f, -911.283f, 88.0445f, 4.64258f}, // 20 - {BG_IC_NPC_KEEP_CANNON_11, NPC_KEEP_CANNON, TEAM_ALLIANCE, 413.609f, -911.566f, 88.0447f, 4.66003f}, // 21 - {BG_IC_NPC_KEEP_CANNON_12, NPC_KEEP_CANNON, TEAM_ALLIANCE, 402.554f, -910.557f, 88.0446f, 4.57276f}, // 22 - - {BG_IC_NPC_KEEP_CANNON_13, NPC_KEEP_CANNON, TEAM_HORDE, 1158.91f, -660.144f, 87.9332f, 0.750492f}, // 23 - {BG_IC_NPC_KEEP_CANNON_14, NPC_KEEP_CANNON, TEAM_HORDE, 1156.22f, -866.809f, 87.8754f, 5.27089f}, // 24 - {BG_IC_NPC_KEEP_CANNON_15, NPC_KEEP_CANNON, TEAM_HORDE, 1163.74f, -663.67f, 88.3571f, 0.558505f}, // 25 - {BG_IC_NPC_KEEP_CANNON_16, NPC_KEEP_CANNON, TEAM_HORDE, 1135.18f, -683.896f, 88.0409f, 3.9619f}, // 26 - {BG_IC_NPC_KEEP_CANNON_17, NPC_KEEP_CANNON, TEAM_HORDE, 1138.91f, -836.359f, 88.3728f, 2.18166f}, // 27 - {BG_IC_NPC_KEEP_CANNON_18, NPC_KEEP_CANNON, TEAM_HORDE, 1162.08f, -863.717f, 88.358f, 5.48033f}, // 28 - {BG_IC_NPC_KEEP_CANNON_19, NPC_KEEP_CANNON, TEAM_HORDE, 1167.13f, -669.212f, 87.9682f, 0.383972f}, // 29 - {BG_IC_NPC_KEEP_CANNON_20, NPC_KEEP_CANNON, TEAM_HORDE, 1137.72f, -688.517f, 88.4023f, 3.9619f}, // 30 - {BG_IC_NPC_KEEP_CANNON_21, NPC_KEEP_CANNON, TEAM_HORDE, 1135.29f, -840.878f, 88.0252f, 2.30383f}, // 31 - {BG_IC_NPC_KEEP_CANNON_22, NPC_KEEP_CANNON, TEAM_HORDE, 1144.33f, -833.309f, 87.9268f, 2.14675f}, // 32 - {BG_IC_NPC_KEEP_CANNON_23, NPC_KEEP_CANNON, TEAM_HORDE, 1142.59f, -691.946f, 87.9756f, 3.9619f}, // 33 - {BG_IC_NPC_KEEP_CANNON_24, NPC_KEEP_CANNON, TEAM_HORDE, 1166.13f, -858.391f, 87.9653f, 5.63741f} // 34 -}; - -const Position BG_IC_WorkshopVehicles[5] = -{ - {751.8281f, -852.732666f, 12.5250978f, 1.46607661f}, // Demolisher - {761.809f, -854.2274f, 12.5263243f, 1.46607661f}, // Demolisher - {783.4722f, -853.9601f, 12.54775f, 1.71042264f}, // Demolisher - {793.055542f, -852.71875f, 12.5671329f, 1.71042264f}, // Demolisher - {773.680542f, -884.092041f, 16.8090363f, 1.58824956f} // Siege Engine -}; - -const Position BG_IC_DocksVehiclesGlaives[2] = -{ - {779.3125f, -342.972229f, 12.2104874f, 4.712389f}, // Glaive Throwers - {790.029541f, -342.899323f, 12.2128582f, 4.71238f} // Glaive Throwers -}; - -const Position BG_IC_DocksVehiclesCatapults[4] = -{ - {757.283f, -341.7795f, 12.2113762f, 4.729842f}, // Catapults - {766.947937f, -342.053833f, 12.2009945f, 4.694f}, // Catapults - {800.3785f, -342.607635f, 12.1669979f, 4.6774f}, // Catapults - {810.7257f, -342.083344f, 12.1675768f, 4.6600f} // Catapults -}; - -const Position BG_IC_HangarTeleporters[3] = -{ - {827.9219f, -993.3249f, 134.1972f, 3.141593f}, // Gunship Portal - {739.0226f, -1106.661f, 134.7551f, 2.426008f}, // Gunship Portal - {672.0799f, -1156.776f, 133.7057f, 1.832595f} // Gunship Portal -}; - -const Position BG_IC_HangarTeleporterEffects[3] = -{ - {827.9236f, -993.2986f, 134.2002f, 3.141593f}, // Gunship Portal Effect - {739.0139f, -1106.661f, 134.7548f, 3.141593f}, // Gunship Portal Effect - {672.0868f, -1156.786f, 133.7057f, 3.141593f} // Gunship Portal Effect -}; - -const Position BG_IC_HangarTrigger[2] = -{ - {11.69965f, 0.034146f, 20.62076f, 3.211406f}, - {7.305609f, -0.095246f, 34.51022f, 3.159046f} -}; - -const Position BG_IC_HangarCaptains[4] = -{ - {825.6667f, -994.00520f, 134.3569f, 3.403392f}, - {53.65112f, -0.1139221f, 30.09546f, 3.106686f}, - {826.2205f, -994.40280f, 134.2812f, 3.351032f}, - {10.89952f, 4.88029700f, 20.49038f, 4.840575f} -}; - -struct ICGo -{ - uint32 type; - uint32 entry; - float x; - float y; - float z; - float o; -}; - -const ICGo BG_IC_Teleporters[MAX_FORTRESS_TELEPORTERS_SPAWNS] = -{ - {BG_IC_GO_TELEPORTER_1_1, GO_TELEPORTER_1, 1143.25f, -779.599f, 48.629f, 1.64061f}, // Teleporter - {BG_IC_GO_TELEPORTER_1_2, GO_TELEPORTER_1, 1236.53f, -669.415f, 48.2729f, 0.104719f}, // Teleporter - {BG_IC_GO_TELEPORTER_2_1, GO_TELEPORTER_2, 1233.27f, -844.526f, 48.8824f, -0.0174525f}, // Teleporter - {BG_IC_GO_TELEPORTER_3_1, GO_TELEPORTER_3, 311.92f, -913.972f, 48.8159f, 3.08918f}, // Teleporter - {BG_IC_GO_TELEPORTER_2_2, GO_TELEPORTER_2, 1235.53f, -683.872f, 49.304f, -3.08918f}, // Teleporter - {BG_IC_GO_TELEPORTER_4_1, GO_TELEPORTER_4, 397.089f, -859.382f, 48.8993f, 1.64061f}, // Teleporter - {BG_IC_GO_TELEPORTER_3_2, GO_TELEPORTER_3, 324.635f, -749.128f, 49.3602f, 0.0174525f}, // Teleporter - {BG_IC_GO_TELEPORTER_3_3, GO_TELEPORTER_3, 425.675f, -857.09f, 48.5104f, -1.6057f}, // Teleporter - {BG_IC_GO_TELEPORTER_4_2, GO_TELEPORTER_4, 323.54f, -888.361f, 48.9197f, 0.0349063f}, // Teleporter - {BG_IC_GO_TELEPORTER_4_3, GO_TELEPORTER_4, 326.285f, -777.366f, 49.0208f, 3.12412f}, // Teleporter - {BG_IC_GO_TELEPORTER_1_3, GO_TELEPORTER_1, 1235.09f, -857.898f, 48.9163f, 3.07177f}, // Teleporter - {BG_IC_GO_TELEPORTER_2_3, GO_TELEPORTER_2, 1158.76f, -746.182f, 48.6277f, -1.51844f} // Teleporter -}; - -const ICGo BG_IC_TeleporterEffects[MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS] = -{ - {BG_IC_GO_TELEPORTER_EFFECTS_A_1, GO_TELEPORTER_EFFECTS_A, 425.686f, -857.092f, 48.51f, -1.62316f}, // Teleporter Effects (Alliance) - {BG_IC_GO_TELEPORTER_EFFECTS_A_2, GO_TELEPORTER_EFFECTS_A, 324.634f, -749.148f, 49.359f, 0.0174525f}, // Teleporter Effects (Alliance) - {BG_IC_GO_TELEPORTER_EFFECTS_A_3, GO_TELEPORTER_EFFECTS_A, 311.911f, -913.986f, 48.8157f, 3.08918f}, // Teleporter Effects (Alliance) - {BG_IC_GO_TELEPORTER_EFFECTS_A_4, GO_TELEPORTER_EFFECTS_A, 326.266f, -777.347f, 49.0215f, 3.12412f}, // Teleporter Effects (Alliance) - {BG_IC_GO_TELEPORTER_EFFECTS_A_5, GO_TELEPORTER_EFFECTS_A, 323.55f, -888.347f, 48.9198f, 0.0174525f}, // Teleporter Effects (Alliance) - {BG_IC_GO_TELEPORTER_EFFECTS_A_6, GO_TELEPORTER_EFFECTS_A, 397.116f, -859.378f, 48.8989f, 1.64061f}, // Teleporter Effects (Alliance) - - {BG_IC_GO_TELEPORTER_EFFECTS_H_1, GO_TELEPORTER_EFFECTS_H, 1143.25f, -779.623f, 48.6291f, 1.62316f}, // Teleporter Effects (Horde) - {BG_IC_GO_TELEPORTER_EFFECTS_H_2, GO_TELEPORTER_EFFECTS_H, 1158.64f, -746.148f, 48.6277f, -1.50098f}, // Teleporter Effects (Horde) - {BG_IC_GO_TELEPORTER_EFFECTS_H_3, GO_TELEPORTER_EFFECTS_H, 1233.25f, -844.573f, 48.8836f, 0.0174525f}, // Teleporter Effects (Horde) - {BG_IC_GO_TELEPORTER_EFFECTS_H_4, GO_TELEPORTER_EFFECTS_H, 1235.07f, -857.957f, 48.9163f, 3.05433f}, // Teleporter Effects (Horde) - {BG_IC_GO_TELEPORTER_EFFECTS_H_5, GO_TELEPORTER_EFFECTS_H, 1236.46f, -669.344f, 48.2684f, 0.087266f}, // Teleporter Effects (Horde) - {BG_IC_GO_TELEPORTER_EFFECTS_H_6, GO_TELEPORTER_EFFECTS_H, 1235.6f, -683.806f, 49.3028f, -3.07177f} // Teleporter Effects (Horde) -}; - -const ICGo BG_IC_ObjSpawnlocs[MAX_NORMAL_GAMEOBJECTS_SPAWNS] = -{ - {BG_IC_GO_ALLIANCE_GATE_1, GO_ALLIANCE_GATE_1, 351.615f, -762.75f, 48.9162f, -1.5708f}, // Alliance Gate || Left - {BG_IC_GO_ALLIANCE_GATE_2, GO_ALLIANCE_GATE_2, 351.024f, -903.326f, 48.9247f, 1.5708f}, // Alliance Gate || Right - {BG_IC_GO_ALLIANCE_GATE_3, GO_ALLIANCE_GATE_3, 413.479f, -833.95f, 48.5238f, 3.14159f}, // Alliance Gate || Front - - {BG_IC_GO_HORDE_GATE_1, GO_HORDE_GATE_1, 1150.9f, -762.606f, 47.5077f, 3.14159f}, // Horde Gate || Front - {BG_IC_GO_HORDE_GATE_2, GO_HORDE_GATE_2, 1218.74f, -851.155f, 48.2533f, -1.5708f}, // Horde Gate || Left - {BG_IC_GO_HORDE_GATE_3, GO_HORDE_GATE_3, 1217.9f, -676.948f, 47.6341f, 1.5708f}, // Horde Gate || Right - - {BG_IC_GO_HORDE_BANNER, GO_HORDE_BANNER, 1284.76f, -705.668f, 48.9163f, -3.08918f}, // Horde Banner - {BG_IC_GO_ALLIANCE_BANNER, GO_ALLIANCE_BANNER, 299.153f, -784.589f, 48.9162f, -0.157079f}, // Alliance Banner - - {BG_IC_GO_WORKSHOP_BANNER, GO_WORKSHOP_BANNER, 776.229f, -804.283f, 6.45052f, 1.6057f}, // Workshop Banner - {BG_IC_GO_DOCKS_BANNER, GO_DOCKS_BANNER, 726.385f, -360.205f, 17.8153f, -1.62316f}, // Docks Banner - {BG_IC_GO_HANGAR_BANNER, GO_HANGAR_BANNER, 807.78f, -1000.07f, 132.381f, -1.93732f}, // Hangar Banner - {BG_IC_GO_QUARRY_BANNER, GO_QUARRY_BANNER, 251.016f, -1159.32f, 17.2376f, -2.25147f}, // Quarry Banner - {BG_IC_GO_REFINERY_BANNER, GO_REFINERY_BANNER, 1269.5f, -400.809f, 37.6253f, -1.76278f}, // Refinery Banner - - {BG_IC_GO_BENCH_1, GO_BENCH_1, 834.208f, -461.826f, 22.3067f, 1.5708f}, // Bench - {BG_IC_GO_BENCH_2, GO_BENCH_2, 826.153f, -461.985f, 22.5149f, 1.5708f}, // Bench - {BG_IC_GO_BENCH_3, GO_BENCH_3, 817.446f, -470.47f, 25.372f, -1.56207f}, // Bench - {BG_IC_GO_BENCH_4, GO_BENCH_4, 827.001f, -474.415f, 25.372f, 1.57952f}, // Bench - {BG_IC_GO_BENCH_5, GO_BENCH_5, 819.264f, -461.961f, 22.7614f, 1.57952f}, // Bench - - {BG_IC_GO_BONFIRE_1, GO_BONFIRE_1, 1162.91f, -734.578f, 48.8948f, -2.9845f}, // Bonfire - {BG_IC_GO_BONFIRE_2, GO_BONFIRE_2, 1282.34f, -799.762f, 87.1357f, -3.13286f}, // Bonfire - {BG_IC_GO_BONFIRE_3, GO_BONFIRE_3, 1358.06f, -732.178f, 87.1606f, -3.13284f}, // Bonfire - {BG_IC_GO_BONFIRE_4, GO_BONFIRE_4, 1281.76f, -732.844f, 87.1574f, -3.13246f}, // Bonfire - {BG_IC_GO_BONFIRE_5, GO_BONFIRE_5, 1358.81f, -797.899f, 87.2953f, 3.13312f}, // Bonfire - {BG_IC_GO_BONFIRE_6, GO_BONFIRE_6, 1162.21f, -790.543f, 48.9162f, 2.27765f}, // Bonfire - - {BG_IC_GO_BRAZIER_1, GO_BRAZIER_1, 1262.21f, -751.358f, 48.8133f, 2.26893f}, // Brazier - {BG_IC_GO_BRAZIER_2, GO_BRAZIER_2, 1262.58f, -781.861f, 48.8132f, 2.04203f}, // Brazier - {BG_IC_GO_BRAZIER_3, GO_BRAZIER_3, 223.818f, -839.352f, 60.7917f, 1.09083f}, // Brazier - {BG_IC_GO_BRAZIER_4, GO_BRAZIER_4, 224.277f, -822.77f, 60.7917f, 2.06822f}, // Brazier - - {BG_IC_GO_CHAIR_1, GO_CHAIR_1, 632.876f, -282.461f, 5.45364f, -0.851094f}, // Chair - {BG_IC_GO_CHAIR_2, GO_CHAIR_2, 635.796f, -276.295f, 5.48659f, -3.03273f}, // Chair - {BG_IC_GO_CHAIR_3_1, GO_CHAIR_3, 762.245f, -444.795f, 22.8526f, -1.98095f}, // Chair - {BG_IC_GO_CHAIR_4, GO_CHAIR_4, 632.156f, -304.503f, 5.4879f, 1.15603f}, // Chair - {BG_IC_GO_CHAIR_5, GO_CHAIR_5, 643.86f, -270.204f, 5.48898f, 2.36903f}, // Chair - {BG_IC_GO_CHAIR_6_1, GO_CHAIR_6, 902.234f, -455.508f, 18.3935f, -1.00356f}, // Chair - {BG_IC_GO_CHAIR_7, GO_CHAIR_7, 810.237f, -461.2f, 25.4627f, 1.5708f}, // Chair - {BG_IC_GO_CHAIR_3_2, GO_CHAIR_3, 1117.19f, -365.674f, 18.8456f, 0.968657f}, // Chair - {BG_IC_GO_CHAIR_6_2, GO_CHAIR_6, 1066.19f, -337.214f, 18.8225f, 0.453785f}, // Chair - {BG_IC_GO_CHAIR_8_1, GO_CHAIR_8, 798.324f, -444.951f, 22.5601f, -1.02102f}, // Chair - {BG_IC_GO_CHAIR_8_2, GO_CHAIR_8, 1081.81f, -358.637f, 18.5531f, 1.92859f}, // Chair - {BG_IC_GO_CHAIR_9, GO_CHAIR_9, 814.931f, -470.816f, 33.6373f, -3.12412f}, // Chair - - {BG_IC_GO_DOODAD_HU_PORTCULLIS01_1, GO_DOODAD_HU_PORTCULLIS01, 401.024f, -780.724f, 49.9482f, -2.52896f}, // Doodad_HU_Portcullis01 - {BG_IC_GO_DOODAD_HU_PORTCULLIS01_2, GO_DOODAD_HU_PORTCULLIS01, 399.802f, -885.208f, 50.1939f, 2.516f}, // Doodad_HU_Portcullis01 - - {BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, 413.479f, -833.95f, 48.5238f, 3.14159f}, // Doodad_ND_Human_Gate_ClosedFX_Door01 - {BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02, GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, 351.615f, -762.75f, 48.91625f, 4.71292f}, // Doodad_ND_Human_Gate_ClosedFX_Door01 - {BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03, GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, 351.024f, -903.33f, 48.92472f, 1.570796f}, // Doodad_ND_Human_Gate_ClosedFX_Door01 - - {BG_IC_GO_DOODAD_PORTCULLISACTIVE01, GO_DOODAD_PORTCULLISACTIVE01, -832.595f, 51.4109f, -0.0261791f, 0.0f}, // Doodad_PortcullisActive01 - - {BG_IC_GO_DOODAD_PORTCULLISACTIVE02, GO_DOODAD_PORTCULLISACTIVE02, 273.033f, -832.199f, 51.4109f, -0.0261791f}, // Doodad_PortcullisActive02 - - {BG_IC_GO_DOODAD_VR_PORTCULLIS01_1, GO_DOODAD_VR_PORTCULLIS01, 1156.89f, -843.998f, 48.6322f, 0.732934f}, // Doodad_VR_Portcullis01 - {BG_IC_GO_DOODAD_VR_PORTCULLIS01_2, GO_DOODAD_VR_PORTCULLIS01, 1157.05f, -682.36f, 48.6322f, -0.829132f}, // Doodad_VR_Portcullis01 - - {BG_IC_GO_FLAGPOLE_1_1, GO_FLAGPOLE_1, -400.809f, 37.6253f, -1.76278f, 0.0f}, // Flagpole - {BG_IC_GO_FLAGPOLE_2_1, GO_FLAGPOLE_2, 1284.76f, -705.668f, 48.9163f, -3.08918f}, // Flagpole - {BG_IC_GO_FLAGPOLE_2_2, GO_FLAGPOLE_2, 299.153f, -784.589f, 48.9162f, -0.157079f}, // Flagpole - {BG_IC_GO_FLAGPOLE_1_2, GO_FLAGPOLE_1, 726.385f, -360.205f, 17.8153f, -1.6057f}, // Flagpole - {BG_IC_GO_FLAGPOLE_1_3, GO_FLAGPOLE_1, 807.78f, -1000.07f, 132.381f, -1.91986f}, // Flagpole - {BG_IC_GO_FLAGPOLE_1_4, GO_FLAGPOLE_1, 776.229f, -804.283f, 6.45052f, 1.6057f}, // Flagpole - {BG_IC_GO_FLAGPOLE_1_5, GO_FLAGPOLE_1, 251.016f, -1159.32f, 17.2376f, -2.25147f}, // Flagpole - {BG_IC_GO_FLAGPOLE_1_6, GO_FLAGPOLE_1, 1269.502f, -400.809f, 37.62525f, -1.762782f}, // Flagpole - - {BG_IC_GO_HORDE_KEEP_PORTCULLIS, GO_HORDE_KEEP_PORTCULLIS, 1283.05f, -765.878f, 50.8297f, -3.13286f}, // Horde Keep Portcullis - - {BG_IC_GO_STOVE_1_1, GO_STOVE_1, 903.291f, -457.345f, 18.1356f, 2.23402f}, // Stove - {BG_IC_GO_STOVE_2_1, GO_STOVE_2, 761.462f, -446.684f, 22.5602f, 0.244344f}, // Stove - {BG_IC_GO_STOVE_1_2, GO_STOVE_1, 11068.13f, -336.373f, 18.5647f, -2.59181f}, // Stove - {BG_IC_GO_STOVE_2_2, GO_STOVE_2, 1118.32f, -363.969f, 18.5532f, -3.08918f}, // Stove - - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1, GO_HUGE_SEAFORIUM_BOMB_A, 297.3212f, -851.321167f, 48.91627f, -0.94247663f}, - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_2, GO_HUGE_SEAFORIUM_BOMB_A, 298.104156f, -861.026062f, 48.916275f, -2.75761318f}, - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_3, GO_HUGE_SEAFORIUM_BOMB_A, 300.371521f, -818.732666f, 48.91625f, 0.785396755f}, - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_4, GO_HUGE_SEAFORIUM_BOMB_A, 302.1354f, -810.7083f, 48.91625f, -1.04719758f}, - - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_1, GO_HUGE_SEAFORIUM_BOMB_H, 1268.30908f, -745.783f, 48.9187775f, 0.785396755f}, - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_2, GO_HUGE_SEAFORIUM_BOMB_H, 1268.50867f, -738.1215f, 48.9175f, -1.04719758f}, - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_3, GO_HUGE_SEAFORIUM_BOMB_H, 1273.066f, -786.572937f, 48.9419174f, -0.94247663f}, - {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4, GO_HUGE_SEAFORIUM_BOMB_H, 1273.849f, -796.2778f, 48.9364281f, -2.75761318f}, - - {BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, 1150.903f, -762.6059f, 47.50768f, 3.141593f}, - {BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02, GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, 1217.899f, -676.9479f, 47.63408f, 1.570796f}, - {BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03, GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, 1218.743f, -851.1545f, 48.25328f, 4.712392f} -}; - -const Position workshopBombs[2] = -{ - {750.601f, -864.597f, 13.4754f, 1.93731f}, - {785.509f, -864.715f, 13.3993f, 2.47837f} -}; - enum Spells { SPELL_OIL_REFINERY = 68719, @@ -746,35 +113,30 @@ enum ICWorldStates BG_IC_GATE_WEST_A_WS_OPEN = 4324, BG_IC_GATE_EAST_A_WS_OPEN = 4325, - BG_IC_DOCKS_OWNER = 4235, BG_IC_DOCKS_UNCONTROLLED = 4301, BG_IC_DOCKS_CONFLICT_A = 4305, BG_IC_DOCKS_CONFLICT_H = 4302, BG_IC_DOCKS_CONTROLLED_A = 4304, BG_IC_DOCKS_CONTROLLED_H = 4303, - BG_IC_HANGAR_OWNER = 4234, BG_IC_HANGAR_UNCONTROLLED = 4296, BG_IC_HANGAR_CONFLICT_A = 4300, BG_IC_HANGAR_CONFLICT_H = 4297, BG_IC_HANGAR_CONTROLLED_A = 4299, BG_IC_HANGAR_CONTROLLED_H = 4298, - BG_IC_QUARRY_OWNER = 4289, BG_IC_QUARRY_UNCONTROLLED = 4306, BG_IC_QUARRY_CONFLICT_A = 4310, BG_IC_QUARRY_CONFLICT_H = 4307, BG_IC_QUARRY_CONTROLLED_A = 4309, BG_IC_QUARRY_CONTROLLED_H = 4308, - BG_IC_REFINERY_OWNER = 4287, BG_IC_REFINERY_UNCONTROLLED = 4311, BG_IC_REFINERY_CONFLICT_A = 4315, BG_IC_REFINERY_CONFLICT_H = 4312, BG_IC_REFINERY_CONTROLLED_A = 4314, BG_IC_REFINERY_CONTROLLED_H = 4313, - BG_IC_WORKSHOP_OWNER = 4232, BG_IC_WORKSHOP_UNCONTROLLED = 4294, BG_IC_WORKSHOP_CONFLICT_A = 4228, BG_IC_WORKSHOP_CONFLICT_H = 4293, @@ -827,17 +189,15 @@ enum ICNodePointType MAX_NODE_TYPES }; -enum ICNodeState +enum class IsleOfConquestNodeState { - NODE_STATE_UNCONTROLLED = 0, - NODE_STATE_CONFLICT_A, - NODE_STATE_CONFLICT_H, - NODE_STATE_CONTROLLED_A, - NODE_STATE_CONTROLLED_H + Neutral, + ConflictA, + ConflictH, + ControlledA, + ControlledH }; -const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2] = {0, 0, 1480, 1481, 1482, 1485, 1486, 1483, 1484}; - Position const BG_IC_SpiritGuidePos[MAX_NODE_TYPES+2] = { {0.0f, 0.0f, 0.0f, 0.0f}, // no grave @@ -861,50 +221,96 @@ enum ICBroadcastTexts BG_IC_TEXT_EAST_GATE_ALLIANCE_DESTROYED = 35414 }; -struct ICNodeInfo -{ - uint32 NodeId; - uint32 TextAssaulted; - uint32 TextDefended; - uint32 TextAllianceTaken; - uint32 TextHordeTaken; -}; +// I.E: Hangar, Quarry, Graveyards .. etc +struct IoCStaticNodeInfo +{ + ICNodePointType NodeType; + + struct + { + uint32 Assaulted; + uint32 Defended; + uint32 AllianceTaken; + uint32 HordeTaken; + } TextIds; + + struct + { + int32 Uncontrolled; + int32 ConflictA; + int32 ConflictH; + int32 ControlledA; + int32 ControlledH; + } WorldStateIds; +}; + +class ICNodePoint +{ +public: + explicit ICNodePoint(IsleOfConquestNodeState state, IoCStaticNodeInfo const& nodeInfo) : _state(state), _nodeInfo(nodeInfo) + { + switch (state) + { + case IsleOfConquestNodeState::ControlledH: + _lastControlled = TEAM_HORDE; + break; + case IsleOfConquestNodeState::ControlledA: + _lastControlled = TEAM_ALLIANCE; + break; + case IsleOfConquestNodeState::ConflictA: + case IsleOfConquestNodeState::ConflictH: + case IsleOfConquestNodeState::Neutral: + _lastControlled = TEAM_NEUTRAL; + break; + } + } -ICNodeInfo const ICNodes[MAX_NODE_TYPES] = -{ - { NODE_TYPE_REFINERY, 35377, 35378, 35379, 35380 }, - { NODE_TYPE_QUARRY, 35373, 35374, 35375, 35376 }, - { NODE_TYPE_DOCKS, 35365, 35366, 35367, 35368 }, - { NODE_TYPE_HANGAR, 35369, 35370, 35371, 35372 }, - { NODE_TYPE_WORKSHOP, 35278, 35286, 35279, 35280 }, - { NODE_TYPE_GRAVEYARD_A, 35461, 35459, 35463, 35466 }, - { NODE_TYPE_GRAVEYARD_H, 35462, 35460, 35464, 35465 } -}; + IsleOfConquestNodeState GetState() const { return _state; } -// I.E: Hangar, Quarry, Graveyards .. etc -struct ICNodePoint -{ - uint32 gameobject_type; // with this we will get the GameObject of that point - uint32 gameobject_entry; // what gameobject entry is active here. - TeamId faction; // who has this node - ICNodePointType nodeType; // here we can specify if it is graveyards, hangar etc... - uint32 banners[4]; // the banners that have this point - bool needChange; // this is used for the 1 minute time period after the point is captured - uint32 timer; // the same use for needChange - uint32 last_entry; // the last gameobject_entry - int32 worldStates[6]; // the worldstates that represent the node in the map - ICNodeState nodeState; + bool IsContested() const + { + return _state == IsleOfConquestNodeState::ConflictA || _state == IsleOfConquestNodeState::ConflictH; + } + + TeamId GetLastControlledTeam() const { return _lastControlled; } + + IoCStaticNodeInfo const& GetNodeInfo() const { return _nodeInfo; } + + void UpdateState(IsleOfConquestNodeState state) + { + switch (state) + { + case IsleOfConquestNodeState::ControlledA: + _lastControlled = TEAM_ALLIANCE; + break; + case IsleOfConquestNodeState::ControlledH: + _lastControlled = TEAM_HORDE; + break; + case IsleOfConquestNodeState::Neutral: + _lastControlled = TEAM_NEUTRAL; + break; + case IsleOfConquestNodeState::ConflictA: + case IsleOfConquestNodeState::ConflictH: + break; + } + + _state = state; + } +private: + IsleOfConquestNodeState _state; + TeamId _lastControlled; + IoCStaticNodeInfo _nodeInfo; }; -const ICNodePoint nodePointInitial[MAX_NODE_TYPES] = +const IoCStaticNodeInfo nodePointInitial[MAX_NODE_TYPES] = { - {BG_IC_GO_REFINERY_BANNER, GO_REFINERY_BANNER, TEAM_NEUTRAL, NODE_TYPE_REFINERY, {GO_ALLIANCE_BANNER_REFINERY, GO_ALLIANCE_BANNER_REFINERY_CONT, GO_HORDE_BANNER_REFINERY, GO_HORDE_BANNER_REFINERY_CONT}, false, 0, 0, {BG_IC_REFINERY_UNCONTROLLED, BG_IC_REFINERY_CONFLICT_A, BG_IC_REFINERY_CONFLICT_H, BG_IC_REFINERY_CONTROLLED_A, BG_IC_REFINERY_CONTROLLED_H, BG_IC_REFINERY_OWNER}, NODE_STATE_UNCONTROLLED}, - {BG_IC_GO_QUARRY_BANNER, GO_QUARRY_BANNER, TEAM_NEUTRAL, NODE_TYPE_QUARRY, {GO_ALLIANCE_BANNER_QUARRY, GO_ALLIANCE_BANNER_QUARRY_CONT, GO_HORDE_BANNER_QUARRY, GO_HORDE_BANNER_QUARRY_CONT}, false, 0, 0, {BG_IC_QUARRY_UNCONTROLLED, BG_IC_QUARRY_CONFLICT_A, BG_IC_QUARRY_CONFLICT_H, BG_IC_QUARRY_CONTROLLED_A, BG_IC_QUARRY_CONTROLLED_H, BG_IC_QUARRY_OWNER}, NODE_STATE_UNCONTROLLED}, - {BG_IC_GO_DOCKS_BANNER, GO_DOCKS_BANNER, TEAM_NEUTRAL, NODE_TYPE_DOCKS, {GO_ALLIANCE_BANNER_DOCK, GO_ALLIANCE_BANNER_DOCK_CONT, GO_HORDE_BANNER_DOCK, GO_HORDE_BANNER_DOCK_CONT}, false, 0, 0, {BG_IC_DOCKS_UNCONTROLLED, BG_IC_DOCKS_CONFLICT_A, BG_IC_DOCKS_CONFLICT_H, BG_IC_DOCKS_CONTROLLED_A, BG_IC_DOCKS_CONTROLLED_H, BG_IC_DOCKS_OWNER}, NODE_STATE_UNCONTROLLED}, - {BG_IC_GO_HANGAR_BANNER, GO_HANGAR_BANNER, TEAM_NEUTRAL, NODE_TYPE_HANGAR, {GO_ALLIANCE_BANNER_HANGAR, GO_ALLIANCE_BANNER_HANGAR_CONT, GO_HORDE_BANNER_HANGAR, GO_HORDE_BANNER_HANGAR_CONT}, false, 0, 0, {BG_IC_HANGAR_UNCONTROLLED, BG_IC_HANGAR_CONFLICT_A, BG_IC_HANGAR_CONFLICT_H, BG_IC_HANGAR_CONTROLLED_A, BG_IC_HANGAR_CONTROLLED_H, BG_IC_HANGAR_OWNER}, NODE_STATE_UNCONTROLLED}, - {BG_IC_GO_WORKSHOP_BANNER, GO_WORKSHOP_BANNER, TEAM_NEUTRAL, NODE_TYPE_WORKSHOP, {GO_ALLIANCE_BANNER_WORKSHOP, GO_ALLIANCE_BANNER_WORKSHOP_CONT, GO_HORDE_BANNER_WORKSHOP, GO_HORDE_BANNER_WORKSHOP_CONT}, false, 0, 0, {BG_IC_WORKSHOP_UNCONTROLLED, BG_IC_WORKSHOP_CONFLICT_A, BG_IC_WORKSHOP_CONFLICT_H, BG_IC_WORKSHOP_CONTROLLED_A, BG_IC_WORKSHOP_CONTROLLED_H, BG_IC_WORKSHOP_OWNER}, NODE_STATE_UNCONTROLLED}, - {BG_IC_GO_ALLIANCE_BANNER, GO_ALLIANCE_BANNER, TEAM_ALLIANCE, NODE_TYPE_GRAVEYARD_A, {GO_ALLIANCE_BANNER_GRAVEYARD_A, GO_ALLIANCE_BANNER_GRAVEYARD_A_CONT, GO_HORDE_BANNER_GRAVEYARD_A, GO_HORDE_BANNER_GRAVEYARD_A_CONT}, false, 0, 0, {BG_IC_ALLIANCE_KEEP_UNCONTROLLED, BG_IC_ALLIANCE_KEEP_CONFLICT_A, BG_IC_ALLIANCE_KEEP_CONFLICT_H, BG_IC_ALLIANCE_KEEP_CONTROLLED_A, BG_IC_ALLIANCE_KEEP_CONTROLLED_H, 0}, NODE_STATE_CONTROLLED_A}, - {BG_IC_GO_HORDE_BANNER, GO_HORDE_BANNER, TEAM_HORDE, NODE_TYPE_GRAVEYARD_H, {GO_ALLIANCE_BANNER_GRAVEYARD_H, GO_ALLIANCE_BANNER_GRAVEYARD_H_CONT, GO_HORDE_BANNER_GRAVEYARD_H, GO_HORDE_BANNER_GRAVEYARD_H_CONT}, false, 0, 0, {BG_IC_HORDE_KEEP_UNCONTROLLED, BG_IC_HORDE_KEEP_CONFLICT_A, BG_IC_HORDE_KEEP_CONFLICT_H, BG_IC_HORDE_KEEP_CONTROLLED_A, BG_IC_HORDE_KEEP_CONTROLLED_H, 0}, NODE_STATE_CONTROLLED_H} + { NODE_TYPE_REFINERY, { 35377, 35378, 35379, 35380 }, { BG_IC_REFINERY_UNCONTROLLED, BG_IC_REFINERY_CONFLICT_A, BG_IC_REFINERY_CONFLICT_H, BG_IC_REFINERY_CONTROLLED_A, BG_IC_REFINERY_CONTROLLED_H } }, + { NODE_TYPE_QUARRY, { 35373, 35374, 35375, 35376 }, { BG_IC_QUARRY_UNCONTROLLED, BG_IC_QUARRY_CONFLICT_A, BG_IC_QUARRY_CONFLICT_H, BG_IC_QUARRY_CONTROLLED_A, BG_IC_QUARRY_CONTROLLED_H } }, + { NODE_TYPE_DOCKS, { 35365, 35366, 35367, 35368 }, { BG_IC_DOCKS_UNCONTROLLED, BG_IC_DOCKS_CONFLICT_A, BG_IC_DOCKS_CONFLICT_H, BG_IC_DOCKS_CONTROLLED_A, BG_IC_DOCKS_CONTROLLED_H } }, + { NODE_TYPE_HANGAR, { 35369, 35370, 35371, 35372 }, { BG_IC_HANGAR_UNCONTROLLED, BG_IC_HANGAR_CONFLICT_A, BG_IC_HANGAR_CONFLICT_H, BG_IC_HANGAR_CONTROLLED_A, BG_IC_HANGAR_CONTROLLED_H } }, + { NODE_TYPE_WORKSHOP, { 35278, 35286, 35279, 35280 }, { BG_IC_WORKSHOP_UNCONTROLLED, BG_IC_WORKSHOP_CONFLICT_A, BG_IC_WORKSHOP_CONFLICT_H, BG_IC_WORKSHOP_CONTROLLED_A, BG_IC_WORKSHOP_CONTROLLED_H } }, + { NODE_TYPE_GRAVEYARD_A, { 35461, 35459, 35463, 35466 }, { BG_IC_ALLIANCE_KEEP_UNCONTROLLED, BG_IC_ALLIANCE_KEEP_CONFLICT_A, BG_IC_ALLIANCE_KEEP_CONFLICT_H, BG_IC_ALLIANCE_KEEP_CONTROLLED_A, BG_IC_ALLIANCE_KEEP_CONTROLLED_H } }, + { NODE_TYPE_GRAVEYARD_H, { 35462, 35460, 35464, 35465 }, { BG_IC_HORDE_KEEP_UNCONTROLLED, BG_IC_HORDE_KEEP_CONFLICT_A, BG_IC_HORDE_KEEP_CONFLICT_H, BG_IC_HORDE_KEEP_CONTROLLED_A, BG_IC_HORDE_KEEP_CONTROLLED_H } } }; enum HonorRewards @@ -917,95 +323,54 @@ class BattlegroundIC : public Battleground { public: BattlegroundIC(BattlegroundTemplate const* battlegroundTemplate); - ~BattlegroundIC(); + ~BattlegroundIC() override; /* inherited from BattlegroundClass */ - void AddPlayer(Player* player, BattlegroundQueueTypeId queueId) override; - void StartingEventCloseDoors() override; void StartingEventOpenDoors() override; void PostUpdateImpl(uint32 diff) override; - void RemovePlayer(Player* player, ObjectGuid guid, uint32 team) override; - void HandleAreaTrigger(Player* player, uint32 trigger, bool entered) override; - bool SetupBattleground() override; - void SpawnLeader(uint32 teamid); void HandleKillUnit(Creature* unit, Unit* killer) override; void HandleKillPlayer(Player* player, Player* killer) override; - void EventPlayerClickedOnFlag(Player* source, GameObject* /*target_obj*/) override; - void DestroyGate(Player* player, GameObject* go) override; - - WorldSafeLocsEntry const* GetClosestGraveyard(Player* player) override; WorldSafeLocsEntry const* GetExploitTeleportLocation(Team team) override; - /* Scorekeeping */ - void HandlePlayerResurrect(Player* player) override; - - uint32 GetNodeState(uint8 nodeType) const { return (uint8)nodePoint[nodeType].nodeState; } + void OnCreatureCreate(Creature* creature) override; + void OnGameObjectCreate(GameObject* gameobject) override; + void OnMapSet(BattlegroundMap* map) override; - bool IsSpellAllowed(uint32 spellId, Player const* player) const override; + void DoAction(uint32 actionId, WorldObject* source, WorldObject* target) override; + void OnPlayerInteractWithBanner(Player* player, GameObject* banner); + void OnPlayerAssaultNode(Player* player, ICNodePoint& node); + void OnPlayerDefendNode(Player* player, ICNodePoint& node); + void ProcessEvent(WorldObject* target, uint32 eventId, WorldObject* invoker) override; private: - uint32 closeFortressDoorsTimer; - bool doorsClosed; - uint32 docksTimer; - uint32 resourceTimer; - uint32 siegeEngineWorkshopTimer; - uint16 factionReinforcements[2]; - BG_IC_GateState GateStatus[6]; - ICNodePoint nodePoint[7]; - - Transport* gunshipAlliance; - Transport* gunshipHorde; - - uint32 GetNextBanner(ICNodePoint* node, uint32 team, bool returnDefinitve); - - uint32 GetGateIDFromEntry(uint32 id) - { - uint32 i = 0; - switch (id) - { - case GO_HORDE_GATE_1: i = BG_IC_H_FRONT ;break; - case GO_HORDE_GATE_2: i = BG_IC_H_WEST ;break; - case GO_HORDE_GATE_3: i = BG_IC_H_EAST ;break; - case GO_ALLIANCE_GATE_3: i = BG_IC_A_FRONT ;break; - case GO_ALLIANCE_GATE_1: i = BG_IC_A_WEST ;break; - case GO_ALLIANCE_GATE_2: i = BG_IC_A_EAST ;break; - } - return i; - } - - int32 GetWorldStateFromGateEntry(uint32 id, bool open) - { - int32 uws = 0; - - switch (id) - { - case GO_HORDE_GATE_1: - uws = (open ? BG_IC_GATE_FRONT_H_WS_OPEN : BG_IC_GATE_FRONT_H_WS_CLOSED); - break; - case GO_HORDE_GATE_2: - uws = (open ? BG_IC_GATE_WEST_H_WS_OPEN : BG_IC_GATE_WEST_H_WS_CLOSED); - break; - case GO_HORDE_GATE_3: - uws = (open ? BG_IC_GATE_EAST_H_WS_OPEN : BG_IC_GATE_EAST_H_WS_CLOSED); - break; - case GO_ALLIANCE_GATE_3: - uws = (open ? BG_IC_GATE_FRONT_A_WS_OPEN : BG_IC_GATE_FRONT_A_WS_CLOSED); - break; - case GO_ALLIANCE_GATE_1: - uws = (open ? BG_IC_GATE_WEST_A_WS_OPEN : BG_IC_GATE_WEST_A_WS_CLOSED); - break; - case GO_ALLIANCE_GATE_2: - uws = (open ? BG_IC_GATE_EAST_A_WS_OPEN : BG_IC_GATE_EAST_A_WS_CLOSED); - break; - } - return uws; - } - - void UpdateNodeWorldState(ICNodePoint* node); - void HandleCapturedNodes(ICNodePoint* node, bool recapture); - void HandleContestedNodes(ICNodePoint* node); + std::array<uint16, PVP_TEAMS_COUNT> _factionReinforcements; + std::array<BG_IC_GateState, 6> _gateStatus; + std::array<std::unique_ptr<ICNodePoint>, 7> _nodePoints; + std::array<ObjectGuid, PVP_TEAMS_COUNT> _gunshipGUIDs; + GuidVector _teleporterGUIDs; + GuidVector _teleporterEffectGUIDs; + GuidVector _mainGateDoorGUIDs; + GuidVector _portcullisGUIDs; + GuidVector _wallGUIDs; + std::array<GuidVector, PVP_TEAMS_COUNT> _cannonGUIDs; + std::array<GuidVector, PVP_TEAMS_COUNT> _keepGateGUIDs; + std::array<ObjectGuid, PVP_TEAMS_COUNT> _keepBannerGUIDs; + ObjectGuid _gunshipTeleportTarget; + + TaskScheduler _scheduler; + TimeTracker _resourceTimer; + + static uint32 GetGateIDFromEntry(uint32 id); + static int32 GetWorldStateFromGateEntry(uint32 id, bool open); + + void UpdateNodeWorldState(ICNodePoint const& node); + void HandleCapturedNodes(ICNodePoint& node); + void HandleCaptureNodeAction(GameObject* banner); + void OnGateDestroyed(GameObject* gate, WorldObject* destroyer); + + static ICNodePointType BannerToNodeType(uint32 bannerId); }; #endif diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index ecbba144f33..9425c36e836 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1580,19 +1580,7 @@ void Spell::EffectOpenLock() if (goInfo->GetNoDamageImmune() && player->HasUnitFlag(UNIT_FLAG_IMMUNE)) return; - // Arathi Basin banner opening. /// @todo Verify correctness of this check - if (gameObjTarget->GetMapId() != 30 && gameObjTarget->GetMapId() != 607 && ((goInfo->type == GAMEOBJECT_TYPE_BUTTON && goInfo->button.noDamageImmune) || - (goInfo->type == GAMEOBJECT_TYPE_GOOBER && goInfo->goober.requireLOS))) - { - //CanUseBattlegroundObject() already called in CheckCast() - // in battleground check - if (Battleground* bg = player->GetBattleground()) - { - bg->EventPlayerClickedOnFlag(player, gameObjTarget); - return; - } - } - else if (goInfo->type == GAMEOBJECT_TYPE_FLAGSTAND) + if (goInfo->type == GAMEOBJECT_TYPE_FLAGSTAND) { //CanUseBattlegroundObject() already called in CheckCast() // in battleground check diff --git a/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp b/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp index 86942296681..1492335ce15 100644 --- a/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp +++ b/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp @@ -18,6 +18,7 @@ #include "ScriptMgr.h" #include "BattlegroundIC.h" #include "GameObject.h" +#include "GameObjectAI.h" #include "Map.h" #include "MotionMaster.h" #include "ObjectAccessor.h" @@ -27,6 +28,7 @@ #include "SpellInfo.h" #include "SpellScript.h" #include "Vehicle.h" +#include "WorldStateMgr.h" // TO-DO: This should be done with SmartAI, but yet it does not correctly support vehicles's AIs. // Even adding ReactState Passive we still have issues using SmartAI. @@ -81,13 +83,10 @@ struct npc_ioc_gunship_captain : public ScriptedAI { npc_ioc_gunship_captain(Creature* creature) : ScriptedAI(creature) { } - void DoAction(int32 action) override + void JustAppeared() override { - if (action == ACTION_GUNSHIP_READY) - { - DoCast(me, SPELL_SIMPLE_TELEPORT); - _events.ScheduleEvent(EVENT_TALK, 3s); - } + DoCast(me, SPELL_SIMPLE_TELEPORT); + _events.ScheduleEvent(EVENT_TALK, 3s); } void UpdateAI(uint32 diff) override @@ -103,9 +102,7 @@ struct npc_ioc_gunship_captain : public ScriptedAI DoCast(me, SPELL_TELEPORT_VISUAL_ONLY); break; case EVENT_DESPAWN: - if (BattlegroundMap* iocMap = me->GetMap()->ToBattlegroundMap()) - if (Battleground* bgIoC = iocMap->GetBG()) - bgIoC->DelCreature(BG_IC_NPC_GUNSHIP_CAPTAIN_1); + me->DespawnOrUnsummon(); break; default: break; @@ -117,6 +114,89 @@ private: EventMap _events; }; +struct npc_ioc_siege_engine : public ScriptedAI +{ + npc_ioc_siege_engine(Creature* creature) : ScriptedAI(creature) { } + + static constexpr uint32 SPELL_DAMAGED = 67323; + static constexpr uint32 VEHICLE_REC_ID = 514; + static constexpr int32 ACTION_REPAIRED = 1; + + void JustAppeared() override + { + me->RemoveVehicleKit(false); + DoCastSelf(SPELL_DAMAGED); + } + + void DoAction(int32 actionId) override + { + // there should be some moving involved first + if (actionId == ACTION_REPAIRED) + { + me->CreateVehicleKit(VEHICLE_REC_ID, me->GetEntry(), false); + me->GetVehicleKit()->InstallAllAccessories(false); + } + } +}; + +struct go_ioc_capturable_object : public GameObjectAI +{ + go_ioc_capturable_object(GameObject* go) : GameObjectAI(go) { } + + bool OnGossipHello(Player* player) override + { + if (me->GetGoState() != GO_STATE_READY || me->HasFlag(GO_FLAG_NOT_SELECTABLE)) + return true; + + if (ZoneScript* zonescript = me->GetZoneScript()) + { + zonescript->DoAction(ACTION_IOC_INTERACT_CAPTURABLE_OBJECT, player, me); + return false; + } + + return true; + } +}; + +struct go_ioc_contested_object : public go_ioc_capturable_object +{ + go_ioc_contested_object(GameObject* go) : go_ioc_capturable_object(go) { } + + void Reset() override + { + go_ioc_capturable_object::Reset(); + _scheduler.Schedule(1min, [&](TaskContext) + { + if (ZoneScript* zonescript = me->GetZoneScript()) + zonescript->DoAction(ACTION_IOC_CAPTURE_CAPTURABLE_OBJECT, me, me); + }); + } + + void UpdateAI(uint32 diff) override + { + _scheduler.Update(diff); + } + +private: + TaskScheduler _scheduler; +}; + +// 67323 - Damaged +class spell_ioc_damaged : public AuraScript +{ + void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) const + { + if (Creature const* creatureTarget = GetTarget()->ToCreature()) + if (UnitAI* ai = creatureTarget->GetAI()) + ai->DoAction(npc_ioc_siege_engine::ACTION_REPAIRED); + } + + void Register() override + { + OnEffectRemove += AuraEffectRemoveFn(spell_ioc_damaged::HandleRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + // 66630 - Alliance Gunship Portal // 66637 - Horde Gunship Portal class spell_ioc_gunship_portal : public SpellScript @@ -246,12 +326,67 @@ class spell_ioc_seaforium_blast_credit : public SpellScript } }; +class at_ioc_exploit : public AreaTriggerScript +{ +public: + at_ioc_exploit() : AreaTriggerScript("at_ioc_exploit") { } + + bool OnExit(Player* player, AreaTriggerEntry const* /*trigger*/) override + { + if (Battleground* battleground = player->GetBattleground()) + if (battleground->GetStatus() == STATUS_WAIT_JOIN) + battleground->TeleportPlayerToExploitLocation(player); + + return true; + } +}; + +class at_ioc_backdoor_job : public AreaTriggerScript +{ +public: + static constexpr uint32 AT_HORDE_KEEP = 5535; + static constexpr uint32 AT_ALLIANCE_KEEP = 5536; + + at_ioc_backdoor_job() : AreaTriggerScript("at_ioc_backdoor_job") { } + + bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) override + { + /// @hack: this spell should be cast by npc 22515 (World Trigger) and not by the player + if (player->GetBGTeam() == HORDE && trigger->ID == AT_ALLIANCE_KEEP) + { + bool keepClosed = sWorldStateMgr->GetValue(BG_IC_GATE_EAST_A_WS_CLOSED, player->GetMap()) == 1 + && sWorldStateMgr->GetValue(BG_IC_GATE_WEST_A_WS_CLOSED, player->GetMap()) == 1 + && sWorldStateMgr->GetValue(BG_IC_GATE_FRONT_A_WS_CLOSED, player->GetMap()) == 1; + + if (keepClosed) + player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true); + } + else if (player->GetBGTeam() == ALLIANCE && trigger->ID == AT_HORDE_KEEP) + { + bool keepClosed = sWorldStateMgr->GetValue(BG_IC_GATE_EAST_H_WS_CLOSED, player->GetMap()) == 1 + && sWorldStateMgr->GetValue(BG_IC_GATE_WEST_H_WS_CLOSED, player->GetMap()) == 1 + && sWorldStateMgr->GetValue(BG_IC_GATE_FRONT_H_WS_CLOSED, player->GetMap()) == 1; + + if (keepClosed) + player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true); + } + + return true; + } +}; + void AddSC_isle_of_conquest() { RegisterCreatureAI(npc_four_car_garage); RegisterCreatureAI(npc_ioc_gunship_captain); + RegisterCreatureAI(npc_ioc_siege_engine); + RegisterGameObjectAI(go_ioc_capturable_object); + RegisterGameObjectAI(go_ioc_contested_object); + RegisterSpellScript(spell_ioc_damaged); RegisterSpellScript(spell_ioc_gunship_portal); RegisterSpellScript(spell_ioc_parachute_ic); RegisterSpellScript(spell_ioc_launch); RegisterSpellScript(spell_ioc_seaforium_blast_credit); + new at_ioc_exploit(); + new at_ioc_backdoor_job(); } |