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