Skip to content

「可能ならば必ずアタックする」を timedEffect の内容 mustAttack で書く - #121

Merged
imachan7 merged 2 commits into
mainfrom
chore/timed-must-attack
Sep 24, 2026
Merged

imachan7 merged 2 commits into
mainfrom
chore/timed-must-attack

Conversation

@imachan7

@imachan7 imachan7 commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

目的

REFACTOR_PLAN §2.2 の M8(期間つき継続効果)の続き。「このターンの間、可能ならば必ずアタックする」を timedEffect の内容 mustAttack で書く。

変わる挙動

  • 旧 forceAttackThisTurn の7か所を移した
    カード 新しい書き方
    獣機合神セイ・ドリガン・白き楯の長城・スノーフレイクン・プロボケイション・機械神の加護 mustAttack・count: 1
    月光龍ストライク・ジークヴルム mustAttack・count: 1・filter.combined: false
    アンブッシュブロッカー mustAttack・all: true・filter.cost.max: 3
  • 置き場:1体は個体の印 mustAttackThisTurn(ターン終了で消える)、「すべて」は timedRule。判定の shared/rules.ts の mustAttackThisTurn が両方を見る。ターン制約 mustAttackByCost/mustAttackByInstance は消した
  • 小さな変化1つ:1体を指定するとき、既に強制アタックの印がある相手のスピリットは候補から外れる(timedEffect の既存の規則。2回使うと別の1体に付く)
  • 「すべて」はもともと判定のたびに照合していたので、後から出たスピリットにも効くのは従来どおり
  • アブソリュートストライク(BS12-079、好きなだけ指定+使用条件)だけ旧 forceAttackThisTurn に残した(印は個体に書くように変更)

テスト

  • typecheck && validate:cards && validate:notes && validate:gaps && smoke:quiet && build:client 全緑(smoke 12861件・❌0)、audit:parity 合格
  • 新規 part377:合体スピリットは候補外・既に印がある個体は候補外・「すべて」が後から出たスピリットに効き自分側には効かない
  • part147・202・291・333 を新しい置き場に合わせた

未決・既知の制限

  • なし

imachan7 and others added 2 commits September 25, 2026 00:22
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
forceAttackThisTurn(7か所)を移し、mustAttackByCost/ByInstance を消す。「好きなだけ指定」の BS12-079 だけ旧 type に残す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@imachan7
imachan7 merged commit e7c8381 into main Sep 24, 2026
2 checks passed
@imachan7
imachan7 deleted the chore/timed-must-attack branch September 24, 2026 15:30
imachan7 added a commit that referenced this pull request Sep 24, 2026
## 目的
REFACTOR_PLAN §2.2 の M8(期間つき継続効果)の続き。「このターンの間、〜の『〜時』効果は発揮されない」を
`timedEffect` の内容 `suppressTrigger` で書く。

## 変わる挙動
- 次の2種(2か所)を移し、旧 type を消した
  | 旧 type | カード | 新しい書き方 |
  | :-- | :-- | :-- |
| `suppressTriggerThisTurn` | ユーサネイジア(相手の『破壊時』) | `suppressTrigger {
trigger: "onDestroy" }`・`all: true` |
| `markSuppressTriggerThisTurn` | 月光姫マーニ Lv2(相手1体の『アタック時』) |
`suppressTrigger { trigger: "onAttack" }`・`count: 1` |
- 置き場は今のまま(1体は個体の `suppressedTriggersThisTurn`、すべては
`state.triggerSuppressionThisTurn`)
- **小さな変化1つ**(#121
と同じ):月光姫マーニで1体を指定するとき、既に同じトリガーを止められている相手のスピリットは候補から外れる
- `validate:cards` の trigger 名の検査を `timedEffect` の内容に向け直した

## テスト
- `typecheck && validate:cards && validate:notes && validate:gaps &&
smoke:quiet && build:client` 全緑(smoke 12872件・❌0)
- 新規 part378:移した2か所のカードデータを直接解決し、相手側の指定トリガーだけが止まる・実効BP最大の1体に付く・2回目は別の1体
- part316 を新しい形に

## 未決・既知の制限
- `all: true` の絞り込み(`filter`)は未対応(書くカードが無い)

---------
imachan7 added a commit that referenced this pull request Sep 25, 2026
## 目的
#121・#122 で入れた「既に掛かっている相手のスピリットを候補から外す」を戻す(2026-09-25 ユーザー確認)。

## 変わる挙動
-
1体を指定する「可能ならば必ずアタックする」(セイ・ドリガン・月光龍ストライク・ジークヴルム・白き楯の長城・スノーフレイクン・プロボケイション・機械神の加護の6枚)と、「〜の効果は発揮されない」(月光姫マーニ)で、既に同じ効果が掛かっているスピリットも選べる
- 自動選択(AI・テスト)では、2回目も実効BP最大の同じ1体に掛かる(#121 以前と同じ)
- 「アタック/ブロックできない」など、ほかの内容の「既に持つ個体は候補にしない」は変えない

## テスト
- `typecheck && validate:cards && validate:notes && validate:gaps &&
smoke:quiet && build:client` 全緑(smoke 12887件・❌0)
- part377・part378:自動選択では2回目も同じ1体、対話では既に掛かっている個体も候補に出る

## 未決・既知の制限
- なし
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant