AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
boss_chess_event.cpp File Reference
#include "CreatureScript.h"
#include "ObjectMgr.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "Unit.h"
#include "World.h"
#include "karazhan.h"
#include <array>
#include "SpellMgr.h"

Go to the source code of this file.

Classes

struct  BoardCell
 
struct  npc_echo_of_medivh
 
struct  npc_chesspiece
 
struct  npc_chess_move_trigger
 
class  spell_control_piece
 

Enumerations

enum  EchoOfMedivhGossipOptions {
  MEDIVH_GOSSIP_START_PVE = 1 ,
  MEDIVH_GOSSIP_RESTART ,
  MEDIVH_GOSSIP_START_PVP
}
 
enum  KarazhanChessSpells {
  SPELL_MOVE_1 = 37146 ,
  SPELL_MOVE_2 = 37144 ,
  SPELL_MOVE_3 = 37148 ,
  SPELL_MOVE_4 = 37151 ,
  SPELL_MOVE_5 = 37152 ,
  SPELL_MOVE_6 = 37153 ,
  SPELL_MOVE_GENERIC = 30012 ,
  SPELL_CHANGE_FACING = 30284 ,
  SPELL_MOVE_MARKER = 32261 ,
  SPELL_MOVE_COOLDOWN = 30543 ,
  SPELL_CONTROL_PIECE = 30019 ,
  SPELL_RECENTLY_INGAME = 30529 ,
  SPELL_FURY_OF_MEDIVH_FIRE = 39345 ,
  SPELL_MELEE_ATTACK_TIMER = 32226 ,
  SPELL_MELEE_ATTACK_TIMER_TRIGGER = 32225 ,
  SPELL_MELEE_DAMAGE = 32247
}
 
enum  KarazhanChessNPCs { NPC_CHESS_MOVE_TRIGGER = 22519 }
 
enum  KarazhanChessTeam {
  DEAD_ALLIANCE = 0 ,
  DEAD_HORDE = 1
}
 
enum  KarazhanChessOrientationType : uint8 {
  ORI_SE = 0 ,
  ORI_S = 1 ,
  ORI_SW = 2 ,
  ORI_W = 3 ,
  ORI_NW = 4 ,
  ORI_N = 5 ,
  ORI_NE = 6 ,
  ORI_E = 7 ,
  MAX_ORI
}
 
enum  KarazhanChessPiecesSpells {
  SPELL_KING_H_1 = 37472 ,
  SPELL_KING_A_1 = 37471 ,
  SPELL_QUEEN_H_1 = 37463 ,
  SPELL_QUEEN_A_1 = 37462 ,
  SPELL_BISHOP_H_1 = 37461 ,
  SPELL_BISHOP_A_1 = 37459 ,
  SPELL_KNIGHT_H_1 = 37502 ,
  SPELL_KNIGHT_A_1 = 37453 ,
  SPELL_ROOK_H_1 = 37428 ,
  SPELL_ROOK_A_1 = 37427 ,
  SPELL_PAWN_H_1 = 37416 ,
  SPELL_PAWN_A_1 = 37414 ,
  SPELL_KING_H_2 = 37476 ,
  SPELL_KING_A_2 = 37474 ,
  SPELL_QUEEN_H_2 = 37469 ,
  SPELL_QUEEN_A_2 = 37465 ,
  SPELL_BISHOP_H_2 = 37456 ,
  SPELL_BISHOP_A_2 = 37455 ,
  SPELL_KNIGHT_H_2 = 37454 ,
  SPELL_KNIGHT_A_2 = 37498 ,
  SPELL_ROOK_H_2 = 37434 ,
  SPELL_ROOK_A_2 = 37432 ,
  SPELL_PAWN_H_2 = 37413 ,
  SPELL_PAWN_A_2 = 37406
}
 
