rabukasim / tools /_legacy_scripts /debug /debug_nonfiction.py
trioskosmos's picture
Upload folder using huggingface_hub
463f868 verified
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()