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
+3
View File
@@ -15,3 +15,6 @@ cache
*_log *_log
*.log *.log
player1
player2
-7
View File
@@ -11,13 +11,6 @@ RUN git clone https://github.com/couchbase/libcouchbase.git
RUN cd libcouchbase && git checkout 2.9.0 && cmake . && make && make install && ldconfig RUN cd libcouchbase && git checkout 2.9.0 && cmake . && make && make install && ldconfig
# RUN wget http://packages.couchbase.com/clients/c/libcouchbase-2.5.8_ubuntu1404_amd64.tar && tar xvf *.tar && cd libcouchbase-2.5.8_ubuntu1404_amd64/ && dpkg -i *.deb # RUN wget http://packages.couchbase.com/clients/c/libcouchbase-2.5.8_ubuntu1404_amd64.tar && tar xvf *.tar && cd libcouchbase-2.5.8_ubuntu1404_amd64/ && dpkg -i *.deb
RUN pip install couchbase==2.2.4 RUN pip install couchbase==2.2.4
# hearthmod
#RUN git clone https://github.com/farb3yonddriv3n/hm_database.git
#RUN git clone https://github.com/farb3yonddriv3n/hm_base.git
#RUN git clone https://github.com/farb3yonddriv3n/hm_gameserver.git
#RUN git clone https://github.com/farb3yonddriv3n/hm_lobbyserver.git
#RUN git clone https://github.com/farb3yonddriv3n/hm_ctl.git
#RUN git clone https://github.com/farb3yonddriv3n/hm_stud.git
# cleanup # cleanup
RUN rm -rf /app/couchbase-server-enterprise_4.5.0-ubuntu14.04_amd64.deb RUN rm -rf /app/couchbase-server-enterprise_4.5.0-ubuntu14.04_amd64.deb
+1
View File
@@ -22,3 +22,4 @@ services:
- 3724:3724 - 3724:3724
- 80:80 - 80:80
- 9002:9002 - 9002:9002
- 8081:8081
+3 -2
View File
@@ -22,14 +22,15 @@ case $1 in
start) start)
$CMD mkdir -p /app/hm_log $CMD mkdir -p /app/hm_log
# Start the servers # Start the servers
$CMD /app/hm_gameserver/hm_gameserver --log=/app/hm_log/hm_gameserver_$(date +%s) $CMD /app/hm_gameserver/hm_gameserver --log=/app/hm_log/hm_gameserver_$(date +%s).log
$CMD /app/hm_lobbyserver/hm_lobbyserver --gameserver=127.0.0.1 --log=/app/hm_log/hm_lobbyserver_$(date +%s) $CMD /app/hm_lobbyserver/hm_lobbyserver --gameserver=127.0.0.1 --log=/app/hm_log/hm_lobbyserver_$(date +%s).log
# Start stud # Start stud
$CMD /app/hm_stud/stud /app/hm_stud/cert/test.com.pem $CMD /app/hm_stud/stud /app/hm_stud/cert/test.com.pem
# Start fcgi # Start fcgi
$CMD spawn-fcgi -d /app/hm_web/ -f /app/hm_web/app.py -a 127.0.0.1 -p 9002 $CMD spawn-fcgi -d /app/hm_web/ -f /app/hm_web/app.py -a 127.0.0.1 -p 9002
# Start nginx # Start nginx
$CMD /app/hm_nginx/objs/nginx $CMD /app/hm_nginx/objs/nginx
docker exec -d hearthmod /bin/bash -c 'cd /app/hm_sunwell && nodejs examples/server hm_sunwell > /app/hm_log/nodejs_server_$(date +%s).log 2>&1'
;; ;;
stop) stop)
$CMD /bin/bash -c "ps -ef | grep hm_ | grep -v grep | awk '{print \$2}' | xargs kill -9" $CMD /bin/bash -c "ps -ef | grep hm_ | grep -v grep | awk '{print \$2}' | xargs kill -9"
Binary file not shown.
+4 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 12.0.2, 2024-02-28T13:09:40. --> <!-- Written by QtCreator 12.0.2, 2024-03-13T13:45:55. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@@ -83,6 +83,9 @@
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/> <valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value> <value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="CppEditor.QuickFix">
<value type="bool" key="UseGlobalSettings">true</value>
</valuemap>
</valuemap> </valuemap>
</data> </data>
<data> <data>
Binary file not shown.
+5 -5
View File
@@ -202,7 +202,7 @@ name="Terrorblade" card=EX1_614 tags={183:3,203:5,202:4,48:6,45:1,47:5,201:3,251
name="Guardian Angel" card=EX1_371 tags={183:2,203:2,202:5,48:2,199:5,201:3,251:1,321:1,330:0,331:0,} custom=1 name="Guardian Angel" card=EX1_371 tags={183:2,203:2,202:5,48:2,199:5,201:3,251:1,321:1,330:0,331:0,} custom=1
# Polymorph # Polymorph
[CS2_022] attachment=CS2_022e name="Polymorph" card=CS2_022 tags={183:2,202:5,201:3,199:4,203:2,48:4,251:1,268:2,321:1,330:0,331:0,} custom=1 attachment=CS2_022e
name="Polymorph E" card=CS2_022e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT) name="Polymorph E" card=CS2_022e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Hex # Hex
@@ -379,7 +379,7 @@ name="Sprint" card=CS2_077 tags={183:2,202:5,201:3,199:7,203:1,48:7,251:1,268:2,
[DS1_233] [DS1_233]
# Frost Nova # Frost Nova
name="Shiva's Guard" card=CS2_026 tags={183:2,202:5,201:3,199:4,203:1,48:3,251:1,47:1,268:2,321:1,330:0,331:0,208:1,} custom=1 name="Frost Nova" card=CS2_026 tags={183:2,202:5,201:3,199:4,203:1,48:2,251:1,47:1,268:2,321:1,330:0,331:0,208:1,} custom=1
# Fan of Knives # Fan of Knives
[EX1_129] [EX1_129]
@@ -394,7 +394,7 @@ name="Shiva's Guard" card=CS2_026 tags={183:2,202:5,201:3,199:4,203:1,48:3,251:1
[CS2_003] [CS2_003]
# Flamestrike # Flamestrike
[CS2_032] name="Flamestrike" card=CS2_032 tags={183:2,202:5,201:3,199:4,203:1,48:7,251:1,47:4,268:2,321:1,330:0,331:0,} custom=1
# Whirlwind # Whirlwind
name="Counter Helix" card=EX1_400 tags={183:2,202:5,201:3,199:10,203:1,48:0,251:1,47:1,321:1,330:0,331:0,} custom=1 name="Counter Helix" card=EX1_400 tags={183:2,202:5,201:3,199:10,203:1,48:0,251:1,47:1,321:1,330:0,331:0,} custom=1
@@ -403,7 +403,7 @@ name="Counter Helix" card=EX1_400 tags={183:2,202:5,201:3,199:10,203:1,48:0,251:
[CS2_093] [CS2_093]
# Holy Nova # Holy Nova
name="Mekansm" card=CS1_112 tags={183:2,202:5,201:3,199:6,203:1,48:4,251:5,321:1,330:0,331:0,} custom=1 name="Holy Nova" card=CS1_112 tags={183:2,202:5,201:3,199:6,203:1,48:5,251:5,47:2,321:1,330:0,331:0,} custom=1
# Hellfire # Hellfire
[CS2_062] [CS2_062]
@@ -487,7 +487,7 @@ name="Legion Commander" card=CS2_226 tags={183:2,202:4,201:1,203:4,48:5,47:4,45:
name="Frostwolf Banner" card=CS2_226e tags={183:2,202:6,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT) name="Frostwolf Banner" card=CS2_226e tags={183:2,202:6,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT)
# Succubus # Succubus
name="Queen of Pain" card=EX1_306 tags={183:2,202:4,201:3,199:9,200:15,203:2,48:3,47:4,45:3,251:1,268:2,321:1,218:1,} custom=1 name="Queen of Pain" card=EX1_306 tags={183:2,202:4,201:3,199:9,200:15,203:2,48:3,47:3,45:5,251:1,268:2,321:1,218:1,} custom=1
# Sap # Sap
name="Sap" card=EX1_581 tags={183:2,203:2,202:5,48:2,201:3,199:7,268:2,321:1,330:0,331:0,} custom=1 name="Sap" card=EX1_581 tags={183:2,203:2,202:5,48:2,201:3,199:7,268:2,321:1,330:0,331:0,} custom=1
+4 -2
View File
@@ -29,7 +29,6 @@ spell_CS1h_001_FLAG, 1000
destroyed_NEW1_036_FLAG, 1000 destroyed_NEW1_036_FLAG, 1000
buff_NEW1_036_FLAG, 1000 buff_NEW1_036_FLAG, 1000
spell_aoe_GVG_010_FLAG, 1000 spell_aoe_GVG_010_FLAG, 1000
spell_aoe_CS1_112_FLAG, 1000
spell_CS2_072_FLAG, 1000 spell_CS2_072_FLAG, 1000
buff_CS2_077_FLAG, 1000 buff_CS2_077_FLAG, 1000
buff_CS2_023_FLAG, 1000 buff_CS2_023_FLAG, 1000
@@ -125,7 +124,6 @@ weapon_destroyed_LOE_118_FLAG, 1000
weapon_attack_LOE_118_FLAG, 1000 weapon_attack_LOE_118_FLAG, 1000
onboard_LOE_118_FLAG, 1000 onboard_LOE_118_FLAG, 1000
buff_LOEA06_03_FLAG, 1000 buff_LOEA06_03_FLAG, 1000
spell_aoe_CS2_026_FLAG, 1000
attack_EX1_306_FLAG, 1000 attack_EX1_306_FLAG, 1000
battlecry_EX1_306_FLAG, 1000 battlecry_EX1_306_FLAG, 1000
destroyed_CS2_222_FLAG, 1000 destroyed_CS2_222_FLAG, 1000
@@ -136,3 +134,7 @@ destroyed_CS2_231_FLAG, 1000
attack_CS2_231_FLAG, 1000 attack_CS2_231_FLAG, 1000
idle_CS2_231_FLAG, 1000 idle_CS2_231_FLAG, 1000
onboard_CS2_231_FLAG, 1000 onboard_CS2_231_FLAG, 1000
buff_CS2_022_FLAG, 1000
spell_aoe_CS1_112_FLAG, 1000
spell_aoe_CS2_026_FLAG, 1000
spell_aoe_CS2_032_FLAG, 1000
@@ -2,7 +2,7 @@
{ {
".section buff" : { ".section buff" : {
"code": " "code": "
hsl_transform($attacker, $defender, \"CS2_tk1\"); hsl_transform($deck_player, $attacker, $defender, \"CS2_tk1\");
", ",
"target": "$enemy_minions" "target": "$enemy_minions"
@@ -91,6 +91,11 @@
int count = hsl_count_attachments(hsl_deck(HSL_defender), NULL, HSL_defender, CN_DESOLATOR_BONUS); if(count == 0) { hsl_add_single_attachment(HSL_player, hsl_deck(HSL_defender), HSL_attacker, HSL_defender); } \ int count = hsl_count_attachments(hsl_deck(HSL_defender), NULL, HSL_defender, CN_DESOLATOR_BONUS); if(count == 0) { hsl_add_single_attachment(HSL_player, hsl_deck(HSL_defender), HSL_attacker, HSL_defender); } \
} }
#define buff_CS2_022\
if(HSL_attacker && flag(&(HSL_attacker->state), buff_CS2_022_FLAG, FLAG_ISSET)) {\
hsl_transform(HSL_deck_player, HSL_attacker, HSL_defender, "CS2_tk1"); \
}
#define __SECTION_BUFF\ #define __SECTION_BUFF\
buff_EX1_371\ buff_EX1_371\
buff_CS2_011\ buff_CS2_011\
@@ -110,5 +115,6 @@
buff_OG_090\ buff_OG_090\
buff_EX1_581\ buff_EX1_581\
buff_LOEA06_03\ buff_LOEA06_03\
buff_CS2_022\
#endif #endif
@@ -26,29 +26,35 @@
hsl_refresh_mana(HSL_deck_player, 2); def(card_list_s, allcards) allcards = hsl_board_friendly_cards(HSL_deck_player, HSL_attacker->id, HSL_heroes_excluded); def(card_list_s, cl) foreach(cl, allcards) { hsl_receive_heal(card(cl), 2); } hsl_attack_aoe(HSL_attacker, allcards, HSL_fake_levelup); hsl_link_target(HSL_attacker, allcards); \ hsl_refresh_mana(HSL_deck_player, 2); def(card_list_s, allcards) allcards = hsl_board_friendly_cards(HSL_deck_player, HSL_attacker->id, HSL_heroes_excluded); def(card_list_s, cl) foreach(cl, allcards) { hsl_receive_heal(card(cl), 2); } hsl_attack_aoe(HSL_attacker, allcards, HSL_fake_levelup); hsl_link_target(HSL_attacker, allcards); \
} }
#define spell_aoe_CS1_112\
if(HSL_attacker && flag(&(HSL_attacker->state), spell_aoe_CS1_112_FLAG, FLAG_ISSET)) {\
def(card_list_s, allcards) allcards = hsl_board_friendly_cards(HSL_deck_player, HSL_attacker->id, HSL_heroes_excluded); def(card_list_s, cl) foreach(cl, allcards) { cl->card->receive.heal = 2; } hsl_attack_aoe(HSL_attacker, allcards, HSL_fake_levelup); hsl_link_target(HSL_attacker, allcards); \
}
#define spell_aoe_EX1_400\ #define spell_aoe_EX1_400\
if(HSL_attacker && flag(&(HSL_attacker->state), spell_aoe_EX1_400_FLAG, FLAG_ISSET)) {\ if(HSL_attacker && flag(&(HSL_attacker->state), spell_aoe_EX1_400_FLAG, FLAG_ISSET)) {\
def(card_list_s, e) e = hsl_board_enemy_cards(HSL_attacker, HSL_heroes_excluded, HSL_magic_immunity_included); def(card_list_s, cl) foreach(cl, e) { hsl_receive_damage(card(cl), 1); } hsl_attack_aoe(HSL_attacker, e, HSL_fake_levelup); hsl_link_target(HSL_attacker, e); \ def(card_list_s, e) e = hsl_board_enemy_cards(HSL_attacker, HSL_heroes_excluded, HSL_magic_immunity_included); def(card_list_s, cl) foreach(cl, e) { hsl_receive_damage(card(cl), 1); } hsl_attack_aoe(HSL_attacker, e, HSL_fake_levelup); hsl_link_target(HSL_attacker, e); \
} }
#define spell_aoe_CS1_112\
if(HSL_attacker && flag(&(HSL_attacker->state), spell_aoe_CS1_112_FLAG, FLAG_ISSET)) {\
def(card_list_s, allcards) allcards = hsl_board_all_cards(HSL_attacker, HSL_heroes_included); def(card_list_s, cl) foreach(cl, allcards) { if(is_controller_player(card(cl))) { hsl_receive_heal(card(cl), 2); } else { hsl_receive_damage(card(cl), 2); } } hsl_attack_aoe(HSL_attacker, allcards, HSL_fake_levelup); hsl_link_target(HSL_attacker, allcards); \
}
#define spell_aoe_CS2_026\ #define spell_aoe_CS2_026\
if(HSL_attacker && flag(&(HSL_attacker->state), spell_aoe_CS2_026_FLAG, FLAG_ISSET)) {\ if(HSL_attacker && flag(&(HSL_attacker->state), spell_aoe_CS2_026_FLAG, FLAG_ISSET)) {\
def(card_list_s, e) e = hsl_board_enemy_cards(HSL_attacker, HSL_heroes_excluded, HSL_magic_immunity_excluded); int count = hsl_count_cards(e); if(count > 0) { def(card_s, card) card = hsl_random_card(e); def(card_list_s, cl) foreach(cl, e) { hsl_receive_damage(card(cl), 1); } if(card) { hsl_freeze(HSL_attacker, card); } } hsl_attack_aoe(HSL_attacker, e, HSL_fake_levelup); hsl_link_target(HSL_attacker, e); \ def(card_list_s, e) e = hsl_board_enemy_cards(HSL_attacker, HSL_heroes_excluded, HSL_magic_immunity_excluded); int count = hsl_count_cards(e); if(count > 0) { def(card_s, card) card = hsl_random_card(e); def(card_list_s, cl) foreach(cl, e) { hsl_receive_damage(card(cl), 1); } if(card) { hsl_freeze(HSL_attacker, card); } } hsl_attack_aoe(HSL_attacker, e, HSL_fake_levelup); hsl_link_target(HSL_attacker, e); \
} }
#define spell_aoe_CS2_032\
if(HSL_attacker && flag(&(HSL_attacker->state), spell_aoe_CS2_032_FLAG, FLAG_ISSET)) {\
def(card_list_s, e) e = hsl_board_enemy_cards(HSL_attacker, HSL_heroes_excluded, HSL_magic_immunity_excluded); def(card_list_s, cl) foreach(cl, e) { hsl_receive_damage(card(cl), 4); } hsl_attack_aoe(HSL_attacker, e, HSL_fake_levelup); hsl_link_target(HSL_attacker, e); \
}
#define __SECTION_SPELL_AOE\ #define __SECTION_SPELL_AOE\
spell_aoe_EX1_312\ spell_aoe_EX1_312\
spell_aoe_EX1_251\ spell_aoe_EX1_251\
spell_aoe_EX1_259\ spell_aoe_EX1_259\
spell_aoe_EX1_303\ spell_aoe_EX1_303\
spell_aoe_GVG_010\ spell_aoe_GVG_010\
spell_aoe_CS1_112\
spell_aoe_EX1_400\ spell_aoe_EX1_400\
spell_aoe_CS1_112\
spell_aoe_CS2_026\ spell_aoe_CS2_026\
spell_aoe_CS2_032\
#endif #endif
+2
View File
@@ -327,4 +327,6 @@ int flag_defs[MAX_FLAGS_DEF] = {
1000, // index 323 1000, // index 323
1000, // index 324 1000, // index 324
1000, // index 325 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); reset_turn_plays(opponent);
summon_npc(c, p, opponent);
mechanics_expired(p, deck); mechanics_expired(p, deck);
mechanics_expired(p, opponent); mechanics_expired(p, opponent);
+110 -108
View File
@@ -1,7 +1,7 @@
#ifndef FLAG_DEF_H_ #ifndef FLAG_DEF_H_
#define FLAG_DEF_H_ #define FLAG_DEF_H_
#define MAX_FLAGS_DEF 326 #define MAX_FLAGS_DEF 328
int flag_defs[MAX_FLAGS_DEF]; int flag_defs[MAX_FLAGS_DEF];
enum flags_e { enum flags_e {
@@ -224,112 +224,114 @@ enum flags_e {
destroyed_NEW1_036_FLAG = 216, destroyed_NEW1_036_FLAG = 216,
buff_NEW1_036_FLAG = 217, buff_NEW1_036_FLAG = 217,
spell_aoe_GVG_010_FLAG = 218, spell_aoe_GVG_010_FLAG = 218,
spell_aoe_CS1_112_FLAG = 219, spell_CS2_072_FLAG = 219,
spell_CS2_072_FLAG = 220, buff_CS2_077_FLAG = 220,
buff_CS2_077_FLAG = 221, buff_CS2_023_FLAG = 221,
buff_CS2_023_FLAG = 222, attachment_attack_EX1_607e_FLAG = 222,
attachment_attack_EX1_607e_FLAG = 223, defender_TB_SPT_Boss_FLAG = 223,
defender_TB_SPT_Boss_FLAG = 224, buff_LOEA16_9_FLAG = 224,
buff_LOEA16_9_FLAG = 225, buff_CS2_234_FLAG = 225,
buff_CS2_234_FLAG = 226, buff_PRO_001c_FLAG = 226,
buff_PRO_001c_FLAG = 227, attack_effect_CS2_024_FLAG = 227,
attack_effect_CS2_024_FLAG = 228, spell_CS2_024_FLAG = 228,
spell_CS2_024_FLAG = 229, spell_DS1_185_FLAG = 229,
spell_DS1_185_FLAG = 230, buff_CS2_063_FLAG = 230,
buff_CS2_063_FLAG = 231, buff_CS2_076_FLAG = 231,
buff_CS2_076_FLAG = 232, buff_AT_074_FLAG = 232,
buff_AT_074_FLAG = 233, spell_BRMA11_3_FLAG = 233,
spell_BRMA11_3_FLAG = 234, destroyed_BRM_003_FLAG = 234,
destroyed_BRM_003_FLAG = 235, spell_BRM_003_FLAG = 235,
spell_BRM_003_FLAG = 236, destroyed_AT_001_FLAG = 236,
destroyed_AT_001_FLAG = 237, spell_AT_001_FLAG = 237,
spell_AT_001_FLAG = 238, buff_EX1_607_FLAG = 238,
buff_EX1_607_FLAG = 239, attack_EX1_097_FLAG = 239,
attack_EX1_097_FLAG = 240, battlecry_EX1_097_FLAG = 240,
battlecry_EX1_097_FLAG = 241, buff_OG_090_FLAG = 241,
buff_OG_090_FLAG = 242, attack_EX1_011_FLAG = 242,
attack_EX1_011_FLAG = 243, battlecry_EX1_011_FLAG = 243,
battlecry_EX1_011_FLAG = 244, endturn_EX1_105_FLAG = 244,
endturn_EX1_105_FLAG = 245, attack_EX1_105_FLAG = 245,
attack_EX1_105_FLAG = 246, attack_CS2_088_FLAG = 246,
attack_CS2_088_FLAG = 247, battlecry_CS2_088_FLAG = 247,
battlecry_CS2_088_FLAG = 248, onboard_CS2_088_FLAG = 248,
onboard_CS2_088_FLAG = 249, attack_EX1_158t_FLAG = 249,
attack_EX1_158t_FLAG = 250, attack_NAX4_03H_FLAG = 250,
attack_NAX4_03H_FLAG = 251, attack_AT_023_FLAG = 251,
attack_AT_023_FLAG = 252, attack_CS2_168_FLAG = 252,
attack_CS2_168_FLAG = 253, attack_CS2_201_FLAG = 253,
attack_CS2_201_FLAG = 254, attack_CS2_200_FLAG = 254,
attack_CS2_200_FLAG = 255, attack_CS2_119_FLAG = 255,
attack_CS2_119_FLAG = 256, attack_CS2_172_FLAG = 256,
attack_CS2_172_FLAG = 257, attack_CS2_171_FLAG = 257,
attack_CS2_171_FLAG = 258, attack_CS2_182_FLAG = 258,
attack_CS2_182_FLAG = 259, attack_CS2_120_FLAG = 259,
attack_CS2_120_FLAG = 260, attack_EX1_506a_FLAG = 260,
attack_EX1_506a_FLAG = 261, attack_CS2_042_FLAG = 261,
attack_CS2_042_FLAG = 262, battlecry_CS2_042_FLAG = 262,
battlecry_CS2_042_FLAG = 263, attack_CS2_boar_FLAG = 263,
attack_CS2_boar_FLAG = 264, attack_CS2_237_FLAG = 264,
attack_CS2_237_FLAG = 265, attack_LOE_077_FLAG = 265,
attack_LOE_077_FLAG = 266, battlecry_LOE_077_FLAG = 266,
battlecry_LOE_077_FLAG = 267, destroyed_CS2_118_FLAG = 267,
destroyed_CS2_118_FLAG = 268, defender_CS2_118_FLAG = 268,
defender_CS2_118_FLAG = 269, attack_CS2_118_FLAG = 269,
attack_CS2_118_FLAG = 270, onboard_CS2_118_FLAG = 270,
onboard_CS2_118_FLAG = 271, destroyed_AT_128_FLAG = 271,
destroyed_AT_128_FLAG = 272, attack_AT_128_FLAG = 272,
attack_AT_128_FLAG = 273, attack_EX1_614_FLAG = 273,
attack_EX1_614_FLAG = 274, battlecry_EX1_614_FLAG = 274,
battlecry_EX1_614_FLAG = 275, attack_EX1_593_FLAG = 275,
attack_EX1_593_FLAG = 276, battlecry_EX1_593_FLAG = 276,
battlecry_EX1_593_FLAG = 277, attack_GVG_105_FLAG = 277,
attack_GVG_105_FLAG = 278, battlecry_GVG_105_FLAG = 278,
battlecry_GVG_105_FLAG = 279, attack_NEW1_030_FLAG = 279,
attack_NEW1_030_FLAG = 280, battlecry_NEW1_030_FLAG = 280,
battlecry_NEW1_030_FLAG = 281, destroyed_EX1_383_FLAG = 281,
destroyed_EX1_383_FLAG = 282, attack_EX1_383_FLAG = 282,
attack_EX1_383_FLAG = 283, onboard_EX1_383_FLAG = 283,
onboard_EX1_383_FLAG = 284, destroyed_CS2_065_FLAG = 284,
destroyed_CS2_065_FLAG = 285, attack_CS2_065_FLAG = 285,
attack_CS2_065_FLAG = 286, onboard_CS2_065_FLAG = 286,
onboard_CS2_065_FLAG = 287, destroyed_AT_018_FLAG = 287,
destroyed_AT_018_FLAG = 288, attack_AT_018_FLAG = 288,
attack_AT_018_FLAG = 289, onboard_AT_018_FLAG = 289,
onboard_AT_018_FLAG = 290, destroyed_EX1_165t2_FLAG = 290,
destroyed_EX1_165t2_FLAG = 291, attack_EX1_165t2_FLAG = 291,
attack_EX1_165t2_FLAG = 292, onboard_EX1_165t2_FLAG = 292,
onboard_EX1_165t2_FLAG = 293, destroyed_EX1_559_FLAG = 293,
destroyed_EX1_559_FLAG = 294, attack_EX1_559_FLAG = 294,
attack_EX1_559_FLAG = 295, onboard_EX1_559_FLAG = 295,
onboard_EX1_559_FLAG = 296, destroyed_NEW1_011_FLAG = 296,
destroyed_NEW1_011_FLAG = 297, defender_NEW1_011_FLAG = 297,
defender_NEW1_011_FLAG = 298, attack_NEW1_011_FLAG = 298,
attack_NEW1_011_FLAG = 299, onboard_NEW1_011_FLAG = 299,
onboard_NEW1_011_FLAG = 300, attack_CS2_226_FLAG = 300,
attack_CS2_226_FLAG = 301, battlecry_CS2_226_FLAG = 301,
battlecry_CS2_226_FLAG = 302, attack_EX1_009_FLAG = 302,
attack_EX1_009_FLAG = 303, buff_EX1_581_FLAG = 303,
buff_EX1_581_FLAG = 304, attack_EX1_049_FLAG = 304,
attack_EX1_049_FLAG = 305, battlecry_EX1_049_FLAG = 305,
battlecry_EX1_049_FLAG = 306, spell_aoe_EX1_400_FLAG = 306,
spell_aoe_EX1_400_FLAG = 307, attack_effect_attachment_LOEA06_03e_FLAG = 307,
attack_effect_attachment_LOEA06_03e_FLAG = 308, weapon_LOE_118_FLAG = 308,
weapon_LOE_118_FLAG = 309, idle_LOE_118_FLAG = 309,
idle_LOE_118_FLAG = 310, weapon_destroyed_LOE_118_FLAG = 310,
weapon_destroyed_LOE_118_FLAG = 311, weapon_attack_LOE_118_FLAG = 311,
weapon_attack_LOE_118_FLAG = 312, onboard_LOE_118_FLAG = 312,
onboard_LOE_118_FLAG = 313, buff_LOEA06_03_FLAG = 313,
buff_LOEA06_03_FLAG = 314, attack_EX1_306_FLAG = 314,
spell_aoe_CS2_026_FLAG = 315, battlecry_EX1_306_FLAG = 315,
attack_EX1_306_FLAG = 316, destroyed_CS2_222_FLAG = 316,
battlecry_EX1_306_FLAG = 317, attack_CS2_222_FLAG = 317,
destroyed_CS2_222_FLAG = 318, idle_CS2_222_FLAG = 318,
attack_CS2_222_FLAG = 319, onboard_CS2_222_FLAG = 319,
idle_CS2_222_FLAG = 320, destroyed_CS2_231_FLAG = 320,
onboard_CS2_222_FLAG = 321, attack_CS2_231_FLAG = 321,
destroyed_CS2_231_FLAG = 322, idle_CS2_231_FLAG = 322,
attack_CS2_231_FLAG = 323, onboard_CS2_231_FLAG = 323,
idle_CS2_231_FLAG = 324, buff_CS2_022_FLAG = 324,
onboard_CS2_231_FLAG = 325, spell_aoe_CS1_112_FLAG = 325,
spell_aoe_CS2_026_FLAG = 326,
spell_aoe_CS2_032_FLAG = 327,
}; };
#endif #endif
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef ENTGEN_H_ #ifndef ENTGEN_H_
#define ENTGEN_H_ #define ENTGEN_H_
#define MAX_ENTITIES 133 #define MAX_ENTITIES 135
#define MAX_BEASTS 0 #define MAX_BEASTS 0
#define MAX_TOTEMS 0 #define MAX_TOTEMS 0
#define MAX_TOTEMIC_CALL 0 #define MAX_TOTEMIC_CALL 0
+271 -232
View File
@@ -18,22 +18,22 @@
#ifndef SECTIONS_H_ #ifndef SECTIONS_H_
#define SECTIONS_H_ #define SECTIONS_H_
#include <section_buff.h> #include <section_attachment_attack.h>
#include <section_battlecry.h>
#include <section_defender.h>
#include <section_spell.h>
#include <section_spell_aoe.h>
#include <section_attack.h> #include <section_attack.h>
#include <section_attack_effect.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_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 // built-in variables
#define HSL_attacker (attacker) #define HSL_attacker (attacker)
@@ -67,14 +67,13 @@
#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)\ #define hsl_set_windfury(m_dst) flag(&m_dst->state, CARD_WINDFURY, FLAG_SET)
flag(&m_dst->state, CARD_WINDFURY, FLAG_SET)
#define hsl_set_taunt(m_dst)\ #define hsl_set_taunt(m_dst) flag(&m_dst->state, CARD_TAUNT, FLAG_SET);
flag(&m_dst->state, CARD_TAUNT, FLAG_SET);
#define hsl_refresh_mana(m_deck, m_amount)\ #define hsl_refresh_mana(m_deck, m_amount) \
deck->mana_used = (m_amount > deck->mana_used) ? 0 : deck->mana_used - 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) #define turn_plays(m_card) (m_card->turn_plays)
@@ -84,79 +83,82 @@
* @param m_alias iterator * @param m_alias iterator
* @param m_src source * @param m_src source
*/ */
#define foreach(m_alias, m_src)\ #define foreach(m_alias, m_src) \
for(m_alias = m_src; m_alias != NULL; m_alias = m_alias->next) for (m_alias = m_src; m_alias != NULL; m_alias = m_alias->next)
/** /**
* @brief Find out if controller is current player * @brief Find out if controller is current player
* *
* @param m_card played card * @param m_card played card
*/ */
#define is_controller_player(m_card)\ #define is_controller_player(m_card) \
(p->id == m_card->parent->deck_copy->controller) (p->id == m_card->parent->deck_copy->controller)
// hsl_* macros // hsl_* macros
// only works on friendly deck // only works on friendly deck
#define hsl_set_magic_immunity(m_dst)\ #define hsl_set_magic_immunity(m_dst) \
force_expire(p, HSL_deck_player, m_dst);\ force_expire(p, HSL_deck_player, m_dst); \
mechanics_expire(p->game->turn + 2, m_dst, EXPIRE_MAGIC_IMMUNITY, 1, NULL);\ mechanics_expire(p->game->turn + 2, m_dst, EXPIRE_MAGIC_IMMUNITY, 1, NULL); \
flag(&m_dst->state, CARD_DIVINE_SHIELD, FLAG_SET); flag(&m_dst->state, CARD_DIVINE_SHIELD, FLAG_SET);
#define hsl_set_fullhealth(m_dst)\ #define hsl_set_fullhealth(m_dst) \
m_dst->health = m_dst->total_health;\ m_dst->health = m_dst->total_health; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_swap_health(m_dst, m_src)\ #define hsl_swap_health(m_dst, m_src) \
int hp = m_dst->health;\ int hp = m_dst->health; \
m_dst->health = m_dst->total_health = m_src->health - m_src->buff_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;\ m_src->health = m_src->total_health = hp + m_src->buff_health; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);\ flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); \
flag(&m_src->state, MECHANICS_HEALTH, FLAG_SET); flag(&m_src->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_set_health(m_dst, m_change)\ #define hsl_set_health(m_dst, m_change) \
m_dst->health = m_dst->total_health = (m_change + m_dst->buff_health);\ m_dst->health = m_dst->total_health = (m_change + m_dst->buff_health); \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);
#define hsl_decrease_health(m_dst, m_change)\ #define hsl_decrease_health(m_dst, m_change) \
m_dst->buff_health -= m_change;\ m_dst->buff_health -= m_change; \
m_dst->total_health -= m_change;\ m_dst->total_health -= m_change; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET);\ flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); \
if(m_dst->health > m_dst->total_health) {\ if (m_dst->health > m_dst->total_health) { \
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_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_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_change_armor(m_dst, m_change)\ #define hsl_replenish_health(m_dst, m_change) \
m_dst->armor += m_change;\ if (m_dst->total_health >= (m_dst->health + m_change)) { \
flag(&m_dst->state, MECHANICS_ARMOR, FLAG_SET); m_dst->health += m_change; \
flag(&m_dst->state, MECHANICS_HEALTH, FLAG_SET); \
}
#define hsl_change_attack(m_dst, m_change)\ #define hsl_change_armor(m_dst, m_change) \
m_dst->attack += m_change;\ m_dst->armor += m_change; \
flag(&m_dst->state, MECHANICS_ATTACK, FLAG_SET); 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_cards_by_name(m_deck, m_name) (cards_by_name(HSL_player, m_deck, m_name, CARD_BOARD)) #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_board_count_by_name(m_deck, m_name) \
(board_count_by_name(m_deck, m_name))
#define hsl_board_minions_count(m_deck, m_attacker) cards_get_board_count(m_deck, NULL, 0, m_attacker->id) #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_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) #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 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_random(m_deck) (cards_get_hand_random(m_deck))
#define hsl_cards_get_hand(m_deck) (cards_get_hand(m_deck)) #define hsl_cards_get_hand(m_deck) (cards_get_hand(m_deck))
#define hsl_receive_damage(m_dst, m_dmg)\ #define hsl_receive_damage(m_dst, m_dmg) \
if(m_dst) { m_dst->receive.damage = m_dmg; } if (m_dst) { \
m_dst->receive.damage = m_dmg; \
}
#define hsl_receive_heal(m_dst, m_heal)\ #define hsl_receive_heal(m_dst, m_heal) \
if(m_dst) { m_dst->receive.heal = m_heal; } if (m_dst) { \
m_dst->receive.heal = m_heal; \
}
#define hsl_freeze(m_src, m_dst)\ #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);\ hm_log(LOG_DEBUG, lg, "Attacker [%s](%d) froze [%s](%d)", \
mechanics_expire(p->game->turn + 3, m_dst, EXPIRE_FROZEN, 1, NULL);\ m_src->entity->desc, m_src->id, m_dst->entity->desc, m_dst->id); \
flag(&m_dst->state, CARD_FROZEN, FLAG_SET); 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)\ #define hsl_add_defender(m_src, m_holder) \
struct card_list_s *m_holder;\ struct card_list_s *m_holder; \
LIST_ADD(defenders, m_holder, m_src) LIST_ADD(defenders, m_holder, m_src)
#define hsl_return_to_hand(m_card)\ #define hsl_return_to_hand(m_card) \
flag(&m_card->state, CARD_BOARD, FLAG_UNSET);\ flag(&m_card->state, CARD_BOARD, FLAG_UNSET); \
flag(&m_card->state, CARD_HAND, FLAG_SET);\ flag(&m_card->state, CARD_HAND, FLAG_SET); \
flag(&m_card->state, CARD_EXHAUSTED, FLAG_UNSET);\ flag(&m_card->state, CARD_EXHAUSTED, FLAG_UNSET); \
m_card->health = m_card->total_health = m_card->default_health;\ m_card->health = m_card->total_health = m_card->default_health; \
flag(&m_card->state, MECHANICS_HEALTH, FLAG_SET);\ flag(&m_card->state, MECHANICS_HEALTH, FLAG_SET); \
m_card->attack = m_card->default_attack;\ m_card->attack = m_card->default_attack; \
flag(&m_card->state, MECHANICS_ATTACK, FLAG_SET);\ flag(&m_card->state, MECHANICS_ATTACK, FLAG_SET); \
card_remove_attachment(hsl_deck(m_card), NULL, m_card, NULL);\ card_remove_attachment(hsl_deck(m_card), NULL, m_card, NULL); \
card_destroy(m_card, hsl_deck(m_card), 1);\ card_destroy(m_card, hsl_deck(m_card), 1); \
/* order is importatnt here, new zone position must come after card is destroyed */\ /* order is importatnt here, new zone position must come after card is \
if(m_card->controller == HSL_deck_player->controller) {\ * destroyed */ \
m_card->zone_position = ++(HSL_deck_player->handposition);\ if (m_card->controller == HSL_deck_player->controller) { \
} else {\ m_card->zone_position = ++(HSL_deck_player->handposition); \
m_card->zone_position = ++(HSL_deck_opponent->handposition);\ } else { \
}\ m_card->zone_position = ++(HSL_deck_opponent->handposition); \
}
#define hsl_cards_get_hand(m_deck) (cards_get_hand(m_deck)) #define hsl_cards_get_hand(m_deck) (cards_get_hand(m_deck))
#define hsl_add_new_card_hand(m_deck, m_card, m_holder)\ #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);\ struct card_s *m_holder = \
flag(&m_holder->state, CARD_HAND, FLAG_SET);\ add_new_card(m_deck->parent->game, m_deck, -1, m_card, -1); \
m_holder->zone_position = ++(m_deck->handposition); flag(&m_holder->state, CARD_HAND, FLAG_SET); \
m_holder->zone_position = ++(m_deck->handposition);
#define hsl_destroy(m_deck, m_dst)\ #define hsl_destroy(m_deck, m_dst) \
{\ { \
struct card_s *__fake_defender = m_dst;\ struct card_s *__fake_defender = m_dst; \
__SECTION_DESTROYED\ __SECTION_DESTROYED \
}\ } \
flag(&m_dst->state, CARD_DESTROYED, FLAG_SET);\ flag(&m_dst->state, CARD_DESTROYED, FLAG_SET); \
cards_board_destroyed_reorder(m_deck, m_dst->zone_position); 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)\ #define hsl_set_weapon_durability(m_dst, m_value) \
m_dst->durability += m_value;\ m_dst->durability += m_value; \
flag(&m_dst->state, MECHANICS_DURABILITY, FLAG_SET); flag(&m_dst->state, MECHANICS_DURABILITY, FLAG_SET);
#define hsl_weapon_durability(m_dst) m_dst->durability #define hsl_weapon_durability(m_dst) m_dst->durability
#define hsl_destroy_weapon(m_attacker, m_deck)\ #define hsl_destroy_weapon(m_attacker, m_deck) \
if(m_deck->heroweapon) {\ if (m_deck->heroweapon) { \
/*struct card_list_s *itm;*/\ /*struct card_list_s *itm;*/ \
__SECTION_WEAPON_DESTROYED;\ __SECTION_WEAPON_DESTROYED; \
flag(&m_deck->heroweapon->state, CARD_DESTROYED, FLAG_SET);\ flag(&m_deck->heroweapon->state, CARD_DESTROYED, FLAG_SET); \
flag(&m_deck->heroweapon->state, CARD_BOARD, FLAG_UNSET);\ flag(&m_deck->heroweapon->state, CARD_BOARD, FLAG_UNSET); \
flag(&m_deck->heroweapon->state, CARD_HEROWEAPON, FLAG_UNSET);\ flag(&m_deck->heroweapon->state, CARD_HEROWEAPON, FLAG_UNSET); \
flag(&m_deck->heroweapon->state, CARD_EXHAUSTED, FLAG_UNSET);\ flag(&m_deck->heroweapon->state, CARD_EXHAUSTED, FLAG_UNSET); \
\ \
/*LIST_ADD(m_attacker->target.card, itm, m_holder->deck_copy->heroweapon);*/\ /*LIST_ADD(m_attacker->target.card, itm, \
* m_holder->deck_copy->heroweapon);*/ \
\ \
flag(&m_deck->heroweapon->state, MECHANICS_DESTROY_WEAPON, FLAG_SET);\ flag(&m_deck->heroweapon->state, MECHANICS_DESTROY_WEAPON, FLAG_SET); \
m_deck->heroweapon = NULL;\ 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)\ #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);\ (m_card->cost = (m_card->default_cost - m_change >= 0) \
flag(&(m_card->state), MECHANICS_COST, FLAG_SET); ? (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_spell_by_name(m_player, m_deck, m_name) \
#define hsl_card_board_by_name(m_player, m_deck, m_name) (card_by_name(m_player, m_deck, m_name, CARD_BOARD)) (card_by_name(m_player, m_deck, m_name, CARD_SPELL))
#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_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)\ #define hsl_discard_random_hand(m_deck, m_amount, m_holder) \
int m_holder;\ int m_holder; \
for(m_holder = 0; m_holder < m_amount; m_holder++) {\ for (m_holder = 0; m_holder < m_amount; m_holder++) { \
struct card_s *m_card = cards_get_hand_random(m_deck);\ struct card_s *m_card = cards_get_hand_random(m_deck); \
if(m_card) {\ if (m_card) { \
flag(&m_card->state, CARD_DISCARD, FLAG_SET);\ flag(&m_card->state, CARD_DISCARD, FLAG_SET); \
flag(&m_card->state, CARD_HAND, FLAG_UNSET);\ flag(&m_card->state, CARD_HAND, FLAG_UNSET); \
cards_reorder_hand_owner(m_deck, m_card->id);\ cards_reorder_hand_owner(m_deck, m_card->id); \
}\ } \
} }
#define hsl_discard_hand(m_deck, m_all)\ #define hsl_discard_hand(m_deck, m_all) \
struct card_list_s *m_holder;\ struct card_list_s *m_holder; \
for(m_holder = m_all; m_holder != NULL; m_holder = m_holder->next) {\ for (m_holder = m_all; m_holder != NULL; m_holder = m_holder->next) { \
flag(&m_holder->card->state, CARD_DISCARD, FLAG_SET);\ flag(&m_holder->card->state, CARD_DISCARD, FLAG_SET); \
cards_reorder_hand_owner(m_deck, m_holder->card->id);\ cards_reorder_hand_owner(m_deck, m_holder->card->id); \
} }
#define card(m_list) (m_list->card) #define card(m_list) (m_list->card)
#define hsl_card(m_target)\ #define hsl_card(m_target) \
card_get(HSL_deck_player, HSL_deck_opponent, 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_health(m_card) (m_card->default_health)
#define default_attack(m_card) (m_card->default_attack) #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_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_aoe(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) 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 * @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_name name of the card
* @param m_card card holder * @param m_card card holder
**/ **/
#define hsl_summon_card(m_deck, m_name, m_card)\ #define hsl_summon_card(m_deck, m_name, m_card) \
int m_card##pos = cards_board_last(m_deck);\ int m_card##pos = cards_board_last(m_deck); \
if(m_card##pos <= MAX_BOARD) {\ if (m_card##pos <= MAX_BOARD) { \
struct card_s *m_card = add_new_card(p->game, m_deck, -1, m_name, -1);\ 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);\ mechanics_put_card_onboard(c, m_card##pos, m_card, 1, NULL, NULL, m_deck); \
} }
/** /**
* @brief Count number of cards in list of cards * @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_card card's holder
* @param m_amount number of cards to draw * @param m_amount number of cards to draw
**/ **/
#define hsl_draw_cards(m_player, m_deck, m_card, m_amount)\ #define hsl_draw_cards(m_player, m_deck, m_card, m_amount) \
int m_card##idx;\ int m_card##idx; \
struct card_s *m_card;\ struct card_s *m_card; \
for(m_card##idx = 0; m_card##idx < m_amount; m_card##idx++) {\ 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);\ m_card = draw_random_card(m_deck, m_player->entity_id, 0); \
if(m_card) {\ if (m_card) { \
flag(&m_card->state, CARD_HAND, FLAG_SET);\ flag(&m_card->state, CARD_HAND, FLAG_SET); \
struct card_list_s *m_card##itm;\ struct card_list_s *m_card##itm; \
LIST_ADD(defenders, m_card##itm, m_card);\ LIST_ADD(defenders, m_card##itm, m_card); \
}\ } \
} }
/** /**
* @brief Link card to another card's targets * @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_dst destination card
* @param m_src source card * @param m_src source card
**/ **/
#define hsl_link_target(m_dst, m_src)\ #define hsl_link_target(m_dst, m_src) LIST_ADD_LINK(m_dst->target.card, m_src)
LIST_ADD_LINK(m_dst->target.card, m_src)
/** /**
* @brief Add target to defenders * @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_src source card
* @param m_holder variable placeholder * @param m_holder variable placeholder
**/ **/
#define hsl_add_target(m_src, m_holder)\ #define hsl_add_target(m_src, m_holder) \
struct card_list_s *m_holder##item;\ struct card_list_s *m_holder##item; \
LIST_ADD(defenders, m_holder##item, m_src);\ LIST_ADD(defenders, m_holder##item, m_src);
/** /**
* @brief Attack as battlecry * @brief Attack as battlecry
@@ -372,14 +405,14 @@ LIST_ADD(defenders, m_holder##item, m_src);\
* @param m_defender defending card * @param m_defender defending card
* @param m_damage damage caused * @param m_damage damage caused
**/ **/
#define hsl_attack_bc(m_attacker, m_defender, m_damage)\ #define hsl_attack_bc(m_attacker, m_defender, m_damage) \
m_defender->receive.damage = m_damage;\ m_defender->receive.damage = m_damage; \
entity_attack(p, m_attacker, m_defender); entity_attack(p, m_attacker, m_defender);
/** /**
* @brief Heal defender by certain amount (alias) * @brief Heal defender by certain amount (alias)
**/ **/
#define hsl_heal_bc(m_attacker, m_defender, m_damage)\ #define hsl_heal_bc(m_attacker, m_defender, m_damage) \
hsl_heal(m_attacker, m_defender, m_damage); hsl_heal(m_attacker, m_defender, m_damage);
/* /*
m_defender->receive.heal = m_damage;\ m_defender->receive.heal = m_damage;\
@@ -395,11 +428,11 @@ LIST_ADD(m_attacker->target.card, item, m_defender);
* @param m_defender receiver card * @param m_defender receiver card
* @param m_damage amount of healing * @param m_damage amount of healing
**/ **/
#define hsl_heal(m_attacker, m_defender, m_damage)\ #define hsl_heal(m_attacker, m_defender, m_damage) \
m_defender->receive.heal = m_damage;\ m_defender->receive.heal = m_damage; \
entity_attack(p, m_attacker, m_defender);\ entity_attack(p, m_attacker, m_defender); \
struct card_list_s *item;\ struct card_list_s *item; \
LIST_ADD(m_attacker->target.card, item, m_defender); LIST_ADD(m_attacker->target.card, item, m_defender);
/** /**
* @brief Mark target as corrupted * @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_turn number of turns from current turn when card is destroyed
* @param m_defender destination card * @param m_defender destination card
*/ */
#define hsl_buff_corrupt_expire(m_turn, m_defender)\ #define hsl_buff_corrupt_expire(m_turn, m_defender) \
flag(&(m_defender->state), CARD_CORRUPTED, FLAG_SET);\ flag(&(m_defender->state), CARD_CORRUPTED, FLAG_SET); \
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_DESTROY, 1, NULL) mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_DESTROY, 1, NULL)
/** /**
* @brief Change attack for m_turn turns * @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_defender destination card
* @param m_attack value to change * @param m_attack value to change
*/ */
#define hsl_buff_attack_expire(m_turn, m_defender, m_attack)\ #define hsl_buff_attack_expire(m_turn, m_defender, m_attack) \
m_defender->attack += m_attack;\ m_defender->attack += m_attack; \
flag(&(m_defender->state), MECHANICS_ATTACK, FLAG_SET);\ flag(&(m_defender->state), MECHANICS_ATTACK, FLAG_SET); \
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACK, -(m_attack), NULL); mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACK, \
-(m_attack), NULL);
/** /**
* @brief Change health of card * @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_card destination card
* @param m_health health value * @param m_health health value
*/ */
#define hsl_add_attachment(m_player, m_attacker, m_defender, m_turn)\ #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);\ add_single_attachment(m_player, hsl_deck(m_defender), m_attacker, \
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACHMENT, 0, m_attacker->attachment); m_defender); \
mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACHMENT, 0, \
m_attacker->attachment);
/** /**
* @brief Change health of card * @brief Change health of card
@@ -441,16 +477,16 @@ mechanics_expire(p->game->turn + m_turn, m_defender, EXPIRE_ATTACHMENT, 0, m_att
* @param m_card destination card * @param m_card destination card
* @param m_health health value * @param m_health health value
*/ */
#define buff_health(m_card, m_health)\ #define buff_health(m_card, m_health) \
defenders->card->health = m_health;\ defenders->card->health = m_health; \
flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET); flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
/** /**
* @brief Set divine shield to card * @brief Set divine shield to card
* *
* @param m_card destination card * @param m_card destination card
*/ */
#define hsl_divine_shield(m_card)\ #define hsl_divine_shield(m_card) \
flag(&(m_card->state), CARD_DIVINE_SHIELD, FLAG_SET); flag(&(m_card->state), CARD_DIVINE_SHIELD, FLAG_SET);
/** /**
@@ -459,8 +495,7 @@ flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
* @param m_card destination card * @param m_card destination card
* @param m_flag flag to set * @param m_flag flag to set
*/ */
#define setflag(m_card, m_flag)\ #define setflag(m_card, m_flag) flag(&(m_card->state), m_flag, FLAG_SET);
flag(&(m_card->state), m_flag, FLAG_SET);
/** /**
* @brief Unset flag from card * @brief Unset flag from card
@@ -468,29 +503,31 @@ flag(&(m_card->state), MECHANICS_HEALTH, FLAG_SET);
* @param m_card destination card * @param m_card destination card
* @param m_flag flag to unset * @param m_flag flag to unset
*/ */
#define unsetflag(m_card, m_flag)\ #define unsetflag(m_card, m_flag) flag(&(m_card->state), m_flag, FLAG_UNSET);
flag(&(m_card->state), m_flag, FLAG_UNSET);
/** /**
* @brief Unset windfury flag from card * @brief Unset windfury flag from card
* *
* @param m_card destination 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 * @brief Set exhausted flag to card
* *
* @param m_card destination 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 * @brief Unset exhausted flag from card
* *
* @param m_card destination 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 * @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_defender card being attacked
* @param m_name card code name * @param m_name card code name
*/ */
#define hsl_transform(m_attacker, m_defender,m_name)\ #define hsl_transform(m_deck, m_attacker, m_defender, m_name) \
struct card_s *card;\ struct card_s *card; \
card = add_new_card(p->game, p->opponent.deck_copy, -1, m_name, -1);\ card = add_new_card(p->game, p->opponent.deck_copy, -1, m_name, -1); \
card->zone_position = m_defender->zone_position;\ card->zone_position = m_defender->zone_position; \
mechanics_put_card_onboard(c, card->zone_position, card, 1, NULL, NULL);\ mechanics_put_card_onboard(c, card->zone_position, card, 1, NULL, NULL, \
m_defender->linked = card->id;\ m_deck); \
flag(&m_defender->state, CARD_LINKED, FLAG_SET);\ m_defender->linked = card->id; \
flag(&m_defender->state, CARD_HIDE, FLAG_SET);\ flag(&m_defender->state, CARD_LINKED, FLAG_SET); \
flag(&m_defender->state, CARD_BOARD, FLAG_UNSET); flag(&m_defender->state, CARD_HIDE, FLAG_SET); \
flag(&m_defender->state, CARD_BOARD, FLAG_UNSET);
/** /**
* @brief Give weapon to player * @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 * @param m_dst hero card
*/ */
#define hsl_give_weapon(m_dst)\ #define hsl_give_weapon(m_dst) \
if(m_dst->heroweapon != NULL) {\ if (m_dst->heroweapon != NULL) { \
/* destroy weapon first */\ /* destroy weapon first */ \
{\ { \
struct card_s *__fake_weapon = m_dst->heroweapon;\ struct card_s *__fake_weapon = m_dst->heroweapon; \
__SECTION_WEAPON_DESTROYED;\ __SECTION_WEAPON_DESTROYED; \
}\ } \
\ \
m_dst->heroweapon->priority_override = 900;\ m_dst->heroweapon->priority_override = 900; \
flag(&(m_dst->heroweapon->state), CARD_DESTROYED, FLAG_SET);\ flag(&(m_dst->heroweapon->state), CARD_DESTROYED, FLAG_SET); \
flag(&(m_dst->heroweapon->state), CARD_BOARD, FLAG_UNSET);\ flag(&(m_dst->heroweapon->state), CARD_BOARD, FLAG_UNSET); \
flag(&(m_dst->heroweapon->state), CARD_HEROWEAPON, FLAG_UNSET);\ flag(&(m_dst->heroweapon->state), CARD_HEROWEAPON, FLAG_UNSET); \
}\ } \
flag(&attacker->state, CARD_BOARD, FLAG_SET);\ flag(&attacker->state, CARD_BOARD, FLAG_SET); \
flag(&attacker->state, CARD_HEROWEAPON, FLAG_SET);\ flag(&attacker->state, CARD_HEROWEAPON, FLAG_SET); \
m_dst->heroweapon = attacker; m_dst->heroweapon = attacker;
#endif #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 , { "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_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 , { "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 , { "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
, { "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_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
, { "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 , { "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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 , { "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
, { "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 , { "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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 , { "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
, { "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 , { "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_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 , { "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
, { "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_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
, { "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 , { "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_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_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_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_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_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 , { "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
, { "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 , { "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
, { "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_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
, { "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 , { "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
, { "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 , { "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_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 , { "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
, { "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 , { "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
, { "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 , { "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_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 , { "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
, { "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 , { "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_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_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
, { "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_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
, { "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 , { "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
, { "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 , { "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_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 , { "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
, { "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 , { "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
, { "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 , { "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
, { "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 , { "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
, { "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 , { "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
, { "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 , { "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
, { "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 , { "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
, { "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 , { "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
, { "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_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
, { "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 , { "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
, { "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 , { "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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 , { "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
, { "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_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_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_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
, { "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 , { "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_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 , { "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
, { "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 , { "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
, { "NO_CARD", 7, 1, (void *)0, (void *)0, "No Card", {{0, 0, 0, 0, 0, 0, 0, 0}}, (void *)0, {{ 49, 2 }, }} // 132 , { "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() { void entities_init() {
@@ -151,7 +153,6 @@ void entities_init() {
flag(&entities[51].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[51].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[54].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[54].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[55].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[62].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[63].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[63].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[64].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[69].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[70].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[70].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[71].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[71].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[73].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[72].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[74].flags, CARD_HERO, FLAG_SET); flag(&entities[74].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[75].flags, CARD_HERO, FLAG_SET); flag(&entities[75].flags, CARD_HERO, FLAG_SET);
flag(&entities[76].flags, CARD_HERO, FLAG_SET); flag(&entities[76].flags, CARD_HERO, FLAG_SET);
flag(&entities[77].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[83].flags, CARD_HERO, FLAG_SET);
flag(&entities[84].flags, CARD_HERO, FLAG_SET); flag(&entities[84].flags, CARD_HERO, FLAG_SET);
flag(&entities[85].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[97].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[98].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[99].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[99].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[100].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[100].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[106].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[101].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[109].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[102].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[113].flags, CARD_ATTACHMENT, FLAG_SET); flag(&entities[108].flags, CARD_ATTACHMENT, FLAG_SET);
flag(&entities[114].flags, CARD_UNCOLLECTIBLE, 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[116].flags, CARD_UNCOLLECTIBLE, FLAG_SET);
flag(&entities[126].flags, CARD_HEROPOWER, FLAG_SET); flag(&entities[118].flags, CARD_UNCOLLECTIBLE, 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[128].flags, CARD_HEROPOWER, 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_SPELL, FLAG_SET);
flag(&entities[128].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[128].flags, CARD_HP_SPELL_DAMAGE, FLAG_SET);
flag(&entities[128].flags, CARD_HP_REINFORCE, FLAG_SET); flag(&entities[130].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[128].flags, CARD_SUMMON, FLAG_SET); flag(&entities[130].flags, CARD_SPELL, FLAG_SET);
flag(&entities[129].flags, CARD_HEROPOWER, FLAG_SET); flag(&entities[130].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[129].flags, CARD_SPELL, FLAG_SET); flag(&entities[130].flags, CARD_HP_REINFORCE, FLAG_SET);
flag(&entities[129].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[130].flags, CARD_SUMMON, FLAG_SET);
flag(&entities[129].flags, CARD_HP_DAGGERMASTERY, FLAG_SET); flag(&entities[131].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[129].flags, CARD_SUMMON, FLAG_SET); flag(&entities[131].flags, CARD_SPELL, FLAG_SET);
flag(&entities[131].flags, CARD_UNCOLLECTIBLE, FLAG_SET); flag(&entities[131].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[132].flags, CARD_UNCOLLECTIBLE, 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] = { 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, spell_EX1_354_FLAG, FLAG_SET);
flag(&entities[39].flags, CARD_TARGET_ALLY_MINIONS, FLAG_SET); flag(&entities[39].flags, CARD_TARGET_ALLY_MINIONS, FLAG_SET);
flag(&entities[39].flags, CARD_TARGETING, FLAG_SET); flag(&entities[39].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[86].flags, destroyed_CS2_012_FLAG, FLAG_SET); flag(&entities[87].flags, destroyed_CS2_012_FLAG, FLAG_SET);
flag(&entities[86].flags, CARD_LEVELUP, FLAG_SET); flag(&entities[87].flags, CARD_LEVELUP, FLAG_SET);
flag(&entities[86].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET); flag(&entities[87].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET);
flag(&entities[86].flags, CARD_SPELL, FLAG_SET); flag(&entities[87].flags, CARD_SPELL, FLAG_SET);
flag(&entities[86].flags, spell_CS2_012_FLAG, FLAG_SET); flag(&entities[87].flags, spell_CS2_012_FLAG, FLAG_SET);
flag(&entities[86].flags, CARD_TARGET_ENEMY_MINIONS, FLAG_SET); flag(&entities[87].flags, CARD_TARGET_ENEMY_MINIONS, FLAG_SET);
flag(&entities[86].flags, CARD_TARGETING, FLAG_SET); flag(&entities[87].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[60].flags, destroyed_EX1_371_FLAG, 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_BUFF, FLAG_SET);
flag(&entities[60].flags, CARD_SPELL, 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, CARD_AOE, FLAG_SET);
flag(&entities[38].flags, spell_aoe_EX1_312_FLAG, FLAG_SET); flag(&entities[38].flags, spell_aoe_EX1_312_FLAG, FLAG_SET);
flag(&entities[38].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[38].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[72].flags, destroyed_CS2_011_FLAG, FLAG_SET); flag(&entities[73].flags, destroyed_CS2_011_FLAG, FLAG_SET);
flag(&entities[72].flags, CARD_BUFF, FLAG_SET); flag(&entities[73].flags, CARD_BUFF, FLAG_SET);
flag(&entities[72].flags, CARD_SPELL, FLAG_SET); flag(&entities[73].flags, CARD_SPELL, FLAG_SET);
flag(&entities[72].flags, buff_CS2_011_FLAG, FLAG_SET); flag(&entities[73].flags, buff_CS2_011_FLAG, FLAG_SET);
flag(&entities[72].flags, CARD_TARGET_URSA, FLAG_SET); flag(&entities[73].flags, CARD_TARGET_URSA, FLAG_SET);
flag(&entities[72].flags, CARD_TARGETING, FLAG_SET); flag(&entities[73].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[50].flags, destroyed_OG_223_FLAG, 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_BUFF, FLAG_SET);
flag(&entities[50].flags, CARD_SPELL, 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, CARD_AOE, FLAG_SET);
flag(&entities[31].flags, spell_aoe_EX1_303_FLAG, FLAG_SET); flag(&entities[31].flags, spell_aoe_EX1_303_FLAG, FLAG_SET);
flag(&entities[31].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[31].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[130].flags, CARD_SPELL, FLAG_SET); flag(&entities[132].flags, CARD_SPELL, FLAG_SET);
flag(&entities[130].flags, CARD_AOE, FLAG_SET); flag(&entities[132].flags, CARD_AOE, FLAG_SET);
flag(&entities[130].flags, CARD_WEAPON, FLAG_SET); flag(&entities[132].flags, CARD_WEAPON, FLAG_SET);
flag(&entities[130].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[132].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[130].flags, weapon_CS2_097_FLAG, FLAG_SET); flag(&entities[132].flags, weapon_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, idle_CS2_097_FLAG, FLAG_SET); flag(&entities[132].flags, idle_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, weapon_destroyed_CS2_097_FLAG, FLAG_SET); flag(&entities[132].flags, weapon_destroyed_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, weapon_attack_CS2_097_FLAG, FLAG_SET); flag(&entities[132].flags, weapon_attack_CS2_097_FLAG, FLAG_SET);
flag(&entities[130].flags, onboard_CS2_097_FLAG, FLAG_SET); flag(&entities[132].flags, onboard_CS2_097_FLAG, FLAG_SET);
flag(&entities[127].flags, CARD_HEROPOWER, FLAG_SET); flag(&entities[129].flags, CARD_HEROPOWER, FLAG_SET);
flag(&entities[127].flags, CARD_SPELL, FLAG_SET); flag(&entities[129].flags, CARD_SPELL, FLAG_SET);
flag(&entities[127].flags, spell_CS1h_001_FLAG, FLAG_SET); flag(&entities[129].flags, spell_CS1h_001_FLAG, FLAG_SET);
flag(&entities[127].flags, CARD_TARGET_ALL, FLAG_SET); flag(&entities[129].flags, CARD_TARGET_ALL, FLAG_SET);
flag(&entities[127].flags, CARD_TARGETING, FLAG_SET); flag(&entities[129].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[46].flags, destroyed_NEW1_036_FLAG, 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_BUFF, FLAG_SET);
flag(&entities[46].flags, CARD_SPELL, 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, CARD_AOE, FLAG_SET);
flag(&entities[19].flags, spell_aoe_GVG_010_FLAG, FLAG_SET); flag(&entities[19].flags, spell_aoe_GVG_010_FLAG, FLAG_SET);
flag(&entities[19].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[19].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[94].flags, CARD_SPELL, FLAG_SET); flag(&entities[88].flags, CARD_SPELL, FLAG_SET);
flag(&entities[94].flags, CARD_AOE, FLAG_SET); flag(&entities[88].flags, spell_CS2_072_FLAG, FLAG_SET);
flag(&entities[94].flags, spell_aoe_CS1_112_FLAG, FLAG_SET); flag(&entities[88].flags, CARD_TARGET_UNDAMAGED_MINION, FLAG_SET);
flag(&entities[94].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[88].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[87].flags, CARD_SPELL, FLAG_SET); flag(&entities[92].flags, CARD_BUFF, FLAG_SET);
flag(&entities[87].flags, spell_CS2_072_FLAG, FLAG_SET); flag(&entities[92].flags, CARD_SPELL, FLAG_SET);
flag(&entities[87].flags, CARD_TARGET_UNDAMAGED_MINION, FLAG_SET); flag(&entities[92].flags, buff_CS2_077_FLAG, FLAG_SET);
flag(&entities[87].flags, CARD_TARGETING, FLAG_SET); flag(&entities[92].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[91].flags, CARD_BUFF, FLAG_SET); flag(&entities[91].flags, CARD_BUFF, FLAG_SET);
flag(&entities[91].flags, CARD_SPELL, 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[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[36].flags, attachment_attack_EX1_607e_FLAG, FLAG_SET);
flag(&entities[6].flags, CARD_HERO, FLAG_SET); flag(&entities[6].flags, CARD_HERO, FLAG_SET);
flag(&entities[5].flags, defender_TB_SPT_Boss_FLAG, 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, CARD_SPELL, FLAG_SET);
flag(&entities[4].flags, buff_PRO_001c_FLAG, FLAG_SET); flag(&entities[4].flags, buff_PRO_001c_FLAG, FLAG_SET);
flag(&entities[4].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[4].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[89].flags, CARD_FREEZE, FLAG_SET); flag(&entities[90].flags, CARD_FREEZE, FLAG_SET);
flag(&entities[89].flags, CARD_MINION, FLAG_SET); flag(&entities[90].flags, CARD_MINION, FLAG_SET);
flag(&entities[89].flags, attack_effect_CS2_024_FLAG, 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, 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_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[89].flags, CARD_TARGETING, 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_BUFF, FLAG_SET);
flag(&entities[53].flags, CARD_SPELL, FLAG_SET); flag(&entities[53].flags, CARD_SPELL, FLAG_SET);
flag(&entities[53].flags, buff_CS2_063_FLAG, 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, CARD_SPELL, FLAG_SET);
flag(&entities[20].flags, buff_OG_090_FLAG, FLAG_SET); flag(&entities[20].flags, buff_OG_090_FLAG, FLAG_SET);
flag(&entities[20].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[20].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[103].flags, CARD_MINION, FLAG_SET); flag(&entities[105].flags, CARD_MINION, FLAG_SET);
flag(&entities[103].flags, CARD_TARGETING, FLAG_SET); flag(&entities[105].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[103].flags, attack_EX1_011_FLAG, FLAG_SET); flag(&entities[105].flags, attack_EX1_011_FLAG, FLAG_SET);
flag(&entities[103].flags, CARD_BATTLECRY, FLAG_SET); flag(&entities[105].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[103].flags, battlecry_EX1_011_FLAG, FLAG_SET); flag(&entities[105].flags, battlecry_EX1_011_FLAG, FLAG_SET);
flag(&entities[103].flags, CARD_TARGET_ALLY_BOARD, FLAG_SET); flag(&entities[105].flags, CARD_TARGET_ALLY_BOARD, FLAG_SET);
flag(&entities[103].flags, CARD_TARGETING_BC, 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, endturn_EX1_105_FLAG, FLAG_SET);
flag(&entities[10].flags, CARD_MINION, FLAG_SET); flag(&entities[10].flags, CARD_MINION, FLAG_SET);
flag(&entities[10].flags, CARD_TARGETING, FLAG_SET); flag(&entities[10].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[10].flags, attack_EX1_105_FLAG, FLAG_SET); flag(&entities[10].flags, attack_EX1_105_FLAG, FLAG_SET);
flag(&entities[101].flags, CARD_MINION, FLAG_SET); flag(&entities[103].flags, CARD_MINION, FLAG_SET);
flag(&entities[101].flags, CARD_TARGETING, FLAG_SET); flag(&entities[103].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[101].flags, attack_CS2_088_FLAG, FLAG_SET); flag(&entities[103].flags, attack_CS2_088_FLAG, FLAG_SET);
flag(&entities[101].flags, CARD_BATTLECRY, FLAG_SET); flag(&entities[103].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[101].flags, battlecry_CS2_088_FLAG, FLAG_SET); flag(&entities[103].flags, battlecry_CS2_088_FLAG, FLAG_SET);
flag(&entities[101].flags, CARD_NONTARGET_BC, FLAG_SET); flag(&entities[103].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[101].flags, onboard_CS2_088_FLAG, 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_MINION, FLAG_SET);
flag(&entities[18].flags, CARD_TARGETING, FLAG_SET); flag(&entities[18].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[18].flags, attack_EX1_158t_FLAG, 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_MINION, FLAG_SET);
flag(&entities[33].flags, CARD_TARGETING, FLAG_SET); flag(&entities[33].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[33].flags, attack_AT_023_FLAG, 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_MINION, FLAG_SET);
flag(&entities[124].flags, CARD_TARGETING, FLAG_SET); flag(&entities[124].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[124].flags, attack_CS2_200_FLAG, FLAG_SET); flag(&entities[124].flags, attack_CS2_168_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[123].flags, CARD_MINION, FLAG_SET); flag(&entities[123].flags, CARD_MINION, FLAG_SET);
flag(&entities[123].flags, CARD_TARGETING, FLAG_SET); flag(&entities[123].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[123].flags, attack_CS2_120_FLAG, FLAG_SET); flag(&entities[123].flags, attack_CS2_201_FLAG, FLAG_SET);
flag(&entities[114].flags, CARD_MINION, FLAG_SET); flag(&entities[126].flags, CARD_MINION, FLAG_SET);
flag(&entities[114].flags, CARD_TARGETING, FLAG_SET); flag(&entities[126].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[114].flags, attack_EX1_506a_FLAG, FLAG_SET); flag(&entities[126].flags, attack_CS2_200_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_MINION, FLAG_SET); flag(&entities[119].flags, CARD_MINION, FLAG_SET);
flag(&entities[104].flags, CARD_TARGETING, FLAG_SET); flag(&entities[119].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[104].flags, attack_CS2_042_FLAG, FLAG_SET); flag(&entities[119].flags, attack_CS2_119_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_BATTLECRY, FLAG_SET); flag(&entities[120].flags, CARD_MINION, FLAG_SET);
flag(&entities[104].flags, battlecry_CS2_042_FLAG, FLAG_SET); flag(&entities[120].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[104].flags, CARD_TARGET_BOARD, FLAG_SET); flag(&entities[120].flags, attack_CS2_172_FLAG, FLAG_SET);
flag(&entities[104].flags, CARD_TARGETING_BC, FLAG_SET); flag(&entities[113].flags, CARD_MINION, FLAG_SET);
flag(&entities[116].flags, CARD_TAUNT, 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_MINION, FLAG_SET);
flag(&entities[116].flags, CARD_TARGETING, FLAG_SET); flag(&entities[116].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[116].flags, attack_CS2_boar_FLAG, FLAG_SET); flag(&entities[116].flags, attack_EX1_506a_FLAG, FLAG_SET);
flag(&entities[115].flags, CARD_MINION, FLAG_SET); flag(&entities[106].flags, CARD_MINION, FLAG_SET);
flag(&entities[115].flags, CARD_TARGETING, FLAG_SET); flag(&entities[106].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[115].flags, attack_CS2_237_FLAG, 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_MINION, FLAG_SET);
flag(&entities[12].flags, CARD_TARGETING, FLAG_SET); flag(&entities[12].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[12].flags, attack_LOE_077_FLAG, FLAG_SET); flag(&entities[12].flags, attack_LOE_077_FLAG, FLAG_SET);
flag(&entities[12].flags, CARD_BATTLECRY, FLAG_SET); flag(&entities[12].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[12].flags, battlecry_LOE_077_FLAG, FLAG_SET); flag(&entities[12].flags, battlecry_LOE_077_FLAG, FLAG_SET);
flag(&entities[12].flags, CARD_NONTARGET_BC, FLAG_SET); flag(&entities[12].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[119].flags, destroyed_CS2_118_FLAG, FLAG_SET); flag(&entities[121].flags, destroyed_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, defender_CS2_118_FLAG, FLAG_SET); flag(&entities[121].flags, defender_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, CARD_MINION, FLAG_SET); flag(&entities[121].flags, CARD_MINION, FLAG_SET);
flag(&entities[119].flags, CARD_TARGETING, FLAG_SET); flag(&entities[121].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[119].flags, attack_CS2_118_FLAG, FLAG_SET); flag(&entities[121].flags, attack_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, onboard_CS2_118_FLAG, FLAG_SET); flag(&entities[121].flags, onboard_CS2_118_FLAG, FLAG_SET);
flag(&entities[119].flags, CARD_BOSS, FLAG_SET); flag(&entities[121].flags, CARD_BOSS, FLAG_SET);
flag(&entities[16].flags, destroyed_AT_128_FLAG, 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_MINION, FLAG_SET);
flag(&entities[16].flags, CARD_TARGETING, 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, battlecry_EX1_614_FLAG, FLAG_SET);
flag(&entities[59].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET); flag(&entities[59].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[59].flags, CARD_TARGETING_BC, FLAG_SET); flag(&entities[59].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[102].flags, CARD_MINION, FLAG_SET); flag(&entities[104].flags, CARD_MINION, FLAG_SET);
flag(&entities[102].flags, CARD_TARGETING, FLAG_SET); flag(&entities[104].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[102].flags, attack_EX1_593_FLAG, FLAG_SET); flag(&entities[104].flags, attack_EX1_593_FLAG, FLAG_SET);
flag(&entities[102].flags, CARD_BATTLECRY, FLAG_SET); flag(&entities[104].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[102].flags, battlecry_EX1_593_FLAG, FLAG_SET); flag(&entities[104].flags, battlecry_EX1_593_FLAG, FLAG_SET);
flag(&entities[102].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET); flag(&entities[104].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[102].flags, CARD_TARGETING_BC, FLAG_SET); flag(&entities[104].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[14].flags, CARD_MINION, FLAG_SET); flag(&entities[14].flags, CARD_MINION, FLAG_SET);
flag(&entities[14].flags, CARD_TARGETING, FLAG_SET); flag(&entities[14].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[14].flags, attack_GVG_105_FLAG, 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, CARD_TARGETING, FLAG_SET);
flag(&entities[52].flags, attack_EX1_383_FLAG, FLAG_SET); flag(&entities[52].flags, attack_EX1_383_FLAG, FLAG_SET);
flag(&entities[52].flags, onboard_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[114].flags, destroyed_CS2_065_FLAG, FLAG_SET);
flag(&entities[112].flags, CARD_BOSS, FLAG_SET); flag(&entities[114].flags, CARD_BOSS, FLAG_SET);
flag(&entities[112].flags, CARD_MINION, FLAG_SET); flag(&entities[114].flags, CARD_MINION, FLAG_SET);
flag(&entities[112].flags, CARD_TARGETING, FLAG_SET); flag(&entities[114].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[112].flags, attack_CS2_065_FLAG, FLAG_SET); flag(&entities[114].flags, attack_CS2_065_FLAG, FLAG_SET);
flag(&entities[112].flags, onboard_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, destroyed_AT_018_FLAG, FLAG_SET);
flag(&entities[42].flags, CARD_SPELLPOWER, FLAG_SET); flag(&entities[42].flags, CARD_SPELLPOWER, FLAG_SET);
flag(&entities[42].flags, CARD_BOSS, 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, CARD_TARGETING, FLAG_SET);
flag(&entities[45].flags, attack_EX1_559_FLAG, FLAG_SET); flag(&entities[45].flags, attack_EX1_559_FLAG, FLAG_SET);
flag(&entities[45].flags, onboard_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[112].flags, destroyed_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, defender_NEW1_011_FLAG, FLAG_SET); flag(&entities[112].flags, defender_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, CARD_MINION, FLAG_SET); flag(&entities[112].flags, CARD_MINION, FLAG_SET);
flag(&entities[110].flags, CARD_TARGETING, FLAG_SET); flag(&entities[112].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[110].flags, attack_NEW1_011_FLAG, FLAG_SET); flag(&entities[112].flags, attack_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, onboard_NEW1_011_FLAG, FLAG_SET); flag(&entities[112].flags, onboard_NEW1_011_FLAG, FLAG_SET);
flag(&entities[110].flags, CARD_BOSS, FLAG_SET); flag(&entities[112].flags, CARD_BOSS, FLAG_SET);
flag(&entities[105].flags, CARD_MINION, FLAG_SET); flag(&entities[107].flags, CARD_MINION, FLAG_SET);
flag(&entities[105].flags, CARD_TARGETING, FLAG_SET); flag(&entities[107].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[105].flags, attack_CS2_226_FLAG, FLAG_SET); flag(&entities[107].flags, attack_CS2_226_FLAG, FLAG_SET);
flag(&entities[105].flags, CARD_BATTLECRY, FLAG_SET); flag(&entities[107].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[105].flags, battlecry_CS2_226_FLAG, FLAG_SET); flag(&entities[107].flags, battlecry_CS2_226_FLAG, FLAG_SET);
flag(&entities[105].flags, CARD_NONTARGET_BC, FLAG_SET); flag(&entities[107].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[29].flags, CARD_MINION, FLAG_SET); flag(&entities[29].flags, CARD_MINION, FLAG_SET);
flag(&entities[29].flags, CARD_TARGETING, FLAG_SET); flag(&entities[29].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[29].flags, attack_EX1_009_FLAG, FLAG_SET); flag(&entities[29].flags, attack_EX1_009_FLAG, FLAG_SET);
flag(&entities[108].flags, CARD_BUFF, FLAG_SET); flag(&entities[110].flags, CARD_BUFF, FLAG_SET);
flag(&entities[108].flags, CARD_SPELL, FLAG_SET); flag(&entities[110].flags, CARD_SPELL, FLAG_SET);
flag(&entities[108].flags, buff_EX1_581_FLAG, FLAG_SET); flag(&entities[110].flags, buff_EX1_581_FLAG, FLAG_SET);
flag(&entities[108].flags, CARD_TARGET_MINIONS, FLAG_SET); flag(&entities[110].flags, CARD_TARGET_MINIONS, FLAG_SET);
flag(&entities[108].flags, CARD_TARGETING, FLAG_SET); flag(&entities[110].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[11].flags, CARD_MINION, FLAG_SET); flag(&entities[11].flags, CARD_MINION, FLAG_SET);
flag(&entities[11].flags, CARD_TARGETING, FLAG_SET); flag(&entities[11].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[11].flags, attack_EX1_049_FLAG, 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, battlecry_EX1_049_FLAG, FLAG_SET);
flag(&entities[11].flags, CARD_TARGET_ALLY_MINIONS, FLAG_SET); flag(&entities[11].flags, CARD_TARGET_ALLY_MINIONS, FLAG_SET);
flag(&entities[11].flags, CARD_TARGETING_BC, FLAG_SET); flag(&entities[11].flags, CARD_TARGETING_BC, FLAG_SET);
flag(&entities[93].flags, CARD_LEVELUP, FLAG_SET); flag(&entities[95].flags, CARD_LEVELUP, FLAG_SET);
flag(&entities[93].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET); flag(&entities[95].flags, CARD_PIERCE_MAGIC_IMMUNITY, FLAG_SET);
flag(&entities[93].flags, CARD_SPELL, FLAG_SET); flag(&entities[95].flags, CARD_SPELL, FLAG_SET);
flag(&entities[93].flags, CARD_AOE, FLAG_SET); flag(&entities[95].flags, CARD_AOE, FLAG_SET);
flag(&entities[93].flags, spell_aoe_EX1_400_FLAG, FLAG_SET); flag(&entities[95].flags, spell_aoe_EX1_400_FLAG, FLAG_SET);
flag(&entities[93].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[95].flags, CARD_NONTARGET, FLAG_SET);
flag(&entities[26].flags, attack_effect_attachment_LOEA06_03e_FLAG, 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_SPELL, FLAG_SET);
flag(&entities[30].flags, CARD_AOE, 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, buff_LOEA06_03_FLAG, FLAG_SET);
flag(&entities[25].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET); flag(&entities[25].flags, CARD_TARGET_ENEMY_BOARD, FLAG_SET);
flag(&entities[25].flags, CARD_TARGETING, FLAG_SET); flag(&entities[25].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[92].flags, CARD_SPELL, FLAG_SET); flag(&entities[109].flags, CARD_MINION, FLAG_SET);
flag(&entities[92].flags, CARD_AOE, FLAG_SET); flag(&entities[109].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[92].flags, spell_aoe_CS2_026_FLAG, FLAG_SET); flag(&entities[109].flags, attack_EX1_306_FLAG, FLAG_SET);
flag(&entities[92].flags, CARD_NONTARGET, FLAG_SET); flag(&entities[109].flags, CARD_BATTLECRY, FLAG_SET);
flag(&entities[107].flags, CARD_MINION, FLAG_SET); flag(&entities[109].flags, battlecry_EX1_306_FLAG, FLAG_SET);
flag(&entities[107].flags, CARD_TARGETING, FLAG_SET); flag(&entities[109].flags, CARD_NONTARGET_BC, FLAG_SET);
flag(&entities[107].flags, attack_EX1_306_FLAG, FLAG_SET); flag(&entities[98].flags, destroyed_CS2_222_FLAG, FLAG_SET);
flag(&entities[107].flags, CARD_BATTLECRY, FLAG_SET); flag(&entities[98].flags, CARD_MINION, FLAG_SET);
flag(&entities[107].flags, battlecry_EX1_306_FLAG, FLAG_SET); flag(&entities[98].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[107].flags, CARD_NONTARGET_BC, FLAG_SET); flag(&entities[98].flags, attack_CS2_222_FLAG, FLAG_SET);
flag(&entities[96].flags, destroyed_CS2_222_FLAG, FLAG_SET); flag(&entities[98].flags, idle_CS2_222_FLAG, FLAG_SET);
flag(&entities[96].flags, CARD_MINION, FLAG_SET); flag(&entities[98].flags, onboard_CS2_222_FLAG, FLAG_SET);
flag(&entities[96].flags, CARD_TARGETING, FLAG_SET); flag(&entities[122].flags, destroyed_CS2_231_FLAG, FLAG_SET);
flag(&entities[96].flags, attack_CS2_222_FLAG, FLAG_SET); flag(&entities[122].flags, CARD_MINION, FLAG_SET);
flag(&entities[96].flags, idle_CS2_222_FLAG, FLAG_SET); flag(&entities[122].flags, CARD_TARGETING, FLAG_SET);
flag(&entities[96].flags, onboard_CS2_222_FLAG, FLAG_SET); flag(&entities[122].flags, attack_CS2_231_FLAG, FLAG_SET);
flag(&entities[120].flags, destroyed_CS2_231_FLAG, FLAG_SET); flag(&entities[122].flags, idle_CS2_231_FLAG, FLAG_SET);
flag(&entities[120].flags, CARD_MINION, FLAG_SET); flag(&entities[122].flags, onboard_CS2_231_FLAG, FLAG_SET);
flag(&entities[120].flags, CARD_TARGETING, FLAG_SET); flag(&entities[61].flags, CARD_BUFF, FLAG_SET);
flag(&entities[120].flags, attack_CS2_231_FLAG, FLAG_SET); flag(&entities[61].flags, CARD_SPELL, FLAG_SET);
flag(&entities[120].flags, idle_CS2_231_FLAG, FLAG_SET); flag(&entities[61].flags, buff_CS2_022_FLAG, FLAG_SET);
flag(&entities[120].flags, onboard_CS2_231_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);
} }
Binary file not shown.
+1 -1
View File
@@ -9,7 +9,7 @@ NGX_PREFIX=
NGX_SBIN_PATH= NGX_SBIN_PATH=
NGX_CONF_PREFIX= NGX_CONF_PREFIX=
NGX_CONF_PATH= NGX_CONF_PATH=
NGX_ERROR_LOG_PATH= NGX_ERROR_LOG_PATH=/app/hm_log/hm_web_nginx_$(date +"%Y%m%d_%H%M%S").log
NGX_PID_PATH= NGX_PID_PATH=
NGX_LOCK_PATH= NGX_LOCK_PATH=
NGX_USER= NGX_USER=
+2 -2
View File
@@ -1090,7 +1090,7 @@ objs/nginx.8: man/nginx.8 objs/ngx_auto_config.h
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \ sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \ -e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \ -e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \ -e "s|%%ERROR_LOG_PATH%%|/app/hm_log/hm_web_nginx_20240301_103609.log|" \
< man/nginx.8 > $@ < man/nginx.8 > $@
install: objs/nginx install: objs/nginx
@@ -1130,4 +1130,4 @@ install: objs/nginx
test -d '$(DESTDIR)/usr/local/nginx/html' || cp -R html '$(DESTDIR)/usr/local/nginx' test -d '$(DESTDIR)/usr/local/nginx/html' || cp -R html '$(DESTDIR)/usr/local/nginx'
test -d '$(DESTDIR)/usr/local/nginx/logs' || mkdir -p '$(DESTDIR)/usr/local/nginx/logs' test -d '$(DESTDIR)/app/hm_log' || mkdir -p '$(DESTDIR)/app/hm_log'
+5 -5
View File
@@ -159,7 +159,7 @@ cc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c
---------------------------------------- ----------------------------------------
checking for crypt() checking for crypt()
/tmp/ccBjPW1g.o: In function `main': /tmp/cci6t9qL.o: In function `main':
autotest.c:(.text+0xf): undefined reference to `crypt' autotest.c:(.text+0xf): undefined reference to `crypt'
collect2: error: ld returned 1 exit status collect2: error: ld returned 1 exit status
---------- ----------
@@ -273,7 +273,7 @@ checking for statvfs()
---------------------------------------- ----------------------------------------
checking for dlopen() checking for dlopen()
/tmp/ccRfQzDW.o: In function `main': /tmp/ccfAmoHn.o: In function `main':
autotest.c:(.text+0xf): undefined reference to `dlopen' autotest.c:(.text+0xf): undefined reference to `dlopen'
collect2: error: ld returned 1 exit status collect2: error: ld returned 1 exit status
---------- ----------
@@ -436,7 +436,7 @@ objs/autotest.c: In function 'main':
objs/autotest.c:7:5: warning: implicit declaration of function 'setproctitle' [-Wimplicit-function-declaration] objs/autotest.c:7:5: warning: implicit declaration of function 'setproctitle' [-Wimplicit-function-declaration]
setproctitle("test");; setproctitle("test");;
^ ^
/tmp/ccjBplGI.o: In function `main': /tmp/ccwcVzVd.o: In function `main':
autotest.c:(.text+0xf): undefined reference to `setproctitle' autotest.c:(.text+0xf): undefined reference to `setproctitle'
collect2: error: ld returned 1 exit status collect2: error: ld returned 1 exit status
---------- ----------
@@ -465,7 +465,7 @@ checking for pwrite()
---------------------------------------- ----------------------------------------
checking for sys_nerr checking for sys_nerr
/tmp/ccWsrzXf.o: In function `main': /tmp/ccvM3t1L.o: In function `main':
autotest.c:(.text+0x6): warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead autotest.c:(.text+0x6): warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
135 135
---------------------------------------- ----------------------------------------
@@ -495,7 +495,7 @@ checking for System V shared memory
---------------------------------------- ----------------------------------------
checking for POSIX semaphores checking for POSIX semaphores
/tmp/cc19ydxX.o: In function `main': /tmp/ccZ1aKO6.o: In function `main':
autotest.c:(.text+0x29): undefined reference to `sem_init' autotest.c:(.text+0x29): undefined reference to `sem_init'
autotest.c:(.text+0x41): undefined reference to `sem_destroy' autotest.c:(.text+0x41): undefined reference to `sem_destroy'
collect2: error: ld returned 1 exit status collect2: error: ld returned 1 exit status
Binary file not shown.
+1 -1
View File
@@ -166,7 +166,7 @@ Contains the process ID of
The contents of this file are not sensitive, so it can be world-readable. The contents of this file are not sensitive, so it can be world-readable.
.It Pa /usr/local/nginx/conf/nginx.conf .It Pa /usr/local/nginx/conf/nginx.conf
The main configuration file. The main configuration file.
.It Pa /usr/local/nginx/logs/error.log .It Pa /app/hm_log/hm_web_nginx_20240301_103609.log
Error log file. Error log file.
.El .El
.Sh EXIT STATUS .Sh EXIT STATUS
+1 -1
View File
@@ -384,7 +384,7 @@
#ifndef NGX_ERROR_LOG_PATH #ifndef NGX_ERROR_LOG_PATH
#define NGX_ERROR_LOG_PATH "logs/error.log" #define NGX_ERROR_LOG_PATH "/app/hm_log/hm_web_nginx_20240301_103609.log"
#endif #endif
+1
View File
@@ -0,0 +1 @@
{"cost":7,"type":"SPELL","texture":"CS2_032","id":"CS2_032","text":"Deal $4 damage to all enemy minions.","name":"Flamestrike","rarity":"FREE", "artist":"Zoltan Boros", "set":"CORE", "flavor":"asdf", "playRequirements":{"REQ_TARGET_TO_PLAY":0,"REQ_MINION_TARGET":0}, "collectible":true, "playerClass":"NEUTRAL", "howToEarnGolden":"Unlocked at Level 45.", "howToEarn":"Unlocked at Level 1." }
+20 -13
View File
@@ -1,18 +1,21 @@
var express = require('express'); var express = require("express");
var app = express(); var app = express();
var Sunwell = require('../sunwell'); var Sunwell = require("../sunwell");
var sunwell = new Sunwell({ bodyFontSize: 35 }); var sunwell = new Sunwell({ bodyFontSize: 35 });
app.get('/', function(req, res) { app.get("/", function(req, res) {
var width = 400; var width = 400;
var card_name = ""; var card_name = "";
var card_data = ""; var card_data = "";
var fs = require('fs'); var fs = require("fs");
var obj; var obj;
fs.readFile(process.cwd() + '/examples/carddata', 'utf8', function (err, data) { fs.readFile(
process.cwd() + "/examples/carddata",
"utf8",
function(err, data) {
if (err) throw err; if (err) throw err;
obj = JSON.parse(data); obj = JSON.parse(data);
@@ -21,22 +24,26 @@ app.get('/', function(req, res) {
res.writeHead(200, { res.writeHead(200, {
//'Cache-Control': 'max-age=86400', //'Cache-Control': 'max-age=86400',
'Content-Type': 'image/png' "Content-Type": "image/png",
}); });
res.write(buffer); res.write(buffer);
res.end(); res.end();
fs.writeFile(process.cwd() + '/../hm_web/static/custom/' + obj['id'] + '.jpg', buffer, function(err) { fs.writeFile(
if(err) { process.cwd() + "/../hm_web/static/custom/" + obj["id"] + ".jpg",
buffer,
function(err) {
if (err) {
return console.log(err); return console.log(err);
} }
console.log("The file " + obj['id'] + " was saved!"); console.log("The file " + obj["id"] + " was saved!");
}
}); );
});
}); });
}
);
}); });
app.use(function(err, req, res, next) { app.use(function(err, req, res, next) {
@@ -44,5 +51,5 @@ app.use(function(err, req, res, next) {
}); });
var listener = app.listen(process.env.PORT || 8081, function() { var listener = app.listen(process.env.PORT || 8081, function() {
console.log('Server listening on port', listener.address().port); console.log("Server listening on port", listener.address().port);
}); });
+1 -1
View File
@@ -4,7 +4,7 @@
"description": "Canvas based renderer for Hearthstone cards.", "description": "Canvas based renderer for Hearthstone cards.",
"main": "sunwell.js", "main": "sunwell.js",
"scripts": { "scripts": {
"start": "node examples/server", "start": "nodejs examples/server",
"test": "istanbul cover ./node_modules/mocha/bin/_mocha", "test": "istanbul cover ./node_modules/mocha/bin/_mocha",
"coveralls": "cat ./coverage/lcov.info | coveralls && rm -rf ./coverage", "coveralls": "cat ./coverage/lcov.info | coveralls && rm -rf ./coverage",
"postpublish": "git push && git push --tags" "postpublish": "git push && git push --tags"
+4 -5
View File
@@ -457,12 +457,11 @@ class deck:
elif(i[0] == '__name'): elif(i[0] == '__name'):
names.append(i[1]) names.append(i[1])
elif(i[0] == '__code'): elif(i[0] == '__code'):
if(i[1].find("\"enabled") > -1): enabled_pattern = r'enabled:(\d+)'
enabled_match = re.search(enabled_pattern, i[1])
if(enabled_match):
enabled = 1 enabled = 1
if(i[1].find("\"enabled:2\"") > -1): names.append(int(enabled_match.group(1)))
names.append(2)
else:
names.append(1)
if(i[1].find("\"boss\"") > -1): if(i[1].find("\"boss\"") > -1):
names.append('boss') names.append('boss')
else: else:
+731
View File
@@ -0,0 +1,731 @@
#!/bin/sh
# Game entity
name="Game Entity" card=GAME_ENTITY tags={10:85,20:1,49:1,198:4,202:1,204:2}
# Mana Card
name="Coin" card=GAME_005 tags={49:3,202:5,313:1}
# Player1
name="Player1" card=PLAYER1 tags={7:75,17:1,27:64,28:10,29:4,30:1,31:1,49:1,176:10,202:2,272:1,399:4}
# Player2
name="Player2" card=PLAYER2 tags={7:75,17:1,23:1,24:1,27:66,28:10,29:4,30:2,31:2,49:1,176:10,202:2,272:1,399:3}
# Power of the Horde
name="Kill Roshan" card=PRO_001c tags={183:11,202:5,48:30,330:0,331:0,} custom=1
# The Sentinel
name="The Sentinel" card=TB_SPT_Boss tags={183:18,202:3,47:0,45:30,380:39537,} custom=1
# The Scourge
name="The Scourge " card=LOEA04_01 tags={183:20,45:30,330:0,331:0,380:16231,202:3,} custom=1
# Enrage
name="Tether" card=NAX12_04e tags={183:12,202:6,330:0,331:0,338:1,} custom=1 flags=(CARD_ATTACHMENT)
# Lantern of Power
name="Grow" card=LOEA16_3e tags={183:20,202:6,330:0,331:0,} custom=1 flags=(CARD_ATTACHMENT)
# Lothar's Left Greave
name="Arcane Boots" card=LOEA16_9 tags={183:20,202:5,48:0,330:0,331:0,} custom=1
# Mountain Giant
name="Tiny" card=EX1_105 tags={183:3,202:4,201:3,203:5,48:1,47:0,45:1,251:6,321:1,} custom=1 attachment=LOEA16_3e
# Youthful Brewmaster
name="Youthful Brewmaster" card=EX1_049 tags={183:3,202:4,201:2,203:1,48:2,47:3,45:2,251:6,321:1,330:0,331:0,218:1,} custom=1
# Brann Bronzebeard
name="Karroch, the Beastmaster" card=LOE_077 tags={183:20,202:4,203:5,114:1,321:1,48:5,47:2,45:3,330:0,331:0,362:0,} custom=1
# Abomination
name="Pudge, the Butcher" card=EX1_097 tags={183:3,202:4,201:3,203:3,48:5,47:0,45:4,251:6,321:1,330:0,331:0,190:0,217:0,} custom=1
# Piloted Sky Golem
name="Boush, the Tinker" card=GVG_105 tags={183:13,321:1,48:3,202:4,203:4,47:1,45:2,200:17,330:0,331:0,217:1,} custom=1
# Icehowl
[AT_125]
# Skeleton
name="Skeleton" card=NAX4_03H tags={183:12,202:4,48:7,47:6,45:5,} custom=1
# Skeleton Knight
name="The Skeleton King" card=AT_128 tags={183:15,321:1,203:5,202:4,48:7,47:6,45:5,114:1,330:0,331:0,217:1,} custom=1
# Deathwing
name="Deathwing" card=NEW1_030 tags={183:3,203:5,202:4,48:10,47:12,45:12,200:24,114:1,321:1,330:0,331:0,218:1,} custom=1
# Treant
name="Treant" card=EX1_158t tags={183:3,202:4,201:3,199:2,251:1,47:1,45:2,48:1,330:0,331:0,} custom=1
# Velen's Chosen
name="Guardian Greaves" card=GVG_010 tags={183:13,203:1,202:5,48:0,199:6,321:1,330:0,331:0,} custom=1
# Cabalist's Tome
name="Arcane Books" card=OG_090 tags={183:21,321:1,203:4,202:5,48:0,199:4,330:0,331:0,} custom=1
# Seal of Champions
name="Black King Bar" card=AT_074 tags={183:15,321:1,203:1,202:5,48:2,199:5,330:0,331:0,} custom=1 attachment=AT_074e2
# Seal of Champions E
name="Magic Immunity" card=AT_074e2 tags={183:15,202:6,199:5,330:0,331:0,} custom=1 flags=(CARD_ATTACHMENT)
# Dagon
name="Dagon" card=BRMA11_3 tags={183:14,202:5,48:1,47:1,330:0,331:0,} custom=1
# Sparring Partner
[AT_069]
# Divine Rapier E
name="Divine Rapier" card=FP1_020e tags={183:12,202:6,199:5,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT)
# Desolator
name="Desolator" card=LOEA06_03 tags={183:20,202:5,48:2,330:0,331:0,} custom=1 attachment=LOEA06_03e
# Desolator E
name="Desolate" card=LOEA06_03e tags={183:20,202:6,330:0,331:0,} custom=1 flags=(CARD_ATTACHMENT)
# Rooted
name="Level 2" card=EX1_178ae tags={183:3,202:6,199:2,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT)
# Inner Rage
name="Satanic" card=EX1_607 tags={183:3,203:5,202:5,48:3,201:3,199:10,321:1,} custom=1 attachment=EX1_607e
# Angry Chicken
name="Courier" card=EX1_009 tags={321:1,183:3,203:3,202:4,48:1,47:2,45:1,330:0,331:0,200:20,212:1,} custom=1
# Repel
[LOEA16_20]
# Cursed Blade
name="Echo Sabre " card=LOE_118 tags={183:20,321:1,203:3,202:7,48:2,47:0,187:3,199:10,330:0,331:0,} custom=1
# Shadowflame
name="Requiem of Souls" card=EX1_303 tags={183:3,202:5,201:3,199:9,203:3,48:4,251:1,268:2,321:1,330:0,331:0,370:1,} custom=1
# Demonfire E
name="Necromastery" card=EX1_596e tags={183:3,203:1,202:6,48:0,201:3,199:9,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT)
# Void Crusher
name="Eidolon" card=AT_023 tags={183:15,321:1,203:3,202:4,48:2,47:2,45:2,199:9,200:15,330:0,331:0,403:0,} custom=1
# Forbidden Shaping
name="Demonic Conversion" card=OG_101 tags={183:21,321:1,203:4,202:5,48:3,199:6,330:0,331:0,} custom=1
# Charge E
name="Level 1" card=CS2_103e2 tags={183:2,202:6,199:10,330:0,331:0,} custom=1 flags=(CARD_ATTACHMENT)
# Inner Rage E
name="Satanic" card=EX1_607e tags={183:3,202:6,199:10,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT)
# Inner Fire E
name="Level 3" card=CS1_129e tags={183:3,202:6,199:6,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT)
# Twisting Nether
name="The Black Hole" card=EX1_312 tags={183:3,202:5,201:3,199:9,203:4,48:8,251:1,268:2,321:1,330:0,331:0,} custom=1
# Mal Ganis
[GVG_021]
# Lay on Hands
name="Purification" card=EX1_354 tags={183:3,202:5,201:3,199:5,203:4,48:8,251:1,321:1,330:0,331:0,} custom=1
# Flame Lance
name="Laguna Blade" card=AT_001 tags={183:15,321:1,203:1,202:5,48:8,199:4,47:10,330:0,331:0,} custom=1
# Dragon's Breath
name="Dragon's Breath" card=BRM_003 tags={183:14,321:1,203:1,202:5,48:3,199:4,47:2,330:0,331:0,} custom=1
# Confessor Paletress
name="Lina" card=AT_018 tags={183:15,321:1,203:5,202:4,48:2,47:1,45:14,199:6,114:1,330:0,331:0,200:16,} custom=1 level2=BRM_003 level3=AT_001
# Lightning Storm
name="God's Wrath" card=EX1_259 tags={183:3,202:5,201:3,199:8,203:3,48:6,251:1,47:3,321:1,330:0,331:0,215:1,} custom=1
# Forked Lightning
name="Forked Lightning" card=EX1_251 tags={183:3,202:5,201:3,199:8,203:1,48:2,251:1,47:1,321:1,330:0,331:0,215:1,} custom=1
# Archmage Antonidas
name="Zeus" card=EX1_559 tags={183:3,203:5,202:4,48:3,47:1,45:15,201:3,251:3,199:4,114:1,321:1,330:0,331:0,32:1,} custom=1 level2=EX1_251 level3=EX1_259
# Commanding Shout
name="Warcry" card=NEW1_036 tags={183:3,203:3,202:5,48:1,199:10,321:1,330:0,331:0,} custom=1 attachment=NEW1_036e
# Commanding Shout
name="Sven: Warcry" card=NEW1_036e tags={183:3,202:6,199:10,330:0,331:0,338:1,} custom=1 flags=(CARD_ATTACHMENT)
# Druid of the Claw
name="Ursa" card=EX1_165t2 tags={183:3,203:5,202:4,48:4,47:3,45:21,199:2,330:0,331:0,200:20,190:0,} custom=1 level2=CS2_012 level3=CS2_011
# Open Wounds
name="Wounded" card=AT_039e tags={183:15,202:6,199:2,330:0,331:0,338:1,} custom=1 flags=(CARD_ATTACHMENT)
# Divine Strength
name="God's Strength" card=OG_223 tags={183:21,321:1,203:1,202:5,48:3,199:5,} custom=1 attachment=OG_223e
# Optimism
name="Sven: God's Strength" card=OG_223e tags={183:21,202:6,} custom=1 flags=(CARD_ATTACHMENT)
# Tirion Fordring
name="Sven" card=EX1_383 tags={183:3,203:5,202:4,48:3,47:3,45:16,201:3,199:5,251:1,114:1,321:1,330:0,331:0,194:0,190:0,217:0,} custom=1 level2=NEW1_036 level3=OG_223
# Windfury
[CS2_039]
# Corruption
name="Corruption" card=CS2_063 tags={183:2,202:5,201:3,199:9,203:1,48:1,251:1,321:1,330:0,331:0,} custom=1 attachment=CS2_063e
# Corruption E
name="Corruption" card=CS2_063e tags={183:2,202:6,199:9,330:2,331:2,} custom=1 flags=(CARD_ATTACHMENT)
# Hunter's Mark
[CS2_084] attachment=CS2_084e
# Hunter's Mark E
name="Hunter's Mark E" card=CS2_084e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Assasinate
name="Assassinate" card=CS2_076 tags={183:2,202:5,201:3,199:7,203:2,48:5,251:6,268:2,321:1,330:0,331:0,} custom=1
# Shadow Word: Death
[EX1_622]
# Shadow Word: Pain
name="Shadow Word: Pain" card=CS2_234 tags={321:1,183:2,203:2,202:5,48:2,199:6,330:0,331:0,} custom=1
# Execute
name="Culling Blade" card=CS2_108 tags={183:2,202:5,201:3,199:10,203:2,48:3,251:1,268:2,321:1,330:0,331:0,} custom=1
# Illidan
name="Terrorblade" card=EX1_614 tags={183:3,203:5,202:4,48:6,45:1,47:5,201:3,251:6,114:1,321:1,330:0,331:0,200:15,32:1,} custom=1
# Hand of Protection
name="Guardian Angel" card=EX1_371 tags={183:2,203:2,202:5,48:2,199:5,201:3,251:1,321:1,330:0,331:0,} custom=1
# Polymorph
name="Polymorph" card=CS2_022 tags={183:2,202:5,201:3,199:4,203:2,48:4,251:1,268:2,321:1,330:0,331:0,} custom=1 attachment=CS2_022e
name="Polymorph E" card=CS2_022e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Hex
[EX1_246] attachment=EX1_246e
# Hex E
name="Hex E" card="EX1_246e" tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Blessing of Kings
[CS2_092] attachment=CS2_092e
# Blessing of Kings E
name="Blessing of Kings E" card="CS2_092e" tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Blessing of Might
[CS2_087] attachment=CS2_087e
# Blessing of Might E
name="Blessing of Might E" card="CS2_087e" tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Power Word: Shield
[CS2_004] attachment=CS2_004e
# Power Word: Shield E
name="Power Word: Shield E" card="CS2_004e" tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Charge
[CS2_103] attachment=CS2_103e2
# Charge E
#name="Charge E" card="CS2_103e2" tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Mark of the Wild
[CS2_009] attachment=CS2_009e
# Mark of the Wild E
name="Mark of the Wild E" card="CS2_009e" tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Ancestral Healing
[CS2_041] attachment=CS2_041e
# Ancestral Infusion
name="Ancestral Infusion" card="CS2_041e" tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Rockbiter Weapon
[CS2_045] attachment=CS2_045e
# Rockbiter Weapon E
name="Rockbiter Weapon E" card=CS2_045e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Divine spirit
[CS2_236]
# Bloodlust
[CS2_046] attachment=CS2_046e
# Bloodlust E
name="Bloodlust E" card=CS2_046e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Claw
[CS2_005] attachment=CS2_005o
# Claw E
name="Claw E" card=CS2_005o tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Heroic Strike
[CS2_105] attachment=CS2_105e
# Heroic Strike E
name="Heroic Strike E" card=CS2_105e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Savage Roar
name="Enrage" card=CS2_011 tags={183:2,202:5,201:3,199:2,203:1,48:3,251:1,321:1,330:0,331:0,} custom=1 attachment=CS2_011o
# Savage Roar E
name="Enraged" card=CS2_011o tags={183:2,202:6,199:2,330:1,331:1,338:1,} custom=1 flags=(CARD_ATTACHMENT)
# Warrior
name="Warrior" card=HERO_01 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Shamman
name="Shamman" card=HERO_02 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Rogue
#name="Rogue" card=TB_SPT_Boss tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Paladin
name="Paladin" card=HERO_04 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Hunter
name="Hunter" card=HERO_05 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Druid
name="Druid" card=HERO_06 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Warlock
name="Warlock" card=HERO_07 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Mage
name="Mage" card=HERO_08 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Priest
#name="Priest" card=LOEA04_01 tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# King of Khaz Modan
name="King of Khaz Modan" card=HERO_01a tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Blood Knight Matriarch
name="Blood Knight Matriarch" card=HERO_04a tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Alleria Windranger
name="Alleria Windranger" card=HERO_05a tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Guardian Medivh
name="Guardian Medivh" card=HERO_08a tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Khadgar
name="Khadgar" card=HERO_08b tags={12:1,45:30,49:1,201:3,202:3,203:2} flags=(CARD_HERO)
# Ice lance
#CS2_031 tags={12:1,47:0,48:1,49:3,201:3,202:5,203:2,264:1} flags=(CARD_SPELL|CARD_SPELL_DAMAGE|CARD_TARGETING|CARD_FREEZE|CARD_TARGET_FROZEN_4_DMG)
# Holy Smite
[CS1_130]
# Fireball
[CS2_029]
# Swipe
name="Swipes" card=CS2_012 tags={183:2,202:5,201:3,199:2,203:1,48:2,251:1,47:2,321:1,330:0,331:0,} custom=1 attachment=AT_039e
# Hammer of Wrath
[CS2_094]
# Backstab
name="Backstab" card=CS2_072 tags={183:2,202:5,201:3,199:7,203:2,251:6,48:0,47:2,268:2,321:1,330:0,331:0,} custom=1
# Drain Life
[CS2_061]
# Sacrificial Pact
[NEW1_003]
# Arcane Shot
name="Arcane Shot" card=DS1_185 tags={183:2,202:5,201:3,199:3,203:2,48:1,251:8,47:2,321:1,} custom=1
# Soulfire
[EX1_308]
# Mortal Coil
[EX1_302]
# Shield Block
[EX1_606]
# Shiv
[EX1_278]
# Starfire
[EX1_173]
# Moonfire
[CS2_008]
# Kill Command
[EX1_539]
# Frostbolt
name="Frostbolt" card=CS2_024 tags={183:2,202:5,201:3,199:4,203:1,48:2,251:1,47:3,268:2,321:1,208:1,} custom=1
# Frost Shock
[CS2_037]
# Shadow Bolt
[CS2_057]
# Feral Rage - choose one
#OG_047 tags={12:1,48:2,49:3,201:3,202:5,203:2,264:1} flags=(CARD_SPELL|CARD_SPELL_DAMAGE|CARD_NONTARGET)
# Arcane intellect
name="Arcane Intellect" card=CS2_023 tags={183:2,202:5,201:3,199:4,203:2,48:3,251:1,268:2,321:1,330:0,331:0,} custom=1
# Sprint
name="Sprint" card=CS2_077 tags={183:2,202:5,201:3,199:7,203:1,48:7,251:1,268:2,321:1,330:0,331:0,} custom=1
# Arcane Explosion
[CS2_025]
# Arcane Missiles
[EX1_277]
# Tracking
[DS1_184]
# Sinister Strike
[CS2_075]
# Mind Blast
[DS1_233]
# Frost Nova
name="Frost Nova" card=CS2_026 tags={183:2,202:5,201:3,199:4,203:1,48:2,251:1,47:1,268:2,321:1,330:0,331:0,208:1,} custom=1
# Fan of Knives
[EX1_129]
# Cleave
[CS2_114]
# Multishot
[DS1_183]
# Mind Vision
[CS2_003]
# Flamestrike
name="Flamestrike" card=CS2_032 tags={183:2,202:5,201:3,199:4,203:1,48:7,251:1,47:4,268:2,321:1,330:0,331:0,} custom=1
# Whirlwind
name="Counter Helix" card=EX1_400 tags={183:2,202:5,201:3,199:10,203:1,48:0,251:1,47:1,321:1,330:0,331:0,} custom=1
# Consecration
[CS2_093]
# Holy Nova
name="Holy Nova" card=CS1_112 tags={183:2,202:5,201:3,199:6,203:1,48:5,251:5,47:2,321:1,330:0,331:0,} custom=1
# Hellfire
[CS2_062]
# Water Elemental
[CS2_033]
################
# Aura
###############
# Raid leader
[CS2_122] attachment=CS2_122e
# Enhanced
name="Enhanced" card=CS2_122e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Stormwind champion
name="Stormwind Champion" card=CS2_222 tags={183:2,202:4,201:2,203:1,48:7,47:6,45:6,251:1,321:1,330:0,331:0,362:1,} custom=1 attachment=CS2_222o
# Might of Stormwind
name="Might of Stormwind" card=CS2_222o tags={183:2,202:6,330:1,331:0,} custom=1 flags=(CARD_ATTACHMENT)
# Warsong Commander
[EX1_084] attachment=EX1_084e
# Charge
name="Charge" card=EX1_084e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Timber Wolf
[DS1_175] attachment=DS1_175o
# Furious Howl
name="Furious Howl" card=DS1_175o tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Gurubashi Berserker
[EX1_399] attachment=EX1_399e
# Berserking
name="Berserking" card=EX1_399e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
################
# Battlecry
###############
# Dread Infernal
[CS2_064]
# Novice engineer
[EX1_015]
# Gnomish Inventor
[CS2_147]
# Darkscale Healer
[DS1_055]
# Guardian of Kings
name="Omniknight" card=CS2_088 tags={183:2,202:4,201:3,199:5,203:1,48:2,251:5,45:17,47:1,321:1,218:1,} custom=1
# Nightblade
name="Phantom Assassin" card=EX1_593 tags={183:2,203:2,202:4,48:4,45:2,47:4,201:3,321:1,218:1,} custom=1
# Acidic Swamp Ooze
[EX1_066]
# Voodoo doctor
name="Witch Doctor" card=EX1_011 tags={183:2,202:4,201:1,203:2,48:1,47:2,45:1,251:6,321:1,218:1,} custom=1
# Elven Archer
[CS2_189]
# Fire Elemental
name="Fire Elemental" card=CS2_042 tags={183:2,202:4,201:3,199:8,203:1,48:6,47:6,45:5,251:3,321:1,218:1,} custom=1
# Ironforge Rifleman
[CS2_141]
# Stormpike Commando
[CS2_150]
# Frostwolf Warlord
name="Legion Commander" card=CS2_226 tags={183:2,202:4,201:1,203:4,48:5,47:4,45:4,251:1,321:1,330:0,331:0,218:1,} custom=1 attachment=CS2_226e
# Frostwolf Banner
name="Frostwolf Banner" card=CS2_226e tags={183:2,202:6,330:1,331:1,} custom=1 flags=(CARD_ATTACHMENT)
# Succubus
name="Queen of Pain" card=EX1_306 tags={183:2,202:4,201:3,199:9,200:15,203:2,48:3,47:3,45:5,251:1,268:2,321:1,218:1,} custom=1
# Sap
name="Sap" card=EX1_581 tags={183:2,203:2,202:5,48:2,201:3,199:7,268:2,321:1,330:0,331:0,} custom=1
# Mind Control
[CS1_113] attachment=CS1_113e
# Mind Control E
name="Mind Control E" card=CS1_113e tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
# Vanish
[NEW1_004]
################
# Spell damage
###############
# Archmage
[CS2_155]
# Dalaran mage
[EX1_582]
# Kobold geomancer
[CS2_142]
# Ogre magi
[CS2_197]
################
# Charge
###############
# Wolfirder
[CS2_124]
# Bluegill warrior
[CS2_173]
# Kor'kron elite
name="Mogul Khan, Axe" card=NEW1_011 tags={183:2,203:5,202:4,321:1,330:0,331:0,48:3,47:2,45:20,199:10,197:0,} custom=1 level3=CS2_108
# Stormwind knight
[CS2_131]
# Reckless rocketeer
[CS2_213]
# Stonetusk boar
name="Stonetusk Boar" card=CS2_171 tags={183:2,202:4,201:3,200:20,203:2,48:1,47:1,45:1,251:6,268:2,321:1,197:0,} custom=1
# Huffer
[NEW1_034] flags=(CARD_UNCOLLECTIBLE)
################
# Divine shield
###############
# Scarlet Crusader
[EX1_020]
################
# Taunt
###############
# Lord of the Arena
[CS2_162]
# Booty bay bodyguard
[CS2_187]
# Frostwolf Grunt
[CS2_121]
# Goldshire footman
[CS1_042]
# Ironbark protector
[CS2_232]
# Sen'jin Shieldmasta
[CS2_179]
# Voidwalker
name="Enigma" card=CS2_065 tags={183:2,202:4,201:3,199:9,200:15,203:5,48:2,45:15,251:9,47:1,268:2,321:1,190:0,} custom=1 level2=OG_101 level3=EX1_312
# Misha
[NEW1_032] flags=(CARD_UNCOLLECTIBLE)
# Frog
[hexfrog] flags=(CARD_UNCOLLECTIBLE)
################
# Totem
###############
# Wrath of Air Totem
[CS2_052] flags=(CARD_UNCOLLECTIBLE|CARD_TOTEMIC_CALL_CHILD)
# Stoneclaw Totem
[CS2_051] flags=(CARD_UNCOLLECTIBLE|CARD_TOTEMIC_CALL_CHILD)
# Searing Totem
[CS2_050] flags=(CARD_UNCOLLECTIBLE|CARD_TOTEMIC_CALL_CHILD)
# Healing Totem
[NEW1_009] flags=(CARD_UNCOLLECTIBLE|CARD_TOTEMIC_CALL_CHILD)
# Flametongue Totem
[EX1_565] attachment=EX1_565o
# Flametongue
name="Flametongue" card=EX1_565o tags={12:1,49:6,202:6} flags=(CARD_ATTACHMENT)
################
# Summon
###############
# Mirror Image
[CS2_027]
# Mirror Image
[CS2_mirror]
# Animal Companion
[NEW1_031]
# Dragonling Mechanic
[EX1_025]
# Mechanical Dragonling
[EX1_025t] flags=(CARD_UNCOLLECTIBLE)
# Murloc Tidehunter
[EX1_506]
# Murloc Scout
name="Murloc Scout" card=EX1_506a tags={183:2,202:4,201:3,200:14,203:1,47:1,45:1,251:1,48:0,} custom=1 flags=(CARD_UNCOLLECTIBLE)
# Razorfen Hunter
[CS2_196]
# Leokk
[NEW1_033] flags=(CARD_UNCOLLECTIBLE)
# Starving Buzzard
name="Vulture" card=CS2_237 tags={321:1,183:2,203:1,202:4,48:1,47:1,45:1,199:3,200:20,330:0,331:0,32:1,} custom=1
# Sheep
[CS2_tk1] flags=(CARD_UNCOLLECTIBLE)
# Avator of the Coin
[GAME_002] flags=(CARD_UNCOLLECTIBLE)
# Boar
name="Boar" card=CS2_boar tags={183:2,202:4,201:3,203:1,47:1,45:1,251:1,48:1,200:20,330:0,331:0,} custom=1 flags=(CARD_UNCOLLECTIBLE)
# Oasis Snapjaw
name="Oasis Snapjaw" card=CS2_119 tags={321:1,183:2,203:2,202:4,48:4,47:2,45:7,200:20,} custom=1
# Bloodfen Raptor
name="Bloodfen Raptor" card=CS2_172 tags={183:2,203:2,202:4,48:2,45:2,47:3,201:1,251:1,268:2,321:1,200:20,} custom=1
# Magma Rager
name="Shadow Fiend" card=CS2_118 tags={321:1,183:2,203:5,202:4,48:2,47:1,45:14,330:0,331:0,} custom=1 level3=EX1_303
# Puddlestomper
#GVG_064 tags={12:1,45:2,47:3,48:2,49:3,202:4,203:2} flags=(CARD_MINION)
# Wisp
name="Wisp" card=CS2_231 tags={183:3,203:1,202:4,48:2,45:2,47:0,201:3,251:7,} custom=1 attachment=NAX12_04e
# Core Hound
name="Core Hound" card=CS2_201 tags={321:1,183:2,203:1,202:4,48:7,47:9,45:5,200:20,} custom=1
# Murloc Raider
name="Murloc Raider" card=CS2_168 tags={183:2,202:4,201:2,203:2,48:1,47:2,45:1,251:1,321:1,200:14,} custom=1
# River Crocolisk
name="River Crocolisk" card=CS2_120 tags={321:1,183:2,203:2,202:4,48:2,47:2,45:3,200:20,} custom=1
# Boulderfist Ogre
name="Boulderfist Ogre" card=CS2_200 tags={321:1,183:2,203:2,202:4,48:6,47:6,45:7,} custom=1
# Chillwind Yeti
name="Chillwind Yeti" card=CS2_182 tags={183:2,202:4,201:3,203:1,48:4,47:4,45:5,251:6,268:2,321:1,330:0,331:0,} custom=1
# Fireblast
name="Fireblast" card=CS2_034 tags={12:1,47:1,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_TARGETING|CARD_SPELL|CARD_HP_SPELL_DAMAGE)
# Lesser Heal
# name="Lesser Heal" card=CS1h_001 tags={12:1,47:2,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_TARGETING|CARD_SPELL|CARD_SPELL_HEAL)
# Lesser Heal
name="Lesser Heal" card=CS1h_001 tags={183:2,202:10,201:3,199:6,203:2,48:2,251:1,} custom=1
# Healing Touch
[CS2_007]
# Holy Light
[CS2_089]
# Reinforce
name="Reinforce" card=CS2_101 tags={12:1,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_SPELL|CARD_NONTARGET|CARD_HP_REINFORCE|CARD_SUMMON)
# Silverhand Recruit
[CS2_101t] flags=(CARD_MINION|CARD_UNCOLLECTIBLE)
# Dagger Mastery
name="Dagger Mastery" card=CS2_083b tags={12:1,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_SPELL|CARD_NONTARGET|CARD_HP_DAGGERMASTERY|CARD_SUMMON)
################
# Weapon
###############
# Wicked Knife
[CS2_082] flags=(CARD_UNCOLLECTIBLE)
# Assassin's Blade
[CS2_080]
# Truesilver Champion
name="Divine Rapier" card=CS2_097 tags={183:2,202:7,201:3,199:5,203:1,48:5,47:8,187:1,251:6,321:1,330:0,331:0,32:1,} custom=1
# Fiery War Axe
[CS2_106]
# Light's Justice
[CS2_091]
# Arcanite reaper
[CS2_112]
##############
# Totemic Call
[CS2_049] tags={12:1,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_SPELL|CARD_NONTARGET|CARD_SUMMON|CARD_HP_TOTEMIC_CALL)
# Shapeshift
[CS2_017] tags={12:1,47:1,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_SPELL|CARD_NONTARGET|CARD_HP_SHAPESHIFT|CARD_SUMMON)
# Armor Up
[CS2_102] tags={12:1,47:2,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_SPELL|CARD_NONTARGET|CARD_HP_ARMORUP|CARD_SUMMON)
# Life Tap
[CS2_056] tags={12:1,47:2,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_SPELL|CARD_NONTARGET|CARD_HP_LIFETAP|CARD_SUMMON)
# Steady Shot
[DS1h_292] tags={12:1,47:2,48:2,49:1,201:3,202:10,203:2} flags=(CARD_HEROPOWER|CARD_TARGETING|CARD_SPELL|CARD_HP_SPELL_DAMAGE|CARD_TARGET_HERO)
# Empty mana card
name="Empty card" card=MANA_CARD tags={12:1,49:3,263:5} flags=(CARD_UNCOLLECTIBLE)
# No card
name="No Card" card=NO_CARD tags={49:2} flags=(CARD_UNCOLLECTIBLE)
@@ -0,0 +1,2 @@
KGRwMQpTJ2lwJwpwMgpWMTcyLjE5LjAuMQpwMwpzUydsb2dpbicKcDQKSTAKc1Mnc2Vzc2lvbl9p
ZCcKcDUKUycyYjhlMmYyZTI3MGU3NTUyZWMxMjUyNTRkNDU4NDhkZWM3ZjNmYzAyJwpwNgpzLg==
@@ -1,3 +0,0 @@
KGRwMQpTJ2lwJwpwMgpWMTcyLjE4LjAuMQpwMwpzUydzZWNyZXQnCnA0ClZzR0lhSUoKcDUKc1Mn
dXNlcicKcDYKVnRlc3QKcDcKc1Mnc2Vzc2lvbl9pZCcKcDgKUyc1Njc1OWMxYjJlZTRkNmE5NDQw
MTE1MzQ1Y2ZkOWQyZDcwZGYwODJiJwpwOQpzUydsb2dpbicKcDEwCkkxCnMu
@@ -1,3 +0,0 @@
KGRwMQpTJ2lwJwpwMgpWMTkyLjE2OC4zMi4xCnAzCnNTJ2xvZ2luJwpwNApJMApzUyd1c2VyJwpw
NQpTJycKc1Mnc2Vzc2lvbl9pZCcKcDYKUyc3YTE0YjM4MTE0NDQ2ZTU2NzIyNzA5MDliNDQ5YWNm
N2I1NjYwZTg1JwpwNwpzLg==
@@ -1,2 +0,0 @@
KGRwMQpTJ2lwJwpwMgpWMTkyLjE2OC4xNi4xCnAzCnNTJ2xvZ2luJwpwNApJMApzUydzZXNzaW9u
X2lkJwpwNQpTJzhjOTY0ZGM4NjIzZGI2Y2RlODZmNWE1NjhmNjE1OTI2NWZmNDJiZTAnCnA2CnMu
@@ -1,2 +0,0 @@
KGRwMQpTJ2lwJwpwMgpWMTkyLjE2OC4xNi4xCnAzCnNTJ2xvZ2luJwpwNApJMApzUydzZXNzaW9u
X2lkJwpwNQpTJzk0NDRmM2FiMWVhZDY0OTk1MWU5NjNhYWU4ZDg2NTJlNzQ4M2M5ZjgnCnA2CnMu
@@ -1,2 +0,0 @@
KGRwMQpTJ2lwJwpwMgpWMTkyLjE2OC40OC4xCnAzCnNTJ2xvZ2luJwpwNApJMApzUydzZXNzaW9u
X2lkJwpwNQpTJzlhYjc5YTdjNzBiZjg5OTdjN2E1Y2VhZGU2ZmU5OGYzYTlhZDA5Y2QnCnA2CnMu
@@ -1,2 +0,0 @@
KGRwMQpTJ2lwJwpwMgpWMTcyLjE4LjAuMQpwMwpzUydsb2dpbicKcDQKSTAKc1Mnc2Vzc2lvbl9p
ZCcKcDUKUydhYWNjMWMyNjBmNTBiYmFmMDBhZTI4MjU4NTkxYTk4MDBjMzFiMTM4JwpwNgpzLg==
@@ -1,2 +0,0 @@
KGRwMQpTJ2lwJwpwMgpOc1MnbG9naW4nCnAzCkkwCnNTJ3Nlc3Npb25faWQnCnA0ClMnYjVlYmE5
ZjY1Y2IzM2RjZDBhN2RiYjlhYjQxZjYzMDVkMmQ3NjQyZicKcDUKcy4=
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
74d2dfa2dabf9111e06635fa618a438c ./static/cardxml0.unity3d 9dbdd6890d62c1d3f1126d165afa8774 ./static/cardxml0.unity3d
Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 KiB

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

BIN
View File
Binary file not shown.