File size: 1,548 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
53
54
55
import numpy as np

from engine.game.player_state import PlayerState
from engine.game.serializer import get_card_modifiers
from engine.models.ability import Effect, EffectType
from engine.models.card import LiveCard, MemberCard

# Mock DBs
member_db = {
    101: MemberCard(
        card_id=101,
        card_no="M-01",
        name="Member A",
        cost=1,
        blades=1,
        hearts=np.array([1, 0, 0, 0, 0, 0, 0]),
        blade_hearts=np.array([0, 0, 0, 0, 0, 0, 0]),
        img_path="a.png",
    )
}
live_db = {
    201: LiveCard(
        card_id=201,
        card_no="L-01",
        name="Live A",
        score=1,
        required_hearts=np.array([0, 0, 0, 0, 0, 0, 1]),
        img_path="l.png",
    )
}

p = PlayerState(player_id=0)
p.continuous_effects.append(
    {
        "effect": Effect(EffectType.REDUCE_HEART_REQ, value=1, params={"color": "any"}),
        "target_slot": -1,
        "expiry": "TURN_END",
    }
)

print(f"Debug: continuous_effects length = {len(p.continuous_effects)}")
for i, ce in enumerate(p.continuous_effects):
    print(f"Debug: ce[{i}] = {ce}")
    eff = ce["effect"]
    print(f"Debug: eff.effect_type = {eff.effect_type} (type: {type(eff.effect_type)})")
    print(f"Debug: EffectType.REDUCE_HEART_REQ = {EffectType.REDUCE_HEART_REQ}")

live_mods = get_card_modifiers(p, -1, 201, member_db, live_db)
print("Live Modifiers:", live_mods)

if not live_mods:
    print("FAILURE: live_mods is empty")
else:
    print("SUCCESS: live_mods found")