File size: 6,737 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Ability Pattern Catalog (from 50-card Manual Review)

## Pattern Groups Identified

### 1. **Recovery from Discard** (10+ cards)
**Pattern**: "控え室から○○を手札に加える"

**Examples**:
- Card #1 (高坂 穂乃果): "控え室からライブカードを1枚手札に加える"
- Card #2 (絢瀬 絵里): "控え室からメンバーカードを1枚手札に加える"
- Card #10 (絢瀬絵里): "控え室から『μ's』のライブカードを1枚手札に加える"
- Card #15 (星空 凛): "控え室からコスト2以下のメンバーカードを1枚手札に加える"
- Card #42 (高海千歌): "控え室からライブカードを1枚手札に加える"

**Implementation Needed**:
- `RECOVER_MEMBER` - with cost filter
- `RECOVER_LIVE` - basic
- `GROUP_FILTER` - for group-specific recovery (e.g., "『μ's』のライブカード")
- `COST_FILTER` - for cost restrictions (e.g., "コスト2以下")

---

### 2. **Opponent Interaction** (12+ cards)
**Pattern**: "相手の○○" / "対戦相手"

#### 2a. Tap/Wait Opponent Members
- Card #17 (東條 希): "相手のステージにいるコスト4以下のメンバー1人をウェイトにする"
- Card #5, #6, #8 (Multiple): "相手のステージにいるすべてのコスト2以下のメンバーをウェイトにする"

**Implementation**: `TAP_OPPONENT` with target selection and cost filtering

#### 2b. Opponent Choice/Interaction
- Card #38 (鬼塚冬毬): "相手はそれらのカードのうち1枚を選ぶ"
- Card #44 (桜内梨子): "相手は手札からライブカードを1枚控え室に置いてもよい"
- Card #48 (津島善子): "相手は手札を1枚控え室に置いてもよい"

**Implementation**: New choice type `OPPONENT_CHOICE` with optional/mandatory flags

#### 2c. Opponent State Checks
- Card #46 (渡辺 曜): "相手のエネルギーが自分より多い場合"
- Card #42 (高海千歌): "相手の手札の枚数が自分より2枚以上多い場合"
- Card #32 (高海千歌): "相手の成功ライブカード置き場にカードが1枚以上ある場合"

**Implementation**: New conditions `OPPONENT_ENERGY`, `OPPONENT_HAND_COUNT`, `OPPONENT_SUCCESS_COUNT`

---

### 3. **Position Manipulation** (6+ cards)
**Pattern**: "ポジションチェンジ" / "エリアに移動"

- Card #14 (星空 凛): "このメンバーはセンターエリア以外にポジションチェンジする"
- Card #27/28 (嵐 千砂都): "センターエリアのメンバーを左サイドエリアに..." (全体回転)
- Card #29/30 (桜小路きな子): "このメンバーが登場か、エリアを移動するたび" (trigger on move)

**Implementation**:
- `FORMATION_CHANGE` - bulk repositioning
- `MOVE_MEMBER` - self-move
- New trigger: `ON_POSITION_CHANGE` for Card #29

---

### 4. **Conditional Buffs/Effects** (15+ cards)
**Pattern**: "○○の場合、~"

#### 4a. Success Pile Conditions
- Card #1: "成功ライブカード置き場にカードが2枚以上ある場合"
- Card #10: "成功ライブカード置き場にあるカードのスコアの合計が6以上の場合"
- Card #32: "成功ライブカード置き場のカードが0枚で、かつ相手の成功ライブカード置き場にカードが1枚以上ある場合"

**Implementation**: `COUNT_SUCCESS_PILE`, `SCORE_TOTAL_CHECK`

#### 4b. Group/Name Filters
- Card #8: "ステージと控え室に名前の異なる『Liella!』のメンバーが5人以上いる場合"
- Card #27: "ステージにいるメンバーが『5yncri5e!』のみの場合"
- Card #63: "ステージに『蓮ノ空』のメンバーがいる場合"

**Implementation**: Enhanced `GROUP_FILTER` with "only" logic and location checks

#### 4c. Live Card Conditions
- Card #10: "ライブ中のライブカードに、{{live_start}}能力も{{live_success}}能力も持たないカードがあるかぎり"

**Implementation**: `LIVE_CARD_CHECK` for ability presence

#### 4d. Member Cost Checks
- Card #14: "ステージに{{blade}}を5つ以上持つ『μ's』のメンバーがいない場合"
- Card #20-22: "自分か相手のステージにコスト13以上のメンバーがいる場合"

**Implementation**: `HAS_MEMBER_WITH_STAT` condition

---

### 5. **Unique/Special Mechanics** (8+ cards)

#### 5a. Flavor/Interactive
- Card #23 (愛♡スクリーム!): "相手に何が好き?と聞く" → 複数分岐
**Implementation**: Already done (`FLAVOR_ACTION`)

#### 5b. Reveal/Public Information
- Card #48: "手札のライブカードを1枚公開する"
- Card #50: "そのプレイヤーのデッキの上からカードを2枚見る"

**Implementation**: `REVEAL_CARDS` + player targeting

#### 5c. Dynamic Requirements
- Card #8: "このカードを使用するためのコストは..." (変更)
- Card #4: "必要ハートは○○少なくなる/多くなる"

**Implementation**: `REDUCE_COST`, `MODIFY_HEARTS_REQUIRED`

#### 5d. Yell Manipulation
- Card #5 (VIVID WORLD): "エールによって公開される自分のカードが持つ[桃ブレード]、[赤ブレード]...は、すべて[青ブレード]になる"
- Card #34-37 (ウィーン): "エールによって公開される自分のカードの枚数が8枚減る"

**Implementation**: `TRANSFORM_COLOR`, `MODIFY_YELL_COUNT`

#### 5e. Score Manipulation
- Card #24 (Poppin' Up!): "ライブの合計スコアが相手より高い場合"
- Card #40/41: "カードのスコアを+1する"

**Implementation**: `BOOST_SCORE` (exists), `COMPARE_SCORE` condition

---

## Implementation Priority

### Phase 2A: Recovery (HIGH - affects ~200 cards)
1. ✅ Basic `RECOVER_LIVE`
2. ✅ Basic `RECOVER_MEMBER`
3. 🆕 `COST_FILTER` condition
4. 🆕 `SELECT_FROM_DISCARD` choice handler

### Phase 2B: Opponent Interaction (MEDIUM-HIGH - ~150 cards)
1. 🆕 `TAP_OPPONENT` with cost filtering
2. 🆕 `OPPONENT_CHOICE` (May/Must structure)
3. 🆕 Opponent state conditions

### Phase 2C: Conditional Logic (HIGH - ~180 cards)
1. 🆕 `COUNT_SUCCESS_PILE`
2. 🆕 `SCORE_TOTAL_CHECK`
3. 🆕 Enhanced `GROUP_FILTER` (only, multi-location)
4. 🆕 `HAS_MEMBER_WITH_STAT`

### Phase 2D: Position/Movement (MEDIUM - ~80 cards)
1.`MOVE_MEMBER` (basic exists)
2. 🆕 `FORMATION_CHANGE`
3. 🆕 `ON_POSITION_CHANGE` trigger

### Phase 3: Unique Mechanics (LOW-MEDIUM - edge cases)
1. 🆕 `REVEAL_CARDS`
2. 🆕 `TRANSFORM_COLOR`
3. 🆕 `MODIFY_YELL_COUNT`
4. 🆕 `MODIFY_HEARTS_REQUIRED`

## Next Steps

Start with **Phase 2A** (Recovery) as it has the highest card coverage and builds naturally on Phase 1 work.