Spaces:
Running
Running
| import numpy as np | |
| import pytest | |
| from pytest_bdd import given, scenario, then, when | |
| from engine.game.game_state import GameState, MemberCard | |
| from engine.models.ability import Effect, EffectType | |
| def game_state(): | |
| return GameState() | |
| def test_tap_opponent(): | |
| pass | |
| def opponent_has_member(game_state): | |
| p1 = game_state.players[1] | |
| # Setup dummy members | |
| # card_id, card_no, name, cost, hearts, blade_hearts, blades, ..., abilities | |
| m1 = MemberCard(100, "OPP-01", "Ops", 1, np.zeros(6), np.zeros(7), 1) | |
| game_state.member_db[100] = m1 | |
| p1.stage[0] = 100 | |
| p1.tapped_members[0] = False | |
| return p1 | |
| def use_tap_effect(game_state): | |
| eff = Effect(EffectType.TAP_OPPONENT, 1) | |
| # Player 0 uses it | |
| game_state.pending_effects.append(eff) | |
| game_state._resolve_pending_effect(0) | |
| def check_target_choice(game_state): | |
| assert len(game_state.pending_choices) > 0 | |
| assert game_state.pending_choices[0][0] == "TARGET_OPPONENT_MEMBER" | |
| def check_target_validity(game_state): | |
| legal = game_state.get_legal_actions() | |
| # Action 600 corresponds to Opponent Stage 0 | |
| assert legal[600], "Action 600 (Target Opponent Slot 0) should be legal" | |