Spaces:
Sleeping
Sleeping
File size: 1,928 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 | """Debug script to trace live card ability resolution."""
from engine.game.enums import Phase
from engine.game.game_state import initialize_game
def test():
gs = initialize_game(use_real_data=True)
p1 = gs.players[0]
target_id = 1001 # PL!-bp3-019-L
second_muse = 1025 # PL!-sd1-020-SD
p1.live_zone = [target_id, second_muse]
p1.live_zone_revealed = [True, True]
gs.phase = Phase.PERFORMANCE_P1
gs.current_player = 0
gs.first_player = 0
print(f"Before: p1.live_score_bonus = {p1.live_score_bonus}")
print(f"gs.fast_mode = {getattr(gs, 'fast_mode', 'NOT SET')}")
gs.step(0) # Performance
print(f"After step: triggered_abilities = {len(gs.triggered_abilities)}")
print(f"After step: pending_effects = {len(gs.pending_effects)}")
print(f"After step: pending_choices = {len(gs.pending_choices)}")
while gs.triggered_abilities or gs.pending_effects:
if gs.triggered_abilities:
pid, ab, ctx = gs.triggered_abilities.pop(0)
print(f"Processing ability for player {pid}: {ab.raw_text[:50]}")
print(f" Conditions: {[c.type for c in ab.conditions]}")
print(f" Effects: {[(e.effect_type, e.value) for e in ab.effects]}")
print(f" Effect count: {len(ab.effects)}")
gs._play_automatic_ability(pid, ab, ctx)
print(f" After: p1.live_score_bonus = {p1.live_score_bonus}")
elif gs.pending_effects:
top = gs.pending_effects[0]
print(f"Resolving effect: {type(top)} = {top}")
gs._resolve_pending_effect(0)
print(f" After: p1.live_score_bonus = {p1.live_score_bonus}")
print(f"Final: p1.live_score_bonus = {p1.live_score_bonus}")
assert p1.live_score_bonus > 0, f"FAIL: bonus = {p1.live_score_bonus}"
print("PASS")
if __name__ == "__main__":
test()
|