TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
BattlegroundIC.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
3  * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License as published by the
7  * Free Software Foundation; either version 2 of the License, or (at your
8  * option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef __BATTLEGROUNDIC_H
20 #define __BATTLEGROUNDIC_H
21 
22 #include "Battleground.h"
23 #include "BattlegroundScore.h"
24 #include "Language.h"
25 #include "Object.h"
26 
28 {
29  1732, // Alliance
30  1735 // Horde
31 };
32 
34 {
35  NPC_HIGH_COMMANDER_HALFORD_WYRMBANE = 34924, // Alliance Boss
36  NPC_OVERLORD_AGMAR = 34922, // Horde Boss
37  NPC_KOR_KRON_GUARD = 34918, // horde guard
38  NPC_SEVEN_TH_LEGION_INFANTRY = 34919, // alliance guard
39  NPC_KEEP_CANNON = 34944,
40  NPC_DEMOLISHER = 34775,
45  NPC_CATAPULT = 34793,
53 };
54 
56 {
58 
62 
64 
66 
67  GO_BENCH_1 = 186896,
68  GO_BENCH_2 = 186922,
69  GO_BENCH_3 = 186899,
70  GO_BENCH_4 = 186904,
71  GO_BENCH_5 = 186897,
72 
73  GO_BONFIRE_1 = 195376,
74  GO_BONFIRE_2 = 195208,
75  GO_BONFIRE_3 = 195210,
76  GO_BONFIRE_4 = 195207,
77  GO_BONFIRE_5 = 195209,
78  GO_BONFIRE_6 = 195377,
79 
80  GO_DOCKS_BANNER = 195157,
81 
83 
85 
87 
89 
91 
92  GO_CHAIR_1 = 195410,
93  GO_CHAIR_2 = 195414,
94  GO_CHAIR_3 = 160415,
95  GO_CHAIR_4 = 195418,
96  GO_CHAIR_5 = 195416,
97  GO_CHAIR_6 = 160410,
98  GO_CHAIR_7 = 160418,
99  GO_CHAIR_8 = 160416,
100  GO_CHAIR_9 = 160419,
101 
102  GO_FLAGPOLE_1 = 195131,
103  GO_FLAGPOLE_2 = 195439,
104 
107 
109 
110  GO_HORDE_BANNER = 195393,
111 
112  GO_HORDE_GATE_1 = 195494,
113  GO_HORDE_GATE_2 = 195496,
114  GO_HORDE_GATE_3 = 195495,
115 
117 
119 
121 
124 
128 
129  GO_STOVE_1 = 174863,
130  GO_STOVE_2 = 160411,
131 
132  GO_TELEPORTER_1 = 195314, // 195314 H-OUT 66549
133  GO_TELEPORTER_2 = 195313, // 195313 H-IN 66548
134 
135  GO_TELEPORTER_3 = 195315, // 195315 A-OUT 66549
136  GO_TELEPORTER_4 = 195316, // 195316 A-IN 66548
137 
140 
142 
143  GO_BRAZIER_1 = 195402,
144  GO_BRAZIER_2 = 195403,
145  GO_BRAZIER_3 = 195425,
146  GO_BRAZIER_4 = 195424,
147 
149 
151 
156 
161 
166 
171 
176 
181 
186 
189 };
190 
191 #define MAX_REINFORCEMENTS 300
192 
193 enum Times
194 {
195  WORKSHOP_UPDATE_TIME = 180000, // 3 minutes
196  DOCKS_UPDATE_TIME = 180000, // not sure if it is 3 minutes
197  IC_RESOURCE_TIME = 45000, // not sure, need more research
201 };
202 
204 {
206 };
207 
208 struct ICNpc
209 {
213  float x;
214  float y;
215  float z;
216  float o;
217 };
218 
220 {
222 
226 
232 
239 
244 
257 
259 
262 
266 
268 
270 
273 
282 
284 
286 
290 
292 
294 
299 
301 
303 
308 
313 
317 
320 
324 
328 
341 
348 
355 };
356 
358 {
393 
396 
401 
406 
411 
416 
421 
425 
433 };
434 
436 {
441 };
442 
444 {
457 
458  // docks
461 
462  // workshop
465 
466  // Hangar
469 };
470 
472 {
473  {BG_IC_NPC_OVERLORD_AGMAR, NPC_OVERLORD_AGMAR, TEAM_HORDE, 1295.44f, -765.733f, 70.0541f, 0.0f}, //Overlord Agmar 1
474  {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
475  {BG_IC_NPC_KOR_KRON_GUARD_1, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1296.01f, -773.256f, 69.958f, 0.292168f}, // 3
476  {BG_IC_NPC_KOR_KRON_GUARD_2, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.94f, -757.756f, 69.9587f, 6.02165f}, // 4
477  {BG_IC_NPC_KOR_KRON_GUARD_3, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.09f, -760.927f, 69.9587f, 5.94311f}, // 5
478  {BG_IC_NPC_KOR_KRON_GUARD_4, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.13f, -769.7f, 69.95f, 0.34f}, // 6
479 
480  {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.969f, -822.958f, 60.8151f, 0.46337f}, // 7
481  {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 224.211f, -826.952f, 60.8188f, 6.25961f}, // 8
482  {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.119f, -838.386f, 60.8145f, 5.64857f}, // 9
483  {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.889f, -835.102f, 60.8201f, 6.21642f}, // 10
484 
485  {BG_IC_NPC_KEEP_CANNON_1, NPC_KEEP_CANNON, TEAM_ALLIANCE, 415.825f, -754.634f, 87.799f, 1.78024f}, // 11
486  {BG_IC_NPC_KEEP_CANNON_2, NPC_KEEP_CANNON, TEAM_ALLIANCE, 410.142f, -755.332f, 87.7991f, 1.78024f}, // 12
487  {BG_IC_NPC_KEEP_CANNON_3, NPC_KEEP_CANNON, TEAM_ALLIANCE, 424.33f, -879.352f, 88.0446f, 0.436332f}, // 13
488  {BG_IC_NPC_KEEP_CANNON_4, NPC_KEEP_CANNON, TEAM_ALLIANCE, 425.602f, -786.646f, 87.7991f, 5.74213f}, // 14
489  {BG_IC_NPC_KEEP_CANNON_5, NPC_KEEP_CANNON, TEAM_ALLIANCE, 426.743f, -884.939f, 87.9613f, 0.436332f}, // 15
490  {BG_IC_NPC_KEEP_CANNON_6, NPC_KEEP_CANNON, TEAM_ALLIANCE, 404.736f, -755.495f, 87.7989f, 1.78024f}, // 16
491  {BG_IC_NPC_KEEP_CANNON_7, NPC_KEEP_CANNON, TEAM_ALLIANCE, 428.375f, -780.797f, 87.7991f, 5.79449f}, // 17
492  {BG_IC_NPC_KEEP_CANNON_8, NPC_KEEP_CANNON, TEAM_ALLIANCE, 429.175f, -890.436f, 88.0446f, 0.436332f}, // 18
493  {BG_IC_NPC_KEEP_CANNON_9, NPC_KEEP_CANNON, TEAM_ALLIANCE, 430.872f, -775.278f, 87.7991f, 5.88176f}, // 19
494  {BG_IC_NPC_KEEP_CANNON_10, NPC_KEEP_CANNON, TEAM_ALLIANCE, 408.056f, -911.283f, 88.0445f, 4.64258f}, // 20
495  {BG_IC_NPC_KEEP_CANNON_11, NPC_KEEP_CANNON, TEAM_ALLIANCE, 413.609f, -911.566f, 88.0447f, 4.66003f}, // 21
496  {BG_IC_NPC_KEEP_CANNON_12, NPC_KEEP_CANNON, TEAM_ALLIANCE, 402.554f, -910.557f, 88.0446f, 4.57276f}, // 22
497 
498  {BG_IC_NPC_KEEP_CANNON_13, NPC_KEEP_CANNON, TEAM_HORDE, 1158.91f, -660.144f, 87.9332f, 0.750492f}, // 23
499  {BG_IC_NPC_KEEP_CANNON_14, NPC_KEEP_CANNON, TEAM_HORDE, 1156.22f, -866.809f, 87.8754f, 5.27089f}, // 24
500  {BG_IC_NPC_KEEP_CANNON_15, NPC_KEEP_CANNON, TEAM_HORDE, 1163.74f, -663.67f, 88.3571f, 0.558505f}, // 25
501  {BG_IC_NPC_KEEP_CANNON_16, NPC_KEEP_CANNON, TEAM_HORDE, 1135.18f, -683.896f, 88.0409f, 3.9619f}, // 26
502  {BG_IC_NPC_KEEP_CANNON_17, NPC_KEEP_CANNON, TEAM_HORDE, 1138.91f, -836.359f, 88.3728f, 2.18166f}, // 27
503  {BG_IC_NPC_KEEP_CANNON_18, NPC_KEEP_CANNON, TEAM_HORDE, 1162.08f, -863.717f, 88.358f, 5.48033f}, // 28
504  {BG_IC_NPC_KEEP_CANNON_19, NPC_KEEP_CANNON, TEAM_HORDE, 1167.13f, -669.212f, 87.9682f, 0.383972f}, // 29
505  {BG_IC_NPC_KEEP_CANNON_20, NPC_KEEP_CANNON, TEAM_HORDE, 1137.72f, -688.517f, 88.4023f, 3.9619f}, // 30
506  {BG_IC_NPC_KEEP_CANNON_21, NPC_KEEP_CANNON, TEAM_HORDE, 1135.29f, -840.878f, 88.0252f, 2.30383f}, // 31
507  {BG_IC_NPC_KEEP_CANNON_22, NPC_KEEP_CANNON, TEAM_HORDE, 1144.33f, -833.309f, 87.9268f, 2.14675f}, // 32
508  {BG_IC_NPC_KEEP_CANNON_23, NPC_KEEP_CANNON, TEAM_HORDE, 1142.59f, -691.946f, 87.9756f, 3.9619f}, // 33
509  {BG_IC_NPC_KEEP_CANNON_24, NPC_KEEP_CANNON, TEAM_HORDE, 1166.13f, -858.391f, 87.9653f, 5.63741f} // 34
510 };
511 
513 {
514  {751.8281f, -852.732666f, 12.5250978f, 1.46607661f}, // Demolisher
515  {761.809f, -854.2274f, 12.5263243f, 1.46607661f}, // Demolisher
516  {783.4722f, -853.9601f, 12.54775f, 1.71042264f}, // Demolisher
517  {793.055542f, -852.71875f, 12.5671329f, 1.71042264f}, // Demolisher
518  {773.680542f, -884.092041f, 16.8090363f, 1.58824956f} // Siege Engine
519 };
520 
522 {
523  {779.3125f, -342.972229f, 12.2104874f, 4.712389f}, // Glaive Throwers
524  {790.029541f, -342.899323f, 12.2128582f, 4.71238f} // Glaive Throwers
525 };
526 
528 {
529  {757.283f, -341.7795f, 12.2113762f, 4.729842f}, // Catapults
530  {766.947937f, -342.053833f, 12.2009945f, 4.694f}, // Catapults
531  {800.3785f, -342.607635f, 12.1669979f, 4.6774f}, // Catapults
532  {810.7257f, -342.083344f, 12.1675768f, 4.6600f} // Catapults
533 };
534 
536 {
537  {827.9219f, -993.3249f, 134.1972f, 3.141593f}, // Gunship Portal
538  {739.0226f, -1106.661f, 134.7551f, 2.426008f}, // Gunship Portal
539  {672.0799f, -1156.776f, 133.7057f, 1.832595f} // Gunship Portal
540 };
541 
543 {
544  {827.9236f, -993.2986f, 134.2002f, 3.141593f}, // Gunship Portal Effect
545  {739.0139f, -1106.661f, 134.7548f, 3.141593f}, // Gunship Portal Effect
546  {672.0868f, -1156.786f, 133.7057f, 3.141593f} // Gunship Portal Effect
547 };
548 
550 {
551  {11.69965f, 0.034146f, 20.62076f, 3.211406f},
552  {7.305609f, -0.095246f, 34.51022f, 3.159046f}
553 };
554 
556 {
557  {825.6667f, -994.00520f, 134.3569f, 3.403392f},
558  {53.65112f, -0.1139221f, 30.09546f, 3.106686f},
559  {826.2205f, -994.40280f, 134.2812f, 3.351032f},
560  {10.89952f, 4.88029700f, 20.49038f, 4.840575f}
561 };
562 
563 struct ICGo
564 {
567  float x;
568  float y;
569  float z;
570  float o;
571 };
572 
574 {
575  {BG_IC_GO_TELEPORTER_1_1, GO_TELEPORTER_1, 1143.25f, -779.599f, 48.629f, 1.64061f}, // Teleporter
576  {BG_IC_GO_TELEPORTER_1_2, GO_TELEPORTER_1, 1236.53f, -669.415f, 48.2729f, 0.104719f}, // Teleporter
577  {BG_IC_GO_TELEPORTER_2_1, GO_TELEPORTER_2, 1233.27f, -844.526f, 48.8824f, -0.0174525f}, // Teleporter
578  {BG_IC_GO_TELEPORTER_3_1, GO_TELEPORTER_3, 311.92f, -913.972f, 48.8159f, 3.08918f}, // Teleporter
579  {BG_IC_GO_TELEPORTER_2_2, GO_TELEPORTER_2, 1235.53f, -683.872f, 49.304f, -3.08918f}, // Teleporter
580  {BG_IC_GO_TELEPORTER_4_1, GO_TELEPORTER_4, 397.089f, -859.382f, 48.8993f, 1.64061f}, // Teleporter
581  {BG_IC_GO_TELEPORTER_3_2, GO_TELEPORTER_3, 324.635f, -749.128f, 49.3602f, 0.0174525f}, // Teleporter
582  {BG_IC_GO_TELEPORTER_3_3, GO_TELEPORTER_3, 425.675f, -857.09f, 48.5104f, -1.6057f}, // Teleporter
583  {BG_IC_GO_TELEPORTER_4_2, GO_TELEPORTER_4, 323.54f, -888.361f, 48.9197f, 0.0349063f}, // Teleporter
584  {BG_IC_GO_TELEPORTER_4_3, GO_TELEPORTER_4, 326.285f, -777.366f, 49.0208f, 3.12412f}, // Teleporter
585  {BG_IC_GO_TELEPORTER_1_3, GO_TELEPORTER_1, 1235.09f, -857.898f, 48.9163f, 3.07177f}, // Teleporter
586  {BG_IC_GO_TELEPORTER_2_3, GO_TELEPORTER_2, 1158.76f, -746.182f, 48.6277f, -1.51844f} // Teleporter
587 };
588 
590 {
591  {BG_IC_GO_TELEPORTER_EFFECTS_A_1, GO_TELEPORTER_EFFECTS_A, 425.686f, -857.092f, 48.51f, -1.62316f}, // Teleporter Effects (Alliance)
592  {BG_IC_GO_TELEPORTER_EFFECTS_A_2, GO_TELEPORTER_EFFECTS_A, 324.634f, -749.148f, 49.359f, 0.0174525f}, // Teleporter Effects (Alliance)
593  {BG_IC_GO_TELEPORTER_EFFECTS_A_3, GO_TELEPORTER_EFFECTS_A, 311.911f, -913.986f, 48.8157f, 3.08918f}, // Teleporter Effects (Alliance)
594  {BG_IC_GO_TELEPORTER_EFFECTS_A_4, GO_TELEPORTER_EFFECTS_A, 326.266f, -777.347f, 49.0215f, 3.12412f}, // Teleporter Effects (Alliance)
595  {BG_IC_GO_TELEPORTER_EFFECTS_A_5, GO_TELEPORTER_EFFECTS_A, 323.55f, -888.347f, 48.9198f, 0.0174525f}, // Teleporter Effects (Alliance)
596  {BG_IC_GO_TELEPORTER_EFFECTS_A_6, GO_TELEPORTER_EFFECTS_A, 397.116f, -859.378f, 48.8989f, 1.64061f}, // Teleporter Effects (Alliance)
597 
598  {BG_IC_GO_TELEPORTER_EFFECTS_H_1, GO_TELEPORTER_EFFECTS_H, 1143.25f, -779.623f, 48.6291f, 1.62316f}, // Teleporter Effects (Horde)
599  {BG_IC_GO_TELEPORTER_EFFECTS_H_2, GO_TELEPORTER_EFFECTS_H, 1158.64f, -746.148f, 48.6277f, -1.50098f}, // Teleporter Effects (Horde)
600  {BG_IC_GO_TELEPORTER_EFFECTS_H_3, GO_TELEPORTER_EFFECTS_H, 1233.25f, -844.573f, 48.8836f, 0.0174525f}, // Teleporter Effects (Horde)
601  {BG_IC_GO_TELEPORTER_EFFECTS_H_4, GO_TELEPORTER_EFFECTS_H, 1235.07f, -857.957f, 48.9163f, 3.05433f}, // Teleporter Effects (Horde)
602  {BG_IC_GO_TELEPORTER_EFFECTS_H_5, GO_TELEPORTER_EFFECTS_H, 1236.46f, -669.344f, 48.2684f, 0.087266f}, // Teleporter Effects (Horde)
603  {BG_IC_GO_TELEPORTER_EFFECTS_H_6, GO_TELEPORTER_EFFECTS_H, 1235.6f, -683.806f, 49.3028f, -3.07177f} // Teleporter Effects (Horde)
604 };
605 
607 {
608  {BG_IC_GO_ALLIANCE_GATE_1, GO_ALLIANCE_GATE_1, 351.615f, -762.75f, 48.9162f, -1.5708f}, // Alliance Gate || Left
609  {BG_IC_GO_ALLIANCE_GATE_2, GO_ALLIANCE_GATE_2, 351.024f, -903.326f, 48.9247f, 1.5708f}, // Alliance Gate || Right
610  {BG_IC_GO_ALLIANCE_GATE_3, GO_ALLIANCE_GATE_3, 413.479f, -833.95f, 48.5238f, 3.14159f}, // Alliance Gate || Front
611 
612  {BG_IC_GO_HORDE_GATE_1, GO_HORDE_GATE_1, 1150.9f, -762.606f, 47.5077f, 3.14159f}, // Horde Gate || Front
613  {BG_IC_GO_HORDE_GATE_2, GO_HORDE_GATE_2, 1218.74f, -851.155f, 48.2533f, -1.5708f}, // Horde Gate || Left
614  {BG_IC_GO_HORDE_GATE_3, GO_HORDE_GATE_3, 1217.9f, -676.948f, 47.6341f, 1.5708f}, // Horde Gate || Right
615 
616  {BG_IC_GO_HORDE_BANNER, GO_HORDE_BANNER, 1284.76f, -705.668f, 48.9163f, -3.08918f}, // Horde Banner
617  {BG_IC_GO_ALLIANCE_BANNER, GO_ALLIANCE_BANNER, 299.153f, -784.589f, 48.9162f, -0.157079f}, // Alliance Banner
618 
619  {BG_IC_GO_WORKSHOP_BANNER, GO_WORKSHOP_BANNER, 776.229f, -804.283f, 6.45052f, 1.6057f}, // Workshop Banner
620  {BG_IC_GO_DOCKS_BANNER, GO_DOCKS_BANNER, 726.385f, -360.205f, 17.8153f, -1.62316f}, // Docks Banner
621  {BG_IC_GO_HANGAR_BANNER, GO_HANGAR_BANNER, 807.78f, -1000.07f, 132.381f, -1.93732f}, // Hangar Banner
622  {BG_IC_GO_QUARRY_BANNER, GO_QUARRY_BANNER, 251.016f, -1159.32f, 17.2376f, -2.25147f}, // Quarry Banner
623  {BG_IC_GO_REFINERY_BANNER, GO_REFINERY_BANNER, 1269.5f, -400.809f, 37.6253f, -1.76278f}, // Refinery Banner
624 
625  {BG_IC_GO_BENCH_1, GO_BENCH_1, 834.208f, -461.826f, 22.3067f, 1.5708f}, // Bench
626  {BG_IC_GO_BENCH_2, GO_BENCH_2, 826.153f, -461.985f, 22.5149f, 1.5708f}, // Bench
627  {BG_IC_GO_BENCH_3, GO_BENCH_3, 817.446f, -470.47f, 25.372f, -1.56207f}, // Bench
628  {BG_IC_GO_BENCH_4, GO_BENCH_4, 827.001f, -474.415f, 25.372f, 1.57952f}, // Bench
629  {BG_IC_GO_BENCH_5, GO_BENCH_5, 819.264f, -461.961f, 22.7614f, 1.57952f}, // Bench
630 
631  {BG_IC_GO_BONFIRE_1, GO_BONFIRE_1, 1162.91f, -734.578f, 48.8948f, -2.9845f}, // Bonfire
632  {BG_IC_GO_BONFIRE_2, GO_BONFIRE_2, 1282.34f, -799.762f, 87.1357f, -3.13286f}, // Bonfire
633  {BG_IC_GO_BONFIRE_3, GO_BONFIRE_3, 1358.06f, -732.178f, 87.1606f, -3.13284f}, // Bonfire
634  {BG_IC_GO_BONFIRE_4, GO_BONFIRE_4, 1281.76f, -732.844f, 87.1574f, -3.13246f}, // Bonfire
635  {BG_IC_GO_BONFIRE_5, GO_BONFIRE_5, 1358.81f, -797.899f, 87.2953f, 3.13312f}, // Bonfire
636  {BG_IC_GO_BONFIRE_6, GO_BONFIRE_6, 1162.21f, -790.543f, 48.9162f, 2.27765f}, // Bonfire
637 
638  {BG_IC_GO_BRAZIER_1, GO_BRAZIER_1, 1262.21f, -751.358f, 48.8133f, 2.26893f}, // Brazier
639  {BG_IC_GO_BRAZIER_2, GO_BRAZIER_2, 1262.58f, -781.861f, 48.8132f, 2.04203f}, // Brazier
640  {BG_IC_GO_BRAZIER_3, GO_BRAZIER_3, 223.818f, -839.352f, 60.7917f, 1.09083f}, // Brazier
641  {BG_IC_GO_BRAZIER_4, GO_BRAZIER_4, 224.277f, -822.77f, 60.7917f, 2.06822f}, // Brazier
642 
643  {BG_IC_GO_CHAIR_1, GO_CHAIR_1, 632.876f, -282.461f, 5.45364f, -0.851094f}, // Chair
644  {BG_IC_GO_CHAIR_2, GO_CHAIR_2, 635.796f, -276.295f, 5.48659f, -3.03273f}, // Chair
645  {BG_IC_GO_CHAIR_3_1, GO_CHAIR_3, 762.245f, -444.795f, 22.8526f, -1.98095f}, // Chair
646  {BG_IC_GO_CHAIR_4, GO_CHAIR_4, 632.156f, -304.503f, 5.4879f, 1.15603f}, // Chair
647  {BG_IC_GO_CHAIR_5, GO_CHAIR_5, 643.86f, -270.204f, 5.48898f, 2.36903f}, // Chair
648  {BG_IC_GO_CHAIR_6_1, GO_CHAIR_6, 902.234f, -455.508f, 18.3935f, -1.00356f}, // Chair
649  {BG_IC_GO_CHAIR_7, GO_CHAIR_7, 810.237f, -461.2f, 25.4627f, 1.5708f}, // Chair
650  {BG_IC_GO_CHAIR_3_2, GO_CHAIR_3, 1117.19f, -365.674f, 18.8456f, 0.968657f}, // Chair
651  {BG_IC_GO_CHAIR_6_2, GO_CHAIR_6, 1066.19f, -337.214f, 18.8225f, 0.453785f}, // Chair
652  {BG_IC_GO_CHAIR_8_1, GO_CHAIR_8, 798.324f, -444.951f, 22.5601f, -1.02102f}, // Chair
653  {BG_IC_GO_CHAIR_8_2, GO_CHAIR_8, 1081.81f, -358.637f, 18.5531f, 1.92859f}, // Chair
654  {BG_IC_GO_CHAIR_9, GO_CHAIR_9, 814.931f, -470.816f, 33.6373f, -3.12412f}, // Chair
655 
656  {BG_IC_GO_DOODAD_HU_PORTCULLIS01_1, GO_DOODAD_HU_PORTCULLIS01, 401.024f, -780.724f, 49.9482f, -2.52896f}, // Doodad_HU_Portcullis01
657  {BG_IC_GO_DOODAD_HU_PORTCULLIS01_2, GO_DOODAD_HU_PORTCULLIS01, 399.802f, -885.208f, 50.1939f, 2.516f}, // Doodad_HU_Portcullis01
658 
659  {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
660  {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
661  {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
662 
663  {BG_IC_GO_DOODAD_PORTCULLISACTIVE01, GO_DOODAD_PORTCULLISACTIVE01, -832.595f, 51.4109f, -0.0261791f, 0.0f}, // Doodad_PortcullisActive01
664 
665  {BG_IC_GO_DOODAD_PORTCULLISACTIVE02, GO_DOODAD_PORTCULLISACTIVE02, 273.033f, -832.199f, 51.4109f, -0.0261791f}, // Doodad_PortcullisActive02
666 
667  {BG_IC_GO_DOODAD_VR_PORTCULLIS01_1, GO_DOODAD_VR_PORTCULLIS01, 1156.89f, -843.998f, 48.6322f, 0.732934f}, // Doodad_VR_Portcullis01
668  {BG_IC_GO_DOODAD_VR_PORTCULLIS01_2, GO_DOODAD_VR_PORTCULLIS01, 1157.05f, -682.36f, 48.6322f, -0.829132f}, // Doodad_VR_Portcullis01
669 
670  {BG_IC_GO_FLAGPOLE_1_1, GO_FLAGPOLE_1, -400.809f, 37.6253f, -1.76278f, 0.0f}, // Flagpole
671  {BG_IC_GO_FLAGPOLE_2_1, GO_FLAGPOLE_2, 1284.76f, -705.668f, 48.9163f, -3.08918f}, // Flagpole
672  {BG_IC_GO_FLAGPOLE_2_2, GO_FLAGPOLE_2, 299.153f, -784.589f, 48.9162f, -0.157079f}, // Flagpole
673  {BG_IC_GO_FLAGPOLE_1_2, GO_FLAGPOLE_1, 726.385f, -360.205f, 17.8153f, -1.6057f}, // Flagpole
674  {BG_IC_GO_FLAGPOLE_1_3, GO_FLAGPOLE_1, 807.78f, -1000.07f, 132.381f, -1.91986f}, // Flagpole
675  {BG_IC_GO_FLAGPOLE_1_4, GO_FLAGPOLE_1, 776.229f, -804.283f, 6.45052f, 1.6057f}, // Flagpole
676  {BG_IC_GO_FLAGPOLE_1_5, GO_FLAGPOLE_1, 251.016f, -1159.32f, 17.2376f, -2.25147f}, // Flagpole
677  {BG_IC_GO_FLAGPOLE_1_6, GO_FLAGPOLE_1, 1269.502f, -400.809f, 37.62525f, -1.762782f}, // Flagpole
678 
679  {BG_IC_GO_HORDE_KEEP_PORTCULLIS, GO_HORDE_KEEP_PORTCULLIS, 1283.05f, -765.878f, 50.8297f, -3.13286f}, // Horde Keep Portcullis
680 
681  {BG_IC_GO_STOVE_1_1, GO_STOVE_1, 903.291f, -457.345f, 18.1356f, 2.23402f}, // Stove
682  {BG_IC_GO_STOVE_2_1, GO_STOVE_2, 761.462f, -446.684f, 22.5602f, 0.244344f}, // Stove
683  {BG_IC_GO_STOVE_1_2, GO_STOVE_1, 11068.13f, -336.373f, 18.5647f, -2.59181f}, // Stove
684  {BG_IC_GO_STOVE_2_2, GO_STOVE_2, 1118.32f, -363.969f, 18.5532f, -3.08918f}, // Stove
685 
686  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1, GO_HUGE_SEAFORIUM_BOMB_A, 297.3212f, -851.321167f, 48.91627f, -0.94247663f},
687  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_2, GO_HUGE_SEAFORIUM_BOMB_A, 298.104156f, -861.026062f, 48.916275f, -2.75761318f},
688  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_3, GO_HUGE_SEAFORIUM_BOMB_A, 300.371521f, -818.732666f, 48.91625f, 0.785396755f},
689  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_4, GO_HUGE_SEAFORIUM_BOMB_A, 302.1354f, -810.7083f, 48.91625f, -1.04719758f},
690 
691  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_1, GO_HUGE_SEAFORIUM_BOMB_H, 1268.30908f, -745.783f, 48.9187775f, 0.785396755f},
692  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_2, GO_HUGE_SEAFORIUM_BOMB_H, 1268.50867f, -738.1215f, 48.9175f, -1.04719758f},
693  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_3, GO_HUGE_SEAFORIUM_BOMB_H, 1273.066f, -786.572937f, 48.9419174f, -0.94247663f},
694  {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4, GO_HUGE_SEAFORIUM_BOMB_H, 1273.849f, -796.2778f, 48.9364281f, -2.75761318f},
695 
699 };
700 
702 {
703  {750.601f, -864.597f, 13.4754f, 1.93731f},
704  {785.509f, -864.715f, 13.3993f, 2.47837f}
705 };
706 
707 enum Spells
708 {
710  SPELL_QUARRY = 68720,
723 };
724 
726 {
729 };
730 
732 {
749 
755 
761 
767 
773 
779 
785 
791 };
792 
794 {
798 };
799 
801 {
809 };
810 
812 {
818 
819  // Graveyards
822 
824 };
825 
827 {
833 };
834 
835 const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2] = {0, 0, 1480, 1481, 1482, 1485, 1486, 1483, 1484};
836 
838 {
839  {0.0f, 0.0f, 0.0f, 0.0f}, // no grave
840  {0.0f, 0.0f, 0.0f, 0.0f}, // no grave
841  {629.57f, -279.83f, 11.33f, 0.0f}, // dock
842  {780.729f, -1103.08f, 135.51f, 2.27f}, // hangar
843  {775.74f, -652.77f, 9.31f, 4.27f}, // workshop
844  {278.42f, -883.20f, 49.89f, 1.53f}, // alliance starting base
845  {1300.91f, -834.04f, 48.91f, 1.69f}, // horde starting base
846  {438.86f, -310.04f, 51.81f, 5.87f}, // last resort alliance
847  {1148.65f, -1250.98f, 16.60f, 1.74f}, // last resort horde
848 };
849 
850 // I.E: Hangar, Quarry, Graveyards .. etc
852 {
853  uint32 gameobject_type; // with this we will get the GameObject of that point
854  uint32 gameobject_entry; // what gameobject entry is active here.
855  TeamId faction; // who has this node
856  ICNodePointType nodeType; // here we can specify if it is graveyards, hangar etc...
857  uint32 banners[4]; // the banners that have this point
858  bool needChange; // this is used for the 1 minute time period after the point is captured
859  uint32 timer; // the same use for needChange
860  uint32 last_entry; // the last gameobject_entry
861  uint32 worldStates[5]; // the worldstates that represent the node in the map
864 };
865 
867 {
875 };
876 
878 {
881 };
882 
884 {
885  friend class BattlegroundIC;
886 
887  protected:
888  BattlegroundICScore(ObjectGuid playerGuid, uint32 team) : BattlegroundScore(playerGuid, team), BasesAssaulted(0), BasesDefended(0) { }
889 
890  void UpdateScore(uint32 type, uint32 value) override
891  {
892  switch (type)
893  {
896  break;
898  BasesDefended += value;
899  break;
900  default:
901  BattlegroundScore::UpdateScore(type, value);
902  break;
903  }
904  }
905 
906  void BuildObjectivesBlock(std::vector<int32>& stats) override
907  {
908  stats.push_back(BasesAssaulted);
909  stats.push_back(BasesDefended);
910  }
911 
912  uint32 GetAttr1() const final override { return BasesAssaulted; }
913  uint32 GetAttr2() const final override { return BasesDefended; }
914 
917 };
918 
920 {
921  public:
922  BattlegroundIC();
923  ~BattlegroundIC();
924 
925  /* inherited from BattlegroundClass */
926  void AddPlayer(Player* player) override;
927  void StartingEventCloseDoors() override;
928  void StartingEventOpenDoors() override;
929  void PostUpdateImpl(uint32 diff) override;
930 
931  void RemovePlayer(Player* player, ObjectGuid guid, uint32 team) override;
932  void HandleAreaTrigger(Player* player, uint32 trigger, bool entered) override;
933  bool SetupBattleground() override;
934  void SpawnLeader(uint32 teamid);
935  void HandleKillUnit(Creature* unit, Player* killer) override;
936  void HandleKillPlayer(Player* player, Player* killer) override;
937  void EndBattleground(uint32 winner) override;
938  void EventPlayerClickedOnFlag(Player* source, GameObject* /*target_obj*/) override;
939 
940  void DestroyGate(Player* player, GameObject* go) override;
941 
942  WorldSafeLocsEntry const* GetClosestGraveYard(Player* player) override;
943 
944  /* Scorekeeping */
946 
947  void HandlePlayerResurrect(Player* player) override;
948 
949  uint32 GetNodeState(uint8 nodeType) const { return (uint8)nodePoint[nodeType].nodeState; }
950 
951  bool IsAllNodesControlledByTeam(uint32 team) const override;
952 
953  bool IsSpellAllowed(uint32 spellId, Player const* player) const override;
954 
955  private:
964 
967 
968  uint32 GetNextBanner(ICNodePoint* node, uint32 team, bool returnDefinitve);
969 
971  {
972  uint32 i = 0;
973  switch (id)
974  {
975  case GO_HORDE_GATE_1: i = BG_IC_H_FRONT ;break;
976  case GO_HORDE_GATE_2: i = BG_IC_H_WEST ;break;
977  case GO_HORDE_GATE_3: i = BG_IC_H_EAST ;break;
978  case GO_ALLIANCE_GATE_3: i = BG_IC_A_FRONT ;break;
979  case GO_ALLIANCE_GATE_1: i = BG_IC_A_WEST ;break;
980  case GO_ALLIANCE_GATE_2: i = BG_IC_A_EAST ;break;
981  }
982  return i;
983  }
984 
986  {
987  uint32 uws = 0;
988 
989  switch (id)
990  {
991  case GO_HORDE_GATE_1:
993  break;
994  case GO_HORDE_GATE_2:
996  break;
997  case GO_HORDE_GATE_3:
999  break;
1000  case GO_ALLIANCE_GATE_3:
1002  break;
1003  case GO_ALLIANCE_GATE_1:
1005  break;
1006  case GO_ALLIANCE_GATE_2:
1008  break;
1009  }
1010  return uws;
1011  }
1012 
1013  void UpdateNodeWorldState(ICNodePoint* node);
1014  void HandleCapturedNodes(ICNodePoint* node, bool recapture);
1015  void HandleContestedNodes(ICNodePoint* node);
1016 };
1017 
1018 #endif
void HandleKillUnit(Creature *unit, Player *killer) override
Definition: BattlegroundIC.cpp:378
Definition: BattlegroundIC.h:380
Definition: BattlegroundIC.h:796
Definition: BattlegroundIC.h:48
Definition: BattlegroundIC.h:130
uint32 banners[4]
Definition: BattlegroundIC.h:857
Definition: BattlegroundIC.h:447
Definition: BattlegroundIC.h:264
Definition: BattlegroundIC.h:67
Definition: BattlegroundIC.h:780
Definition: BattlegroundIC.h:165
ICDoorList
Definition: BattlegroundIC.h:800
uint32 GetAttr2() const finaloverride
Definition: BattlegroundIC.h:913
Definition: BattlegroundIC.h:409
BG_IC_GateState GateStatus[6]
Definition: BattlegroundIC.h:962
Definition: BattlegroundIC.h:44
const Position workshopBombs[2]
Definition: BattlegroundIC.h:701
Definition: BattlegroundIC.h:455
uint32 gameobject_entry
Definition: BattlegroundIC.h:854
Definition: BattlegroundIC.h:69
Definition: BattlegroundIC.h:97
Definition: BattlegroundIC.h:177
Definition: BattlegroundIC.h:57
bool doorsClosed
Definition: BattlegroundIC.h:957
Definition: BattlegroundIC.h:118
Definition: BattlegroundIC.h:782
Definition: BattlegroundIC.h:807
Definition: BattlegroundIC.h:352
Definition: BattlegroundIC.h:350
Definition: Language.h:1022
Definition: BattlegroundIC.h:251
bool SetupBattleground() override
Definition: BattlegroundIC.cpp:306
Definition: BattlegroundIC.h:323
Definition: BattlegroundIC.h:287
Definition: BattlegroundIC.h:110
void StartingEventOpenDoors() override
Definition: BattlegroundIC.cpp:223
Definition: BattlegroundIC.h:248
Definition: BattlegroundIC.h:829
void DestroyGate(Player *player, GameObject *go) override
Definition: BattlegroundIC.cpp:791
Definition: BattlegroundIC.h:123
Definition: BattlegroundIC.h:265
Definition: BattlegroundIC.h:298
Definition: BattlegroundIC.h:370
Definition: BattlegroundIC.h:743
Definition: BattlegroundIC.h:116
Definition: BattlegroundIC.h:163
Definition: BattlegroundIC.h:377
bool IsSpellAllowed(uint32 spellId, Player const *player) const override
Definition: BattlegroundIC.cpp:900
Definition: BattlegroundIC.h:430
Definition: BattlegroundIC.h:322
Definition: BattlegroundIC.h:419
Definition: BattlegroundIC.h:293
Definition: BattlegroundIC.h:734
Definition: BattlegroundIC.h:291
Definition: BattlegroundIC.h:720
Definition: BattlegroundIC.h:145
Definition: BattlegroundIC.h:817
const Position BG_IC_HangarCaptains[4]
Definition: BattlegroundIC.h:555
Definition: BattlegroundIC.h:75
Definition: BattlegroundIC.h:432
Definition: BattlegroundIC.h:98
Definition: BattlegroundIC.h:440
uint32 entry
Definition: BattlegroundIC.h:566
Definition: BattlegroundIC.h:340
Definition: BattlegroundIC.h:820
Definition: BattlegroundIC.h:408
Definition: BattlegroundIC.h:454
uint32 last_entry
Definition: BattlegroundIC.h:860
Definition: BattlegroundIC.h:229
Definition: BattlegroundIC.h:405
Definition: BattlegroundIC.h:346
Definition: BattlegroundIC.h:753
void UpdateScore(uint32 type, uint32 value) override
Definition: BattlegroundIC.h:890
Definition: BattlegroundIC.h:450
Definition: BattlegroundIC.h:38
BG_IC_GOs
Definition: BattlegroundIC.h:219
Definition: BattlegroundIC.h:771
uint32 siegeEngineWorkshopTimer
Definition: BattlegroundIC.h:960
Definition: BattlegroundIC.h:108
void SpawnLeader(uint32 teamid)
Definition: BattlegroundIC.h:390
Definition: BattlegroundIC.h:772
uint32 GetWorldStateFromGateEntry(uint32 id, bool open)
Definition: BattlegroundIC.h:985
Definition: Language.h:1024
BG_IC_NPCs
Definition: BattlegroundIC.h:357
Spells
Definition: BattlegroundIC.h:707
Definition: BattlegroundIC.h:806
Definition: BattlegroundIC.h:790
Definition: BattlegroundIC.h:372
Definition: BattlegroundIC.h:279
uint32 type
Definition: BattlegroundIC.h:565
WorldSafeLocsEntry const * GetClosestGraveYard(Player *player) override
Definition: BattlegroundIC.cpp:848
Definition: BattlegroundIC.h:159
virtual void UpdateScore(uint32 type, uint32 value)
Definition: BattlegroundScore.h:65
Definition: BattlegroundIC.h:300
Definition: BattlegroundIC.h:721
Definition: BattlegroundIC.h:464
Definition: BattlegroundIC.h:719
Definition: BattlegroundIC.h:129
Definition: BattlegroundIC.h:168
Definition: BattlegroundIC.h:398
Definition: BattlegroundIC.h:426
Definition: BattlegroundIC.h:420
Definition: BattlegroundIC.h:236
Definition: BattlegroundIC.h:422
Definition: BattlegroundIC.h:318
Definition: BattlegroundIC.h:728
Definition: BattlegroundIC.h:94
Definition: BattlegroundIC.h:102
Definition: DBCStructure.h:1434
Position const BG_IC_SpiritGuidePos[MAX_NODE_TYPES+2]
Definition: BattlegroundIC.h:837
Definition: BattlegroundIC.h:392
Definition: BattlegroundIC.h:740
Definition: BattlegroundIC.h:253
Definition: BattlegroundIC.h:334
BG_IC_GateState
Definition: BattlegroundIC.h:793
Definition: BattlegroundIC.h:759
Definition: BattlegroundIC.h:139
Definition: BattlegroundIC.h:80
Definition: BattlegroundIC.h:808
Definition: BattlegroundIC.h:378
Definition: BattlegroundIC.h:40
void HandleCapturedNodes(ICNodePoint *node, bool recapture)
Definition: BattlegroundIC.cpp:588
Definition: BattlegroundIC.h:463
Definition: BattlegroundIC.h:42
BG_IC_MaxSpawns
Definition: BattlegroundIC.h:443
Definition: BattlegroundIC.h:241
uint32 closeFortressDoorsTimer
Definition: BattlegroundIC.h:956
Definition: BattlegroundIC.h:252
Definition: BattlegroundIC.h:754
Definition: BattlegroundIC.h:851
Definition: BattlegroundIC.h:451
Definition: Transport.h:28
Definition: BattlegroundIC.h:146
void HandleContestedNodes(ICNodePoint *node)
Definition: BattlegroundIC.cpp:548
Definition: BattlegroundIC.h:397
Definition: BattlegroundIC.h:260
Definition: BattlegroundIC.h:258
Definition: BattlegroundIC.h:830
Definition: Creature.h:467
Definition: BattlegroundIC.h:395
Definition: BattlegroundIC.h:183
Definition: BattlegroundIC.h:437
Definition: BattlegroundIC.h:777
float y
Definition: BattlegroundIC.h:214
Definition: BattlegroundIC.h:306
Definition: BattlegroundIC.h:373
uint32 worldStates[5]
Definition: BattlegroundIC.h:861
Definition: BattlegroundIC.h:289
Definition: BattlegroundIC.h:228
Definition: BattlegroundIC.h:418
uint32 GetGateIDFromEntry(uint32 id)
Definition: BattlegroundIC.h:970
Definition: BattlegroundIC.h:280
Definition: BattlegroundIC.h:46
bool needChange
Definition: BattlegroundIC.h:858
Definition: BattlegroundIC.h:39
Definition: BattlegroundIC.h:736
Definition: BattlegroundIC.h:169
Definition: BattlegroundIC.h:304
Definition: BattlegroundIC.h:365
Definition: BattlegroundIC.h:394
Definition: BattlegroundIC.h:172
Definition: BattlegroundIC.h:757
Definition: BattlegroundIC.h:92
Definition: BattlegroundIC.h:160
Definition: BattlegroundIC.h:741
Definition: BattlegroundIC.h:747
Definition: BattlegroundIC.h:76
Definition: BattlegroundIC.h:230
Definition: BattlegroundIC.h:709
Definition: BattlegroundIC.h:188
Definition: BattlegroundIC.h:307
Definition: BattlegroundIC.h:448
Definition: BattlegroundIC.h:267
Definition: BattlegroundIC.h:132
Definition: BattlegroundIC.h:41
Definition: BattlegroundIC.h:452
Definition: BattlegroundIC.h:354
Definition: BattlegroundIC.h:883
Definition: BattlegroundIC.h:774
TeamId faction
Definition: BattlegroundIC.h:855
Definition: BattlegroundIC.h:718
Definition: BattlegroundIC.h:776
Definition: BattlegroundIC.h:113
Definition: SharedDefines.h:994
Definition: BattlegroundIC.h:50
Definition: BattlegroundIC.h:456
Definition: BattlegroundIC.h:366
float o
Definition: BattlegroundIC.h:570
Definition: BattlegroundIC.h:414
Definition: BattlegroundIC.h:225
Definition: BattlegroundIC.h:198
Definition: BattlegroundIC.h:717
Definition: BattlegroundIC.h:71
Definition: BattlegroundIC.h:765
Definition: BattlegroundIC.h:760
Definition: BattlegroundIC.h:417
Definition: BattlegroundIC.h:428
Definition: BattlegroundIC.h:727
Definition: BattlegroundIC.h:919
ICNodePointType
Definition: BattlegroundIC.h:811
const ICNpc BG_IC_NpcSpawnlocs[MAX_NORMAL_NPCS_SPAWNS]
Definition: BattlegroundIC.h:471
Definition: BattlegroundIC.h:154
Definition: BattlegroundIC.h:35
Definition: BattlegroundIC.h:388
Definition: BattlegroundScore.h:54
Definition: BattlegroundIC.h:51
Definition: Language.h:1021
Definition: BattlegroundIC.h:88
Definition: BattlegroundIC.h:374
Definition: BattlegroundIC.h:70
Definition: BattlegroundIC.h:399
Definition: BattlegroundIC.h:413
uint32 resourceTimer
Definition: BattlegroundIC.h:959
Definition: BattlegroundIC.h:135
Definition: BattlegroundIC.h:237
Definition: BattlegroundIC.h:787
Actions
Definition: BattlegroundIC.h:203
Definition: BattlegroundIC.h:185
Definition: BattlegroundIC.h:439
uint32 timer
Definition: BattlegroundIC.h:859
Definition: BattlegroundIC.h:325
Definition: BattlegroundIC.h:59
Definition: BattlegroundIC.h:744
const Position BG_IC_WorkshopVehicles[5]
Definition: BattlegroundIC.h:512
Definition: BattlegroundIC.h:424
Definition: BattlegroundIC.h:347
void UpdateNodeWorldState(ICNodePoint *node)
Definition: BattlegroundIC.cpp:498
Definition: BattlegroundIC.h:335
Definition: BattlegroundIC.h:781
Definition: BattlegroundIC.h:208
Definition: BattlegroundIC.h:288
Definition: BattlegroundIC.h:748
Definition: BattlegroundIC.h:173
Definition: BattlegroundIC.h:155
Definition: BattlegroundIC.h:321
ICNodeState nodeState
Definition: BattlegroundIC.h:862
Definition: Language.h:1020
Definition: BattlegroundIC.h:788
Definition: BattlegroundIC.h:143
Definition: BattlegroundIC.h:167
Definition: BattlegroundIC.h:227
Definition: BattlegroundIC.h:180
Definition: BattlegroundIC.h:93
Definition: BattlegroundIC.h:427
Definition: BattlegroundIC.h:277
Definition: BattlegroundIC.h:170
Definition: BattlegroundIC.h:750
Definition: BattlegroundIC.h:360
Definition: Language.h:1023
Definition: BattlegroundIC.h:715
Definition: BattlegroundIC.h:105
Definition: BattlegroundIC.h:269
Definition: BattlegroundIC.h:199
Definition: BattlegroundIC.h:162
Definition: BattlegroundIC.h:126
Definition: BattlegroundIC.h:47
Definition: BattlegroundIC.h:410
uint32 BasesAssaulted
Definition: BattlegroundIC.h:915
Definition: Language.h:1010
void EndBattleground(uint32 winner) override
Definition: BattlegroundIC.cpp:417
Definition: BattlegroundIC.h:337
Definition: BattlegroundIC.h:243
Definition: BattlegroundIC.h:431
Definition: BattlegroundIC.h:713
Definition: BattlegroundIC.h:52
Definition: BattlegroundIC.h:250
Definition: BattlegroundIC.h:195
Definition: BattlegroundIC.h:276
Transport * gunshipAlliance
Definition: BattlegroundIC.h:965
Definition: BattlegroundIC.h:815
Definition: BattlegroundIC.h:349
Definition: BattlegroundIC.h:197
Times
Definition: BattlegroundIC.h:193
const Position BG_IC_HangarTrigger[2]
Definition: BattlegroundIC.h:549
Definition: BattlegroundIC.h:330
Definition: BattlegroundIC.h:752
Definition: BattlegroundIC.h:314
Definition: BattlegroundIC.h:178
Definition: BattlegroundIC.h:386
Definition: Language.h:1009
Definition: BattlegroundIC.h:712
float o
Definition: BattlegroundIC.h:216
Definition: BattlegroundIC.h:404
const Position BG_IC_DocksVehiclesGlaives[2]
Definition: BattlegroundIC.h:521
Definition: BattlegroundIC.h:285
Definition: BattlegroundIC.h:816
ICWorldStates
Definition: BattlegroundIC.h:731
Definition: BattlegroundIC.h:200
Definition: BattlegroundIC.h:223
Definition: BattlegroundIC.h:351
uint32 GetAttr1() const finaloverride
Definition: BattlegroundIC.h:912
Definition: BattlegroundScore.h:39
const uint32 BG_IC_Factions[2]
Definition: BattlegroundIC.h:27
BattlegroundIC()
Definition: BattlegroundIC.cpp:30
Definition: BattlegroundIC.h:449
Definition: BattlegroundIC.h:103
Definition: BattlegroundIC.h:768
const ICNodePoint nodePointInitial[7]
Definition: BattlegroundIC.h:866
Definition: BattlegroundIC.h:152
Definition: BattlegroundIC.h:133
Definition: BattlegroundIC.h:234
void HandlePlayerResurrect(Player *player) override
Definition: BattlegroundIC.cpp:62
uint32_t uint32
Definition: Define.h:150
void BuildObjectivesBlock(std::vector< int32 > &stats) override
Definition: BattlegroundIC.h:906
Definition: BattlegroundIC.h:315
Definition: BattlegroundIC.h:174
BG_IC_Objectives
Definition: BattlegroundIC.h:725
Definition: BattlegroundIC.h:278
uint16_t uint16
Definition: Define.h:151
Definition: BattlegroundIC.h:786
Definition: BattlegroundIC.h:784
Definition: WorldStatePackets.h:27
Definition: BattlegroundIC.h:238
Definition: SharedDefines.h:992
Definition: BattlegroundIC.h:95
Definition: GameObject.h:880
Definition: BattlegroundIC.h:716
Definition: BattlegroundIC.h:369
Definition: BattlegroundIC.h:255
uint32 docksTimer
Definition: BattlegroundIC.h:958
Definition: BattlegroundIC.h:245
Definition: BattlegroundIC.h:249
Definition: BattlegroundIC.h:738
Definition: BattlegroundIC.h:387
Definition: BattlegroundIC.h:758
Definition: BattlegroundIC.h:78
Definition: BattlegroundIC.h:797
uint32 type
Definition: BattlegroundIC.h:210
Definition: BattlegroundIC.h:803
TeamId
Definition: SharedDefines.h:990
uint32 gameobject_type
Definition: BattlegroundIC.h:853
Definition: BattlegroundIC.h:326
float x
Definition: BattlegroundIC.h:567
Definition: BattlegroundIC.h:141
Definition: BattlegroundIC.h:297
Definition: BattlegroundIC.h:371
Definition: BattlegroundIC.h:367
Definition: BattlegroundIC.h:336
uint16 factionReinforcements[2]
Definition: BattlegroundIC.h:961
Definition: BattlegroundIC.h:438
uint32 string
Definition: BattlegroundIC.h:863
Definition: BattlegroundIC.h:136
Definition: BattlegroundIC.h:43
Definition: BattlegroundIC.h:275
Definition: BattlegroundIC.h:175
Definition: BattlegroundIC.h:714
Definition: BattlegroundIC.h:302
Definition: BattlegroundIC.h:423
float y
Definition: BattlegroundIC.h:568
Definition: BattlegroundIC.h:359
Definition: BattlegroundIC.h:363
ICNodeState
Definition: BattlegroundIC.h:826
Definition: BattlegroundIC.h:254
Definition: BattlegroundIC.h:802
Definition: BattlegroundIC.h:319
Definition: BattlegroundIC.h:240
Definition: BattlegroundIC.h:342
Definition: BattlegroundIC.h:246
Definition: BattlegroundIC.h:37
Definition: BattlegroundIC.h:36
Definition: BattlegroundIC.h:737
Definition: BattlegroundIC.h:138
Definition: BattlegroundIC.h:179
Definition: BattlegroundIC.h:831
ICNodePoint nodePoint[7]
Definition: BattlegroundIC.h:963
const Position BG_IC_DocksVehiclesCatapults[4]
Definition: BattlegroundIC.h:527
Definition: BattlegroundIC.h:879
Definition: BattlegroundIC.h:331
Definition: BattlegroundIC.h:368
const ICGo BG_IC_TeleporterEffects[MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS]
Definition: BattlegroundIC.h:589
Definition: BattlegroundIC.h:795
Definition: BattlegroundIC.h:231
Definition: BattlegroundIC.h:106
Definition: BattlegroundIC.h:332
Definition: BattlegroundIC.h:813
void PostUpdateImpl(uint32 diff) override
Post-update hook.
Definition: BattlegroundIC.cpp:71
void HandleKillPlayer(Player *player, Player *killer) override
Definition: BattlegroundIC.cpp:401
Definition: BattlegroundIC.h:182
Definition: BattlegroundIC.h:272
float z
Definition: BattlegroundIC.h:215
ICNodePointType nodeType
Definition: BattlegroundIC.h:856
const Position BG_IC_HangarTeleporterEffects[3]
Definition: BattlegroundIC.h:542
Definition: BattlegroundIC.h:468
Definition: BattlegroundIC.h:158
Definition: BattlegroundIC.h:148
Definition: BattlegroundIC.h:224
Definition: BattlegroundIC.h:261
Definition: BattlegroundIC.h:364
Definition: BattlegroundIC.h:274
Definition: BattlegroundIC.h:68
Definition: BattlegroundIC.h:402
Definition: BattlegroundIC.h:467
void RemovePlayer(Player *player, ObjectGuid guid, uint32 team) override
Definition: BattlegroundIC.cpp:257
const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2]
Definition: BattlegroundIC.h:835
Definition: BattlegroundIC.h:305
Definition: BattlegroundIC.h:84
const Position BG_IC_HangarTeleporters[3]
Definition: BattlegroundIC.h:535
Definition: BattlegroundIC.h:382
void HandleAreaTrigger(Player *player, uint32 trigger, bool entered) override
Definition: BattlegroundIC.cpp:266
Definition: BattlegroundIC.h:361
Definition: BattlegroundIC.h:82
Definition: BattlegroundIC.h:235
Definition: BattlegroundIC.h:96
Definition: BattlegroundIC.h:316
Definition: BattlegroundIC.h:429
Definition: BattlegroundIC.h:775
Definition: BattlegroundIC.h:763
Definition: BattlegroundIC.h:745
Definition: BattlegroundIC.h:125
creaturesIC
Definition: BattlegroundIC.h:33
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
Definition: BattlegroundIC.cpp:289
Definition: BattlegroundIC.h:385
float z
Definition: BattlegroundIC.h:569
Definition: BattlegroundIC.h:446
Definition: BattlegroundIC.h:343
Definition: BattlegroundIC.h:65
Definition: BattlegroundIC.h:381
Definition: BattlegroundIC.h:756
Definition: BattlegroundIC.h:880
Definition: BattlegroundIC.h:271
Definition: BattlegroundIC.h:814
Definition: BattlegroundIC.h:769
Definition: BattlegroundIC.h:296
Definition: BattlegroundIC.h:329
Definition: BattlegroundIC.h:242
Definition: BattlegroundIC.h:247
uint8_t uint8
Definition: Define.h:152
Definition: Position.h:27
Definition: BattlegroundIC.h:453
Definition: BattlegroundIC.h:415
Definition: BattlegroundIC.h:114
Definition: BattlegroundIC.h:310
Definition: BattlegroundIC.h:90
Definition: BattlegroundIC.h:742
Definition: Battleground.h:235
Definition: BattlegroundIC.h:309
Definition: BattlegroundIC.h:751
Definition: BattlegroundIC.h:412
Definition: BattlegroundIC.h:333
Definition: BattlegroundIC.h:362
Definition: BattlegroundIC.h:722
const FieldDescriptor value
Definition: descriptor.h:1522
Definition: BattlegroundIC.h:407
Definition: BattlegroundIC.h:733
Definition: BattlegroundIC.h:221
Definition: BattlegroundIC.h:353
Definition: BattlegroundIC.h:281
Definition: BattlegroundIC.h:100
Definition: BattlegroundIC.h:61
Definition: BattlegroundIC.h:99
Definition: BattlegroundIC.h:384
const ICGo BG_IC_Teleporters[MAX_FORTRESS_TELEPORTERS_SPAWNS]
Definition: BattlegroundIC.h:573
TeamId team
Definition: BattlegroundIC.h:212
Definition: BattlegroundIC.h:49
Definition: ObjectGuid.h:189
Definition: BattlegroundIC.h:63
Definition: BattlegroundIC.h:832
bool IsAllNodesControlledByTeam(uint32 team) const override
Definition: BattlegroundIC.cpp:887
#define const
Definition: zconf.h:217
Definition: BattlegroundIC.h:256
Definition: BattlegroundIC.h:445
uint32 entry
Definition: BattlegroundIC.h:211
Definition: BattlegroundIC.h:339
Definition: BattlegroundIC.h:312
Definition: BattlegroundIC.h:196
Definition: BattlegroundIC.h:746
Definition: BattlegroundIC.h:344
uint32 GetNodeState(uint8 nodeType) const
Definition: BattlegroundIC.h:949
Definition: BattlegroundIC.h:122
Definition: BattlegroundIC.h:459
Definition: BattlegroundIC.h:711
float x
Definition: BattlegroundIC.h:213
Definition: BattlegroundIC.h:739
Definition: BattlegroundIC.h:376
Definition: BattlegroundIC.h:391
Definition: BattlegroundIC.h:77
~BattlegroundIC()
Definition: BattlegroundIC.cpp:60
Definition: BattlegroundIC.h:45
Definition: BattlegroundIC.h:345
Definition: BattlegroundIC.h:389
Definition: SharedDefines.h:993
Definition: BattlegroundIC.h:375
Definition: BattlegroundIC.h:563
void StartingEventCloseDoors() override
Definition: BattlegroundIC.cpp:219
Definition: BattlegroundIC.h:403
BannersTypes
Definition: BattlegroundIC.h:435
Definition: BattlegroundIC.h:187
Definition: BattlegroundIC.h:263
Definition: BattlegroundIC.h:295
Definition: BattlegroundIC.h:828
Definition: BattlegroundIC.h:127
Definition: BattlegroundIC.h:120
Definition: BattlegroundIC.h:400
Definition: BattlegroundIC.h:150
Definition: BattlegroundIC.h:338
Definition: BattlegroundIC.h:379
gameobjectsIC
Definition: BattlegroundIC.h:55
Definition: BattlegroundIC.h:710
Definition: BattlegroundIC.h:766
Definition: BattlegroundIC.h:184
Definition: BattlegroundIC.h:770
Definition: BattlegroundIC.h:778
Definition: BattlegroundIC.h:821
Definition: BattlegroundIC.h:144
void AddPlayer(Player *player) override
Definition: BattlegroundIC.cpp:245
Definition: BattlegroundIC.h:283
Definition: BattlegroundScore.h:40
Definition: BattlegroundIC.h:764
Definition: BattlegroundIC.h:74
Definition: BattlegroundIC.h:460
HonorRewards
Definition: BattlegroundIC.h:877
Definition: BattlegroundIC.h:112
Definition: BattlegroundIC.h:73
Definition: BattlegroundIC.h:60
Definition: BattlegroundIC.h:86
Definition: BattlegroundIC.h:164
void EventPlayerClickedOnFlag(Player *source, GameObject *) override
Definition: BattlegroundIC.cpp:424
Definition: BattlegroundIC.h:804
Definition: BattlegroundIC.h:327
Definition: BattlegroundIC.h:735
Transport * gunshipHorde
Definition: BattlegroundIC.h:966
Definition: BattlegroundIC.h:233
Definition: BattlegroundIC.h:205
Definition: BattlegroundIC.h:762
Definition: BattlegroundIC.h:383
BattlegroundICScore(ObjectGuid playerGuid, uint32 team)
Definition: BattlegroundIC.h:888
const ICGo BG_IC_ObjSpawnlocs[MAX_NORMAL_GAMEOBJECTS_SPAWNS]
Definition: BattlegroundIC.h:606
Definition: BattlegroundIC.h:153
Definition: BattlegroundIC.h:783
Definition: BattlegroundIC.h:805
Definition: BattlegroundIC.h:311
uint32 BasesDefended
Definition: BattlegroundIC.h:916
Definition: BattlegroundIC.h:789
Definition: BattlegroundIC.h:157
Definition: BattlegroundIC.h:823
uint32 GetNextBanner(ICNodePoint *node, uint32 team, bool returnDefinitve)
Definition: BattlegroundIC.cpp:523