enum  ChessEventTalks {
  TALK_EVENT_BEGIN = 0 ,
  TALK_MEDIHV_CHEAT = 1 ,
  TALK_MEDIHV_CHEAT_EMOTE = 2 ,
  TALK_PLAYER_LOOSE_PAWN = 3 ,
  TALK_PLAYER_LOOSE_ROOK = 4 ,
  TALK_PLAYER_LOOSE_KNIGHT = 5 ,
  TALK_PLAYER_LOOSE_BISHOP = 6 ,
  TALK_PLAYER_LOOSE_QUEEN = 7 ,
  TALK_PLAYER_LOOSE_KING = 8 ,
  TALK_MEDIVH_LOOSE_PAWN = 9 ,
  TALK_MEDIVH_LOOSE_ROOK = 10 ,
  TALK_MEDIVH_LOOSE_KNIGHT = 11 ,
  TALK_MEDIVH_LOOSE_BISHOP = 12 ,
  TALK_MEDIVH_LOOSE_QUEEN = 13 ,
  TALK_MEDIVH_LOOSE_KING = 14 ,
  TALK_CHECKMATE = 15 ,
  TALK_EVENT_ENDED = 16
}
 
enum  ChessPieceSearchType {
  CHESS_PIECE_SEARCH_TYPE_CLOSEST = 1 ,
  CHESS_PIECE_SEARCH_TYPE_RANDOM = 2
}
 

Functions

static bool IsFriendly (Creature *piece, Creature *target)
 
void AddSC_boss_chess_event ()
 

Variables

static constexpr uint8 MAX_ROW = 8
 
static constexpr uint8 MAX_COL = 8
 
static std::array< float, MAX_ORIorientations = { 3.809080f, 3.022091f, 2.235102f, 1.448113f, 0.661124f, 6.1724616f, 5.385472f, 4.598483f }
 

Enumeration Type Documentation

◆ ChessEventTalks

Enumerator
TALK_EVENT_BEGIN 
TALK_MEDIHV_CHEAT 
TALK_MEDIHV_CHEAT_EMOTE 
TALK_PLAYER_LOOSE_PAWN 
TALK_PLAYER_LOOSE_ROOK 
TALK_PLAYER_LOOSE_KNIGHT 
TALK_PLAYER_LOOSE_BISHOP 
TALK_PLAYER_LOOSE_QUEEN 
TALK_PLAYER_LOOSE_KING 
TALK_MEDIVH_LOOSE_PAWN 
TALK_MEDIVH_LOOSE_ROOK 
TALK_MEDIVH_LOOSE_KNIGHT 
TALK_MEDIVH_LOOSE_BISHOP 
TALK_MEDIVH_LOOSE_QUEEN 
TALK_MEDIVH_LOOSE_KING 
TALK_CHECKMATE 
TALK_EVENT_ENDED 
120{
122
125
132
139
140 TALK_CHECKMATE = 15,
142};
@ TALK_PLAYER_LOOSE_KING
Definition boss_chess_event.cpp:131
@ TALK_EVENT_ENDED
Definition boss_chess_event.cpp:141
@ TALK_CHECKMATE
Definition boss_chess_event.cpp:140
@ TALK_EVENT_BEGIN
Definition boss_chess_event.cpp:121
@ TALK_PLAYER_LOOSE_KNIGHT
Definition boss_chess_event.cpp:128
@ TALK_MEDIVH_LOOSE_ROOK
Definition boss_chess_event.cpp:134
@ TALK_PLAYER_LOOSE_QUEEN
Definition boss_chess_event.cpp:130
@ TALK_MEDIVH_LOOSE_BISHOP
Definition boss_chess_event.cpp:136
@ TALK_MEDIVH_LOOSE_PAWN
Definition boss_chess_event.cpp:133
@ TALK_PLAYER_LOOSE_BISHOP
Definition boss_chess_event.cpp:129
@ TALK_MEDIHV_CHEAT_EMOTE
Definition boss_chess_event.cpp:124
@ TALK_PLAYER_LOOSE_PAWN
Definition boss_chess_event.cpp:126
@ TALK_MEDIVH_LOOSE_QUEEN
Definition boss_chess_event.cpp:137
@ TALK_PLAYER_LOOSE_ROOK
Definition boss_chess_event.cpp:127
@ TALK_MEDIVH_LOOSE_KNIGHT
Definition boss_chess_event.cpp:135
@ TALK_MEDIHV_CHEAT
Definition boss_chess_event.cpp:123
@ TALK_MEDIVH_LOOSE_KING
Definition boss_chess_event.cpp:138

