Spaces:
Sleeping
Sleeping
| import json | |
| def update_pseudocode(): | |
| path = "data/manual_pseudocode.json" | |
| with open(path, "r", encoding="utf-8") as f: | |
| manual = json.load(f) | |
| new_entries = { | |
| "PL!-sd1-019-SD": "TRIGGER: ON_LIVE_SUCCESS\nEFFECT: LOOK_AND_CHOOSE_ORDER(3) -> DECK_TOP, DISCARD_REMAINDER", | |
| "PL!-sd1-022-SD": 'TRIGGER: CONSTANT\nEFFECT: REDUCE_HEART(2) -> SELF {COUNT_PER="SUCCESS_LIVES"}', | |
| "PL!S-PR-016-PR": 'TRIGGER: ON_PLAY\nEFFECT: ADD_BLADES(1) -> SELF {DURATION="UNTIL_LIVE_END"}', | |
| "PL!S-PR-020-PR": 'TRIGGER: ON_PLAY\nEFFECT: ADD_BLADES(1) -> SELF {DURATION="UNTIL_LIVE_END"}', | |
| "PL!S-PR-021-PR": 'TRIGGER: ON_PLAY\nEFFECT: ADD_BLADES(1) -> SELF {DURATION="UNTIL_LIVE_END"}', | |
| "PL!S-PR-028-PR": "TRIGGER: ON_PLAY\nEFFECT: LOOK_AND_CHOOSE_ORDER(3) -> DECK_TOP, DISCARD_REMAINDER", | |
| "PL!S-PR-029-PR": 'TRIGGER: CONSTANT\nCONDITION: COUNT_STAGE {MIN=1, FILTER="COST_GE_13", AREA="ANY_STAGE"}\nEFFECT: ADD_BLADES(2) -> SELF', | |
| "PL!S-PR-030-PR": 'TRIGGER: CONSTANT\nCONDITION: COUNT_STAGE {MIN=1, FILTER="COST_GE_13", AREA="ANY_STAGE"}\nEFFECT: ADD_BLADES(2) -> SELF', | |
| "PL!S-PR-031-PR": 'TRIGGER: CONSTANT\nCONDITION: COUNT_STAGE {MIN=1, FILTER="COST_GE_13", AREA="ANY_STAGE"}\nEFFECT: ADD_BLADES(2) -> SELF', | |
| "PL!S-PR-032-PR": "TRIGGER: ON_PLAY\nEFFECT: LOOK_AND_CHOOSE_ORDER(3) -> DECK_TOP, DISCARD_REMAINDER", | |
| "PL!S-PR-033-PR": "TRIGGER: ON_PLAY\nEFFECT: LOOK_AND_CHOOSE_ORDER(3) -> DECK_TOP, DISCARD_REMAINDER", | |
| "PL!HS-bp1-001-R": "TRIGGER: ON_PLAY\nEFFECT: ACTIVATE_ENERGY(2) -> PLAYER", | |
| "PL!HS-bp1-001-P": "TRIGGER: ON_PLAY\nEFFECT: ACTIVATE_ENERGY(2) -> PLAYER", | |
| "PL!HS-bp1-002-R": 'TRIGGER: ACTIVATED\nCOST: PAY_ENERGY(2); REMOVE_SELF\nEFFECT: PLAY_MEMBER_FROM_DISCARD(1) {FILTER="Hasunosora, COST_LE_15"} -> SELF_SLOT', | |
| "PL!HS-bp1-002-P": 'TRIGGER: ACTIVATED\nCOST: PAY_ENERGY(2); REMOVE_SELF\nEFFECT: PLAY_MEMBER_FROM_DISCARD(1) {FILTER="Hasunosora, COST_LE_15"} -> SELF_SLOT', | |
| "PL!N-sd1-008-SD": "TRIGGER: ON_PLAY\nEFFECT: ACTIVATE_ENERGY(2) -> PLAYER", | |
| "PL!N-sd1-013-SD": "TRIGGER: ON_PLAY\nEFFECT: DRAW(1); DISCARD_HAND(1)", | |
| "PL!N-sd1-021-SD": "TRIGGER: ON_PLAY\nEFFECT: DRAW(1); DISCARD_HAND(1)", | |
| "PL!N-sd1-022-SD": "TRIGGER: ON_PLAY\nEFFECT: DRAW(1); DISCARD_HAND(1)", | |
| "PL!S-bp2-001-R": "TRIGGER: CONSTANT\nCONDITION: COUNT_SUCCESS_LIVES {COUNT=0, PLAYER=0}; COUNT_SUCCESS_LIVES {MIN=1, PLAYER=1}\nEFFECT: ADD_BLADES(3) -> SELF", | |
| "PL!S-bp2-001-P": "TRIGGER: CONSTANT\nCONDITION: COUNT_SUCCESS_LIVES {COUNT=0, PLAYER=0}; COUNT_SUCCESS_LIVES {MIN=1, PLAYER=1}\nEFFECT: ADD_BLADES(3) -> SELF", | |
| "PL!S-bp2-003-R": 'TRIGGER: JIDOU (Once per turn)\nCONDITION: REVEALED_CONTAINS {TYPE_LIVE}\nEFFECT: ADD_HEARTS(1) {HEART_TYPE="GREEN"} -> SELF {DURATION="UNTIL_LIVE_END"}', | |
| "PL!S-bp2-003-P": 'TRIGGER: JIDOU (Once per turn)\nCONDITION: REVEALED_CONTAINS {TYPE_LIVE}\nEFFECT: ADD_HEARTS(1) {HEART_TYPE="GREEN"} -> SELF {DURATION="UNTIL_LIVE_END"}', | |
| "PL!S-bp2-004-R": "TRIGGER: JIDOU (Once per turn)\nCONDITION: NOT REVEALED_CONTAINS {TYPE_LIVE}\nEFFECT: ACTION_YELL_MULLIGAN", | |
| "PL!S-bp2-004-P": "TRIGGER: JIDOU (Once per turn)\nCONDITION: NOT REVEALED_CONTAINS {TYPE_LIVE}\nEFFECT: ACTION_YELL_MULLIGAN", | |
| "PL!S-bp2-006-R": "TRIGGER: ON_PLAY\nCOST: PAY_ENERGY(4) (Optional)\nEFFECT: PLAY_MEMBER_FROM_DISCARD(2) {TOTAL_COST_LE=4}", | |
| "PL!S-bp2-006-P": "TRIGGER: ON_PLAY\nCOST: PAY_ENERGY(4) (Optional)\nEFFECT: PLAY_MEMBER_FROM_DISCARD(2) {TOTAL_COST_LE=4}", | |
| "PL!S-bp2-010-N": "TRIGGER: ON_PLAY\nEFFECT: DRAW(2); DISCARD_HAND(2)", | |
| "PL!SP-bp4-018-N": 'TRIGGER: ACTIVATED\nCOST: REMOVE_SELF\nEFFECT: RECOVER_MEMBER(1) {FILTER="Liella!", FROM="DISCARD"} -> CARD_HAND', | |
| "PL!N-pb1-037-L": "TRIGGER: ON_LIVE_START\nCONDITION: DID_ACTIVATE_ENERGY_THIS_TURN\nEFFECT: BOOST_SCORE(1) -> SELF\nCONDITION: DID_ACTIVATE_MEMBER_THIS_TURN\nEFFECT: BOOST_SCORE(2) -> SELF", | |
| "PL!N-pb1-038-L": 'TRIGGER: ON_LIVE_START\nCONDITION: SUCCESS_LIVES_CONTAINS {FILTER="Nijigasaki, PINK=4"}\nEFFECT: BOOST_SCORE(1) -> SELF', | |
| "PL!N-pb1-039-L": 'TRIGGER: ON_LIVE_START\nCONDITION: SUCCESS_LIVES_CONTAINS {FILTER="Nijigasaki, PINK=3"}\nEFFECT: SELECT_MEMBER(1) {FILTER="Nijigasaki, HEART_PURPLE_GE_1"} -> TARGET; ADD_HEARTS(5) {HEART_TYPE="PURPLE"} -> TARGET {DURATION="UNTIL_LIVE_END"}', | |
| "PL!N-pb1-042-L": 'TRIGGER: ON_LIVE_START\nCONDITION: COUNT_STAGE {MIN=2, SAME_NAME=TRUE, FILTER="Nijigasaki"}\nEFFECT: REDUCE_HEART(3) -> SELF', | |
| "PL!N-sd1-028-SD": 'TRIGGER: ON_LIVE_START\nCONDITION: TOTAL_BLADES {MIN=10, AREA="STAGE"}\nEFFECT: BOOST_SCORE(1) -> SELF', | |
| "PL!SP-bp1-025-L": 'TRIGGER: ON_LIVE_START\nEFFECT: REDUCE_HEART(X) -> SELF {PER_CARD="STAGED_OR_MOVED_THIS_TURN", FILTER="5yncri5e!"}', | |
| "PL!S-bp2-008-R+": 'TRIGGER: ON_PLAY\nEFFECT: MOVE_TO_DECK(1) {FROM="DISCARD", TYPE_LIVE} -> DECK_BOTTOM\n\nTRIGGER: ON_LIVE_SUCCESS\nCONDITION: COUNT_STAGE {MIN=3, AREA="STAGE", FILTER="Aqours", UNIQUE_NAME=TRUE}\nEFFECT: BOOST_SCORE(1) {CONDITION="REVEALED_COUNT {MIN=1, TYPE_LIVE}"}; BOOST_SCORE(2) {CONDITION="REVEALED_COUNT {MIN=3, TYPE_LIVE}"}', | |
| "PL!S-bp2-008-P": 'TRIGGER: ON_PLAY\nEFFECT: MOVE_TO_DECK(1) {FROM="DISCARD", TYPE_LIVE} -> DECK_BOTTOM\n\nTRIGGER: ON_LIVE_SUCCESS\nCONDITION: COUNT_STAGE {MIN=3, AREA="STAGE", FILTER="Aqours", UNIQUE_NAME=TRUE}\nEFFECT: BOOST_SCORE(1) {CONDITION="REVEALED_COUNT {MIN=1, TYPE_LIVE}"}; BOOST_SCORE(2) {CONDITION="REVEALED_COUNT {MIN=3, TYPE_LIVE}"}', | |
| "PL!S-bp2-008-P+": 'TRIGGER: ON_PLAY\nEFFECT: MOVE_TO_DECK(1) {FROM="DISCARD", TYPE_LIVE} -> DECK_BOTTOM\n\nTRIGGER: ON_LIVE_SUCCESS\nCONDITION: COUNT_STAGE {MIN=3, AREA="STAGE", FILTER="Aqours", UNIQUE_NAME=TRUE}\nEFFECT: BOOST_SCORE(1) {CONDITION="REVEALED_COUNT {MIN=1, TYPE_LIVE}"}; BOOST_SCORE(2) {CONDITION="REVEALED_COUNT {MIN=3, TYPE_LIVE}"}', | |
| "PL!S-bp2-008-SEC": 'TRIGGER: ON_PLAY\nEFFECT: MOVE_TO_DECK(1) {FROM="DISCARD", TYPE_LIVE} -> DECK_BOTTOM\n\nTRIGGER: ON_LIVE_SUCCESS\nCONDITION: COUNT_STAGE {MIN=3, AREA="STAGE", FILTER="Aqours", UNIQUE_NAME=TRUE}\nEFFECT: BOOST_SCORE(1) {CONDITION="REVEALED_COUNT {MIN=1, TYPE_LIVE}"}; BOOST_SCORE(2) {CONDITION="REVEALED_COUNT {MIN=3, TYPE_LIVE}"}', | |
| "PL!-bp3-023-L": 'TRIGGER: ON_LIVE_START\nCONDITION: TOTAL_BLADES {MIN=10, AREA="STAGE"}\nEFFECT: REDUCE_HEART(2) -> SELF', | |
| } | |
| for mid, pseudo in new_entries.items(): | |
| manual[mid] = {"pseudocode": pseudo} | |
| with open(path, "w", encoding="utf-8") as f: | |
| json.dump(manual, f, indent=2, sort_keys=True, ensure_ascii=False) | |
| print(f"Updated {len(new_entries)} entries.") | |
| if __name__ == "__main__": | |
| update_pseudocode() | |