Spaces:
Sleeping
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 filterRECOVER_LIVE- basicGROUP_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 repositioningMOVE_MEMBER- self-move- New trigger:
ON_POSITION_CHANGEfor 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)
- ✅ Basic
RECOVER_LIVE - ✅ Basic
RECOVER_MEMBER - 🆕
COST_FILTERcondition - 🆕
SELECT_FROM_DISCARDchoice handler
Phase 2B: Opponent Interaction (MEDIUM-HIGH - ~150 cards)
- 🆕
TAP_OPPONENTwith cost filtering - 🆕
OPPONENT_CHOICE(May/Must structure) - 🆕 Opponent state conditions
Phase 2C: Conditional Logic (HIGH - ~180 cards)
- 🆕
COUNT_SUCCESS_PILE - 🆕
SCORE_TOTAL_CHECK - 🆕 Enhanced
GROUP_FILTER(only, multi-location) - 🆕
HAS_MEMBER_WITH_STAT
Phase 2D: Position/Movement (MEDIUM - ~80 cards)
- ✅
MOVE_MEMBER(basic exists) - 🆕
FORMATION_CHANGE - 🆕
ON_POSITION_CHANGEtrigger
Phase 3: Unique Mechanics (LOW-MEDIUM - edge cases)
- 🆕
REVEAL_CARDS - 🆕
TRANSFORM_COLOR - 🆕
MODIFY_YELL_COUNT - 🆕
MODIFY_HEARTS_REQUIRED
Next Steps
Start with Phase 2A (Recovery) as it has the highest card coverage and builds naturally on Phase 1 work.