◆ ChessPieceSearchType

Enumerator
CHESS_PIECE_SEARCH_TYPE_CLOSEST 
CHESS_PIECE_SEARCH_TYPE_RANDOM 
186{
189};
@ CHESS_PIECE_SEARCH_TYPE_RANDOM
Definition boss_chess_event.cpp:188
@ CHESS_PIECE_SEARCH_TYPE_CLOSEST
Definition boss_chess_event.cpp:187

◆ EchoOfMedivhGossipOptions

Enumerator
MEDIVH_GOSSIP_START_PVE 
MEDIVH_GOSSIP_RESTART 
MEDIVH_GOSSIP_START_PVP 
34{
38};
@ MEDIVH_GOSSIP_RESTART
Definition boss_chess_event.cpp:36
@ MEDIVH_GOSSIP_START_PVP
Definition boss_chess_event.cpp:37
@ MEDIVH_GOSSIP_START_PVE
Definition boss_chess_event.cpp:35

◆ KarazhanChessNPCs

Enumerator
NPC_CHESS_MOVE_TRIGGER 
64{
66};
@ NPC_CHESS_MOVE_TRIGGER
Definition boss_chess_event.cpp:65

◆ KarazhanChessOrientationType

Enumerator
ORI_SE 
ORI_S 
ORI_SW 
ORI_W 
ORI_NW 
ORI_N 
ORI_NE 
ORI_E 
MAX_ORI 
75{
76 ORI_SE = 0, // Horde start
77 ORI_S = 1,
78 ORI_SW = 2,
79 ORI_W = 3,
80 ORI_NW = 4, // Alliance start
81 ORI_N = 5,
82 ORI_NE = 6,
83 ORI_E = 7,
84
86};
@ ORI_NE
Definition boss_chess_event.cpp:82
@ ORI_W
Definition boss_chess_event.cpp:79
@ ORI_E
Definition boss_chess_event.cpp:83
@ ORI_S
Definition boss_chess_event.cpp:77
@ ORI_NW
Definition boss_chess_event.cpp:80
@ ORI_N
Definition boss_chess_event.cpp:81
@ ORI_SE
Definition boss_chess_event.cpp:76
@ MAX_ORI
Definition boss_chess_event.cpp:85
@ ORI_SW
Definition boss_chess_event.cpp:78

◆ KarazhanChessPiecesSpells

