TrinityCore
Loading...
Searching...
No Matches
BattlegroundIC.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef __BATTLEGROUNDIC_H
19#define __BATTLEGROUNDIC_H
20
21#include "Battleground.h"
22#include "BattlegroundScore.h"
23#include "Object.h"
24
26{
27 1732, // Alliance
28 1735 // Horde
29};
30
52
54{
56
60
62
64
65 GO_BENCH_1 = 186896,
66 GO_BENCH_2 = 186922,
67 GO_BENCH_3 = 186899,
68 GO_BENCH_4 = 186904,
69 GO_BENCH_5 = 186897,
70
71 GO_BONFIRE_1 = 195376,
72 GO_BONFIRE_2 = 195208,
73 GO_BONFIRE_3 = 195210,
74 GO_BONFIRE_4 = 195207,
75 GO_BONFIRE_5 = 195209,
76 GO_BONFIRE_6 = 195377,
77
79
81
83
85
87
89
90 GO_CHAIR_1 = 195410,
91 GO_CHAIR_2 = 195414,
92 GO_CHAIR_3 = 160415,
93 GO_CHAIR_4 = 195418,
94 GO_CHAIR_5 = 195416,
95 GO_CHAIR_6 = 160410,
96 GO_CHAIR_7 = 160418,
97 GO_CHAIR_8 = 160416,
98 GO_CHAIR_9 = 160419,
99
102
105
107
109
113
115
117
119
122
126
127 GO_STOVE_1 = 174863,
128 GO_STOVE_2 = 160411,
129
130 GO_TELEPORTER_1 = 195314, // 195314 H-OUT 66549
131 GO_TELEPORTER_2 = 195313, // 195313 H-IN 66548
132
133 GO_TELEPORTER_3 = 195315, // 195315 A-OUT 66549
134 GO_TELEPORTER_4 = 195316, // 195316 A-IN 66548
135
138
140
141 GO_BRAZIER_1 = 195402,
142 GO_BRAZIER_2 = 195403,
143 GO_BRAZIER_3 = 195425,
144 GO_BRAZIER_4 = 195424,
145
147
149
154
159
164
169
174
179
184
186 GO_ALLIANCE_GUNSHIP = 195121
188
189#define MAX_REINFORCEMENTS 300
190
192{
193 WORKSHOP_UPDATE_TIME = 180000, // 3 minutes
194 DOCKS_UPDATE_TIME = 180000, // not sure if it is 3 minutes
195 IC_RESOURCE_TIME = 45000, // not sure, need more research
198 TRANSPORT_PERIOD_TIME = 120000
200
205
206struct ICNpc
207{
211 float x;
212 float y;
213 float z;
214 float o;
215};
216
218{
220
224
230
237
242
255
257
260
264
266
268
271
280
282
284
288
290
292
297
299
301
306
311
315
318
322
326
339
346
354
356{
391
394
399
404
409
414
419
423
432
440
468
470{
471 {BG_IC_NPC_OVERLORD_AGMAR, NPC_OVERLORD_AGMAR, TEAM_HORDE, 1295.44f, -765.733f, 70.0541f, 0.0f}, //Overlord Agmar 1
472 {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
473 {BG_IC_NPC_KOR_KRON_GUARD_1, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1296.01f, -773.256f, 69.958f, 0.292168f}, // 3
474 {BG_IC_NPC_KOR_KRON_GUARD_2, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.94f, -757.756f, 69.9587f, 6.02165f}, // 4
475 {BG_IC_NPC_KOR_KRON_GUARD_3, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.09f, -760.927f, 69.9587f, 5.94311f}, // 5
476 {BG_IC_NPC_KOR_KRON_GUARD_4, NPC_KOR_KRON_GUARD, TEAM_HORDE, 1295.13f, -769.7f, 69.95f, 0.34f}, // 6
477
478 {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.969f, -822.958f, 60.8151f, 0.46337f}, // 7
479 {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 224.211f, -826.952f, 60.8188f, 6.25961f}, // 8
480 {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.119f, -838.386f, 60.8145f, 5.64857f}, // 9
481 {BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4, NPC_SEVEN_TH_LEGION_INFANTRY, TEAM_ALLIANCE, 223.889f, -835.102f, 60.8201f, 6.21642f}, // 10
482
483 {BG_IC_NPC_KEEP_CANNON_1, NPC_KEEP_CANNON, TEAM_ALLIANCE, 415.825f, -754.634f, 87.799f, 1.78024f}, // 11
484 {BG_IC_NPC_KEEP_CANNON_2, NPC_KEEP_CANNON, TEAM_ALLIANCE, 410.142f, -755.332f, 87.7991f, 1.78024f}, // 12
485 {BG_IC_NPC_KEEP_CANNON_3, NPC_KEEP_CANNON, TEAM_ALLIANCE, 424.33f, -879.352f, 88.0446f, 0.436332f}, // 13
486 {BG_IC_NPC_KEEP_CANNON_4, NPC_KEEP_CANNON, TEAM_ALLIANCE, 425.602f, -786.646f, 87.7991f, 5.74213f}, // 14
487 {BG_IC_NPC_KEEP_CANNON_5, NPC_KEEP_CANNON, TEAM_ALLIANCE, 426.743f, -884.939f, 87.9613f, 0.436332f}, // 15
488 {BG_IC_NPC_KEEP_CANNON_6, NPC_KEEP_CANNON, TEAM_ALLIANCE, 404.736f, -755.495f, 87.7989f, 1.78024f}, // 16
489 {BG_IC_NPC_KEEP_CANNON_7, NPC_KEEP_CANNON, TEAM_ALLIANCE, 428.375f, -780.797f, 87.7991f, 5.79449f}, // 17
490 {BG_IC_NPC_KEEP_CANNON_8, NPC_KEEP_CANNON, TEAM_ALLIANCE, 429.175f, -890.436f, 88.0446f, 0.436332f}, // 18
491 {BG_IC_NPC_KEEP_CANNON_9, NPC_KEEP_CANNON, TEAM_ALLIANCE, 430.872f, -775.278f, 87.7991f, 5.88176f}, // 19
492 {BG_IC_NPC_KEEP_CANNON_10, NPC_KEEP_CANNON, TEAM_ALLIANCE, 408.056f, -911.283f, 88.0445f, 4.64258f}, // 20
493 {BG_IC_NPC_KEEP_CANNON_11, NPC_KEEP_CANNON, TEAM_ALLIANCE, 413.609f, -911.566f, 88.0447f, 4.66003f}, // 21
494 {BG_IC_NPC_KEEP_CANNON_12, NPC_KEEP_CANNON, TEAM_ALLIANCE, 402.554f, -910.557f, 88.0446f, 4.57276f}, // 22
495
496 {BG_IC_NPC_KEEP_CANNON_13, NPC_KEEP_CANNON, TEAM_HORDE, 1158.91f, -660.144f, 87.9332f, 0.750492f}, // 23
497 {BG_IC_NPC_KEEP_CANNON_14, NPC_KEEP_CANNON, TEAM_HORDE, 1156.22f, -866.809f, 87.8754f, 5.27089f}, // 24
498 {BG_IC_NPC_KEEP_CANNON_15, NPC_KEEP_CANNON, TEAM_HORDE, 1163.74f, -663.67f, 88.3571f, 0.558505f}, // 25
499 {BG_IC_NPC_KEEP_CANNON_16, NPC_KEEP_CANNON, TEAM_HORDE, 1135.18f, -683.896f, 88.0409f, 3.9619f}, // 26
500 {BG_IC_NPC_KEEP_CANNON_17, NPC_KEEP_CANNON, TEAM_HORDE, 1138.91f, -836.359f, 88.3728f, 2.18166f}, // 27
501 {BG_IC_NPC_KEEP_CANNON_18, NPC_KEEP_CANNON, TEAM_HORDE, 1162.08f, -863.717f, 88.358f, 5.48033f}, // 28
502 {BG_IC_NPC_KEEP_CANNON_19, NPC_KEEP_CANNON, TEAM_HORDE, 1167.13f, -669.212f, 87.9682f, 0.383972f}, // 29
503 {BG_IC_NPC_KEEP_CANNON_20, NPC_KEEP_CANNON, TEAM_HORDE, 1137.72f, -688.517f, 88.4023f, 3.9619f}, // 30
504 {BG_IC_NPC_KEEP_CANNON_21, NPC_KEEP_CANNON, TEAM_HORDE, 1135.29f, -840.878f, 88.0252f, 2.30383f}, // 31
505 {BG_IC_NPC_KEEP_CANNON_22, NPC_KEEP_CANNON, TEAM_HORDE, 1144.33f, -833.309f, 87.9268f, 2.14675f}, // 32
506 {BG_IC_NPC_KEEP_CANNON_23, NPC_KEEP_CANNON, TEAM_HORDE, 1142.59f, -691.946f, 87.9756f, 3.9619f}, // 33
507 {BG_IC_NPC_KEEP_CANNON_24, NPC_KEEP_CANNON, TEAM_HORDE, 1166.13f, -858.391f, 87.9653f, 5.63741f} // 34
508};
509
511{
512 {751.8281f, -852.732666f, 12.5250978f, 1.46607661f}, // Demolisher
513 {761.809f, -854.2274f, 12.5263243f, 1.46607661f}, // Demolisher
514 {783.4722f, -853.9601f, 12.54775f, 1.71042264f}, // Demolisher
515 {793.055542f, -852.71875f, 12.5671329f, 1.71042264f}, // Demolisher
516 {773.680542f, -884.092041f, 16.8090363f, 1.58824956f} // Siege Engine
517};
518
520{
521 {779.3125f, -342.972229f, 12.2104874f, 4.712389f}, // Glaive Throwers
522 {790.029541f, -342.899323f, 12.2128582f, 4.71238f} // Glaive Throwers
523};
524
526{
527 {757.283f, -341.7795f, 12.2113762f, 4.729842f}, // Catapults
528 {766.947937f, -342.053833f, 12.2009945f, 4.694f}, // Catapults
529 {800.3785f, -342.607635f, 12.1669979f, 4.6774f}, // Catapults
530 {810.7257f, -342.083344f, 12.1675768f, 4.6600f} // Catapults
531};
532
534{
535 {827.9219f, -993.3249f, 134.1972f, 3.141593f}, // Gunship Portal
536 {739.0226f, -1106.661f, 134.7551f, 2.426008f}, // Gunship Portal
537 {672.0799f, -1156.776f, 133.7057f, 1.832595f} // Gunship Portal
538};
539
541{
542 {827.9236f, -993.2986f, 134.2002f, 3.141593f}, // Gunship Portal Effect
543 {739.0139f, -1106.661f, 134.7548f, 3.141593f}, // Gunship Portal Effect
544 {672.0868f, -1156.786f, 133.7057f, 3.141593f} // Gunship Portal Effect
545};
546
548{
549 {11.69965f, 0.034146f, 20.62076f, 3.211406f},
550 {7.305609f, -0.095246f, 34.51022f, 3.159046f}
551};
552
554{
555 {825.6667f, -994.00520f, 134.3569f, 3.403392f},
556 {53.65112f, -0.1139221f, 30.09546f, 3.106686f},
557 {826.2205f, -994.40280f, 134.2812f, 3.351032f},
558 {10.89952f, 4.88029700f, 20.49038f, 4.840575f}
559};
560
561struct ICGo
562{
565 float x;
566 float y;
567 float z;
568 float o;
569};
570
572{
573 {BG_IC_GO_TELEPORTER_1_1, GO_TELEPORTER_1, 1143.25f, -779.599f, 48.629f, 1.64061f}, // Teleporter
574 {BG_IC_GO_TELEPORTER_1_2, GO_TELEPORTER_1, 1236.53f, -669.415f, 48.2729f, 0.104719f}, // Teleporter
575 {BG_IC_GO_TELEPORTER_2_1, GO_TELEPORTER_2, 1233.27f, -844.526f, 48.8824f, -0.0174525f}, // Teleporter
576 {BG_IC_GO_TELEPORTER_3_1, GO_TELEPORTER_3, 311.92f, -913.972f, 48.8159f, 3.08918f}, // Teleporter
577 {BG_IC_GO_TELEPORTER_2_2, GO_TELEPORTER_2, 1235.53f, -683.872f, 49.304f, -3.08918f}, // Teleporter
578 {BG_IC_GO_TELEPORTER_4_1, GO_TELEPORTER_4, 397.089f, -859.382f, 48.8993f, 1.64061f}, // Teleporter
579 {BG_IC_GO_TELEPORTER_3_2, GO_TELEPORTER_3, 324.635f, -749.128f, 49.3602f, 0.0174525f}, // Teleporter
580 {BG_IC_GO_TELEPORTER_3_3, GO_TELEPORTER_3, 425.675f, -857.09f, 48.5104f, -1.6057f}, // Teleporter
581 {BG_IC_GO_TELEPORTER_4_2, GO_TELEPORTER_4, 323.54f, -888.361f, 48.9197f, 0.0349063f}, // Teleporter
582 {BG_IC_GO_TELEPORTER_4_3, GO_TELEPORTER_4, 326.285f, -777.366f, 49.0208f, 3.12412f}, // Teleporter
583 {BG_IC_GO_TELEPORTER_1_3, GO_TELEPORTER_1, 1235.09f, -857.898f, 48.9163f, 3.07177f}, // Teleporter
584 {BG_IC_GO_TELEPORTER_2_3, GO_TELEPORTER_2, 1158.76f, -746.182f, 48.6277f, -1.51844f} // Teleporter
585};
586
588{
589 {BG_IC_GO_TELEPORTER_EFFECTS_A_1, GO_TELEPORTER_EFFECTS_A, 425.686f, -857.092f, 48.51f, -1.62316f}, // Teleporter Effects (Alliance)
590 {BG_IC_GO_TELEPORTER_EFFECTS_A_2, GO_TELEPORTER_EFFECTS_A, 324.634f, -749.148f, 49.359f, 0.0174525f}, // Teleporter Effects (Alliance)
591 {BG_IC_GO_TELEPORTER_EFFECTS_A_3, GO_TELEPORTER_EFFECTS_A, 311.911f, -913.986f, 48.8157f, 3.08918f}, // Teleporter Effects (Alliance)
592 {BG_IC_GO_TELEPORTER_EFFECTS_A_4, GO_TELEPORTER_EFFECTS_A, 326.266f, -777.347f, 49.0215f, 3.12412f}, // Teleporter Effects (Alliance)
593 {BG_IC_GO_TELEPORTER_EFFECTS_A_5, GO_TELEPORTER_EFFECTS_A, 323.55f, -888.347f, 48.9198f, 0.0174525f}, // Teleporter Effects (Alliance)
594 {BG_IC_GO_TELEPORTER_EFFECTS_A_6, GO_TELEPORTER_EFFECTS_A, 397.116f, -859.378f, 48.8989f, 1.64061f}, // Teleporter Effects (Alliance)
595
596 {BG_IC_GO_TELEPORTER_EFFECTS_H_1, GO_TELEPORTER_EFFECTS_H, 1143.25f, -779.623f, 48.6291f, 1.62316f}, // Teleporter Effects (Horde)
597 {BG_IC_GO_TELEPORTER_EFFECTS_H_2, GO_TELEPORTER_EFFECTS_H, 1158.64f, -746.148f, 48.6277f, -1.50098f}, // Teleporter Effects (Horde)
598 {BG_IC_GO_TELEPORTER_EFFECTS_H_3, GO_TELEPORTER_EFFECTS_H, 1233.25f, -844.573f, 48.8836f, 0.0174525f}, // Teleporter Effects (Horde)
599 {BG_IC_GO_TELEPORTER_EFFECTS_H_4, GO_TELEPORTER_EFFECTS_H, 1235.07f, -857.957f, 48.9163f, 3.05433f}, // Teleporter Effects (Horde)
600 {BG_IC_GO_TELEPORTER_EFFECTS_H_5, GO_TELEPORTER_EFFECTS_H, 1236.46f, -669.344f, 48.2684f, 0.087266f}, // Teleporter Effects (Horde)
601 {BG_IC_GO_TELEPORTER_EFFECTS_H_6, GO_TELEPORTER_EFFECTS_H, 1235.6f, -683.806f, 49.3028f, -3.07177f} // Teleporter Effects (Horde)
602};
603
605{
606 {BG_IC_GO_ALLIANCE_GATE_1, GO_ALLIANCE_GATE_1, 351.615f, -762.75f, 48.9162f, -1.5708f}, // Alliance Gate || Left
607 {BG_IC_GO_ALLIANCE_GATE_2, GO_ALLIANCE_GATE_2, 351.024f, -903.326f, 48.9247f, 1.5708f}, // Alliance Gate || Right
608 {BG_IC_GO_ALLIANCE_GATE_3, GO_ALLIANCE_GATE_3, 413.479f, -833.95f, 48.5238f, 3.14159f}, // Alliance Gate || Front
609
610 {BG_IC_GO_HORDE_GATE_1, GO_HORDE_GATE_1, 1150.9f, -762.606f, 47.5077f, 3.14159f}, // Horde Gate || Front
611 {BG_IC_GO_HORDE_GATE_2, GO_HORDE_GATE_2, 1218.74f, -851.155f, 48.2533f, -1.5708f}, // Horde Gate || Left
612 {BG_IC_GO_HORDE_GATE_3, GO_HORDE_GATE_3, 1217.9f, -676.948f, 47.6341f, 1.5708f}, // Horde Gate || Right
613
614 {BG_IC_GO_HORDE_BANNER, GO_HORDE_BANNER, 1284.76f, -705.668f, 48.9163f, -3.08918f}, // Horde Banner
615 {BG_IC_GO_ALLIANCE_BANNER, GO_ALLIANCE_BANNER, 299.153f, -784.589f, 48.9162f, -0.157079f}, // Alliance Banner
616
617 {BG_IC_GO_WORKSHOP_BANNER, GO_WORKSHOP_BANNER, 776.229f, -804.283f, 6.45052f, 1.6057f}, // Workshop Banner
618 {BG_IC_GO_DOCKS_BANNER, GO_DOCKS_BANNER, 726.385f, -360.205f, 17.8153f, -1.62316f}, // Docks Banner
619 {BG_IC_GO_HANGAR_BANNER, GO_HANGAR_BANNER, 807.78f, -1000.07f, 132.381f, -1.93732f}, // Hangar Banner
620 {BG_IC_GO_QUARRY_BANNER, GO_QUARRY_BANNER, 251.016f, -1159.32f, 17.2376f, -2.25147f}, // Quarry Banner
621 {BG_IC_GO_REFINERY_BANNER, GO_REFINERY_BANNER, 1269.5f, -400.809f, 37.6253f, -1.76278f}, // Refinery Banner
622
623 {BG_IC_GO_BENCH_1, GO_BENCH_1, 834.208f, -461.826f, 22.3067f, 1.5708f}, // Bench
624 {BG_IC_GO_BENCH_2, GO_BENCH_2, 826.153f, -461.985f, 22.5149f, 1.5708f}, // Bench
625 {BG_IC_GO_BENCH_3, GO_BENCH_3, 817.446f, -470.47f, 25.372f, -1.56207f}, // Bench
626 {BG_IC_GO_BENCH_4, GO_BENCH_4, 827.001f, -474.415f, 25.372f, 1.57952f}, // Bench
627 {BG_IC_GO_BENCH_5, GO_BENCH_5, 819.264f, -461.961f, 22.7614f, 1.57952f}, // Bench
628
629 {BG_IC_GO_BONFIRE_1, GO_BONFIRE_1, 1162.91f, -734.578f, 48.8948f, -2.9845f}, // Bonfire
630 {BG_IC_GO_BONFIRE_2, GO_BONFIRE_2, 1282.34f, -799.762f, 87.1357f, -3.13286f}, // Bonfire
631 {BG_IC_GO_BONFIRE_3, GO_BONFIRE_3, 1358.06f, -732.178f, 87.1606f, -3.13284f}, // Bonfire
632 {BG_IC_GO_BONFIRE_4, GO_BONFIRE_4, 1281.76f, -732.844f, 87.1574f, -3.13246f}, // Bonfire
633 {BG_IC_GO_BONFIRE_5, GO_BONFIRE_5, 1358.81f, -797.899f, 87.2953f, 3.13312f}, // Bonfire
634 {BG_IC_GO_BONFIRE_6, GO_BONFIRE_6, 1162.21f, -790.543f, 48.9162f, 2.27765f}, // Bonfire
635
636 {BG_IC_GO_BRAZIER_1, GO_BRAZIER_1, 1262.21f, -751.358f, 48.8133f, 2.26893f}, // Brazier
637 {BG_IC_GO_BRAZIER_2, GO_BRAZIER_2, 1262.58f, -781.861f, 48.8132f, 2.04203f}, // Brazier
638 {BG_IC_GO_BRAZIER_3, GO_BRAZIER_3, 223.818f, -839.352f, 60.7917f, 1.09083f}, // Brazier
639 {BG_IC_GO_BRAZIER_4, GO_BRAZIER_4, 224.277f, -822.77f, 60.7917f, 2.06822f}, // Brazier
640
641 {BG_IC_GO_CHAIR_1, GO_CHAIR_1, 632.876f, -282.461f, 5.45364f, -0.851094f}, // Chair
642 {BG_IC_GO_CHAIR_2, GO_CHAIR_2, 635.796f, -276.295f, 5.48659f, -3.03273f}, // Chair
643 {BG_IC_GO_CHAIR_3_1, GO_CHAIR_3, 762.245f, -444.795f, 22.8526f, -1.98095f}, // Chair
644 {BG_IC_GO_CHAIR_4, GO_CHAIR_4, 632.156f, -304.503f, 5.4879f, 1.15603f}, // Chair
645 {BG_IC_GO_CHAIR_5, GO_CHAIR_5, 643.86f, -270.204f, 5.48898f, 2.36903f}, // Chair
646 {BG_IC_GO_CHAIR_6_1, GO_CHAIR_6, 902.234f, -455.508f, 18.3935f, -1.00356f}, // Chair
647 {BG_IC_GO_CHAIR_7, GO_CHAIR_7, 810.237f, -461.2f, 25.4627f, 1.5708f}, // Chair
648 {BG_IC_GO_CHAIR_3_2, GO_CHAIR_3, 1117.19f, -365.674f, 18.8456f, 0.968657f}, // Chair
649 {BG_IC_GO_CHAIR_6_2, GO_CHAIR_6, 1066.19f, -337.214f, 18.8225f, 0.453785f}, // Chair
650 {BG_IC_GO_CHAIR_8_1, GO_CHAIR_8, 798.324f, -444.951f, 22.5601f, -1.02102f}, // Chair
651 {BG_IC_GO_CHAIR_8_2, GO_CHAIR_8, 1081.81f, -358.637f, 18.5531f, 1.92859f}, // Chair
652 {BG_IC_GO_CHAIR_9, GO_CHAIR_9, 814.931f, -470.816f, 33.6373f, -3.12412f}, // Chair
653
654 {BG_IC_GO_DOODAD_HU_PORTCULLIS01_1, GO_DOODAD_HU_PORTCULLIS01, 401.024f, -780.724f, 49.9482f, -2.52896f}, // Doodad_HU_Portcullis01
655 {BG_IC_GO_DOODAD_HU_PORTCULLIS01_2, GO_DOODAD_HU_PORTCULLIS01, 399.802f, -885.208f, 50.1939f, 2.516f}, // Doodad_HU_Portcullis01
656
657 {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
658 {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
659 {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
660
661 {BG_IC_GO_DOODAD_PORTCULLISACTIVE01, GO_DOODAD_PORTCULLISACTIVE01, -832.595f, 51.4109f, -0.0261791f, 0.0f}, // Doodad_PortcullisActive01
662
663 {BG_IC_GO_DOODAD_PORTCULLISACTIVE02, GO_DOODAD_PORTCULLISACTIVE02, 273.033f, -832.199f, 51.4109f, -0.0261791f}, // Doodad_PortcullisActive02
664
665 {BG_IC_GO_DOODAD_VR_PORTCULLIS01_1, GO_DOODAD_VR_PORTCULLIS01, 1156.89f, -843.998f, 48.6322f, 0.732934f}, // Doodad_VR_Portcullis01
666 {BG_IC_GO_DOODAD_VR_PORTCULLIS01_2, GO_DOODAD_VR_PORTCULLIS01, 1157.05f, -682.36f, 48.6322f, -0.829132f}, // Doodad_VR_Portcullis01
667
668 {BG_IC_GO_FLAGPOLE_1_1, GO_FLAGPOLE_1, -400.809f, 37.6253f, -1.76278f, 0.0f}, // Flagpole
669 {BG_IC_GO_FLAGPOLE_2_1, GO_FLAGPOLE_2, 1284.76f, -705.668f, 48.9163f, -3.08918f}, // Flagpole
670 {BG_IC_GO_FLAGPOLE_2_2, GO_FLAGPOLE_2, 299.153f, -784.589f, 48.9162f, -0.157079f}, // Flagpole
671 {BG_IC_GO_FLAGPOLE_1_2, GO_FLAGPOLE_1, 726.385f, -360.205f, 17.8153f, -1.6057f}, // Flagpole
672 {BG_IC_GO_FLAGPOLE_1_3, GO_FLAGPOLE_1, 807.78f, -1000.07f, 132.381f, -1.91986f}, // Flagpole
673 {BG_IC_GO_FLAGPOLE_1_4, GO_FLAGPOLE_1, 776.229f, -804.283f, 6.45052f, 1.6057f}, // Flagpole
674 {BG_IC_GO_FLAGPOLE_1_5, GO_FLAGPOLE_1, 251.016f, -1159.32f, 17.2376f, -2.25147f}, // Flagpole
675 {BG_IC_GO_FLAGPOLE_1_6, GO_FLAGPOLE_1, 1269.502f, -400.809f, 37.62525f, -1.762782f}, // Flagpole
676
677 {BG_IC_GO_HORDE_KEEP_PORTCULLIS, GO_HORDE_KEEP_PORTCULLIS, 1283.05f, -765.878f, 50.8297f, -3.13286f}, // Horde Keep Portcullis
678
679 {BG_IC_GO_STOVE_1_1, GO_STOVE_1, 903.291f, -457.345f, 18.1356f, 2.23402f}, // Stove
680 {BG_IC_GO_STOVE_2_1, GO_STOVE_2, 761.462f, -446.684f, 22.5602f, 0.244344f}, // Stove
681 {BG_IC_GO_STOVE_1_2, GO_STOVE_1, 11068.13f, -336.373f, 18.5647f, -2.59181f}, // Stove
682 {BG_IC_GO_STOVE_2_2, GO_STOVE_2, 1118.32f, -363.969f, 18.5532f, -3.08918f}, // Stove
683
684 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1, GO_HUGE_SEAFORIUM_BOMB_A, 297.3212f, -851.321167f, 48.91627f, -0.94247663f},
685 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_2, GO_HUGE_SEAFORIUM_BOMB_A, 298.104156f, -861.026062f, 48.916275f, -2.75761318f},
686 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_3, GO_HUGE_SEAFORIUM_BOMB_A, 300.371521f, -818.732666f, 48.91625f, 0.785396755f},
687 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_4, GO_HUGE_SEAFORIUM_BOMB_A, 302.1354f, -810.7083f, 48.91625f, -1.04719758f},
688
689 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_1, GO_HUGE_SEAFORIUM_BOMB_H, 1268.30908f, -745.783f, 48.9187775f, 0.785396755f},
690 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_2, GO_HUGE_SEAFORIUM_BOMB_H, 1268.50867f, -738.1215f, 48.9175f, -1.04719758f},
691 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_3, GO_HUGE_SEAFORIUM_BOMB_H, 1273.066f, -786.572937f, 48.9419174f, -0.94247663f},
692 {BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4, GO_HUGE_SEAFORIUM_BOMB_H, 1273.849f, -796.2778f, 48.9364281f, -2.75761318f},
693
697};
698
700{
701 {750.601f, -864.597f, 13.4754f, 1.93731f},
702 {785.509f, -864.715f, 13.3993f, 2.47837f}
703};
704
722
728
730{
747
753
759
765
771
777
783
790
797
808
823
832
833const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2] = {0, 0, 1480, 1481, 1482, 1485, 1486, 1483, 1484};
834
836{
837 {0.0f, 0.0f, 0.0f, 0.0f}, // no grave
838 {0.0f, 0.0f, 0.0f, 0.0f}, // no grave
839 {629.57f, -279.83f, 11.33f, 0.0f}, // dock
840 {780.729f, -1103.08f, 135.51f, 2.27f}, // hangar
841 {775.74f, -652.77f, 9.31f, 4.27f}, // workshop
842 {278.42f, -883.20f, 49.89f, 1.53f}, // alliance starting base
843 {1300.91f, -834.04f, 48.91f, 1.69f}, // horde starting base
844 {438.86f, -310.04f, 51.81f, 5.87f}, // last resort alliance
845 {1148.65f, -1250.98f, 16.60f, 1.74f}, // last resort horde
846};
847
857
866
868{
869 { NODE_TYPE_REFINERY, 35377, 35378, 35379, 35380 },
870 { NODE_TYPE_QUARRY, 35373, 35374, 35375, 35376 },
871 { NODE_TYPE_DOCKS, 35365, 35366, 35367, 35368 },
872 { NODE_TYPE_HANGAR, 35369, 35370, 35371, 35372 },
873 { NODE_TYPE_WORKSHOP, 35278, 35286, 35279, 35280 },
874 { NODE_TYPE_GRAVEYARD_A, 35461, 35459, 35463, 35466 },
875 { NODE_TYPE_GRAVEYARD_H, 35462, 35460, 35464, 35465 }
876};
877
878// I.E: Hangar, Quarry, Graveyards .. etc
880{
881 uint32 gameobject_type; // with this we will get the GameObject of that point
882 uint32 gameobject_entry; // what gameobject entry is active here.
883 TeamId faction; // who has this node
884 ICNodePointType nodeType; // here we can specify if it is graveyards, hangar etc...
885 uint32 banners[4]; // the banners that have this point
886 bool needChange; // this is used for the 1 minute time period after the point is captured
887 uint32 timer; // the same use for needChange
888 uint32 last_entry; // the last gameobject_entry
889 uint32 worldStates[5]; // the worldstates that represent the node in the map
891};
892
894{
902};
903
909
911{
912 friend class BattlegroundIC;
913
914 protected:
916
917 void UpdateScore(uint32 type, uint32 value) override
918 {
919 switch (type)
920 {
922 BasesAssaulted += value;
923 break;
925 BasesDefended += value;
926 break;
927 default:
929 break;
930 }
931 }
932
934
935 uint32 GetAttr1() const override { return BasesAssaulted; }
936 uint32 GetAttr2() const override { return BasesDefended; }
937
940};
941
943{
944 public:
947
948 /* inherited from BattlegroundClass */
949 void AddPlayer(Player* player) override;
950 void StartingEventCloseDoors() override;
951 void StartingEventOpenDoors() override;
952 void PostUpdateImpl(uint32 diff) override;
953
954 void RemovePlayer(Player* player, ObjectGuid guid, uint32 team) override;
955 void HandleAreaTrigger(Player* player, uint32 trigger) override;
956 bool SetupBattleground() override;
957 void SpawnLeader(uint32 teamid);
958 void HandleKillUnit(Creature* unit, Player* killer) override;
959 void HandleKillPlayer(Player* player, Player* killer) override;
960 void EventPlayerClickedOnFlag(Player* source, GameObject* /*target_obj*/) override;
961
962 void DestroyGate(Player* player, GameObject* go) override;
963
964 WorldSafeLocsEntry const* GetClosestGraveyard(Player* player) override;
965
966 /* Scorekeeping */
968
969 void HandlePlayerResurrect(Player* player) override;
970
971 uint32 GetNodeState(uint8 nodeType) const { return (uint8)nodePoint[nodeType].nodeState; }
972
973 bool IsAllNodesControlledByTeam(uint32 team) const override;
974
975 bool IsSpellAllowed(uint32 spellId, Player const* player) const override;
976
977 private:
986
989
990 uint32 GetNextBanner(ICNodePoint* node, uint32 team, bool returnDefinitve);
991
993 {
994 uint32 i = 0;
995 switch (id)
996 {
997 case GO_HORDE_GATE_1: i = BG_IC_H_FRONT ;break;
998 case GO_HORDE_GATE_2: i = BG_IC_H_WEST ;break;
999 case GO_HORDE_GATE_3: i = BG_IC_H_EAST ;break;
1000 case GO_ALLIANCE_GATE_3: i = BG_IC_A_FRONT ;break;
1001 case GO_ALLIANCE_GATE_1: i = BG_IC_A_WEST ;break;
1002 case GO_ALLIANCE_GATE_2: i = BG_IC_A_EAST ;break;
1003 }
1004 return i;
1005 }
1006
1008 {
1009 uint32 uws = 0;
1010
1011 switch (id)
1012 {
1013 case GO_HORDE_GATE_1:
1015 break;
1016 case GO_HORDE_GATE_2:
1018 break;
1019 case GO_HORDE_GATE_3:
1021 break;
1022 case GO_ALLIANCE_GATE_3:
1024 break;
1025 case GO_ALLIANCE_GATE_1:
1027 break;
1028 case GO_ALLIANCE_GATE_2:
1030 break;
1031 }
1032 return uws;
1033 }
1034
1036 void HandleCapturedNodes(ICNodePoint* node, bool recapture);
1038};
1039
1040#endif
const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2]
HonorRewards
@ RESOURCE_HONOR_AMOUNT
@ WINNER_HONOR_AMOUNT
ICBroadcastTexts
@ BG_IC_TEXT_WEST_GATE_HORDE_DESTROYED
@ BG_IC_TEXT_FRONT_GATE_ALLIANCE_DESTROYED
@ BG_IC_TEXT_WEST_GATE_ALLIANCE_DESTROYED
@ BG_IC_TEXT_FRONT_GATE_HORDE_DESTROYED
@ BG_IC_TEXT_EAST_GATE_HORDE_DESTROYED
@ BG_IC_TEXT_EAST_GATE_ALLIANCE_DESTROYED
Actions
@ ACTION_GUNSHIP_READY
ICNodePointType
@ NODE_TYPE_GRAVEYARD_A
@ NODE_TYPE_REFINERY
@ NODE_TYPE_DOCKS
@ NODE_TYPE_HANGAR
@ NODE_TYPE_QUARRY
@ MAX_NODE_TYPES
@ NODE_TYPE_WORKSHOP
@ NODE_TYPE_GRAVEYARD_H
creaturesIC
@ NPC_WORLD_TRIGGER_ALLIANCE_FRIENDLY
@ NPC_SIEGE_ENGINE_H
@ NPC_WORLD_TRIGGER_HORDE_FRIENDLY
@ NPC_HORDE_GUNSHIP_CAPTAIN
@ NPC_KEEP_CANNON
@ NPC_KOR_KRON_GUARD
@ NPC_SIEGE_ENGINE_A
@ NPC_HIGH_COMMANDER_HALFORD_WYRMBANE
@ NPC_GLAIVE_THROWER_A
@ NPC_WORLD_TRIGGER_NOT_FLOATING
@ NPC_GLAIVE_THROWER_H
@ NPC_OVERLORD_AGMAR
@ NPC_DEMOLISHER
@ NPC_CATAPULT
@ NPC_ALLIANCE_GUNSHIP_CANNON
@ NPC_HORDE_GUNSHIP_CANNON
@ NPC_ALLIANCE_GUNSHIP_CAPTAIN
@ NPC_SEVEN_TH_LEGION_INFANTRY
@ DOCKS_UPDATE_TIME
@ CLOSE_DOORS_TIME
@ IC_RESOURCE_TIME
@ BANNER_STATE_CHANGE_TIME
@ TRANSPORT_PERIOD_TIME
@ WORKSHOP_UPDATE_TIME
ICNodeInfo const ICNodes[MAX_NODE_TYPES]
BG_IC_GOs
@ BG_IC_GO_BENCH_3
@ BG_IC_GO_BONFIRE_2
@ BG_IC_GO_TELEPORTER_3_2
@ BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01
@ BG_IC_GO_HORDE_GATE_3
@ BG_IC_GO_CHAIR_8_2
@ BG_IC_GO_TELEPORTER_EFFECTS_H_5
@ BG_IC_GO_TELEPORTER_2_3
@ BG_IC_GO_TELEPORTER_EFFECTS_H_1
@ BG_IC_GO_TELEPORTER_4_3
@ BG_IC_GO_FLAGPOLE_1_1
@ BG_IC_GO_HANGAR_BANNER
@ BG_IC_GO_CHAIR_3_1
@ BG_IC_GO_HORDE_GATE_2
@ BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_3
@ BG_IC_GO_CHAIR_7
@ BG_IC_GO_BENCH_4
@ BG_IC_GO_TELEPORTER_EFFECTS_A_3
@ BG_IC_GO_ALLIANCE_GATE_3
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_3
@ BG_IC_GO_BRAZIER_2
@ BG_IC_GO_DOODAD_PORTCULLISACTIVE02
@ BG_IC_GO_BONFIRE_3
@ BG_IC_GO_BONFIRE_6
@ BG_IC_GO_HORDE_BANNER
@ BG_IC_GO_STOVE_1_2
@ BG_IC_GO_CHAIR_5
@ BG_IC_GO_BENCH_5
@ BG_IC_GO_BENCH_1
@ BG_IC_GO_TELEPORTER_EFFECTS_A_6
@ BG_IC_GO_HANGAR_TELEPORTER_EFFECT_3
@ BG_IC_GO_CHAIR_3_2
@ BG_IC_GO_HANGAR_TELEPORTER_3
@ BG_IC_GO_WORKSHOP_BANNER
@ BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03
@ BG_IC_GO_CHAIR_9
@ BG_IC_GO_ALLIANCE_BANNER
@ BG_IC_GO_TELEPORTER_1_2
@ BG_IC_GO_BRAZIER_3
@ BG_IC_GO_FLAGPOLE_1_4
@ BG_IC_GO_FLAGPOLE_1_2
@ BG_IC_GO_BONFIRE_1
@ BG_IC_GO_TELEPORTER_EFFECTS_A_2
@ BG_IC_GO_TELEPORTER_EFFECTS_H_6
@ BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01
@ BG_IC_GO_CHAIR_2
@ BG_IC_GO_HANGAR_TELEPORTER_1
@ BG_IC_GO_ALLIANCE_GATE_1
@ BG_IC_GO_CHAIR_6_1
@ BG_IC_GO_TELEPORTER_3_1
@ BG_IC_GO_REFINERY_BANNER
@ BG_IC_GO_FLAGPOLE_1_3
@ BG_IC_GO_HANGAR_TELEPORTER_EFFECT_2
@ BG_IC_GO_SEAFORIUM_BOMBS_1
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_4
@ BG_IC_GO_QUARRY_BANNER
@ BG_IC_GO_TELEPORTER_4_1
@ BG_IC_GO_TELEPORTER_EFFECTS_H_3
@ BG_IC_GO_STOVE_2_2
@ BG_IC_GO_CHAIR_6_2
@ BG_IC_GO_TELEPORTER_EFFECTS_A_4
@ BG_IC_GO_TELEPORTER_1_3
@ BG_IC_GO_DOODAD_VR_PORTCULLIS01_2
@ BG_IC_GO_SEAFORIUM_BOMBS_2
@ BG_IC_GO_DOODAD_HU_PORTCULLIS01_1
@ BG_IC_GO_BONFIRE_4
@ BG_IC_GO_FLAGPOLE_2_2
@ BG_IC_GO_CHAIR_4
@ BG_IC_GO_DOCKS_BANNER
@ BG_IC_GO_FLAGPOLE_1_5
@ BG_IC_GO_HANGAR_TELEPORTER_2
@ BG_IC_GO_HORDE_KEEP_PORTCULLIS
@ BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03
@ BG_IC_GO_TELEPORTER_EFFECTS_A_5
@ BG_IC_GO_BRAZIER_4
@ BG_IC_GO_STOVE_2_1
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_2
@ BG_IC_GO_BRAZIER_1
@ BG_IC_GO_TELEPORTER_EFFECTS_A_1
@ BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1
@ BG_IC_GO_FLAGPOLE_2_1
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_1
@ BG_IC_GO_BENCH_2
@ BG_IC_GO_TELEPORTER_EFFECTS_H_4
@ BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02
@ BG_IC_GO_BONFIRE_5
@ BG_IC_GO_DOODAD_VR_PORTCULLIS01_1
@ BG_IC_GO_HORDE_GATE_1
@ BG_IC_GO_TELEPORTER_3_3
@ BG_IC_GO_TELEPORTER_2_1
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1
@ BG_IC_GO_STOVE_1_1
@ BG_IC_GO_TELEPORTER_EFFECTS_H_2
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_2
@ BG_IC_GO_CHAIR_1
@ BG_IC_GO_CHAIR_8_1
@ BG_IC_GO_ALLIANCE_GATE_2
@ BG_IC_GO_TELEPORTER_4_2
@ BG_IC_GO_TELEPORTER_2_2
@ BG_IC_GO_DOODAD_HU_PORTCULLIS01_2
@ BG_IC_GO_FLAGPOLE_1_6
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4
@ BG_IC_GO_TELEPORTER_1_1
@ BG_IC_GO_DOODAD_PORTCULLISACTIVE01
const Position BG_IC_WorkshopVehicles[5]
const ICGo BG_IC_TeleporterEffects[MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS]
ICDoorList
@ BG_IC_H_FRONT
@ BG_IC_A_WEST
@ BG_IC_H_WEST
@ BG_IC_A_FRONT
@ BG_IC_MAXDOOR
@ BG_IC_A_EAST
@ BG_IC_H_EAST
Position const BG_IC_SpiritGuidePos[MAX_NODE_TYPES+2]
@ SPELL_PARACHUTE
@ SPELL_LAUNCH_NO_FALLING_DAMAGE
@ SPELL_DRIVING_CREDIT_GLAIVE
@ SPELL_DRIVING_CREDIT_SIEGE
@ SPELL_PARACHUTE_IC
@ SPELL_SIMPLE_TELEPORT
@ SPELL_QUARRY
@ SPELL_SLOW_FALL
@ SPELL_DRIVING_CREDIT_DEMOLISHER
@ SPELL_BACK_DOOR_JOB_ACHIEVEMENT
@ SPELL_DESTROYED_VEHICLE_ACHIEVEMENT
@ SPELL_DRIVING_CREDIT_CATAPULT
@ SPELL_OIL_REFINERY
@ SPELL_TELEPORT_VISUAL_ONLY
BG_IC_MaxSpawns
@ MAX_WORKSHOP_SPAWNS
@ MAX_SPIRIT_GUIDES_SPAWNS
@ MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION
@ MAX_HANGAR_NPCS_SPAWNS
@ MAX_NORMAL_GAMEOBJECTS_SPAWNS
@ MAX_AIRSHIPS_SPAWNS
@ MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION
@ MAX_DOCKS_SPAWNS
@ MAX_NORMAL_NPCS_SPAWNS
@ MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS
@ MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS
@ MAX_CATAPULTS_SPAWNS_PER_FACTION
@ MAX_DEMOLISHERS_SPAWNS_PER_FACTION
@ MAX_FORTRESS_TELEPORTERS_SPAWNS
@ MAX_FORTRESS_GATES_SPAWNS
@ MAX_TRIGGER_SPAWNS_PER_FACTION
@ MAX_CAPTAIN_SPAWNS_PER_FACTION
@ MAX_HANGAR_TELEPORTERS_SPAWNS
const uint32 BG_IC_Factions[2]
ICWorldStates
@ BG_IC_HANGAR_CONTROLLED_H
@ BG_IC_GATE_WEST_A_WS_OPEN
@ BG_IC_QUARRY_CONTROLLED_H
@ BG_IC_HANGAR_CONTROLLED_A
@ BG_IC_HORDE_RENFORT
@ BG_IC_QUARRY_CONTROLLED_A
@ BG_IC_WORKSHOP_CONFLICT_A
@ BG_IC_WORKSHOP_CONTROLLED_H
@ BG_IC_GATE_FRONT_A_WS_OPEN
@ BG_IC_HORDE_RENFORT_SET
@ BG_IC_GATE_FRONT_H_WS_OPEN
@ BG_IC_QUARRY_CONFLICT_A
@ BG_IC_HORDE_KEEP_CONTROLLED_A
@ BG_IC_HORDE_KEEP_UNCONTROLLED
@ BG_IC_HORDE_KEEP_CONFLICT_H
@ BG_IC_GATE_FRONT_A_WS_CLOSED
@ BG_IC_WORKSHOP_UNCONTROLLED
@ BG_IC_HORDE_KEEP_CONFLICT_A
@ BG_IC_GATE_EAST_H_WS_OPEN
@ BG_IC_GATE_WEST_H_WS_OPEN
@ BG_IC_WORKSHOP_CONTROLLED_A
@ BG_IC_GATE_FRONT_H_WS_CLOSED
@ BG_IC_DOCKS_UNCONTROLLED
@ BG_IC_REFINERY_CONTROLLED_A
@ BG_IC_GATE_EAST_H_WS_CLOSED
@ BG_IC_QUARRY_CONFLICT_H
@ BG_IC_WORKSHOP_CONFLICT_H
@ BG_IC_GATE_WEST_H_WS_CLOSED
@ BG_IC_HANGAR_CONFLICT_A
@ BG_IC_ALLIANCE_RENFORT_SET
@ BG_IC_ALLIANCE_KEEP_UNCONTROLLED
@ BG_IC_REFINERY_CONTROLLED_H
@ BG_IC_HANGAR_CONFLICT_H
@ BG_IC_ALLIANCE_KEEP_CONTROLLED_H
@ BG_IC_HORDE_KEEP_CONTROLLED_H
@ BG_IC_GATE_WEST_A_WS_CLOSED
@ BG_IC_HANGAR_UNCONTROLLED
@ BG_IC_ALLIANCE_KEEP_CONFLICT_A
@ BG_IC_DOCKS_CONTROLLED_H
@ BG_IC_ALLIANCE_KEEP_CONTROLLED_A
@ BG_IC_GATE_EAST_A_WS_OPEN
@ BG_IC_QUARRY_UNCONTROLLED
@ BG_IC_REFINERY_CONFLICT_H
@ BG_IC_ALLIANCE_RENFORT
@ BG_IC_ALLIANCE_KEEP_CONFLICT_H
@ BG_IC_GATE_EAST_A_WS_CLOSED
@ BG_IC_DOCKS_CONTROLLED_A
@ BG_IC_DOCKS_CONFLICT_A
@ BG_IC_DOCKS_CONFLICT_H
@ BG_IC_REFINERY_UNCONTROLLED
@ BG_IC_REFINERY_CONFLICT_A
BG_IC_GateState
@ BG_IC_GATE_DESTROYED
@ BG_IC_GATE_OK
@ BG_IC_GATE_DAMAGED
const ICGo BG_IC_ObjSpawnlocs[MAX_NORMAL_GAMEOBJECTS_SPAWNS]
const Position BG_IC_HangarTeleporters[3]
const Position BG_IC_HangarTrigger[2]
const ICNodePoint nodePointInitial[MAX_NODE_TYPES]
const ICNpc BG_IC_NpcSpawnlocs[MAX_NORMAL_NPCS_SPAWNS]
BannersTypes
@ BANNER_A_CONTROLLED
@ BANNER_H_CONTESTED
@ BANNER_H_CONTROLLED
@ BANNER_A_CONTESTED
const Position workshopBombs[2]
BG_IC_Objectives
@ IC_OBJECTIVE_ASSAULT_BASE
@ IC_OBJECTIVE_DEFEND_BASE
ICNodeState
@ NODE_STATE_CONFLICT_H
@ NODE_STATE_CONTROLLED_A
@ NODE_STATE_CONTROLLED_H
@ NODE_STATE_UNCONTROLLED
@ NODE_STATE_CONFLICT_A
const Position BG_IC_DocksVehiclesGlaives[2]
const Position BG_IC_DocksVehiclesCatapults[4]
gameobjectsIC
@ GO_HORDE_BANNER_GRAVEYARD_A_CONT
@ GO_TELEPORTER_1
@ GO_REFRESHMENT_PORTAL
@ GO_WORKSHOP_BANNER
@ GO_ALLIANCE_BANNER
@ GO_TELEPORTER_3
@ GO_ALLIANCE_BANNER_GRAVEYARD_H_CONT
@ GO_TELEPORTER_EFFECTS_A
@ GO_BONFIRE_5
@ GO_ALLIANCE_GATE_3
@ GO_HORDE_BANNER_WORKSHOP_CONT
@ GO_CHAIR_5
@ GO_ALLIANCE_BANNER_HANGAR_CONT
@ GO_CHAIR_2
@ GO_TELEPORTER_4
@ GO_HORDE_BANNER_HANGAR_CONT
@ GO_BRAZIER_3
@ GO_BENCH_4
@ GO_ALLIANCE_BANNER_WORKSHOP_CONT
@ GO_STOVE_1
@ GO_HORDE_BANNER_GRAVEYARD_H_CONT
@ GO_DOODAD_PORTCULLISACTIVE02
@ GO_DOODAD_PORTCULLISACTIVE01
@ GO_HORDE_GATE_2
@ GO_HUGE_SEAFORIUM_BOMB_H
@ GO_STOVE_2
@ GO_HORDE_BANNER_QUARRY
@ GO_HORDE_GUNSHIP
@ GO_HORDE_BANNER_DOCK
@ GO_HUGE_SEAFORIUM_BOMB_A
@ GO_BENCH_3
@ GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS
@ GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01
@ GO_HORDE_BANNER
@ GO_CHAIR_6
@ GO_HORDE_BANNER_GRAVEYARD_H
@ GO_HORDE_BANNER_DOCK_CONT
@ GO_TELEPORTER_EFFECTS_H
@ GO_REFINERY_BANNER
@ GO_HORDE_GUNSHIP_PORTAL_EFFECTS
@ GO_CHAIR_3
@ GO_BENCH_2
@ GO_FLAGPOLE_1
@ GO_BONFIRE_6
@ GO_CHAIR_8
@ GO_ALLIANCE_BANNER_DOCK
@ GO_BONFIRE_1
@ GO_BENCH_5
@ GO_GUNSHIP_PORTAL_1
@ GO_CHAIR_7
@ GO_HORDE_GATE_1
@ GO_CHAIR_4
@ GO_BONFIRE_4
@ GO_SEAFORIUM_BOMBS
@ GO_CHAIR_9
@ GO_HORDE_BANNER_QUARRY_CONT
@ GO_HORDE_BANNER_WORKSHOP
@ GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01
@ GO_HORDE_BANNER_REFINERY_CONT
@ GO_DOODAD_HU_PORTCULLIS01
@ GO_BONFIRE_2
@ GO_ALLIANCE_BANNER_WORKSHOP
@ GO_ALLIANCE_GUNSHIP_PORTAL
@ GO_HORDE_KEEP_PORTCULLIS
@ GO_HANGAR_BANNER
@ GO_TELEPORTER_2
@ GO_BENCH_1
@ GO_ALLIANCE_GUNSHIP
@ GO_HORDE_BANNER_HANGAR
@ GO_ALLIANCE_BANNER_REFINERY_CONT
@ GO_DOODAD_VR_PORTCULLIS01
@ GO_QUARRY_BANNER
@ GO_DOCKS_BANNER
@ GO_ALLIANCE_BANNER_GRAVEYARD_A_CONT
@ GO_HORDE_BANNER_GRAVEYARD_A
@ GO_HORDE_GATE_3
@ GO_HORDE_BANNER_REFINERY
@ GO_ALLIANCE_GATE_2
@ GO_FLAGPOLE_2
@ GO_ALLIANCE_GATE_1
@ GO_BONFIRE_3
@ GO_HORDE_GUNSHIP_PORTAL
@ GO_BRAZIER_1
@ GO_ALLIANCE_BANNER_HANGAR
@ GO_ALLIANCE_BANNER_REFINERY
@ GO_ALLIANCE_BANNER_DOCK_CONT
@ GO_GUNSHIP_PORTAL_2
@ GO_BRAZIER_4
@ GO_BRAZIER_2
@ GO_ALLIANCE_BANNER_GRAVEYARD_H
@ GO_CHAIR_1
@ GO_ALLIANCE_BANNER_QUARRY_CONT
@ GO_ALLIANCE_BANNER_QUARRY
@ GO_ALLIANCE_BANNER_GRAVEYARD_A
BG_IC_NPCs
@ BG_IC_NPC_KEEP_CANNON_4
@ BG_IC_NPC_SPIRIT_GUIDE_6
@ BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1
@ BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2
@ BG_IC_NPC_CATAPULT_3_H
@ BG_IC_NPC_KEEP_CANNON_24
@ BG_IC_NPC_KEEP_CANNON_17
@ BG_IC_NPC_GLAIVE_THROWER_1_H
@ BG_IC_NPC_KOR_KRON_GUARD_3
@ BG_IC_NPC_KEEP_CANNON_22
@ BG_IC_NPC_KEEP_CANNON_14
@ BG_IC_NPC_KEEP_CANNON_11
@ BG_IC_NPC_DEMOLISHER_2_H
@ BG_IC_NPC_GUNSHIP_CAPTAIN_1
@ BG_IC_NPC_KEEP_CANNON_13
@ BG_IC_NPC_KOR_KRON_GUARD_4
@ BG_IC_NPC_KOR_KRON_GUARD_1
@ BG_IC_NPC_KEEP_CANNON_19
@ BG_IC_NPC_KEEP_CANNON_3
@ BG_IC_NPC_SIEGE_ENGINE_H
@ BG_IC_NPC_CATAPULT_4_H
@ BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3
@ BG_IC_NPC_DEMOLISHER_1_H
@ BG_IC_NPC_SPIRIT_GUIDE_3
@ BG_IC_NPC_GUNSHIP_CAPTAIN_2
@ BG_IC_NPC_KEEP_CANNON_2
@ BG_IC_NPC_SPIRIT_GUIDE_4
@ BG_IC_NPC_KEEP_CANNON_16
@ BG_IC_NPC_CATAPULT_1_A
@ BG_IC_NPC_CATAPULT_1_H
@ BG_IC_NPC_DEMOLISHER_2_A
@ BG_IC_NPC_DEMOLISHER_1_A
@ BG_IC_NPC_SPIRIT_GUIDE_5
@ BG_IC_NPC_KEEP_CANNON_8
@ BG_IC_NPC_KEEP_CANNON_6
@ BG_IC_NPC_KEEP_CANNON_18
@ BG_IC_NPC_OVERLORD_AGMAR
@ BG_IC_NPC_CATAPULT_2_A
@ BG_IC_NPC_SIEGE_ENGINE_A
@ BG_IC_NPC_SPIRIT_GUIDE_7
@ BG_IC_NPC_DEMOLISHER_4_A
@ BG_IC_NPC_KEEP_CANNON_5
@ BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4
@ BG_IC_NPC_KEEP_CANNON_12
@ BG_IC_NPC_DEMOLISHER_3_H
@ BG_IC_NPC_KEEP_CANNON_21
@ BG_IC_NPC_KEEP_CANNON_23
@ BG_IC_NPC_KEEP_CANNON_10
@ BG_IC_NPC_KEEP_CANNON_9
@ BG_IC_NPC_KEEP_CANNON_1
@ BG_IC_NPC_KEEP_CANNON_7
@ BG_IC_NPC_DEMOLISHER_3_A
@ BG_IC_NPC_CATAPULT_4_A
@ BG_IC_NPC_KOR_KRON_GUARD_2
@ BG_IC_NPC_GLAIVE_THROWER_1_A
@ BG_IC_NPC_CATAPULT_2_H
@ BG_IC_NPC_SPIRIT_GUIDE_1
@ BG_IC_NPC_GLAIVE_THROWER_2_A
@ BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE
@ BG_IC_NPC_SPIRIT_GUIDE_2
@ BG_IC_NPC_GLAIVE_THROWER_2_H
@ BG_IC_NPC_KEEP_CANNON_15
@ BG_IC_NPC_KEEP_CANNON_20
@ BG_IC_NPC_CATAPULT_3_A
@ BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING
@ BG_IC_NPC_DEMOLISHER_4_H
const Position BG_IC_HangarTeleporterEffects[3]
const Position BG_IC_HangarCaptains[4]
const ICGo BG_IC_Teleporters[MAX_FORTRESS_TELEPORTERS_SPAWNS]
@ SCORE_BASES_ASSAULTED
@ SCORE_BASES_DEFENDED
uint8_t uint8
Definition Define.h:135
uint16_t uint16
Definition Define.h:134
uint32_t uint32
Definition Define.h:133
Spells
Definition PlayerAI.cpp:32
TeamId
@ TEAM_NEUTRAL
@ TEAM_ALLIANCE
@ TEAM_HORDE
void StartingEventCloseDoors() override
void HandleCapturedNodes(ICNodePoint *node, bool recapture)
void UpdateNodeWorldState(ICNodePoint *node)
bool IsSpellAllowed(uint32 spellId, Player const *player) const override
uint32 GetNodeState(uint8 nodeType) const
void HandleKillUnit(Creature *unit, Player *killer) override
void RemovePlayer(Player *player, ObjectGuid guid, uint32 team) override
Transport * gunshipHorde
void EventPlayerClickedOnFlag(Player *source, GameObject *) override
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
BG_IC_GateState GateStatus[6]
WorldSafeLocsEntry const * GetClosestGraveyard(Player *player) override
void AddPlayer(Player *player) override
void SpawnLeader(uint32 teamid)
void HandleKillPlayer(Player *player, Player *killer) override
uint32 GetGateIDFromEntry(uint32 id)
Transport * gunshipAlliance
void HandleAreaTrigger(Player *player, uint32 trigger) override
uint16 factionReinforcements[2]
void DestroyGate(Player *player, GameObject *go) override
ICNodePoint nodePoint[7]
uint32 GetNextBanner(ICNodePoint *node, uint32 team, bool returnDefinitve)
uint32 closeFortressDoorsTimer
void StartingEventOpenDoors() override
uint32 siegeEngineWorkshopTimer
void PostUpdateImpl(uint32 diff) override
Post-update hook.
uint32 GetWorldStateFromGateEntry(uint32 id, bool open)
bool IsAllNodesControlledByTeam(uint32 team) const override
void HandlePlayerResurrect(Player *player) override
bool SetupBattleground() override
void HandleContestedNodes(ICNodePoint *node)
BattlegroundICScore(ObjectGuid playerGuid)
void BuildObjectivesBlock(WorldPackets::Battleground::PVPLogData_Player &playerData) override
void UpdateScore(uint32 type, uint32 value) override
uint32 GetAttr2() const override
uint32 GetAttr1() const override
virtual void UpdateScore(uint32 type, uint32 value)
float z
uint32 entry
float x
float o
float y
uint32 type
uint32 TextAllianceTaken
uint32 TextDefended
uint32 TextAssaulted
uint32 TextHordeTaken
uint32 banners[4]
ICNodeState nodeState
ICNodePointType nodeType
uint32 gameobject_type
uint32 worldStates[5]
uint32 gameobject_entry
uint32 entry
uint32 type
TeamId team