Spaces:
Running
Running
| import pytest | |
| from engine.game.game_state import initialize_game | |
| def get_card_id(gs, card_no): | |
| for cid, card in gs.member_db.items(): | |
| if card.card_no == card_no: | |
| return cid | |
| pytest.fail(f"Card {card_no} not found") | |
| def test_plhs_bp2_017_n_ability(): | |
| gs = initialize_game(use_real_data=True) | |
| gs.verbose = True | |
| player = gs.players[gs.current_player] | |
| # 1. Test without 10 cards in discard | |
| card_id = get_card_id(gs, "PL!HS-bp2-017-N") | |
| player.hand = [card_id] | |
| player.discard = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 9 cards | |
| initial_hand_size = len(player.hand) | |
| # Place card on stage (triggers TOUJYOU) | |
| # Action 1: hand[0] to area 0 | |
| gs._execute_action(1) | |
| # Hand size should be 0 (no draw) | |
| assert len(player.hand) == 0 | |
| assert len(gs.triggered_abilities) == 0 | |
| # 2. Test with 10 cards in discard | |
| gs = initialize_game(use_real_data=True) | |
| player = gs.players[gs.current_player] | |
| card_id = get_card_id(gs, "PL!HS-bp2-017-N") | |
| player.hand = [card_id] | |
| player.discard = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 10 cards | |
| # Action 1: hand[0] to area 1 | |
| gs._execute_action(2) | |
| # Hand size should be 1 (drew a card) | |
| # Note: apply_action processes triggers automatically if they don't require choice | |
| # DRAW(1) doesn't require choice, so it should happen immediately. | |
| assert len(player.hand) == 1 | |
| print("Verification successful!") | |
| if __name__ == "__main__": | |
| test_plhs_bp2_017_n_ability() | |