Enumerator
SPELL_KING_H_1 
SPELL_KING_A_1 
SPELL_QUEEN_H_1 
SPELL_QUEEN_A_1 
SPELL_BISHOP_H_1 
SPELL_BISHOP_A_1 
SPELL_KNIGHT_H_1 
SPELL_KNIGHT_A_1 
SPELL_ROOK_H_1 
SPELL_ROOK_A_1 
SPELL_PAWN_H_1 
SPELL_PAWN_A_1 
SPELL_KING_H_2 
SPELL_KING_A_2 
SPELL_QUEEN_H_2 
SPELL_QUEEN_A_2 
SPELL_BISHOP_H_2 
SPELL_BISHOP_A_2 
SPELL_KNIGHT_H_2 
SPELL_KNIGHT_A_2 
SPELL_ROOK_H_2 
SPELL_ROOK_A_2 
SPELL_PAWN_H_2 
SPELL_PAWN_A_2 
89{
90 //ability 1
91 SPELL_KING_H_1 = 37472, //Bloodlust
92 SPELL_KING_A_1 = 37471, //Heroism
93 SPELL_QUEEN_H_1 = 37463, //Fireball
94 SPELL_QUEEN_A_1 = 37462, //Elemental Blast
95 SPELL_BISHOP_H_1 = 37461, //Shadow Spear
96 SPELL_BISHOP_A_1 = 37459, //Holy Lance
97 SPELL_KNIGHT_H_1 = 37502, //Howl
98 SPELL_KNIGHT_A_1 = 37453, //Smash
99 SPELL_ROOK_H_1 = 37428, //Hellfire
100 SPELL_ROOK_A_1 = 37427, //Geyser
101 SPELL_PAWN_H_1 = 37416, //Weapon Deflection
102 SPELL_PAWN_A_1 = 37414, //Shield Block
103
104 //ability 2
105 SPELL_KING_H_2 = 37476, //Cleave
106 SPELL_KING_A_2 = 37474, //Sweep
107 SPELL_QUEEN_H_2 = 37469, //Poison Cloud
108 SPELL_QUEEN_A_2 = 37465, //Rain of Fire
109 SPELL_BISHOP_H_2 = 37456, //Shadow Mend
110 SPELL_BISHOP_A_2 = 37455, //Healing
111 SPELL_KNIGHT_H_2 = 37454, //Bite
112 SPELL_KNIGHT_A_2 = 37498, //Stomp
113 SPELL_ROOK_H_2 = 37434, //Fire Shield
114 SPELL_ROOK_A_2 = 37432, //Water Shield
115 SPELL_PAWN_H_2 = 37413, //Vicious Strike
116 SPELL_PAWN_A_2 = 37406 //Heroic Blow
117};
@ SPELL_BISHOP_H_1
Definition boss_chess_event.cpp:95
@ SPELL_ROOK_H_2
Definition boss_chess_event.cpp:113
@ SPELL_KNIGHT_H_1
Definition boss_chess_event.cpp:97
@ SPELL_PAWN_A_1
Definition boss_chess_event.cpp:102
@ SPELL_ROOK_H_1
Definition boss_chess_event.cpp:99
@ SPELL_BISHOP_A_1
Definition boss_chess_event.cpp:96
@ SPELL_KING_H_2
Definition boss_chess_event.cpp:105
@ SPELL_ROOK_A_2
Definition boss_chess_event.cpp:114
@ SPELL_PAWN_A_2
Definition boss_chess_event.cpp:116
@ SPELL_KING_A_1
Definition boss_chess_event.cpp:92
@ SPELL_PAWN_H_1
Definition boss_chess_event.cpp:101
@ SPELL_BISHOP_A_2
Definition boss_chess_event.cpp:110
@ SPELL_QUEEN_A_1
Definition boss_chess_event.cpp:94
@ SPELL_PAWN_H_2
Definition boss_chess_event.cpp:115
@ SPELL_QUEEN_H_2
Definition boss_chess_event.cpp:107
@ SPELL_KING_H_1
Definition boss_chess_event.cpp:91
@ SPELL_QUEEN_H_1
Definition boss_chess_event.cpp:93
@ SPELL_KNIGHT_A_2
Definition boss_chess_event.cpp:112
@ SPELL_QUEEN_A_2
Definition boss_chess_event.cpp:108
@ SPELL_KNIGHT_A_1
Definition boss_chess_event.cpp:98
@ SPELL_KNIGHT_H_2
Definition boss_chess_event.cpp:111
@ SPELL_ROOK_A_1
Definition boss_chess_event.cpp:100
@ SPELL_BISHOP_H_2
Definition boss_chess_event.cpp:109
@ SPELL_KING_A_2
Definition boss_chess_event.cpp:106

◆ KarazhanChessSpells

