Fixes to sunwell and minor improvements

This commit is contained in:
omer
2024-04-15 15:50:41 +02:00
parent 87a4da5882
commit 79ca60d136
46 changed files with 1507 additions and 716 deletions
+2
View File
@@ -327,4 +327,6 @@ int flag_defs[MAX_FLAGS_DEF] = {
1000, // index 323
1000, // index 324
1000, // index 325
1000, // index 326
1000, // index 327
};
@@ -38,8 +38,6 @@ void mechanics_next_turn(struct conn_client_s *c, struct hs_holder_s *p)
reset_turn_plays(opponent);
summon_npc(c, p, opponent);
mechanics_expired(p, deck);
mechanics_expired(p, opponent);
+110 -108
View File
@@ -1,7 +1,7 @@
#ifndef FLAG_DEF_H_
#define FLAG_DEF_H_
#define MAX_FLAGS_DEF 326
#define MAX_FLAGS_DEF 328
int flag_defs[MAX_FLAGS_DEF];
enum flags_e {
@@ -224,112 +224,114 @@ enum flags_e {
destroyed_NEW1_036_FLAG = 216,
buff_NEW1_036_FLAG = 217,
spell_aoe_GVG_010_FLAG = 218,
spell_aoe_CS1_112_FLAG = 219,
spell_CS2_072_FLAG = 220,
buff_CS2_077_FLAG = 221,
buff_CS2_023_FLAG = 222,
attachment_attack_EX1_607e_FLAG = 223,
defender_TB_SPT_Boss_FLAG = 224,
buff_LOEA16_9_FLAG = 225,
buff_CS2_234_FLAG = 226,
buff_PRO_001c_FLAG = 227,
attack_effect_CS2_024_FLAG = 228,
spell_CS2_024_FLAG = 229,
spell_DS1_185_FLAG = 230,
buff_CS2_063_FLAG = 231,
buff_CS2_076_FLAG = 232,
buff_AT_074_FLAG = 233,
spell_BRMA11_3_FLAG = 234,
destroyed_BRM_003_FLAG = 235,
spell_BRM_003_FLAG = 236,
destroyed_AT_001_FLAG = 237,
spell_AT_001_FLAG = 238,
buff_EX1_607_FLAG = 239,
attack_EX1_097_FLAG = 240,
battlecry_EX1_097_FLAG = 241,
buff_OG_090_FLAG = 242,
attack_EX1_011_FLAG = 243,
battlecry_EX1_011_FLAG = 244,
endturn_EX1_105_FLAG = 245,
attack_EX1_105_FLAG = 246,
attack_CS2_088_FLAG = 247,
battlecry_CS2_088_FLAG = 248,
onboard_CS2_088_FLAG = 249,
attack_EX1_158t_FLAG = 250,
attack_NAX4_03H_FLAG = 251,
attack_AT_023_FLAG = 252,
attack_CS2_168_FLAG = 253,
attack_CS2_201_FLAG = 254,
attack_CS2_200_FLAG = 255,
attack_CS2_119_FLAG = 256,
attack_CS2_172_FLAG = 257,
attack_CS2_171_FLAG = 258,
attack_CS2_182_FLAG = 259,
attack_CS2_120_FLAG = 260,
attack_EX1_506a_FLAG = 261,
attack_CS2_042_FLAG = 262,
battlecry_CS2_042_FLAG = 263,
attack_CS2_boar_FLAG = 264,
attack_CS2_237_FLAG = 265,
attack_LOE_077_FLAG = 266,
battlecry_LOE_077_FLAG = 267,
destroyed_CS2_118_FLAG = 268,
defender_CS2_118_FLAG = 269,
attack_CS2_118_FLAG = 270,
onboard_CS2_118_FLAG = 271,
destroyed_AT_128_FLAG = 272,
attack_AT_128_FLAG = 273,
attack_EX1_614_FLAG = 274,
battlecry_EX1_614_FLAG = 275,
attack_EX1_593_FLAG = 276,
battlecry_EX1_593_FLAG = 277,
attack_GVG_105_FLAG = 278,
battlecry_GVG_105_FLAG = 279,
attack_NEW1_030_FLAG = 280,
battlecry_NEW1_030_FLAG = 281,
destroyed_EX1_383_FLAG = 282,
attack_EX1_383_FLAG = 283,
onboard_EX1_383_FLAG = 284,
destroyed_CS2_065_FLAG = 285,
attack_CS2_065_FLAG = 286,
onboard_CS2_065_FLAG = 287,
destroyed_AT_018_FLAG = 288,
attack_AT_018_FLAG = 289,
onboard_AT_018_FLAG = 290,
destroyed_EX1_165t2_FLAG = 291,
attack_EX1_165t2_FLAG = 292,
onboard_EX1_165t2_FLAG = 293,
destroyed_EX1_559_FLAG = 294,
attack_EX1_559_FLAG = 295,
onboard_EX1_559_FLAG = 296,
destroyed_NEW1_011_FLAG = 297,
defender_NEW1_011_FLAG = 298,
attack_NEW1_011_FLAG = 299,
onboard_NEW1_011_FLAG = 300,
attack_CS2_226_FLAG = 301,
battlecry_CS2_226_FLAG = 302,
attack_EX1_009_FLAG = 303,
buff_EX1_581_FLAG = 304,
attack_EX1_049_FLAG = 305,
battlecry_EX1_049_FLAG = 306,
spell_aoe_EX1_400_FLAG = 307,
attack_effect_attachment_LOEA06_03e_FLAG = 308,
weapon_LOE_118_FLAG = 309,
idle_LOE_118_FLAG = 310,
weapon_destroyed_LOE_118_FLAG = 311,
weapon_attack_LOE_118_FLAG = 312,
onboard_LOE_118_FLAG = 313,
buff_LOEA06_03_FLAG = 314,
spell_aoe_CS2_026_FLAG = 315,
attack_EX1_306_FLAG = 316,
battlecry_EX1_306_FLAG = 317,
destroyed_CS2_222_FLAG = 318,
attack_CS2_222_FLAG = 319,
idle_CS2_222_FLAG = 320,
onboard_CS2_222_FLAG = 321,
destroyed_CS2_231_FLAG = 322,
attack_CS2_231_FLAG = 323,
idle_CS2_231_FLAG = 324,
onboard_CS2_231_FLAG = 325,
spell_CS2_072_FLAG = 219,
buff_CS2_077_FLAG = 220,
buff_CS2_023_FLAG = 221,
attachment_attack_EX1_607e_FLAG = 222,
defender_TB_SPT_Boss_FLAG = 223,
buff_LOEA16_9_FLAG = 224,
buff_CS2_234_FLAG = 225,
buff_PRO_001c_FLAG = 226,
attack_effect_CS2_024_FLAG = 227,
spell_CS2_024_FLAG = 228,
spell_DS1_185_FLAG = 229,
buff_CS2_063_FLAG = 230,
buff_CS2_076_FLAG = 231,
buff_AT_074_FLAG = 232,
spell_BRMA11_3_FLAG = 233,
destroyed_BRM_003_FLAG = 234,
spell_BRM_003_FLAG = 235,
destroyed_AT_001_FLAG = 236,
spell_AT_001_FLAG = 237,
buff_EX1_607_FLAG = 238,
attack_EX1_097_FLAG = 239,
battlecry_EX1_097_FLAG = 240,
buff_OG_090_FLAG = 241,
attack_EX1_011_FLAG = 242,
battlecry_EX1_011_FLAG = 243,
endturn_EX1_105_FLAG = 244,
attack_EX1_105_FLAG = 245,
attack_CS2_088_FLAG = 246,
battlecry_CS2_088_FLAG = 247,
onboard_CS2_088_FLAG = 248,
attack_EX1_158t_FLAG = 249,
attack_NAX4_03H_FLAG = 250,
attack_AT_023_FLAG = 251,
attack_CS2_168_FLAG = 252,
attack_CS2_201_FLAG = 253,
attack_CS2_200_FLAG = 254,
attack_CS2_119_FLAG = 255,
attack_CS2_172_FLAG = 256,
attack_CS2_171_FLAG = 257,
attack_CS2_182_FLAG = 258,
attack_CS2_120_FLAG = 259,
attack_EX1_506a_FLAG = 260,
attack_CS2_042_FLAG = 261,
battlecry_CS2_042_FLAG = 262,
attack_CS2_boar_FLAG = 263,
attack_CS2_237_FLAG = 264,
attack_LOE_077_FLAG = 265,
battlecry_LOE_077_FLAG = 266,
destroyed_CS2_118_FLAG = 267,
defender_CS2_118_FLAG = 268,
attack_CS2_118_FLAG = 269,
onboard_CS2_118_FLAG = 270,
destroyed_AT_128_FLAG = 271,
attack_AT_128_FLAG = 272,
attack_EX1_614_FLAG = 273,
battlecry_EX1_614_FLAG = 274,
attack_EX1_593_FLAG = 275,
battlecry_EX1_593_FLAG = 276,
attack_GVG_105_FLAG = 277,
battlecry_GVG_105_FLAG = 278,
attack_NEW1_030_FLAG = 279,
battlecry_NEW1_030_FLAG = 280,
destroyed_EX1_383_FLAG = 281,
attack_EX1_383_FLAG = 282,
onboard_EX1_383_FLAG = 283,
destroyed_CS2_065_FLAG = 284,
attack_CS2_065_FLAG = 285,
onboard_CS2_065_FLAG = 286,
destroyed_AT_018_FLAG = 287,
attack_AT_018_FLAG = 288,
onboard_AT_018_FLAG = 289,
destroyed_EX1_165t2_FLAG = 290,
attack_EX1_165t2_FLAG = 291,
onboard_EX1_165t2_FLAG = 292,
destroyed_EX1_559_FLAG = 293,
attack_EX1_559_FLAG = 294,
onboard_EX1_559_FLAG = 295,
destroyed_NEW1_011_FLAG = 296,
defender_NEW1_011_FLAG = 297,
attack_NEW1_011_FLAG = 298,
onboard_NEW1_011_FLAG = 299,
attack_CS2_226_FLAG = 300,
battlecry_CS2_226_FLAG = 301,
attack_EX1_009_FLAG = 302,
buff_EX1_581_FLAG = 303,
attack_EX1_049_FLAG = 304,
battlecry_EX1_049_FLAG = 305,
spell_aoe_EX1_400_FLAG = 306,
attack_effect_attachment_LOEA06_03e_FLAG = 307,
weapon_LOE_118_FLAG = 308,
idle_LOE_118_FLAG = 309,
weapon_destroyed_LOE_118_FLAG = 310,
weapon_attack_LOE_118_FLAG = 311,
onboard_LOE_118_FLAG = 312,
buff_LOEA06_03_FLAG = 313,
attack_EX1_306_FLAG = 314,
battlecry_EX1_306_FLAG = 315,
destroyed_CS2_222_FLAG = 316,
attack_CS2_222_FLAG = 317,
idle_CS2_222_FLAG = 318,
onboard_CS2_222_FLAG = 319,
destroyed_CS2_231_FLAG = 320,
attack_CS2_231_FLAG = 321,
idle_CS2_231_FLAG = 322,
onboard_CS2_231_FLAG = 323,
buff_CS2_022_FLAG = 324,
spell_aoe_CS1_112_FLAG = 325,
spell_aoe_CS2_026_FLAG = 326,
spell_aoe_CS2_032_FLAG = 327,
};
#endif
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef ENTGEN_H_
#define ENTGEN_H_
#define MAX_ENTITIES 133
#define MAX_ENTITIES 135
#define MAX_BEASTS 0
#define MAX_TOTEMS 0
#define MAX_TOTEMIC_CALL 0
+281 -242
View File
@@ -18,22 +18,22 @@
#ifndef SECTIONS_H_
#define SECTIONS_H_
#include <section_buff.h>
#include <section_battlecry.h>
#include <section_defender.h>
#include <section_spell.h>
#include <section_spell_aoe.h>
#include <section_attachment_attack.h>
#include <section_attack.h>
#include <section_attack_effect.h>
#include <section_weapon.h>
#include <section_endturn.h>
#include <section_onboard.h>
#include <section_destroyed.h>
#include <section_weapon_destroyed.h>
#include <section_idle.h>
#include <section_weapon_attack.h>
#include <section_attachment_attack.h>
#include <section_attack_effect_attachment.h>
#include <section_battlecry.h>
#include <section_buff.h>
#include <section_defender.h>
#include <section_destroyed.h>
#include <section_endturn.h>
#include <section_idle.h>
#include <section_onboard.h>
#include <section_spell.h>
#include <section_spell_aoe.h>
#include <section_weapon.h>
#include <section_weapon_attack.h>
#include <section_weapon_destroyed.h>
// built-in variables
#define HSL_attacker (attacker)
@@ -65,16 +65,15 @@
#define is_spell(m_dst) (flag(&m_dst->state, CARD_SPELL, FLAG_ISSET))
#define cmp_cardname(m_card, m_src) (strcmp(m_card->entity->name, m_src) == 0)
#define cmp_cardname(m_card, m_src) (strcmp(m_card->entity->name, m_src) == 0)
#define hsl_set_windfury(m_dst)\
flag(&m_dst->state, CARD_WINDFURY, FLAG_SET)
#define hsl_set_windfury(m_dst) flag(&m_dst->state, CARD_WINDFURY, FLAG_SET)
#define hsl_set_taunt(m_dst)\
flag(&m_dst->state, CARD_TAUNT, FLAG_SET);
#define hsl_set_taunt(m_dst) flag(&m_dst->state, CARD_TAUNT, FLAG_SET);
#define hsl_refresh_mana(m_deck, m_amount)\
deck->mana_used = (m_amount > deck->mana_used) ? 0 : deck->mana_used - m_amount ;
#define hsl_refresh_mana(m_deck, m_amount) \
deck->mana_used = \
(m_amount > deck->mana_used) ? 0 : deck->mana_used - m_amount;
#define turn_plays(m_card) (m_card->turn_plays)
@@ -84,79 +83,82 @@
* @param m_alias iterator
* @param m_src source
*/
#define foreach(m_alias, m_src)\
for(m_alias = m_src; m_alias != NULL; m_alias = m_alias->next)
#define foreach(m_alias, m_src) \
for (m_alias = m_src; m_alias != NULL; m_alias = m_alias->next)
/**
* @brief Find out if controller is current player
*
* @param m_card played card
*/
#define is_controller_player(m_card)\
(p->id == m_card->parent->deck_copy->controller)
#define is_controller_player(m_card) \
(p->id == m_card->parent->deck_copy->controller)
// hsl_* macros
// only works on friendly deck
#define hsl_set_magic_immunity(m_dst)\
force_expire(p, HSL_deck_player, m_dst);\
mechanics_expire(p->game->turn + 2, m_dst, EXPIRE_MAGIC_IMMUNITY, 1, NULL);\
flag(&m_dst->state, CARD_DIVINE_SHIELD, FLAG_SET);
#define hsl_set_magic_immunity(m_dst) \
force_expire(p, HSL_deck_player, m_dst); \
mechanics_expire(p->game->turn + 2, m_dst, EXPIRE_MAGIC_IMMUNITY, 1, NULL); \
flag(&m_dst->state, CARD_DIVINE_SHIELD, FLAG_SET);
#define hsl_set_fullhealth(m_dst)\
m_dst->health = m_dst->total_health;\
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_set_fullhealth(m_dst) \
m_dst->health = m_dst->total_health; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_swap_health(m_dst, m_src)\
int hp = m_dst->health;\
m_dst->health = m_dst->total_health = m_src->health - m_src->buff_health;\
m_src->health = m_src->total_health = hp + m_src->buff_health;\
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);\
flag(&m_src->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_swap_health(m_dst, m_src) \
int hp = m_dst->health; \
m_dst->health = m_dst->total_health = m_src->health - m_src->buff_health; \
m_src->health = m_src->total_health = hp + m_src->buff_health; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); \
flag(&m_src->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_set_health(m_dst, m_change)\
m_dst->health = m_dst->total_health = (m_change + m_dst->buff_health);\
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_set_health(m_dst, m_change) \
m_dst->health = m_dst->total_health = (m_change + m_dst->buff_health); \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_decrease_health(m_dst, m_change)\
m_dst->buff_health -= m_change;\
m_dst->total_health -= m_change;\
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);\
if(m_dst->health > m_dst->total_health) {\
m_dst->health = m_dst->total_health;\
}
#define hsl_decrease_health(m_dst, m_change) \
m_dst->buff_health -= m_change; \
m_dst->total_health -= m_change; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); \
if (m_dst->health > m_dst->total_health) { \
m_dst->health = m_dst->total_health; \
}
#define hsl_increase_health(m_dst, m_change)\
m_dst->buff_health += m_change;\
m_dst->health += m_change;\
m_dst->total_health += m_change;\
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_increase_health(m_dst, m_change) \
m_dst->buff_health += m_change; \
m_dst->health += m_change; \
m_dst->total_health += m_change; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_replenish_health(m_dst, m_change)\
if(m_dst->total_health >= (m_dst->health + m_change)) {\
m_dst->health += m_change;\
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);\
}
#define hsl_replenish_health(m_dst, m_change) \
if (m_dst->total_health >= (m_dst->health + m_change)) { \
m_dst->health += m_change; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); \
}
#define hsl_change_armor(m_dst, m_change) \
m_dst->armor += m_change; \
flag(&m_dst->state, MECHANICS_ARMOR, FLAG_SET);
#define hsl_change_armor(m_dst, m_change)\
m_dst->armor += m_change;\
flag(&m_dst->state, MECHANICS_ARMOR, FLAG_SET);
#define hsl_change_attack(m_dst, m_change) \
m_dst->attack += m_change; \
flag(&m_dst->state, MECHANICS_ATTACK, FLAG_SET);
#define hsl_change_attack(m_dst, m_change)\
m_dst->attack += m_change;\
flag(&m_dst->state, MECHANICS_ATTACK, FLAG_SET);
#define hsl_cards_by_name(m_deck, m_name) \
(cards_by_name(HSL_player, m_deck, m_name, CARD_BOARD))
#define hsl_board_count_by_name(m_deck, m_name) \
(board_count_by_name(m_deck, m_name))
#define hsl_cards_by_name(m_deck, m_name) (cards_by_name(HSL_player, m_deck, m_name, CARD_BOARD))
#define hsl_board_minions_count(m_deck, m_attacker) \
cards_get_board_count(m_deck, NULL, 0, m_attacker->id)
#define hsl_board_count_by_name(m_deck, m_name) (board_count_by_name(m_deck, m_name))
#define hsl_add_single_attachment(m_player, m_deck, m_dst, m_src) \
add_single_attachment(m_player, m_deck, m_dst, m_src)
#define hsl_board_minions_count(m_deck, m_attacker) cards_get_board_count(m_deck, NULL, 0, m_attacker->id)
#define hsl_add_single_attachment(m_player, m_deck, m_dst, m_src) add_single_attachment(m_player, m_deck, m_dst, m_src)
#define hsl_remove_attachment(m_deck, m_opponent, m_card, m_name) (card_remove_attachment(m_deck, m_opponent, m_card, m_name))
#define hsl_remove_attachment(m_deck, m_opponent, m_card, m_name) \
(card_remove_attachment(m_deck, m_opponent, m_card, m_name))
#define level(m_dst) (m_dst->boss.level)
@@ -164,139 +166,171 @@ flag(&m_dst->state, MECHANICS_ATTACK, FLAG_SET);
#define is_boss(m_dst) (flag(&m_dst->state, CARD_BOSS, FLAG_ISSET))
#define hsl_apply_attachment(m_player, m_deck, m_dst, m_src) (card_apply_attachment(m_player, m_deck, m_dst, m_src))
#define hsl_apply_attachment(m_player, m_deck, m_dst, m_src) \
(card_apply_attachment(m_player, m_deck, m_dst, m_src))
#define hsl_cards_get_hand_random(m_deck) (cards_get_hand_random(m_deck))
#define hsl_cards_get_hand(m_deck) (cards_get_hand(m_deck))
#define hsl_receive_damage(m_dst, m_dmg)\
if(m_dst) { m_dst->receive.damage = m_dmg; }
#define hsl_receive_damage(m_dst, m_dmg) \
if (m_dst) { \
m_dst->receive.damage = m_dmg; \
}
#define hsl_receive_heal(m_dst, m_heal)\
if(m_dst) { m_dst->receive.heal = m_heal; }
#define hsl_receive_heal(m_dst, m_heal) \
if (m_dst) { \
m_dst->receive.heal = m_heal; \
}
#define hsl_freeze(m_src, m_dst)\
hm_log(LOG_DEBUG, lg, "Attacker [%s](%d) froze [%s](%d)", m_src->entity->desc, m_src->id, m_dst->entity->desc, m_dst->id);\
mechanics_expire(p->game->turn + 3, m_dst, EXPIRE_FROZEN, 1, NULL);\
flag(&m_dst->state, CARD_FROZEN, FLAG_SET);
#define hsl_freeze(m_src, m_dst) \
hm_log(LOG_DEBUG, lg, "Attacker [%s](%d) froze [%s](%d)", \
m_src->entity->desc, m_src->id, m_dst->entity->desc, m_dst->id); \
mechanics_expire(p->game->turn + 3, m_dst, EXPIRE_FROZEN, 1, NULL); \
flag(&m_dst->state, CARD_FROZEN, FLAG_SET);
#define hsl_add_defender(m_src, m_holder)\
struct card_list_s *m_holder;\
LIST_ADD(defenders, m_holder, m_src)
#define hsl_add_defender(m_src, m_holder) \
struct card_list_s *m_holder; \
LIST_ADD(defenders, m_holder, m_src)
#define hsl_return_to_hand(m_card)\
flag(&m_card->state, CARD_BOARD, FLAG_UNSET);\
flag(&m_card->state, CARD_HAND, FLAG_SET);\
flag(&m_card->state, CARD_EXHAUSTED, FLAG_UNSET);\
m_card->health = m_card->total_health = m_card->default_health;\
flag(&m_card->state, MECHANICS_HEALTH, FLAG_SET);\
m_card->attack = m_card->default_attack;\
flag(&m_card->state, MECHANICS_ATTACK, FLAG_SET);\
card_remove_attachment(hsl_deck(m_card), NULL, m_card, NULL);\
card_destroy(m_card, hsl_deck(m_card), 1);\
/* order is importatnt here, new zone position must come after card is destroyed */\
if(m_card->controller == HSL_deck_player->controller) {\
m_card->zone_position = ++(HSL_deck_player->handposition);\
} else {\
m_card->zone_position = ++(HSL_deck_opponent->handposition);\
}\
#define hsl_return_to_hand(m_card) \
flag(&m_card->state, CARD_BOARD, FLAG_UNSET); \
flag(&m_card->state, CARD_HAND, FLAG_SET); \
flag(&m_card->state, CARD_EXHAUSTED, FLAG_UNSET); \
m_card->health = m_card->total_health = m_card->default_health; \
flag(&m_card->state, MECHANICS_HEALTH, FLAG_SET); \
m_card->attack = m_card->default_attack; \
flag(&m_card->state, MECHANICS_ATTACK, FLAG_SET); \
card_remove_attachment(hsl_deck(m_card), NULL, m_card, NULL); \
card_destroy(m_card, hsl_deck(m_card), 1); \
/* order is importatnt here, new zone position must come after card is \
* destroyed */ \
if (m_card->controller == HSL_deck_player->controller) { \
m_card->zone_position = ++(HSL_deck_player->handposition); \
} else { \
m_card->zone_position = ++(HSL_deck_opponent->handposition); \
}
#define hsl_cards_get_hand(m_deck) (cards_get_hand(m_deck))
#define hsl_add_new_card_hand(m_deck, m_card, m_holder)\
struct card_s *m_holder = add_new_card(m_deck->parent->game, m_deck, -1, m_card, -1);\
flag(&m_holder->state, CARD_HAND, FLAG_SET);\
m_holder->zone_position = ++(m_deck->handposition);
#define hsl_add_new_card_hand(m_deck, m_card, m_holder) \
struct card_s *m_holder = \
add_new_card(m_deck->parent->game, m_deck, -1, m_card, -1); \
flag(&m_holder->state, CARD_HAND, FLAG_SET); \
m_holder->zone_position = ++(m_deck->handposition);
#define hsl_destroy(m_deck, m_dst)\
{\
struct card_s *__fake_defender = m_dst;\
__SECTION_DESTROYED\
}\
flag(&m_dst->state, CARD_DESTROYED, FLAG_SET);\
cards_board_destroyed_reorder(m_deck, m_dst->zone_position);
#define hsl_destroy(m_deck, m_dst) \
{ \
struct card_s *__fake_defender = m_dst; \
__SECTION_DESTROYED \
} \
flag(&m_dst->state, CARD_DESTROYED, FLAG_SET); \
cards_board_destroyed_reorder(m_deck, m_dst->zone_position);
#define hsl_destroy_inhand(m_dst) card_discard_by_name(HSL_player, HSL_fake_defender, m_dst)
#define hsl_destroy_inhand(m_dst) \
card_discard_by_name(HSL_player, HSL_fake_defender, m_dst)
#define hsl_set_weapon_durability(m_dst, m_value)\
m_dst->durability += m_value;\
flag(&m_dst->state, MECHANICS_DURABILITY, FLAG_SET);
#define hsl_set_weapon_durability(m_dst, m_value) \
m_dst->durability += m_value; \
flag(&m_dst->state, MECHANICS_DURABILITY, FLAG_SET);
#define hsl_weapon_durability(m_dst) m_dst->durability
#define hsl_destroy_weapon(m_attacker, m_deck)\
if(m_deck->heroweapon) {\
/*struct card_list_s *itm;*/\
__SECTION_WEAPON_DESTROYED;\
flag(&m_deck->heroweapon->state, CARD_DESTROYED, FLAG_SET);\
flag(&m_deck->heroweapon->state, CARD_BOARD, FLAG_UNSET);\
flag(&m_deck->heroweapon->state, CARD_HEROWEAPON, FLAG_UNSET);\
flag(&m_deck->heroweapon->state, CARD_EXHAUSTED, FLAG_UNSET);\
\
/*LIST_ADD(m_attacker->target.card, itm, m_holder->deck_copy->heroweapon);*/\
\
flag(&m_deck->heroweapon->state, MECHANICS_DESTROY_WEAPON, FLAG_SET);\
m_deck->heroweapon = NULL;\
}
#define hsl_destroy_weapon(m_attacker, m_deck) \
if (m_deck->heroweapon) { \
/*struct card_list_s *itm;*/ \
__SECTION_WEAPON_DESTROYED; \
flag(&m_deck->heroweapon->state, CARD_DESTROYED, FLAG_SET); \
flag(&m_deck->heroweapon->state, CARD_BOARD, FLAG_UNSET); \
flag(&m_deck->heroweapon->state, CARD_HEROWEAPON, FLAG_UNSET); \
flag(&m_deck->heroweapon->state, CARD_EXHAUSTED, FLAG_UNSET); \
\
/*LIST_ADD(m_attacker->target.card, itm, \
* m_holder->deck_copy->heroweapon);*/ \
\
flag(&m_deck->heroweapon->state, MECHANICS_DESTROY_WEAPON, FLAG_SET); \
m_deck->heroweapon = NULL; \
}
#define is_weapon(m_deck, m_src) (m_deck && m_deck->heroweapon && strcmp(m_deck->heroweapon->entity->name, m_src) == 0)
#define is_weapon(m_deck, m_src) \
(m_deck && m_deck->heroweapon && \
strcmp(m_deck->heroweapon->entity->name, m_src) == 0)
#define hsl_change_cost(m_card, m_change)\
(m_card->cost = (m_card->default_cost - m_change >= 0) ? (m_card->default_cost - m_change) : 0);\
flag(&(m_card->state), MECHANICS_COST, FLAG_SET);
#define hsl_change_cost(m_card, m_change) \
(m_card->cost = (m_card->default_cost - m_change >= 0) \
? (m_card->default_cost - m_change) \
: 0); \
flag(&(m_card->state), MECHANICS_COST, FLAG_SET);
#define hsl_card_spell_by_name(m_player, m_deck, m_name) (card_by_name(m_player, m_deck, m_name, CARD_SPELL))
#define hsl_card_board_by_name(m_player, m_deck, m_name) (card_by_name(m_player, m_deck, m_name, CARD_BOARD))
#define hsl_card_hand_by_name(m_player, m_deck, m_name) (card_by_name(m_player, m_deck, m_name, CARD_HAND))
#define hsl_card_spell_by_name(m_player, m_deck, m_name) \
(card_by_name(m_player, m_deck, m_name, CARD_SPELL))
#define hsl_card_board_by_name(m_player, m_deck, m_name) \
(card_by_name(m_player, m_deck, m_name, CARD_BOARD))
#define hsl_card_hand_by_name(m_player, m_deck, m_name) \
(card_by_name(m_player, m_deck, m_name, CARD_HAND))
#define hsl_count_attachments(m_deck, m_opponent, m_card, m_name) (card_count_attachment(m_deck, m_opponent, m_card, m_name))
#define hsl_count_attachments(m_deck, m_opponent, m_card, m_name) \
(card_count_attachment(m_deck, m_opponent, m_card, m_name))
#define hsl_discard_random_hand(m_deck, m_amount, m_holder)\
int m_holder;\
for(m_holder = 0; m_holder < m_amount; m_holder++) {\
struct card_s *m_card = cards_get_hand_random(m_deck);\
if(m_card) {\
flag(&m_card->state, CARD_DISCARD, FLAG_SET);\
flag(&m_card->state, CARD_HAND, FLAG_UNSET);\
cards_reorder_hand_owner(m_deck, m_card->id);\
}\
}
#define hsl_discard_random_hand(m_deck, m_amount, m_holder) \
int m_holder; \
for (m_holder = 0; m_holder < m_amount; m_holder++) { \
struct card_s *m_card = cards_get_hand_random(m_deck); \
if (m_card) { \
flag(&m_card->state, CARD_DISCARD, FLAG_SET); \
flag(&m_card->state, CARD_HAND, FLAG_UNSET); \
cards_reorder_hand_owner(m_deck, m_card->id); \
} \
}
#define hsl_discard_hand(m_deck, m_all)\
struct card_list_s *m_holder;\
for(m_holder = m_all; m_holder != NULL; m_holder = m_holder->next) {\
flag(&m_holder->card->state, CARD_DISCARD, FLAG_SET);\
cards_reorder_hand_owner(m_deck, m_holder->card->id);\
}
#define hsl_discard_hand(m_deck, m_all) \
struct card_list_s *m_holder; \
for (m_holder = m_all; m_holder != NULL; m_holder = m_holder->next) { \
flag(&m_holder->card->state, CARD_DISCARD, FLAG_SET); \
cards_reorder_hand_owner(m_deck, m_holder->card->id); \
}
#define card(m_list) (m_list->card)
#define hsl_card(m_target)\
card_get(HSL_deck_player, HSL_deck_opponent, m_target)
#define hsl_card(m_target) \
card_get(HSL_deck_player, HSL_deck_opponent, m_target)
#define hsl_deck(m_card) ((m_card->controller == HSL_deck_player->controller) ? HSL_deck_player : HSL_deck_opponent)
#define hsl_deck(m_card) \
((m_card->controller == HSL_deck_player->controller) ? HSL_deck_player \
: HSL_deck_opponent)
#define default_health(m_card) (m_card->default_health)
#define default_attack(m_card) (m_card->default_attack)
#define hsl_board_all_cards(m_attacker, m_hero) cards_get_board(p->deck_copy, p->opponent.deck_copy, m_hero, m_attacker->id, HSL_magic_immunity_included, 1)
#define hsl_board_all_cards(m_attacker, m_hero) \
cards_get_board(p->deck_copy, p->opponent.deck_copy, m_hero, m_attacker->id, \
HSL_magic_immunity_included, 1)
#define hsl_board_all_cards_no_boss(m_attacker, m_hero) (cards_get_board(p->deck_copy, p->opponent.deck_copy, m_hero, m_attacker->id, HSL_magic_immunity_included, 0))
#define hsl_board_all_cards_no_boss(m_attacker, m_hero) \
(cards_get_board(p->deck_copy, p->opponent.deck_copy, m_hero, \
m_attacker->id, HSL_magic_immunity_included, 0))
#define hsl_board_friendly_cards(m_deck, m_attacker, m_hero) (cards_get_board(m_deck, NULL, m_hero, m_attacker, HSL_magic_immunity_included, 1))
#define hsl_board_friendly_cards(m_deck, m_attacker, m_hero) \
(cards_get_board(m_deck, NULL, m_hero, m_attacker, \
HSL_magic_immunity_included, 1))
#define hsl_board_friendly_cards_wattacker(m_hero) cards_get_board(p->deck_copy, NULL, m_hero, -1, HSL_magic_immunity_included, 1);
#define hsl_board_friendly_cards_wattacker(m_hero) \
cards_get_board(p->deck_copy, NULL, m_hero, -1, HSL_magic_immunity_included, \
1);
#define hsl_board_enemy_cards(m_attacker, m_hero, m_mi) cards_get_board(NULL, p->opponent.deck_copy, m_hero, m_attacker->id, m_mi, 1);
#define hsl_board_enemy_cards(m_attacker, m_hero, m_mi) \
cards_get_board(NULL, p->opponent.deck_copy, m_hero, m_attacker->id, m_mi, 1);
#define hsl_board_friendly_no_boss(m_attacker, m_hero, m_mi) cards_get_board(NULL, p->opponent.deck_copy, m_hero, m_attacker->id, m_mi, 0);
#define hsl_board_friendly_no_boss(m_attacker, m_hero, m_mi) \
cards_get_board(NULL, p->opponent.deck_copy, m_hero, m_attacker->id, m_mi, 0);
#define hsl_board_boss_cards(m_deck) (cards_get_board_boss(m_deck))
#define hsl_attack_aoe(m_dst, m_src, m_fake_levelup) mechanics_attack_aoe(c, opt->position, m_dst, &m_src, m_fake_levelup)
#define hsl_attack(m_dst, m_src, m_fake_levelup) hsl_attack_aoe(m_dst, m_src, m_fake_levelup)
#define hsl_attack_aoe(m_dst, m_src, m_fake_levelup) \
mechanics_attack_aoe(c, opt->position, m_dst, &m_src, m_fake_levelup)
#define hsl_attack(m_dst, m_src, m_fake_levelup) \
hsl_attack_aoe(m_dst, m_src, m_fake_levelup)
/**
* @brief Summon card for deck
@@ -305,12 +339,12 @@ for(m_holder = m_all; m_holder != NULL; m_holder = m_holder->next) {\
* @param m_name name of the card
* @param m_card card holder
**/
#define hsl_summon_card(m_deck, m_name, m_card)\
int m_card##pos = cards_board_last(m_deck);\
if(m_card##pos <= MAX_BOARD) {\
struct card_s *m_card = add_new_card(p->game, m_deck, -1, m_name, -1);\
mechanics_put_card_onboard(c, m_card##pos, m_card, 1, NULL, NULL, m_deck);\
}
#define hsl_summon_card(m_deck, m_name, m_card) \
int m_card##pos = cards_board_last(m_deck); \
if (m_card##pos <= MAX_BOARD) { \
struct card_s *m_card = add_new_card(p->game, m_deck, -1, m_name, -1); \
mechanics_put_card_onboard(c, m_card##pos, m_card, 1, NULL, NULL, m_deck); \
}
/**
* @brief Count number of cards in list of cards
@@ -334,17 +368,17 @@ if(m_card##pos <= MAX_BOARD) {\
* @param m_card card's holder
* @param m_amount number of cards to draw
**/
#define hsl_draw_cards(m_player, m_deck, m_card, m_amount)\
int m_card##idx;\
struct card_s *m_card;\
for(m_card##idx = 0; m_card##idx < m_amount; m_card##idx++) {\
m_card = draw_random_card(m_deck, m_player->entity_id, 0);\
if(m_card) {\
flag(&m_card->state, CARD_HAND, FLAG_SET);\
struct card_list_s *m_card##itm;\
LIST_ADD(defenders, m_card##itm, m_card);\
}\
}
#define hsl_draw_cards(m_player, m_deck, m_card, m_amount) \
int m_card##idx; \
struct card_s *m_card; \
for (m_card##idx = 0; m_card##idx < m_amount; m_card##idx++) { \
m_card = draw_random_card(m_deck, m_player->entity_id, 0); \
if (m_card) { \
flag(&m_card->state, CARD_HAND, FLAG_SET); \
struct card_list_s *m_card##itm; \
LIST_ADD(defenders, m_card##itm, m_card); \
} \
}
/**
* @brief Link card to another card's targets
@@ -352,8 +386,7 @@ for(m_card##idx = 0; m_card##idx < m_amount; m_card##idx++) {\
* @param m_dst destination card
* @param m_src source card
**/
#define hsl_link_target(m_dst, m_src)\
LIST_ADD_LINK(m_dst->target.card, m_src)
#define hsl_link_target(m_dst, m_src) LIST_ADD_LINK(m_dst->target.card, m_src)
/**
* @brief Add target to defenders
@@ -361,9 +394,9 @@ for(m_card##idx = 0; m_card##idx < m_amount; m_card##idx++) {\
* @param m_src source card
* @param m_holder variable placeholder
**/
#define hsl_add_target(m_src, m_holder)\
struct card_list_s *m_holder##item;\
LIST_ADD(defenders, m_holder##item, m_src);\
#define hsl_add_target(m_src, m_holder) \
struct card_list_s *m_holder##item; \
LIST_ADD(defenders, m_holder##item, m_src);
/**
* @brief Attack as battlecry
@@ -372,15 +405,15 @@ LIST_ADD(defenders, m_holder##item, m_src);\
* @param m_defender defending card
* @param m_damage damage caused
**/
#define hsl_attack_bc(m_attacker, m_defender, m_damage)\
m_defender->receive.damage = m_damage;\
entity_attack(p, m_attacker, m_defender);
#define hsl_attack_bc(m_attacker, m_defender, m_damage) \
m_defender->receive.damage = m_damage; \
entity_attack(p, m_attacker, m_defender);
/**
* @brief Heal defender by certain amount (alias)
**/
#define hsl_heal_bc(m_attacker, m_defender, m_damage)\
hsl_heal(m_attacker, m_defender, m_damage);
#define hsl_heal_bc(m_attacker, m_defender, m_damage) \
hsl_heal(m_attacker, m_defender, m_damage);
/*
m_defender->receive.heal = m_damage;\
#entity_attack(p, m_attacker, m_defender);\
@@ -395,11 +428,11 @@ LIST_ADD(m_attacker->target.card, item, m_defender);
* @param m_defender receiver card
* @param m_damage amount of healing
**/
#define hsl_heal(m_attacker, m_defender, m_damage)\
m_defender->receive.heal = m_damage;\
entity_attack(p, m_attacker, m_defender);\
struct card_list_s *item;\
LIST_ADD(m_attacker->target.card, item, m_defender);
#define hsl_heal(m_attacker, m_defender, m_damage) \
m_defender->receive.heal = m_damage; \
entity_attack(p, m_attacker, m_defender); \
struct card_list_s *item; \
LIST_ADD(m_attacker->target.card, item, m_defender);
/**
* @brief Mark target as corrupted
@@ -409,9 +442,9 @@ LIST_ADD(m_attacker->target.card, item, m_defender);
* @param m_turn number of turns from current turn when card is destroyed
* @param m_defender destination card
*/
#define hsl_buff_corrupt_expire(m_turn, m_defender)\
flag(&(m_defender->state), CARD_CORRUPTED, FLAG_SET);\
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_DESTROY, 1, NULL)
#define hsl_buff_corrupt_expire(m_turn, m_defender) \
flag(&(m_defender->state), CARD_CORRUPTED, FLAG_SET); \
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_DESTROY, 1, NULL)
/**
* @brief Change attack for m_turn turns
@@ -420,10 +453,11 @@ mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_DESTROY, 1, NULL)
* @param m_defender destination card
* @param m_attack value to change
*/
#define hsl_buff_attack_expire(m_turn, m_defender, m_attack)\
m_defender->attack += m_attack;\
flag(&(m_defender->state), MECHANICS_ATTACK, FLAG_SET);\
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACK, -(m_attack), NULL);
#define hsl_buff_attack_expire(m_turn, m_defender, m_attack) \
m_defender->attack += m_attack; \
flag(&(m_defender->state), MECHANICS_ATTACK, FLAG_SET); \
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACK, \
-(m_attack), NULL);
/**
* @brief Change health of card
@@ -431,9 +465,11 @@ mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACK, -(m_attack),
* @param m_card destination card
* @param m_health health value
*/
#define hsl_add_attachment(m_player, m_attacker, m_defender, m_turn)\
add_single_attachment(m_player, hsl_deck(m_defender), m_attacker, m_defender);\
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACHMENT, 0, m_attacker->attachment);
#define hsl_add_attachment(m_player, m_attacker, m_defender, m_turn) \
add_single_attachment(m_player, hsl_deck(m_defender), m_attacker, \
m_defender); \
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACHMENT, 0, \
m_attacker->attachment);
/**
* @brief Change health of card
@@ -441,17 +477,17 @@ mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACHMENT, 0, m_att
* @param m_card destination card
* @param m_health health value
*/
#define buff_health(m_card, m_health)\
defenders->card->health = m_health;\
flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
#define buff_health(m_card, m_health) \
defenders->card->health = m_health; \
flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
/**
* @brief Set divine shield to card
*
* @param m_card destination card
*/
#define hsl_divine_shield(m_card)\
flag(&(m_card->state), CARD_DIVINE_SHIELD, FLAG_SET);
#define hsl_divine_shield(m_card) \
flag(&(m_card->state), CARD_DIVINE_SHIELD, FLAG_SET);
/**
* @brief Set flag to card
@@ -459,8 +495,7 @@ flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
* @param m_card destination card
* @param m_flag flag to set
*/
#define setflag(m_card, m_flag)\
flag(&(m_card->state), m_flag, FLAG_SET);
#define setflag(m_card, m_flag) flag(&(m_card->state), m_flag, FLAG_SET);
/**
* @brief Unset flag from card
@@ -468,29 +503,31 @@ flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
* @param m_card destination card
* @param m_flag flag to unset
*/
#define unsetflag(m_card, m_flag)\
flag(&(m_card->state), m_flag, FLAG_UNSET);
#define unsetflag(m_card, m_flag) flag(&(m_card->state), m_flag, FLAG_UNSET);
/**
* @brief Unset windfury flag from card
*
* @param m_card destination card
*/
#define hsl_unset_windfury(m_card) (flag(&(m_card->state), CARD_WINDFURY, FLAG_UNSET))
#define hsl_unset_windfury(m_card) \
(flag(&(m_card->state), CARD_WINDFURY, FLAG_UNSET))
/**
* @brief Set exhausted flag to card
*
* @param m_card destination card
*/
#define hsl_set_exhausted(m_card) (flag(&(m_card->state), CARD_EXHAUSTED, FLAG_SET))
#define hsl_set_exhausted(m_card) \
(flag(&(m_card->state), CARD_EXHAUSTED, FLAG_SET))
/**
* @brief Unset exhausted flag from card
*
* @param m_card destination card
*/
#define hsl_unset_exhausted(m_card) (flag(&(m_card->state), CARD_EXHAUSTED, FLAG_UNSET))
#define hsl_unset_exhausted(m_card) \
(flag(&(m_card->state), CARD_EXHAUSTED, FLAG_UNSET))
/**
* @brief Transform defender to m_name
@@ -501,38 +538,40 @@ flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
* @param m_defender card being attacked
* @param m_name card code name
*/
#define hsl_transform(m_attacker, m_defender,m_name)\
struct card_s *card;\
card = add_new_card(p->game, p->opponent.deck_copy, -1, m_name, -1);\
card->zone_position = m_defender->zone_position;\
mechanics_put_card_onboard(c, card->zone_position, card, 1, NULL, NULL);\
m_defender->linked = card->id;\
flag(&m_defender->state, CARD_LINKED, FLAG_SET);\
flag(&m_defender->state, CARD_HIDE, FLAG_SET);\
flag(&m_defender->state, CARD_BOARD, FLAG_UNSET);
#define hsl_transform(m_deck, m_attacker, m_defender, m_name) \
struct card_s *card; \
card = add_new_card(p->game, p->opponent.deck_copy, -1, m_name, -1); \
card->zone_position = m_defender->zone_position; \
mechanics_put_card_onboard(c, card->zone_position, card, 1, NULL, NULL, \
m_deck); \
m_defender->linked = card->id; \
flag(&m_defender->state, CARD_LINKED, FLAG_SET); \
flag(&m_defender->state, CARD_HIDE, FLAG_SET); \
flag(&m_defender->state, CARD_BOARD, FLAG_UNSET);
/**
* @brief Give weapon to player
*
* Called only in '.section onboard'. There is no need to linked destroyed weapon to defenders
* Called only in '.section onboard'. There is no need to linked destroyed
* weapon to defenders
*
* @param m_dst hero card
*/
#define hsl_give_weapon(m_dst)\
if(m_dst->heroweapon != NULL) {\
/* destroy weapon first */\
{\
struct card_s *__fake_weapon = m_dst->heroweapon;\
__SECTION_WEAPON_DESTROYED;\
}\
\
m_dst->heroweapon->priority_override = 900;\
flag(&(m_dst->heroweapon->state), CARD_DESTROYED, FLAG_SET);\
flag(&(m_dst->heroweapon->state), CARD_BOARD, FLAG_UNSET);\
flag(&(m_dst->heroweapon->state), CARD_HEROWEAPON, FLAG_UNSET);\
}\
flag(&attacker->state, CARD_BOARD, FLAG_SET);\
flag(&attacker->state, CARD_HEROWEAPON, FLAG_SET);\
m_dst->heroweapon = attacker;
#define hsl_give_weapon(m_dst) \
if (m_dst->heroweapon != NULL) { \
/* destroy weapon first */ \
{ \
struct card_s *__fake_weapon = m_dst->heroweapon; \
__SECTION_WEAPON_DESTROYED; \
} \
\
m_dst->heroweapon->priority_override = 900; \
flag(&(m_dst->heroweapon->state), CARD_DESTROYED, FLAG_SET); \
flag(&(m_dst->heroweapon->state), CARD_BOARD, FLAG_UNSET); \
flag(&(m_dst->heroweapon->state), CARD_HEROWEAPON, FLAG_UNSET); \
} \
flag(&attacker->state, CARD_BOARD, FLAG_SET); \
flag(&attacker->state, CARD_HEROWEAPON, FLAG_SET); \
m_dst->heroweapon = attacker;
#endif
+97 -95
View File
@@ -61,78 +61,80 @@ struct ent_s entities[MAX_ENTITIES] = {{ "GAME_ENTITY", 11, 6, (void *)0, (void
, { "CS2_108", 7, 11, (void *)0, (void *)0, "Culling Blade", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 10 }, { 48, 3 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 58
, { "EX1_614", 7, 14, (void *)0, (void *)0, "Terrorblade", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 15 }, { 203, 5 }, { 202, 4 }, { 48, 6 }, { 114, 1 }, { 47, 5 }, { 45, 1 }, { 331, 0 }, { 330, 0 }, { 183, 3 }, { 321, 1 }, { 32, 1 }, { 251, 6 }, }} // 59
, { "EX1_371", 7, 10, (void *)0, (void *)0, "Guardian Angel", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 5 }, { 48, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 60
, { "CS2_022e", 8, 3, (void *)0, (void *)0, "Polymorph E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 61
, { "EX1_246e", 8, 3, (void *)0, (void *)0, "Hex E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 62
, { "CS2_092e", 8, 3, (void *)0, (void *)0, "Blessing of Kings E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 63
, { "CS2_087e", 8, 3, (void *)0, (void *)0, "Blessing of Might E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 64
, { "CS2_004e", 8, 3, (void *)0, (void *)0, "Power Word: Shield E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 65
, { "CS2_009e", 8, 3, (void *)0, (void *)0, "Mark of the Wild E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 66
, { "CS2_041e", 8, 3, (void *)0, (void *)0, "Ancestral Infusion", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 67
, { "CS2_045e", 8, 3, (void *)0, (void *)0, "Rockbiter Weapon E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 68
, { "CS2_046e", 8, 3, (void *)0, (void *)0, "Bloodlust E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 69
, { "CS2_005o", 8, 3, (void *)0, (void *)0, "Claw E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 70
, { "CS2_105e", 8, 3, (void *)0, (void *)0, "Heroic Strike E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 71
, { "CS2_011", 7, 10, (void *)0, (void *)0, "Enrage", {{0, 0, 0, 0, 0, 0, 0, 0}}, "CS2_011o", {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 2 }, { 48, 3 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 72
, { "CS2_011o", 8, 6, (void *)0, (void *)0, "Enraged", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 202, 6 }, { 199, 2 }, { 338, 1 }, { 331, 1 }, { 330, 1 }, { 183, 2 }, }} // 73
, { "HERO_01", 7, 6, (void *)0, (void *)0, "Warrior", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 74
, { "HERO_02", 7, 6, (void *)0, (void *)0, "Shamman", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 75
, { "HERO_04", 7, 6, (void *)0, (void *)0, "Paladin", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 76
, { "HERO_05", 7, 6, (void *)0, (void *)0, "Hunter", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 77
, { "HERO_06", 7, 6, (void *)0, (void *)0, "Druid", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 78
, { "HERO_07", 7, 6, (void *)0, (void *)0, "Warlock", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 79
, { "HERO_08", 7, 6, (void *)0, (void *)0, "Mage", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 80
, { "HERO_01a", 8, 6, (void *)0, (void *)0, "King of Khaz Modan", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 81
, { "HERO_04a", 8, 6, (void *)0, (void *)0, "Blood Knight Matriarch", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 82
, { "HERO_05a", 8, 6, (void *)0, (void *)0, "Alleria Windranger", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 83
, { "HERO_08a", 8, 6, (void *)0, (void *)0, "Guardian Medivh", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 84
, { "HERO_08b", 8, 6, (void *)0, (void *)0, "Khadgar", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 85
, { "CS2_012", 7, 11, (void *)0, (void *)0, "Swipes", {{0, 0, 0, 0, 0, 0, 0, 0}}, "AT_039e", {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 2 }, { 48, 2 }, { 47, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 86
, { "CS2_072", 7, 12, (void *)0, (void *)0, "Backstab", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 7 }, { 48, 0 }, { 47, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 6 }, }} // 87
, { "DS1_185", 7, 9, (void *)0, (void *)0, "Arcane Shot", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 3 }, { 48, 1 }, { 47, 2 }, { 183, 2 }, { 321, 1 }, { 251, 8 }, }} // 88
, { "CS2_024", 7, 11, (void *)0, (void *)0, "Frostbolt", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 4 }, { 48, 2 }, { 47, 3 }, { 183, 2 }, { 321, 1 }, { 208, 1 }, { 268, 2 }, { 251, 1 }, }} // 89
, { "CS2_023", 7, 11, (void *)0, (void *)0, "Arcane Intellect", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 4 }, { 48, 3 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 90
, { "CS2_077", 7, 11, (void *)0, (void *)0, "Sprint", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 7 }, { 48, 7 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 91
, { "CS2_026", 7, 13, (void *)0, (void *)0, "Shiva's Guard", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 4 }, { 48, 3 }, { 47, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 208, 1 }, { 268, 2 }, { 251, 1 }, }} // 92
, { "EX1_400", 7, 11, (void *)0, (void *)0, "Counter Helix", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 10 }, { 48, 0 }, { 47, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 93
, { "CS1_112", 7, 10, (void *)0, (void *)0, "Mekansm", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 6 }, { 48, 4 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 5 }, }} // 94
, { "CS2_122e", 8, 3, (void *)0, (void *)0, "Enhanced", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 95
, { "CS2_222", 7, 12, (void *)0, (void *)0, "Stormwind Champion", {{0, 0, 0, 0, 0, 0, 0, 0}}, "CS2_222o", {{ 201, 2 }, { 203, 1 }, { 202, 4 }, { 48, 7 }, { 47, 6 }, { 45, 6 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, { 362, 1 }, }} // 96
, { "CS2_222o", 8, 4, (void *)0, (void *)0, "Might of Stormwind", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 183, 2 }, { 202, 6 }, { 331, 0 }, { 330, 1 }, }} // 97
, { "EX1_084e", 8, 3, (void *)0, (void *)0, "Charge", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 98
, { "DS1_175o", 8, 3, (void *)0, (void *)0, "Furious Howl", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 99
, { "EX1_399e", 8, 3, (void *)0, (void *)0, "Berserking", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 100
, { "CS2_088", 7, 11, (void *)0, (void *)0, "Omniknight", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 199, 5 }, { 48, 2 }, { 47, 1 }, { 45, 17 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 5 }, }} // 101
, { "EX1_593", 7, 9, (void *)0, (void *)0, "Phantom Assassin", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 4 }, { 48, 4 }, { 47, 4 }, { 45, 2 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, }} // 102
, { "EX1_011", 7, 10, (void *)0, (void *)0, "Witch Doctor", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 1 }, { 203, 2 }, { 202, 4 }, { 48, 1 }, { 47, 2 }, { 45, 1 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 6 }, }} // 103
, { "CS2_042", 7, 11, (void *)0, (void *)0, "Fire Elemental", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 199, 8 }, { 48, 6 }, { 47, 6 }, { 45, 5 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 3 }, }} // 104
, { "CS2_226", 7, 12, (void *)0, (void *)0, "Legion Commander", {{0, 0, 0, 0, 0, 0, 0, 0}}, "CS2_226e", {{ 201, 1 }, { 203, 4 }, { 202, 4 }, { 48, 5 }, { 47, 4 }, { 45, 4 }, { 331, 0 }, { 330, 0 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 105
, { "CS2_226e", 8, 4, (void *)0, (void *)0, "Frostwolf Banner", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 183, 2 }, { 202, 6 }, { 331, 1 }, { 330, 1 }, }} // 106
, { "EX1_306", 7, 13, (void *)0, (void *)0, "Queen of Pain", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 15 }, { 203, 2 }, { 202, 4 }, { 199, 9 }, { 48, 3 }, { 47, 4 }, { 45, 3 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 107
, { "EX1_581", 7, 10, (void *)0, (void *)0, "Sap", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 7 }, { 48, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, }} // 108
, { "CS1_113e", 8, 3, (void *)0, (void *)0, "Mind Control E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 109
, { "NEW1_011", 8, 11, (void *)0, "CS2_108", "Mogul Khan, Axe", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 203, 5 }, { 202, 4 }, { 199, 10 }, { 48, 3 }, { 47, 2 }, { 197, 0 }, { 45, 20 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, }} // 110
, { "CS2_171", 7, 12, (void *)0, (void *)0, "Stonetusk Boar", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 1 }, { 47, 1 }, { 197, 0 }, { 45, 1 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 6 }, }} // 111
, { "CS2_065", 7, 13, "OG_101", "EX1_312", "Enigma", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 15 }, { 203, 5 }, { 202, 4 }, { 199, 9 }, { 48, 2 }, { 47, 1 }, { 45, 15 }, { 190, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 9 }, }} // 112
, { "EX1_565o", 8, 3, (void *)0, (void *)0, "Flametongue", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 113
, { "EX1_506a", 8, 9, (void *)0, (void *)0, "Murloc Scout", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 14 }, { 203, 1 }, { 202, 4 }, { 48, 0 }, { 47, 1 }, { 45, 1 }, { 183, 2 }, { 251, 1 }, }} // 114
, { "CS2_237", 7, 12, (void *)0, (void *)0, "Vulture", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 1 }, { 202, 4 }, { 199, 3 }, { 48, 1 }, { 47, 1 }, { 45, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 32, 1 }, }} // 115
, { "CS2_boar", 8, 11, (void *)0, (void *)0, "Boar", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 20 }, { 203, 1 }, { 202, 4 }, { 48, 1 }, { 47, 1 }, { 45, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 251, 1 }, }} // 116
, { "CS2_119", 7, 8, (void *)0, (void *)0, "Oasis Snapjaw", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 4 }, { 47, 2 }, { 45, 7 }, { 183, 2 }, { 321, 1 }, }} // 117
, { "CS2_172", 7, 11, (void *)0, (void *)0, "Bloodfen Raptor", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 1 }, { 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 2 }, { 47, 3 }, { 45, 2 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 118
, { "CS2_118", 7, 9, (void *)0, "EX1_303", "Shadow Fiend", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 203, 5 }, { 202, 4 }, { 48, 2 }, { 47, 1 }, { 45, 14 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, }} // 119
, { "CS2_231", 7, 8, (void *)0, (void *)0, "Wisp", {{0, 0, 0, 0, 0, 0, 0, 0}}, "NAX12_04e", {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 48, 2 }, { 47, 0 }, { 45, 2 }, { 183, 3 }, { 251, 7 }, }} // 120
, { "CS2_201", 7, 8, (void *)0, (void *)0, "Core Hound", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 1 }, { 202, 4 }, { 48, 7 }, { 47, 9 }, { 45, 5 }, { 183, 2 }, { 321, 1 }, }} // 121
, { "CS2_168", 7, 10, (void *)0, (void *)0, "Murloc Raider", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 2 }, { 200, 14 }, { 203, 2 }, { 202, 4 }, { 48, 1 }, { 47, 2 }, { 45, 1 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 122
, { "CS2_120", 7, 8, (void *)0, (void *)0, "River Crocolisk", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 2 }, { 47, 2 }, { 45, 3 }, { 183, 2 }, { 321, 1 }, }} // 123
, { "CS2_200", 7, 7, (void *)0, (void *)0, "Boulderfist Ogre", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 203, 2 }, { 202, 4 }, { 48, 6 }, { 47, 6 }, { 45, 7 }, { 183, 2 }, { 321, 1 }, }} // 124
, { "CS2_182", 7, 12, (void *)0, (void *)0, "Chillwind Yeti", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 48, 4 }, { 47, 4 }, { 45, 5 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 6 }, }} // 125
, { "CS2_034", 7, 7, (void *)0, (void *)0, "Fireblast", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 48, 2 }, { 49, 1 }, { 47, 1 }, { 202, 10 }, }} // 126
, { "CS1h_001", 8, 7, (void *)0, (void *)0, "Lesser Heal", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 10 }, { 199, 6 }, { 48, 2 }, { 183, 2 }, { 251, 1 }, }} // 127
, { "CS2_101", 7, 6, (void *)0, (void *)0, "Reinforce", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 10 }, { 48, 2 }, { 49, 1 }, { 12, 1 }, }} // 128
, { "CS2_083b", 8, 6, (void *)0, (void *)0, "Dagger Mastery", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 10 }, { 48, 2 }, { 49, 1 }, { 12, 1 }, }} // 129
, { "CS2_097", 7, 13, (void *)0, (void *)0, "Divine Rapier", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 7 }, { 199, 5 }, { 48, 5 }, { 47, 8 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 187, 1 }, { 32, 1 }, { 251, 6 }, }} // 130
, { "MANA_CARD", 9, 3, (void *)0, (void *)0, "Empty card", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 263, 5 }, { 12, 1 }, { 49, 3 }, }} // 131
, { "NO_CARD", 7, 1, (void *)0, (void *)0, "No Card", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 49, 2 }, }} // 132
, { "CS2_022", 7, 11, (void *)0, (void *)0, "Polymorph", {{0, 0, 0, 0, 0, 0, 0, 0}}, "CS2_022e", {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 4 }, { 48, 4 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 61
, { "CS2_022e", 8, 3, (void *)0, (void *)0, "Polymorph E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 62
, { "EX1_246e", 8, 3, (void *)0, (void *)0, "Hex E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 63
, { "CS2_092e", 8, 3, (void *)0, (void *)0, "Blessing of Kings E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 64
, { "CS2_087e", 8, 3, (void *)0, (void *)0, "Blessing of Might E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 65
, { "CS2_004e", 8, 3, (void *)0, (void *)0, "Power Word: Shield E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 66
, { "CS2_009e", 8, 3, (void *)0, (void *)0, "Mark of the Wild E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 67
, { "CS2_041e", 8, 3, (void *)0, (void *)0, "Ancestral Infusion", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 68
, { "CS2_045e", 8, 3, (void *)0, (void *)0, "Rockbiter Weapon E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 69
, { "CS2_046e", 8, 3, (void *)0, (void *)0, "Bloodlust E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 70
, { "CS2_005o", 8, 3, (void *)0, (void *)0, "Claw E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 71
, { "CS2_105e", 8, 3, (void *)0, (void *)0, "Heroic Strike E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 72
, { "CS2_011", 7, 10, (void *)0, (void *)0, "Enrage", {{0, 0, 0, 0, 0, 0, 0, 0}}, "CS2_011o", {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 2 }, { 48, 3 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 73
, { "CS2_011o", 8, 6, (void *)0, (void *)0, "Enraged", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 202, 6 }, { 199, 2 }, { 338, 1 }, { 331, 1 }, { 330, 1 }, { 183, 2 }, }} // 74
, { "HERO_01", 7, 6, (void *)0, (void *)0, "Warrior", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 75
, { "HERO_02", 7, 6, (void *)0, (void *)0, "Shamman", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 76
, { "HERO_04", 7, 6, (void *)0, (void *)0, "Paladin", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 77
, { "HERO_05", 7, 6, (void *)0, (void *)0, "Hunter", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 78
, { "HERO_06", 7, 6, (void *)0, (void *)0, "Druid", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 79
, { "HERO_07", 7, 6, (void *)0, (void *)0, "Warlock", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 80
, { "HERO_08", 7, 6, (void *)0, (void *)0, "Mage", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 81
, { "HERO_01a", 8, 6, (void *)0, (void *)0, "King of Khaz Modan", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 82
, { "HERO_04a", 8, 6, (void *)0, (void *)0, "Blood Knight Matriarch", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 83
, { "HERO_05a", 8, 6, (void *)0, (void *)0, "Alleria Windranger", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 84
, { "HERO_08a", 8, 6, (void *)0, (void *)0, "Guardian Medivh", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 85
, { "HERO_08b", 8, 6, (void *)0, (void *)0, "Khadgar", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 49, 1 }, { 45, 30 }, { 202, 3 }, }} // 86
, { "CS2_012", 7, 11, (void *)0, (void *)0, "Swipes", {{0, 0, 0, 0, 0, 0, 0, 0}}, "AT_039e", {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 2 }, { 48, 2 }, { 47, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 87
, { "CS2_072", 7, 12, (void *)0, (void *)0, "Backstab", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 7 }, { 48, 0 }, { 47, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 6 }, }} // 88
, { "DS1_185", 7, 9, (void *)0, (void *)0, "Arcane Shot", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 3 }, { 48, 1 }, { 47, 2 }, { 183, 2 }, { 321, 1 }, { 251, 8 }, }} // 89
, { "CS2_024", 7, 11, (void *)0, (void *)0, "Frostbolt", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 4 }, { 48, 2 }, { 47, 3 }, { 183, 2 }, { 321, 1 }, { 208, 1 }, { 268, 2 }, { 251, 1 }, }} // 90
, { "CS2_023", 7, 11, (void *)0, (void *)0, "Arcane Intellect", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 4 }, { 48, 3 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 91
, { "CS2_077", 7, 11, (void *)0, (void *)0, "Sprint", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 7 }, { 48, 7 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 92
, { "CS2_026", 7, 13, (void *)0, (void *)0, "Frost Nova", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 4 }, { 48, 2 }, { 47, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 208, 1 }, { 268, 2 }, { 251, 1 }, }} // 93
, { "CS2_032", 7, 12, (void *)0, (void *)0, "Flamestrike", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 4 }, { 48, 7 }, { 47, 4 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 94
, { "EX1_400", 7, 11, (void *)0, (void *)0, "Counter Helix", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 10 }, { 48, 0 }, { 47, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 95
, { "CS1_112", 7, 11, (void *)0, (void *)0, "Holy Nova", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 5 }, { 199, 6 }, { 48, 5 }, { 47, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 5 }, }} // 96
, { "CS2_122e", 8, 3, (void *)0, (void *)0, "Enhanced", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 97
, { "CS2_222", 7, 12, (void *)0, (void *)0, "Stormwind Champion", {{0, 0, 0, 0, 0, 0, 0, 0}}, "CS2_222o", {{ 201, 2 }, { 203, 1 }, { 202, 4 }, { 48, 7 }, { 47, 6 }, { 45, 6 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, { 362, 1 }, }} // 98
, { "CS2_222o", 8, 4, (void *)0, (void *)0, "Might of Stormwind", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 183, 2 }, { 202, 6 }, { 331, 0 }, { 330, 1 }, }} // 99
, { "EX1_084e", 8, 3, (void *)0, (void *)0, "Charge", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 100
, { "DS1_175o", 8, 3, (void *)0, (void *)0, "Furious Howl", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 101
, { "EX1_399e", 8, 3, (void *)0, (void *)0, "Berserking", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 102
, { "CS2_088", 7, 11, (void *)0, (void *)0, "Omniknight", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 199, 5 }, { 48, 2 }, { 47, 1 }, { 45, 17 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 5 }, }} // 103
, { "EX1_593", 7, 9, (void *)0, (void *)0, "Phantom Assassin", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 4 }, { 48, 4 }, { 47, 4 }, { 45, 2 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, }} // 104
, { "EX1_011", 7, 10, (void *)0, (void *)0, "Witch Doctor", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 1 }, { 203, 2 }, { 202, 4 }, { 48, 1 }, { 47, 2 }, { 45, 1 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 6 }, }} // 105
, { "CS2_042", 7, 11, (void *)0, (void *)0, "Fire Elemental", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 199, 8 }, { 48, 6 }, { 47, 6 }, { 45, 5 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 3 }, }} // 106
, { "CS2_226", 7, 12, (void *)0, (void *)0, "Legion Commander", {{0, 0, 0, 0, 0, 0, 0, 0}}, "CS2_226e", {{ 201, 1 }, { 203, 4 }, { 202, 4 }, { 48, 5 }, { 47, 4 }, { 45, 4 }, { 331, 0 }, { 330, 0 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 107
, { "CS2_226e", 8, 4, (void *)0, (void *)0, "Frostwolf Banner", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 183, 2 }, { 202, 6 }, { 331, 1 }, { 330, 1 }, }} // 108
, { "EX1_306", 7, 13, (void *)0, (void *)0, "Queen of Pain", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 15 }, { 203, 2 }, { 202, 4 }, { 199, 9 }, { 48, 3 }, { 47, 3 }, { 45, 5 }, { 218, 1 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 109
, { "EX1_581", 7, 10, (void *)0, (void *)0, "Sap", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 5 }, { 199, 7 }, { 48, 2 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, }} // 110
, { "CS1_113e", 8, 3, (void *)0, (void *)0, "Mind Control E", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 111
, { "NEW1_011", 8, 11, (void *)0, "CS2_108", "Mogul Khan, Axe", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 203, 5 }, { 202, 4 }, { 199, 10 }, { 48, 3 }, { 47, 2 }, { 197, 0 }, { 45, 20 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, }} // 112
, { "CS2_171", 7, 12, (void *)0, (void *)0, "Stonetusk Boar", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 1 }, { 47, 1 }, { 197, 0 }, { 45, 1 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 6 }, }} // 113
, { "CS2_065", 7, 13, "OG_101", "EX1_312", "Enigma", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 15 }, { 203, 5 }, { 202, 4 }, { 199, 9 }, { 48, 2 }, { 47, 1 }, { 45, 15 }, { 190, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 9 }, }} // 114
, { "EX1_565o", 8, 3, (void *)0, (void *)0, "Flametongue", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 12, 1 }, { 202, 6 }, { 49, 6 }, }} // 115
, { "EX1_506a", 8, 9, (void *)0, (void *)0, "Murloc Scout", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 14 }, { 203, 1 }, { 202, 4 }, { 48, 0 }, { 47, 1 }, { 45, 1 }, { 183, 2 }, { 251, 1 }, }} // 116
, { "CS2_237", 7, 12, (void *)0, (void *)0, "Vulture", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 1 }, { 202, 4 }, { 199, 3 }, { 48, 1 }, { 47, 1 }, { 45, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 32, 1 }, }} // 117
, { "CS2_boar", 8, 11, (void *)0, (void *)0, "Boar", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 200, 20 }, { 203, 1 }, { 202, 4 }, { 48, 1 }, { 47, 1 }, { 45, 1 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 251, 1 }, }} // 118
, { "CS2_119", 7, 8, (void *)0, (void *)0, "Oasis Snapjaw", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 4 }, { 47, 2 }, { 45, 7 }, { 183, 2 }, { 321, 1 }, }} // 119
, { "CS2_172", 7, 11, (void *)0, (void *)0, "Bloodfen Raptor", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 1 }, { 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 2 }, { 47, 3 }, { 45, 2 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 1 }, }} // 120
, { "CS2_118", 7, 9, (void *)0, "EX1_303", "Shadow Fiend", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 203, 5 }, { 202, 4 }, { 48, 2 }, { 47, 1 }, { 45, 14 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, }} // 121
, { "CS2_231", 7, 8, (void *)0, (void *)0, "Wisp", {{0, 0, 0, 0, 0, 0, 0, 0}}, "NAX12_04e", {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 48, 2 }, { 47, 0 }, { 45, 2 }, { 183, 3 }, { 251, 7 }, }} // 122
, { "CS2_201", 7, 8, (void *)0, (void *)0, "Core Hound", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 1 }, { 202, 4 }, { 48, 7 }, { 47, 9 }, { 45, 5 }, { 183, 2 }, { 321, 1 }, }} // 123
, { "CS2_168", 7, 10, (void *)0, (void *)0, "Murloc Raider", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 2 }, { 200, 14 }, { 203, 2 }, { 202, 4 }, { 48, 1 }, { 47, 2 }, { 45, 1 }, { 183, 2 }, { 321, 1 }, { 251, 1 }, }} // 124
, { "CS2_120", 7, 8, (void *)0, (void *)0, "River Crocolisk", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 200, 20 }, { 203, 2 }, { 202, 4 }, { 48, 2 }, { 47, 2 }, { 45, 3 }, { 183, 2 }, { 321, 1 }, }} // 125
, { "CS2_200", 7, 7, (void *)0, (void *)0, "Boulderfist Ogre", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 203, 2 }, { 202, 4 }, { 48, 6 }, { 47, 6 }, { 45, 7 }, { 183, 2 }, { 321, 1 }, }} // 126
, { "CS2_182", 7, 12, (void *)0, (void *)0, "Chillwind Yeti", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 4 }, { 48, 4 }, { 47, 4 }, { 45, 5 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 268, 2 }, { 251, 6 }, }} // 127
, { "CS2_034", 7, 7, (void *)0, (void *)0, "Fireblast", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 12, 1 }, { 48, 2 }, { 49, 1 }, { 47, 1 }, { 202, 10 }, }} // 128
, { "CS1h_001", 8, 7, (void *)0, (void *)0, "Lesser Heal", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 10 }, { 199, 6 }, { 48, 2 }, { 183, 2 }, { 251, 1 }, }} // 129
, { "CS2_101", 7, 6, (void *)0, (void *)0, "Reinforce", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 10 }, { 48, 2 }, { 49, 1 }, { 12, 1 }, }} // 130
, { "CS2_083b", 8, 6, (void *)0, (void *)0, "Dagger Mastery", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 2 }, { 202, 10 }, { 48, 2 }, { 49, 1 }, { 12, 1 }, }} // 131
, { "CS2_097", 7, 13, (void *)0, (void *)0, "Divine Rapier", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 201, 3 }, { 203, 1 }, { 202, 7 }, { 199, 5 }, { 48, 5 }, { 47, 8 }, { 331, 0 }, { 330, 0 }, { 183, 2 }, { 321, 1 }, { 187, 1 }, { 32, 1 }, { 251, 6 }, }} // 132
, { "MANA_CARD", 9, 3, (void *)0, (void *)0, "Empty card", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 263, 5 }, { 12, 1 }, { 49, 3 }, }} // 133
, { "NO_CARD", 7, 1, (void *)0, (void *)0, "No Card", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 49, 2 }, }} // 134
, };
void entities_init() {
@@ -151,7 +153,6 @@ void entities_init() {
flag(&entities[51].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[54].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[55].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[61].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[62].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[63].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[64].flags, CARD_ATTACHMENT, FLAG_SET);
@@ -162,8 +163,8 @@ void entities_init() {
flag(&entities[69].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[70].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[71].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[73].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[74].flags, CARD_HERO, FLAG_SET);
flag(&entities[72].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[74].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[75].flags, CARD_HERO, FLAG_SET);
flag(&entities[76].flags, CARD_HERO, FLAG_SET);
flag(&entities[77].flags, CARD_HERO, FLAG_SET);
@@ -175,32 +176,33 @@ void entities_init() {
flag(&entities[83].flags, CARD_HERO, FLAG_SET);
flag(&entities[84].flags, CARD_HERO, FLAG_SET);
flag(&entities[85].flags, CARD_HERO, FLAG_SET);
flag(&entities[95].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[86].flags, CARD_HERO, FLAG_SET);
flag(&entities[97].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[98].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[99].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[100].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[106].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[109].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[113].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[114].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
flag(&entities[101].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[102].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[108].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[111].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[115].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[116].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
flag(&entities[126].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[126].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[126].flags, CARD_SPELL, FLAG_SET);
flag(&entities[126].flags, CARD_HP_SPELL_DAMAGE, FLAG_SET);
flag(&entities[118].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
flag(&entities[128].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[128].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[128].flags, CARD_SPELL, FLAG_SET);
flag(&entities[128].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[128].flags, CARD_HP_REINFORCE, FLAG_SET);
flag(&entities[128].flags, CARD_SUMMON, FLAG_SET);
flag(&entities[129].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[129].flags, CARD_SPELL, FLAG_SET);
flag(&entities[129].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[129].flags, CARD_HP_DAGGERMASTERY, FLAG_SET);
flag(&entities[129].flags, CARD_SUMMON, FLAG_SET);
flag(&entities[131].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
flag(&entities[132].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
flag(&entities[128].flags, CARD_HP_SPELL_DAMAGE, FLAG_SET);
flag(&entities[130].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[130].flags, CARD_SPELL, FLAG_SET);
flag(&entities[130].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[130].flags, CARD_HP_REINFORCE, FLAG_SET);
flag(&entities[130].flags, CARD_SUMMON, FLAG_SET);
flag(&entities[131].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[131].flags, CARD_SPELL, FLAG_SET);
flag(&entities[131].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[131].flags, CARD_HP_DAGGERMASTERY, FLAG_SET);
flag(&entities[131].flags, CARD_SUMMON, FLAG_SET);
flag(&entities[133].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
flag(&entities[134].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
}
const char *race_beast[MAX_BEASTS] = {
};
+172 -163
View File
@@ -7,13 +7,13 @@ void entities_init2() {
flag(&entities[39].flags, spell_EX1_354_FLAG, FLAG_SET);
flag(&entities[39].flags, CARD_TARGET_ALLY_MINIONS, FLAG_SET);
flag(&entities[39].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[86].flags, destroyed_CS2_012_FLAG, FLAG_SET);
flag(&entities[86].flags, CARD_LEVELUP, FLAG_SET);
flag(&entities[86].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET);
flag(&entities[86].flags, CARD_SPELL, FLAG_SET);
flag(&entities[86].flags, spell_CS2_012_FLAG, FLAG_SET);
flag(&entities[86].flags, CARD_TARGET_ENEMY_MINIONS, FLAG_SET);
flag(&entities[86].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[87].flags, destroyed_CS2_012_FLAG, FLAG_SET);
flag(&entities[87].flags, CARD_LEVELUP, FLAG_SET);
flag(&entities[87].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET);
flag(&entities[87].flags, CARD_SPELL, FLAG_SET);
flag(&entities[87].flags, spell_CS2_012_FLAG, FLAG_SET);
flag(&entities[87].flags, CARD_TARGET_ENEMY_MINIONS, FLAG_SET);
flag(&entities[87].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[60].flags, destroyed_EX1_371_FLAG, FLAG_SET);
flag(&entities[60].flags, CARD_BUFF, FLAG_SET);
flag(&entities[60].flags, CARD_SPELL, FLAG_SET);
@@ -26,12 +26,12 @@ void entities_init2() {
flag(&entities[38].flags, CARD_AOE, FLAG_SET);
flag(&entities[38].flags, spell_aoe_EX1_312_FLAG, FLAG_SET);
flag(&entities[38].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[72].flags, destroyed_CS2_011_FLAG, FLAG_SET);
flag(&entities[72].flags, CARD_BUFF, FLAG_SET);
flag(&entities[72].flags, CARD_SPELL, FLAG_SET);
flag(&entities[72].flags, buff_CS2_011_FLAG, FLAG_SET);
flag(&entities[72].flags, CARD_TARGET_URSA, FLAG_SET);
flag(&entities[72].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[73].flags, destroyed_CS2_011_FLAG, FLAG_SET);
flag(&entities[73].flags, CARD_BUFF, FLAG_SET);
flag(&entities[73].flags, CARD_SPELL, FLAG_SET);
flag(&entities[73].flags, buff_CS2_011_FLAG, FLAG_SET);
flag(&entities[73].flags, CARD_TARGET_URSA, FLAG_SET);
flag(&entities[73].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[50].flags, destroyed_OG_223_FLAG, FLAG_SET);
flag(&entities[50].flags, CARD_BUFF, FLAG_SET);
flag(&entities[50].flags, CARD_SPELL, FLAG_SET);
@@ -68,20 +68,20 @@ void entities_init2() {
flag(&entities[31].flags, CARD_AOE, FLAG_SET);
flag(&entities[31].flags, spell_aoe_EX1_303_FLAG, FLAG_SET);
flag(&entities[31].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[130].flags, CARD_SPELL, FLAG_SET);
flag(&entities[130].flags, CARD_AOE, FLAG_SET);
flag(&entities[130].flags, CARD_WEAPON, FLAG_SET);
flag(&entities[130].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[130].flags, weapon_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, idle_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, weapon_destroyed_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, weapon_attack_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, onboard_CS2_097_FLAG, FLAG_SET);
flag(&entities[127].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[127].flags, CARD_SPELL, FLAG_SET);
flag(&entities[127].flags, spell_CS1h_001_FLAG, FLAG_SET);
flag(&entities[127].flags, CARD_TARGET_ALL, FLAG_SET);
flag(&entities[127].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[132].flags, CARD_SPELL, FLAG_SET);
flag(&entities[132].flags, CARD_AOE, FLAG_SET);
flag(&entities[132].flags, CARD_WEAPON, FLAG_SET);
flag(&entities[132].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[132].flags, weapon_CS2_097_FLAG, FLAG_SET);
flag(&entities[132].flags, idle_CS2_097_FLAG, FLAG_SET);
flag(&entities[132].flags, weapon_destroyed_CS2_097_FLAG, FLAG_SET);
flag(&entities[132].flags, weapon_attack_CS2_097_FLAG, FLAG_SET);
flag(&entities[132].flags, onboard_CS2_097_FLAG, FLAG_SET);
flag(&entities[129].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[129].flags, CARD_SPELL, FLAG_SET);
flag(&entities[129].flags, spell_CS1h_001_FLAG, FLAG_SET);
flag(&entities[129].flags, CARD_TARGET_ALL, FLAG_SET);
flag(&entities[129].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[46].flags, destroyed_NEW1_036_FLAG, FLAG_SET);
flag(&entities[46].flags, CARD_BUFF, FLAG_SET);
flag(&entities[46].flags, CARD_SPELL, FLAG_SET);
@@ -91,22 +91,18 @@ void entities_init2() {
flag(&entities[19].flags, CARD_AOE, FLAG_SET);
flag(&entities[19].flags, spell_aoe_GVG_010_FLAG, FLAG_SET);
flag(&entities[19].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[94].flags, CARD_SPELL, FLAG_SET);
flag(&entities[94].flags, CARD_AOE, FLAG_SET);
flag(&entities[94].flags, spell_aoe_CS1_112_FLAG, FLAG_SET);
flag(&entities[94].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[87].flags, CARD_SPELL, FLAG_SET);
flag(&entities[87].flags, spell_CS2_072_FLAG, FLAG_SET);
flag(&entities[87].flags, CARD_TARGET_UNDAMAGED_MINION, FLAG_SET);
flag(&entities[87].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[88].flags, CARD_SPELL, FLAG_SET);
flag(&entities[88].flags, spell_CS2_072_FLAG, FLAG_SET);
flag(&entities[88].flags, CARD_TARGET_UNDAMAGED_MINION, FLAG_SET);
flag(&entities[88].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[92].flags, CARD_BUFF, FLAG_SET);
flag(&entities[92].flags, CARD_SPELL, FLAG_SET);
flag(&entities[92].flags, buff_CS2_077_FLAG, FLAG_SET);
flag(&entities[92].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[91].flags, CARD_BUFF, FLAG_SET);
flag(&entities[91].flags, CARD_SPELL, FLAG_SET);
flag(&entities[91].flags, buff_CS2_077_FLAG, FLAG_SET);
flag(&entities[91].flags, buff_CS2_023_FLAG, FLAG_SET);
flag(&entities[91].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[90].flags, CARD_BUFF, FLAG_SET);
flag(&entities[90].flags, CARD_SPELL, FLAG_SET);
flag(&entities[90].flags, buff_CS2_023_FLAG, FLAG_SET);
flag(&entities[90].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[36].flags, attachment_attack_EX1_607e_FLAG, FLAG_SET);
flag(&entities[6].flags, CARD_HERO, FLAG_SET);
flag(&entities[5].flags, defender_TB_SPT_Boss_FLAG, FLAG_SET);
@@ -124,17 +120,17 @@ void entities_init2() {
flag(&entities[4].flags, CARD_SPELL, FLAG_SET);
flag(&entities[4].flags, buff_PRO_001c_FLAG, FLAG_SET);
flag(&entities[4].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[89].flags, CARD_FREEZE, FLAG_SET);
flag(&entities[89].flags, CARD_MINION, FLAG_SET);
flag(&entities[89].flags, attack_effect_CS2_024_FLAG, FLAG_SET);
flag(&entities[90].flags, CARD_FREEZE, FLAG_SET);
flag(&entities[90].flags, CARD_MINION, FLAG_SET);
flag(&entities[90].flags, attack_effect_CS2_024_FLAG, FLAG_SET);
flag(&entities[90].flags, CARD_SPELL, FLAG_SET);
flag(&entities[90].flags, spell_CS2_024_FLAG, FLAG_SET);
flag(&entities[90].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[90].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[89].flags, CARD_SPELL, FLAG_SET);
flag(&entities[89].flags, spell_CS2_024_FLAG, FLAG_SET);
flag(&entities[89].flags, spell_DS1_185_FLAG, FLAG_SET);
flag(&entities[89].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[89].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[88].flags, CARD_SPELL, FLAG_SET);
flag(&entities[88].flags, spell_DS1_185_FLAG, FLAG_SET);
flag(&entities[88].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[88].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[53].flags, CARD_BUFF, FLAG_SET);
flag(&entities[53].flags, CARD_SPELL, FLAG_SET);
flag(&entities[53].flags, buff_CS2_063_FLAG, FLAG_SET);
@@ -182,24 +178,24 @@ void entities_init2() {
flag(&entities[20].flags, CARD_SPELL, FLAG_SET);
flag(&entities[20].flags, buff_OG_090_FLAG, FLAG_SET);
flag(&entities[20].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[103].flags, CARD_MINION, FLAG_SET);
flag(&entities[103].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[103].flags, attack_EX1_011_FLAG, FLAG_SET);
flag(&entities[103].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[103].flags, battlecry_EX1_011_FLAG, FLAG_SET);
flag(&entities[103].flags, CARD_TARGET_ALLY_BOARD, FLAG_SET);
flag(&entities[103].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[105].flags, CARD_MINION, FLAG_SET);
flag(&entities[105].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[105].flags, attack_EX1_011_FLAG, FLAG_SET);
flag(&entities[105].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[105].flags, battlecry_EX1_011_FLAG, FLAG_SET);
flag(&entities[105].flags, CARD_TARGET_ALLY_BOARD, FLAG_SET);
flag(&entities[105].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[10].flags, endturn_EX1_105_FLAG, FLAG_SET);
flag(&entities[10].flags, CARD_MINION, FLAG_SET);
flag(&entities[10].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[10].flags, attack_EX1_105_FLAG, FLAG_SET);
flag(&entities[101].flags, CARD_MINION, FLAG_SET);
flag(&entities[101].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[101].flags, attack_CS2_088_FLAG, FLAG_SET);
flag(&entities[101].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[101].flags, battlecry_CS2_088_FLAG, FLAG_SET);
flag(&entities[101].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[101].flags, onboard_CS2_088_FLAG, FLAG_SET);
flag(&entities[103].flags, CARD_MINION, FLAG_SET);
flag(&entities[103].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[103].flags, attack_CS2_088_FLAG, FLAG_SET);
flag(&entities[103].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[103].flags, battlecry_CS2_088_FLAG, FLAG_SET);
flag(&entities[103].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[103].flags, onboard_CS2_088_FLAG, FLAG_SET);
flag(&entities[18].flags, CARD_MINION, FLAG_SET);
flag(&entities[18].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[18].flags, attack_EX1_158t_FLAG, FLAG_SET);
@@ -209,60 +205,60 @@ void entities_init2() {
flag(&entities[33].flags, CARD_MINION, FLAG_SET);
flag(&entities[33].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[33].flags, attack_AT_023_FLAG, FLAG_SET);
flag(&entities[122].flags, CARD_MINION, FLAG_SET);
flag(&entities[122].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[122].flags, attack_CS2_168_FLAG, FLAG_SET);
flag(&entities[121].flags, CARD_MINION, FLAG_SET);
flag(&entities[121].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[121].flags, attack_CS2_201_FLAG, FLAG_SET);
flag(&entities[124].flags, CARD_MINION, FLAG_SET);
flag(&entities[124].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[124].flags, attack_CS2_200_FLAG, FLAG_SET);
flag(&entities[117].flags, CARD_MINION, FLAG_SET);
flag(&entities[117].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[117].flags, attack_CS2_119_FLAG, FLAG_SET);
flag(&entities[118].flags, CARD_MINION, FLAG_SET);
flag(&entities[118].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[118].flags, attack_CS2_172_FLAG, FLAG_SET);
flag(&entities[111].flags, CARD_MINION, FLAG_SET);
flag(&entities[111].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[111].flags, attack_CS2_171_FLAG, FLAG_SET);
flag(&entities[125].flags, CARD_MINION, FLAG_SET);
flag(&entities[125].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[125].flags, attack_CS2_182_FLAG, FLAG_SET);
flag(&entities[124].flags, attack_CS2_168_FLAG, FLAG_SET);
flag(&entities[123].flags, CARD_MINION, FLAG_SET);
flag(&entities[123].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[123].flags, attack_CS2_120_FLAG, FLAG_SET);
flag(&entities[114].flags, CARD_MINION, FLAG_SET);
flag(&entities[114].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[114].flags, attack_EX1_506a_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_MINION, FLAG_SET);
flag(&entities[104].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[104].flags, attack_CS2_042_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[104].flags, battlecry_CS2_042_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_TARGET_BOARD, FLAG_SET);
flag(&entities[104].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[116].flags, CARD_TAUNT, FLAG_SET);
flag(&entities[123].flags, attack_CS2_201_FLAG, FLAG_SET);
flag(&entities[126].flags, CARD_MINION, FLAG_SET);
flag(&entities[126].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[126].flags, attack_CS2_200_FLAG, FLAG_SET);
flag(&entities[119].flags, CARD_MINION, FLAG_SET);
flag(&entities[119].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[119].flags, attack_CS2_119_FLAG, FLAG_SET);
flag(&entities[120].flags, CARD_MINION, FLAG_SET);
flag(&entities[120].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[120].flags, attack_CS2_172_FLAG, FLAG_SET);
flag(&entities[113].flags, CARD_MINION, FLAG_SET);
flag(&entities[113].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[113].flags, attack_CS2_171_FLAG, FLAG_SET);
flag(&entities[127].flags, CARD_MINION, FLAG_SET);
flag(&entities[127].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[127].flags, attack_CS2_182_FLAG, FLAG_SET);
flag(&entities[125].flags, CARD_MINION, FLAG_SET);
flag(&entities[125].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[125].flags, attack_CS2_120_FLAG, FLAG_SET);
flag(&entities[116].flags, CARD_MINION, FLAG_SET);
flag(&entities[116].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[116].flags, attack_CS2_boar_FLAG, FLAG_SET);
flag(&entities[115].flags, CARD_MINION, FLAG_SET);
flag(&entities[115].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[115].flags, attack_CS2_237_FLAG, FLAG_SET);
flag(&entities[116].flags, attack_EX1_506a_FLAG, FLAG_SET);
flag(&entities[106].flags, CARD_MINION, FLAG_SET);
flag(&entities[106].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[106].flags, attack_CS2_042_FLAG, FLAG_SET);
flag(&entities[106].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[106].flags, battlecry_CS2_042_FLAG, FLAG_SET);
flag(&entities[106].flags, CARD_TARGET_BOARD, FLAG_SET);
flag(&entities[106].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[118].flags, CARD_TAUNT, FLAG_SET);
flag(&entities[118].flags, CARD_MINION, FLAG_SET);
flag(&entities[118].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[118].flags, attack_CS2_boar_FLAG, FLAG_SET);
flag(&entities[117].flags, CARD_MINION, FLAG_SET);
flag(&entities[117].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[117].flags, attack_CS2_237_FLAG, FLAG_SET);
flag(&entities[12].flags, CARD_MINION, FLAG_SET);
flag(&entities[12].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[12].flags, attack_LOE_077_FLAG, FLAG_SET);
flag(&entities[12].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[12].flags, battlecry_LOE_077_FLAG, FLAG_SET);
flag(&entities[12].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[119].flags, destroyed_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, defender_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, CARD_MINION, FLAG_SET);
flag(&entities[119].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[119].flags, attack_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, onboard_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, CARD_BOSS, FLAG_SET);
flag(&entities[121].flags, destroyed_CS2_118_FLAG, FLAG_SET);
flag(&entities[121].flags, defender_CS2_118_FLAG, FLAG_SET);
flag(&entities[121].flags, CARD_MINION, FLAG_SET);
flag(&entities[121].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[121].flags, attack_CS2_118_FLAG, FLAG_SET);
flag(&entities[121].flags, onboard_CS2_118_FLAG, FLAG_SET);
flag(&entities[121].flags, CARD_BOSS, FLAG_SET);
flag(&entities[16].flags, destroyed_AT_128_FLAG, FLAG_SET);
flag(&entities[16].flags, CARD_MINION, FLAG_SET);
flag(&entities[16].flags, CARD_TARGETING, FLAG_SET);
@@ -274,13 +270,13 @@ void entities_init2() {
flag(&entities[59].flags, battlecry_EX1_614_FLAG, FLAG_SET);
flag(&entities[59].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[59].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[102].flags, CARD_MINION, FLAG_SET);
flag(&entities[102].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[102].flags, attack_EX1_593_FLAG, FLAG_SET);
flag(&entities[102].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[102].flags, battlecry_EX1_593_FLAG, FLAG_SET);
flag(&entities[102].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[102].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[104].flags, CARD_MINION, FLAG_SET);
flag(&entities[104].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[104].flags, attack_EX1_593_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[104].flags, battlecry_EX1_593_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[104].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[14].flags, CARD_MINION, FLAG_SET);
flag(&entities[14].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[14].flags, attack_GVG_105_FLAG, FLAG_SET);
@@ -299,12 +295,12 @@ void entities_init2() {
flag(&entities[52].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[52].flags, attack_EX1_383_FLAG, FLAG_SET);
flag(&entities[52].flags, onboard_EX1_383_FLAG, FLAG_SET);
flag(&entities[112].flags, destroyed_CS2_065_FLAG, FLAG_SET);
flag(&entities[112].flags, CARD_BOSS, FLAG_SET);
flag(&entities[112].flags, CARD_MINION, FLAG_SET);
flag(&entities[112].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[112].flags, attack_CS2_065_FLAG, FLAG_SET);
flag(&entities[112].flags, onboard_CS2_065_FLAG, FLAG_SET);
flag(&entities[114].flags, destroyed_CS2_065_FLAG, FLAG_SET);
flag(&entities[114].flags, CARD_BOSS, FLAG_SET);
flag(&entities[114].flags, CARD_MINION, FLAG_SET);
flag(&entities[114].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[114].flags, attack_CS2_065_FLAG, FLAG_SET);
flag(&entities[114].flags, onboard_CS2_065_FLAG, FLAG_SET);
flag(&entities[42].flags, destroyed_AT_018_FLAG, FLAG_SET);
flag(&entities[42].flags, CARD_SPELLPOWER, FLAG_SET);
flag(&entities[42].flags, CARD_BOSS, FLAG_SET);
@@ -325,27 +321,27 @@ void entities_init2() {
flag(&entities[45].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[45].flags, attack_EX1_559_FLAG, FLAG_SET);
flag(&entities[45].flags, onboard_EX1_559_FLAG, FLAG_SET);
flag(&entities[110].flags, destroyed_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, defender_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, CARD_MINION, FLAG_SET);
flag(&entities[110].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[110].flags, attack_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, onboard_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, CARD_BOSS, FLAG_SET);
flag(&entities[105].flags, CARD_MINION, FLAG_SET);
flag(&entities[105].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[105].flags, attack_CS2_226_FLAG, FLAG_SET);
flag(&entities[105].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[105].flags, battlecry_CS2_226_FLAG, FLAG_SET);
flag(&entities[105].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[112].flags, destroyed_NEW1_011_FLAG, FLAG_SET);
flag(&entities[112].flags, defender_NEW1_011_FLAG, FLAG_SET);
flag(&entities[112].flags, CARD_MINION, FLAG_SET);
flag(&entities[112].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[112].flags, attack_NEW1_011_FLAG, FLAG_SET);
flag(&entities[112].flags, onboard_NEW1_011_FLAG, FLAG_SET);
flag(&entities[112].flags, CARD_BOSS, FLAG_SET);
flag(&entities[107].flags, CARD_MINION, FLAG_SET);
flag(&entities[107].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[107].flags, attack_CS2_226_FLAG, FLAG_SET);
flag(&entities[107].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[107].flags, battlecry_CS2_226_FLAG, FLAG_SET);
flag(&entities[107].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[29].flags, CARD_MINION, FLAG_SET);
flag(&entities[29].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[29].flags, attack_EX1_009_FLAG, FLAG_SET);
flag(&entities[108].flags, CARD_BUFF, FLAG_SET);
flag(&entities[108].flags, CARD_SPELL, FLAG_SET);
flag(&entities[108].flags, buff_EX1_581_FLAG, FLAG_SET);
flag(&entities[108].flags, CARD_TARGET_MINIONS, FLAG_SET);
flag(&entities[108].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[110].flags, CARD_BUFF, FLAG_SET);
flag(&entities[110].flags, CARD_SPELL, FLAG_SET);
flag(&entities[110].flags, buff_EX1_581_FLAG, FLAG_SET);
flag(&entities[110].flags, CARD_TARGET_MINIONS, FLAG_SET);
flag(&entities[110].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[11].flags, CARD_MINION, FLAG_SET);
flag(&entities[11].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[11].flags, attack_EX1_049_FLAG, FLAG_SET);
@@ -353,12 +349,12 @@ void entities_init2() {
flag(&entities[11].flags, battlecry_EX1_049_FLAG, FLAG_SET);
flag(&entities[11].flags, CARD_TARGET_ALLY_MINIONS, FLAG_SET);
flag(&entities[11].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[93].flags, CARD_LEVELUP, FLAG_SET);
flag(&entities[93].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET);
flag(&entities[93].flags, CARD_SPELL, FLAG_SET);
flag(&entities[93].flags, CARD_AOE, FLAG_SET);
flag(&entities[93].flags, spell_aoe_EX1_400_FLAG, FLAG_SET);
flag(&entities[93].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[95].flags, CARD_LEVELUP, FLAG_SET);
flag(&entities[95].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET);
flag(&entities[95].flags, CARD_SPELL, FLAG_SET);
flag(&entities[95].flags, CARD_AOE, FLAG_SET);
flag(&entities[95].flags, spell_aoe_EX1_400_FLAG, FLAG_SET);
flag(&entities[95].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[26].flags, attack_effect_attachment_LOEA06_03e_FLAG, FLAG_SET);
flag(&entities[30].flags, CARD_SPELL, FLAG_SET);
flag(&entities[30].flags, CARD_AOE, FLAG_SET);
@@ -374,26 +370,39 @@ void entities_init2() {
flag(&entities[25].flags, buff_LOEA06_03_FLAG, FLAG_SET);
flag(&entities[25].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[25].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[92].flags, CARD_SPELL, FLAG_SET);
flag(&entities[92].flags, CARD_AOE, FLAG_SET);
flag(&entities[92].flags, spell_aoe_CS2_026_FLAG, FLAG_SET);
flag(&entities[92].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[107].flags, CARD_MINION, FLAG_SET);
flag(&entities[107].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[107].flags, attack_EX1_306_FLAG, FLAG_SET);
flag(&entities[107].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[107].flags, battlecry_EX1_306_FLAG, FLAG_SET);
flag(&entities[107].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[96].flags, destroyed_CS2_222_FLAG, FLAG_SET);
flag(&entities[96].flags, CARD_MINION, FLAG_SET);
flag(&entities[96].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[96].flags, attack_CS2_222_FLAG, FLAG_SET);
flag(&entities[96].flags, idle_CS2_222_FLAG, FLAG_SET);
flag(&entities[96].flags, onboard_CS2_222_FLAG, FLAG_SET);
flag(&entities[120].flags, destroyed_CS2_231_FLAG, FLAG_SET);
flag(&entities[120].flags, CARD_MINION, FLAG_SET);
flag(&entities[120].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[120].flags, attack_CS2_231_FLAG, FLAG_SET);
flag(&entities[120].flags, idle_CS2_231_FLAG, FLAG_SET);
flag(&entities[120].flags, onboard_CS2_231_FLAG, FLAG_SET);
flag(&entities[109].flags, CARD_MINION, FLAG_SET);
flag(&entities[109].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[109].flags, attack_EX1_306_FLAG, FLAG_SET);
flag(&entities[109].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[109].flags, battlecry_EX1_306_FLAG, FLAG_SET);
flag(&entities[109].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[98].flags, destroyed_CS2_222_FLAG, FLAG_SET);
flag(&entities[98].flags, CARD_MINION, FLAG_SET);
flag(&entities[98].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[98].flags, attack_CS2_222_FLAG, FLAG_SET);
flag(&entities[98].flags, idle_CS2_222_FLAG, FLAG_SET);
flag(&entities[98].flags, onboard_CS2_222_FLAG, FLAG_SET);
flag(&entities[122].flags, destroyed_CS2_231_FLAG, FLAG_SET);
flag(&entities[122].flags, CARD_MINION, FLAG_SET);
flag(&entities[122].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[122].flags, attack_CS2_231_FLAG, FLAG_SET);
flag(&entities[122].flags, idle_CS2_231_FLAG, FLAG_SET);
flag(&entities[122].flags, onboard_CS2_231_FLAG, FLAG_SET);
flag(&entities[61].flags, CARD_BUFF, FLAG_SET);
flag(&entities[61].flags, CARD_SPELL, FLAG_SET);
flag(&entities[61].flags, buff_CS2_022_FLAG, FLAG_SET);
flag(&entities[61].flags, CARD_TARGET_ENEMY_MINIONS, FLAG_SET);
flag(&entities[61].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[96].flags, CARD_SPELL, FLAG_SET);
flag(&entities[96].flags, CARD_AOE, FLAG_SET);
flag(&entities[96].flags, spell_aoe_CS1_112_FLAG, FLAG_SET);
flag(&entities[96].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[93].flags, CARD_SPELL, FLAG_SET);
flag(&entities[93].flags, CARD_AOE, FLAG_SET);
flag(&entities[93].flags, spell_aoe_CS2_026_FLAG, FLAG_SET);
flag(&entities[93].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[94].flags, CARD_SPELL, FLAG_SET);
flag(&entities[94].flags, CARD_AOE, FLAG_SET);
flag(&entities[94].flags, spell_aoe_CS2_032_FLAG, FLAG_SET);
flag(&entities[94].flags, CARD_NONTARGET, FLAG_SET);
}