File size: 3,407 Bytes
bb3fbf9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
from enum import IntEnum


class Opcode(IntEnum):
    # Core Flow
    NOP = 0
    RETURN = 1
    JUMP = 2
    JUMP_IF_FALSE = 3

    # State Modification (10-99)
    DRAW = 10
    ADD_BLADES = 11
    ADD_HEARTS = 12
    REDUCE_COST = 13
    LOOK_DECK = 14
    RECOVER_LIVE = 15
    BOOST_SCORE = 16
    RECOVER_MEMBER = 17
    BUFF_POWER = 18
    IMMUNITY = 19
    MOVE_MEMBER = 20
    SWAP_CARDS = 21
    SEARCH_DECK = 22
    ENERGY_CHARGE = 23
    SET_BLADES = 24
    SET_HEARTS = 25
    FORMATION_CHANGE = 26
    NEGATE_EFFECT = 27
    ORDER_DECK = 28  # Reorder cards in deck. Attr: 0=Discard, 1=DeckTop, 2=DeckBottom
    META_RULE = 29
    SELECT_MODE = 30
    MOVE_TO_DECK = 31
    TAP_OPPONENT = 32
    PLACE_UNDER = 33
    FLAVOR_ACTION = 34
    RESTRICTION = 35
    BATON_TOUCH_MOD = 36
    SET_SCORE = 37
    SWAP_ZONE = 38
    TRANSFORM_COLOR = 39
    REVEAL_CARDS = 40
    LOOK_AND_CHOOSE = 41
    CHEER_REVEAL = 42
    ACTIVATE_MEMBER = 43
    ADD_TO_HAND = 44
    COLOR_SELECT = 45
    REPLACE_EFFECT = 46
    TRIGGER_REMOTE = 47
    REDUCE_HEART_REQ = 48
    MODIFY_SCORE_RULE = 49
    ADD_STAGE_ENERGY = 50  # Internal
    SET_TAPPED = 51  # Internal
    ADD_CONTINUOUS = 52  # Internal
    TAP_MEMBER = 53
    PLAY_MEMBER_FROM_HAND = 57
    MOVE_TO_DISCARD = 58

    # --- Added to fix systemic parsing issues ---
    GRANT_ABILITY = 60
    INCREASE_HEART_COST = 61
    REDUCE_YELL_COUNT = 62
    PLAY_MEMBER_FROM_DISCARD = 63
    PAY_ENERGY = 64
    SELECT_MEMBER = 65
    DRAW_UNTIL = 66
    SELECT_PLAYER = 67
    SELECT_LIVE = 68
    REVEAL_UNTIL = 69
    INCREASE_COST = 70
    PREVENT_PLAY_TO_SLOT = 71
    SWAP_AREA = 72
    TRANSFORM_HEART = 73
    SELECT_CARDS = 74
    OPPONENT_CHOOSE = 75
    PLAY_LIVE_FROM_DISCARD = 76
    REDUCE_LIVE_SET_LIMIT = 77
    PREVENT_ACTIVATE = 82
    ACTIVATE_ENERGY = 81

    # Target Specification (100-199)
    SET_TARGET_SELF = 100
    SET_TARGET_PLAYER = 101
    SET_TARGET_OPPONENT = 102
    SET_TARGET_ALL_PLAYERS = 103
    SET_TARGET_MEMBER_SELF = 104
    SET_TARGET_MEMBER_OTHER = 105
    SET_TARGET_CARD_HAND = 106
    SET_TARGET_CARD_DISCARD = 107
    SET_TARGET_CARD_DECK_TOP = 108
    SET_TARGET_OPPONENT_HAND = 109
    SET_TARGET_MEMBER_SELECT = 110
    SET_TARGET_MEMBER_NAMED = 111

    # Condition Checks (200-299)
    CHECK_TURN_1 = 200
    CHECK_HAS_MEMBER = 201
    CHECK_HAS_COLOR = 202
    CHECK_COUNT_STAGE = 203
    CHECK_COUNT_HAND = 204
    CHECK_COUNT_DISCARD = 205
    CHECK_IS_CENTER = 206
    CHECK_LIFE_LEAD = 207
    CHECK_COUNT_GROUP = 208
    CHECK_GROUP_FILTER = 209
    CHECK_OPPONENT_HAS = 210
    CHECK_SELF_IS_GROUP = 211
    CHECK_MODAL_ANSWER = 212
    CHECK_COUNT_ENERGY = 213
    CHECK_HAS_LIVE_CARD = 214
    CHECK_COST_CHECK = 215
    CHECK_RARITY_CHECK = 216
    CHECK_HAND_HAS_NO_LIVE = 217
    CHECK_COUNT_SUCCESS_LIVE = 218
    CHECK_OPPONENT_HAND_DIFF = 219
    CHECK_SCORE_COMPARE = 220
    CHECK_HAS_CHOICE = 221
    CHECK_OPPONENT_CHOICE = 222
    CHECK_COUNT_HEARTS = 223
    CHECK_COUNT_BLADES = 224
    CHECK_OPPONENT_ENERGY_DIFF = 225
    CHECK_HAS_KEYWORD = 226
    CHECK_DECK_REFRESHED = 227
    CHECK_HAS_MOVED = 228
    CHECK_HAND_INCREASED = 229
    CHECK_COUNT_LIVE_ZONE = 230
    CHECK_BATON = 231
    CHECK_TYPE_CHECK = 232
    CHECK_IS_IN_DISCARD = 233