Spaces:
Sleeping
Sleeping
File size: 6,810 Bytes
463f868 | 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 | 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()
|