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>

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 
118{
120
123
130
137
138 TALK_CHECKMATE = 15,
140};
@ TALK_PLAYER_LOOSE_KING
Definition: boss_chess_event.cpp:129
@ TALK_EVENT_ENDED
Definition: boss_chess_event.cpp:139
@ TALK_CHECKMATE
Definition: boss_chess_event.cpp:138
@ TALK_EVENT_BEGIN
Definition: boss_chess_event.cpp:119
@ TALK_PLAYER_LOOSE_KNIGHT
Definition: boss_chess_event.cpp:126
@ TALK_MEDIVH_LOOSE_ROOK
Definition: boss_chess_event.cpp:132
@ TALK_PLAYER_LOOSE_QUEEN
Definition: boss_chess_event.cpp:128
@ TALK_MEDIVH_LOOSE_BISHOP
Definition: boss_chess_event.cpp:134
@ TALK_MEDIVH_LOOSE_PAWN
Definition: boss_chess_event.cpp:131
@ TALK_PLAYER_LOOSE_BISHOP
Definition: boss_chess_event.cpp:127
@ TALK_MEDIHV_CHEAT_EMOTE
Definition: boss_chess_event.cpp:122
@ TALK_PLAYER_LOOSE_PAWN
Definition: boss_chess_event.cpp:124
@ TALK_MEDIVH_LOOSE_QUEEN
Definition: boss_chess_event.cpp:135
@ TALK_PLAYER_LOOSE_ROOK
Definition: boss_chess_event.cpp:125
@ TALK_MEDIVH_LOOSE_KNIGHT
Definition: boss_chess_event.cpp:133
@ TALK_MEDIHV_CHEAT
Definition: boss_chess_event.cpp:121
@ TALK_MEDIVH_LOOSE_KING
Definition: boss_chess_event.cpp:136

◆ ChessPieceSearchType

Enumerator
CHESS_PIECE_SEARCH_TYPE_CLOSEST 
CHESS_PIECE_SEARCH_TYPE_RANDOM 
184{
187};
@ CHESS_PIECE_SEARCH_TYPE_RANDOM
Definition: boss_chess_event.cpp:186
@ CHESS_PIECE_SEARCH_TYPE_CLOSEST
Definition: boss_chess_event.cpp:185

◆ EchoOfMedivhGossipOptions

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

◆ KarazhanChessNPCs

Enumerator
NPC_CHESS_MOVE_TRIGGER 
62{
64};
@ NPC_CHESS_MOVE_TRIGGER
Definition: boss_chess_event.cpp:63

◆ KarazhanChessOrientationType

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

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

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

◆ KarazhanChessTeam

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

Function Documentation

◆ AddSC_boss_chess_event()

void AddSC_boss_chess_event ( )
2083{
2087
2089}
#define RegisterSpellScript(spell_script)
Definition: SpellScriptLoader.h:88
#define RegisterKarazhanCreatureAI(ai_name)
Definition: karazhan.h:219
Definition: boss_chess_event.cpp:190
Definition: boss_chess_event.cpp:1422
Definition: boss_chess_event.cpp:2051
Definition: boss_chess_event.cpp:2065

References RegisterKarazhanCreatureAI, and RegisterSpellScript.

Referenced by AddEasternKingdomsScripts().

◆ IsFriendly()

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

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