Spaces:
Sleeping
Sleeping
| print("STARTING DEBUG SCRIPT") | |
| import numpy as np | |
| from engine.game.game_state import initialize_game | |
| from engine.models.card import MemberCard | |
| from engine.models.enums import Area, Group | |
| def debug_ability_2(): | |
| # {{live_start.png|ライブ開始時}}自分のステージの左サイドエリアにいる『Liella!』のメンバーが{{heart_02.png|heart02}}を3つ以上持つ場合、そのメンバーは、ライブ終了時まで、{{icon_blade.png|ブレード}}{{icon_blade.png|ブレード}}を得る。 | |
| state = initialize_game(use_real_data=True) | |
| p0 = state.players[0] | |
| card_no = "PL!SP-bp4-024-L" | |
| card_id = -1 | |
| for cid, c in state.live_db.items(): | |
| if c.card_no == card_no: | |
| card_id = cid | |
| break | |
| print(f"Found card_id: {card_id}") | |
| # Setup Left Side Member (Area.LEFT = 0) | |
| left_id = 8888 | |
| # Liella member, has Heart02 x3 (Red hearts) | |
| hearts = np.zeros(7, dtype=np.int32) | |
| hearts[1] = 3 # 3 Red Hearts | |
| left_member = MemberCard( | |
| card_id=left_id, | |
| card_no="test-left", | |
| name="Kekeru", | |
| cost=2, | |
| hearts=hearts, | |
| blade_hearts=np.zeros(7, dtype=np.int32), | |
| blades=1, | |
| groups=[Group.LIELLA], | |
| ) | |
| state.member_db[left_id] = left_member | |
| p0.stage[Area.LEFT] = left_id | |
| p0.live_zone = [card_id] | |
| # Ability 2 | |
| ability = state.live_db[card_id].abilities[1] | |
| print(f"Ability trigger: {ability.trigger}") | |
| # Execute | |
| print("DEBUG: Triggering Ability 2") | |
| state.triggered_abilities.append((0, ability, {"card_id": card_id})) | |
| state._process_rule_checks() # This processes the ability queue | |
| print("DEBUG: Finished _process_rule_checks Ability 2") | |
| # Check Buff | |
| base_blades = left_member.blades | |
| breakdown = p0.get_blades_breakdown(Area.LEFT, state.member_db) | |
| current_blades = p0.get_effective_blades(Area.LEFT, state.member_db) | |
| import json | |
| def default_serializer(obj): | |
| return str(obj) | |
| print(f"Base blades: {base_blades}") | |
| print(f"Current blades: {current_blades}") | |
| print(f"Breakdown: {json.dumps(breakdown, indent=2, default=default_serializer)}") | |
| print(f"Continuous effects: {json.dumps(p0.continuous_effects, indent=2, default=default_serializer)}") | |
| if current_blades != base_blades + 2: | |
| print("FAILURE: Buff not applied correctly.") | |
| else: | |
| print("SUCCESS") | |
| if __name__ == "__main__": | |
| try: | |
| debug_ability_2() | |
| except Exception: | |
| import traceback | |
| traceback.print_exc() | |