バトルシステムテスト
← ゲームに戻る共通システム 全案共通
ATB(アクティブタイムバトル)
毎ティック、各モンスターの ATBゲージ が SPD 値 分ずつ増加する。ゲージが 100 に達したモンスターの行動順が来る。行動完了後はゲージが 0 にリセット される。
控えモンスター ST 自動回復
いずれかのモンスターが行動を完了するたびに、同チームの控えモンスターの ST が max_st の 5% 回復する。
属性相性システム(AFFINITY)
スキルの属性と防御側の主・副属性を参照して相性倍率を計算する。
| パターン | 倍率 | 備考 |
|---|---|---|
| 有利属性(主 or 副) | × 1.25 | 例: fire → ice |
| 不利属性 | × 0.8 | 例: fire → water |
| 等倍 | × 1.0 | |
| ダブル弱点(主・副属性の両方に有利) | × 4.0 | 通常の合算ではなく固定値 |
STAB(同属性ボーナス)
攻撃側の主属性または副属性がスキル属性と一致する場合、スキルの実効威力が ×1.5 になる。無属性技(element: "none")はSTABの対象外。
連続行動ペナルティ(ST コスト増加)
自分のターンが連続するたびに、攻撃カテゴリのスキルの ST 消費が増加する。素早さが高いモンスターが一方的に攻め続けることへの抑制として機能する。
| 連続行動回数 | 追加STコスト | 例(基本コスト20のとき) |
|---|---|---|
| 1回目(通常) | +0 | 20 ST |
| 2回目 | +5 | 25 ST |
| 3回目 | +10 | 30 ST |
| 4回目 | +15 | 35 ST |
| n回目 | +(n-1)×5 | — |
- 相手が1回行動するとカウントが リセット される
- attack カテゴリのスキルのみ対象。Defend・回復技にはペナルティなし
- バトルログに 「連続+XST」 と表示される
Defend アクション
攻撃せずに防御体制を取るアクション。自分のターンでも相手の攻撃ターン(リアクション)でも選択可能。
- 自分の ST を max_st の +30% 回復(上限クリップ)
is_defending = trueセット → 次に被弾したとき HP/ST ダメージが ×0.5- 案1・案2 ではブレイク状態 (
is_break) を解除
リアクションシステム(相手ターン中の防御行動)
相手のATBが100に達して攻撃ターンが来ると、攻撃が実行される前にプレイヤー側へ防御行動の選択肢が提示される。
| 選択肢 | 効果 |
|---|---|
| 防御系技(category: defense) | ST回復・バフなど。STコストを消費するが自分のATBターンは消費しない |
| Defend | ST +30%回復・is_defending=true。ダメージを半減できる |
| スキップ | 何もせず相手の攻撃をそのまま受ける |
案1: 現行実装 EngineCase1 / BattleEngine
ST ダメージ(ペナルティシステム)
攻撃技カテゴリのスキルを使用するたびに、防御側に 固定ペナルティ として ST ダメージが入る。スキルの damage_st エフェクトは通常時は 使用されない。
圧倒判定の詳細
攻撃力が防御側の現在の防御力を上回っているかを判定する。ST が減るほど防御力が落ちるため、連続攻撃でペナルティが増加しやすくなる。
ブレイク状態
防御側の ST が 0 になると is_break = true になる。
- 被ペナルティはSTではなくHPに直接入る
damage_stエフェクトが発動し威力計算でHP実ダメが入る- 自分がブレイク中に技を使うとコスト(最低 10)がHPから消費される
- 攻撃技は使用可能(案2との違い)
ブレイク中 HP ダメージ倍率
行動フロー
案2: ブレイク強化 EngineCase2
案1 との差分
executeSkill() の先頭でブロック。エラー BREAK_NO_ATTACK を返す。
プレイヤーUIでは攻撃ボタンが disabled 化される。
AIは自動的に Defend を実行する。
ブレイク状態での選択肢
| アクション | 可否 | 効果 |
|---|---|---|
| 攻撃技 | 使用不可 | BREAK_NO_ATTACK エラー |
| Defend | 使用可 | ST +30%・ブレイク解除 |
| trap カテゴリ技 | 使用可 | trap は attack でないため許可 |
| 回復アイテム | 使用可 | 通常通り |
戦略的含意
- STが0になると必ず1ターン休息(Defend)が強制される
- ST消耗 → ブレイク → Defend → 復帰 のサイクルが明確
- 案1より攻防のリズムが生まれやすい
案3: ST固定+HP溢れ EngineCase3
ブレイクなし設計
is_breakフラグは使用・参照しない- ST が 0 になると行動不能(自動的に Defend 扱い)
- スキルコストは常にST消費のみ(HP消費は発生しない)
- BREAKバッジはUIに表示されない
ダメージ計算(damage_st エフェクト)
damage_st エフェクトを持つスキルは、ST 固定ダメージと HP 溢れダメージの2種類を同時に与える。
ST残量とHP溢れダメージの関係
| ST残量 | ST固定ダメ | HP溢れダメ(例: たいあたり) | 状況 |
|---|---|---|---|
| 100(満タン) | -10 | 0(完全シールド) | pow×atk < 100×def |
| 50 | -10 | pow×atk超過分が流入 | STが半減→シールドも半減 |
| 10 | -10 | 大量に流入 | ST薄い→ほぼHP直撃 |
| 0(空) | 0(不能) | pow×atkがそのままHP流入 | 行動不能・全ダメHP直撃 |
攻撃側のST消耗も重要
攻撃するたびに自分の ST もコスト分減る。ST が減ると st_def(current_st × def)が低下 し次の被弾でHP溢れが増える。攻めれば攻めるほど自分も脆くなるトレードオフ。
3案 比較表 サマリ
| 項目 | 案1: 現行 | 案2: ブレイク強化 | 案3: ST固定+HP溢れ |
|---|---|---|---|
| ブレイク概念 | あり | あり | なし |
| ブレイク中の攻撃技 | 使用可能 | 使用不可 | — |
| ブレイク中のコスト消費先 | HP から消費 | —(攻撃不可のため不問) | — |
| ST → HP の移行方式 | ブレイク後に全HP流入 | ブレイク後に全HP流入 | 毎攻撃:固定ST削り+威力超過分がHP直撃 |
| ブレイク中被ダメ倍率 | ×2.0 〜 ×8.0 | ×2.0 〜 ×8.0 | なし(倍率変化なし) |
| STダメージの発生源 | 固定ペナルティのみ(-10〜-30) | 固定ペナルティのみ(-10〜-30) | 固定ダメージ -10(苦手属性 -20) |
| HPダメージの発生源 | ブレイク後のみ | ブレイク後のみ | max(0, pow×atk − current_st×def) |
| ゲームリズム | ST削り → ブレイク → 大ダメージ | ST削り → ブレイク → 強制休息 → 復帰 | 毎ターンST/HP両方消耗する持久戦 |
| 戦略の幅 | ブレイク中も攻め続けるか選択可能 | ブレイク回避とDefendタイミングが重要 | STを維持して防御壁を保つかトレードオフ |
| 連続行動ペナルティ | あり(攻撃ST+5/連続) | あり(攻撃ST+5/連続) | あり(攻撃ST+5/連続) |
| AI の挙動 | ランダム選択 | ブレイク中は自動 Defend | ランダム選択 |
スキルエフェクト一覧 全案共通定義
各スキルは effects[] 配列でエフェクトを持つ。エフェクトのタイプによって動作が異なる。
| type | 案1・案2 での動作 | 案3 での動作 |
|---|---|---|
damage_st |
通常時: スキップ(ペナルティで処理済み) ブレイク時: 威力計算で HP 実ダメ(×2〜×8倍率) |
ST固定ダメ: -10(苦手属性 -20) HP溢れダメ: max(0, effPow×atk − current_st×def) |
damage_hp_direct |
HP 直接ダメージ(base_power 固定値) ブレイク時 ×2.0、防御時 ×0.5 |
HP 直接ダメージ(同左。ブレイク倍率なし) 防御時 ×0.5 のみ |
delay_gauge |
相手の ATB ゲージを value 分減少(全案共通) | |
recover_st_direct |
自分の ST を value 分回復。ST > 0 ならブレイク解除 | 自分の ST を value 分回復(ブレイク解除なし) |
recover_hp |
ターゲットの HP を value 分回復(全案共通) | |
recover_st (BattleEngineのみ) |
max_st の percent% + st_rec の値を回復 (game.js の BattleEngine クラスのみ) |
— |
スキルコスト(ST 消費)
スキルカテゴリ
| category | 説明 | ペナルティ対象 |
|---|---|---|
attack | 通常攻撃技 | 対象 |
trap | 罠系(設置攻撃) | 対象 |
support | 回復・補助技 | 対象外 |
item | バトルアイテム | 対象外 |
案4: 改良版(現在の本番候補) EngineCase4
案3からの変更点
| 項目 | 案3 | 案4 |
|---|---|---|
| ST削り量 | 固定 10(弱点 +10) | effPow/3 + 弱点?10 (範囲 5〜25) |
| ST=0 時の行動 | 行動不能(auto-Defend) | HP からコスト消費で攻撃継続可能 |
| 連続行動コスト増加 | +5 ST/回 | +10 ST/回 |
| STAB 倍率 | ×1.5 | ×1.3 |
| ダブル弱点上限 | ×4.0 | ×3.0 |
| Defend 時 HP 溢れダメ | 軽減なし | ×0.5 軽減 |
ダメージ計算式
本番への切替方法
game.js 1行目の切替ラインを変更するだけ:export { EngineCase3 as BattleEngine } from './test-engines.js';→
export { EngineCase4 as BattleEngine } from './test-engines.js';