Enumerator
SPELL_MOVE_1 
SPELL_MOVE_2 
SPELL_MOVE_3 
SPELL_MOVE_4 
SPELL_MOVE_5 
SPELL_MOVE_6 
SPELL_MOVE_GENERIC 
SPELL_CHANGE_FACING 
SPELL_MOVE_MARKER 
SPELL_MOVE_COOLDOWN 
SPELL_CONTROL_PIECE 
SPELL_RECENTLY_INGAME 
SPELL_FURY_OF_MEDIVH_FIRE 
SPELL_MELEE_ATTACK_TIMER 
SPELL_MELEE_ATTACK_TIMER_TRIGGER 
SPELL_MELEE_DAMAGE 
41{
42 SPELL_MOVE_1 = 37146, // 8y
43 SPELL_MOVE_2 = 37144, // 15y
44 SPELL_MOVE_3 = 37148, // 20y
45 SPELL_MOVE_4 = 37151, // 8y
46 SPELL_MOVE_5 = 37152, // 8y
47 SPELL_MOVE_6 = 37153, // 8y
48
49 SPELL_MOVE_GENERIC = 30012, // Unlimited
50
51 SPELL_CHANGE_FACING = 30284,
52 SPELL_MOVE_MARKER = 32261,
53 SPELL_MOVE_COOLDOWN = 30543,
54 SPELL_CONTROL_PIECE = 30019,
56
60 SPELL_MELEE_DAMAGE = 32247
61};
@ SPELL_MOVE_6
Definition boss_chess_event.cpp:47
@ SPELL_MOVE_2
Definition boss_chess_event.cpp:43
@ SPELL_MELEE_ATTACK_TIMER
Definition boss_chess_event.cpp:58
@ SPELL_MELEE_ATTACK_TIMER_TRIGGER
Definition boss_chess_event.cpp:59
@ SPELL_MOVE_5
Definition boss_chess_event.cpp:46
@ SPELL_MOVE_COOLDOWN
Definition boss_chess_event.cpp:53
@ SPELL_MOVE_1
Definition boss_chess_event.cpp:42
@ SPELL_MOVE_MARKER
Definition boss_chess_event.cpp:52
@ SPELL_MOVE_3
Definition boss_chess_event.cpp:44
@ SPELL_CHANGE_FACING
Definition boss_chess_event.cpp:51
@ SPELL_MOVE_4
Definition boss_chess_event.cpp:45
@ SPELL_CONTROL_PIECE
Definition boss_chess_event.cpp:54
@ SPELL_RECENTLY_INGAME
Definition boss_chess_event.cpp:55
@ SPELL_MELEE_DAMAGE
Definition boss_chess_event.cpp:60
@ SPELL_FURY_OF_MEDIVH_FIRE
Definition boss_chess_event.cpp:57
@ SPELL_MOVE_GENERIC
Definition boss_chess_event.cpp:49

◆ KarazhanChessTeam

Enumerator
DEAD_ALLIANCE 
DEAD_HORDE 
69{
70 DEAD_ALLIANCE = 0,
71 DEAD_HORDE = 1,
72};
@ DEAD_ALLIANCE
Definition boss_chess_event.cpp:70
@ DEAD_HORDE
Definition boss_chess_event.cpp:71

Function Documentation

◆ AddSC_boss_chess_event()

void AddSC_boss_chess_event ( )
2086{
2090
2092}
#define RegisterSpellScript(spell_script)
Definition SpellScriptLoader.h:88
Definition boss_chess_event.cpp:2068
#define RegisterKarazhanCreatureAI(ai_name)
Definition karazhan.h:219
Definition boss_chess_event.cpp:2054
Definition boss_chess_event.cpp:1421
Definition boss_chess_event.cpp:192

References RegisterKarazhanCreatureAI, and RegisterSpellScript.

Referenced by AddEasternKingdomsScripts().

◆ IsFriendly()

static bool IsFriendly ( Creature piece,
Creature target 
)
static
181{
182 return piece->GetFaction() == target->GetFaction();
183}
uint32 GetFaction() const
Definition Unit.h:817

References Unit::GetFaction().

Referenced by npc_echo_of_medivh::GetHostileTargetForChangeFacing(), npc_echo_of_medivh::GetPiece(), and Spell::HandleThreatSpells().

Variable Documentation

◆ MAX_COL

◆ MAX_ROW

◆ orientations

std::array<float, MAX_ORI> orientations = { 3.809080f, 3.022091f, 2.235102f, 1.448113f, 0.661124f, 6.1724616f, 5.385472f, 4.598483f }
static
178{ 3.809080f, 3.022091f, 2.235102f, 1.448113f, 0.661124f, 6.1724616f, 5.385472f, 4.598483f };

Referenced by npc_echo_of_medivh::GetHostileTargetForChangeFacing(), npc_echo_of_medivh::HandlePieceJustDied(), and npc_chesspiece::SpellHitTarget().