Dicevadersでは、敵の目標防御力に到達すればクリアとみなされるのが本来の仕様です。しかしプレイヤーの間では、合計攻撃力が必要な防御力の閾値とまったく同じ数値を表示していたにもかかわらず、ハートを失ってしまったという報告が寄せられています。

攻撃力500対防御力500のような完全な同値に見えたにもかかわらずペナルティを受けたとしても、それはあなただけの問題ではありません。ここでは、ゲーム内で同値がどのように処理されるのか、コミュニティフォーラムで何が語られているのか、そしてなぜ画面上の端数処理によってハートを失う可能性があるのかを解説します。

本来の仕様:攻撃力=防御力はクリア扱いになるのか?

通常のゲームデザインにおいて、Dicevadersで目標防御力に到達した場合はエンカウントをクリアできるはずです。Steam公式コミュニティフォーラムにおいて、攻撃力500対防御力500でハートを失ったというプレイヤーの報告に対し、以下のような回答が寄せられました:

「バグのように思われます、本来はクリア扱いになるはずです!調査します」

この回答によれば、必要な防御力の閾値に到達していればクリアとなるべきです。攻撃力と防御力が完全に一致しているにもかかわらずペナルティを受けた場合、ゲームは意図通りに動作していません。

なぜ同値なのに敗北してしまうのか?

フォーラムの議論ではバグであることが示唆されている一方で、この失敗の背後にある技術的な原因として、攻撃力計算における「隠れた小数の端数処理」が有力視されています。

Dicevadersでは、さまざまなユニットやアビリティが割合(パーセンテージ)ベースのスケーリングによって攻撃力を変化させます。例えばあるプレイヤーは、移動時に攻撃力が3%上昇するユニット「Warped Pixie」を使用していたと述べています。パーセンテージによる増加は、整数ではなく小数を生み出すことが頻繁にあります。

戦闘が解決される際:

  • ユーザーインターフェースは多くの場合、表示される数値を最も近い整数へと切り上げ(または四捨五入)処理します。
  • 実際の攻撃力値が499.9であっても、画面上には「500」と表示されることがあります。
  • ゲームのバックエンドが「実際の攻撃力が防御力以上であるか」を厳格に判定している場合、499.9は500に届いていません。
  • その結果、画面表示上は同値に見えていても、ゲーム内部ではエンカウント失敗と判定されてしまいます。

浮動小数点数の端数処理や同点判定を修正するアップデートが適用されるまでは、盤面に割合強化の効果が存在する場合、画面表示上の完全一致に頼ることは敗北のリスクを伴います。

Dicevadersの戦闘スコア計算の仕組み

Dicevadersがどのようにダメージ出力を計算しているかを理解しておくと、端数処理の問題が発生するようなギリギリの状況を避けるのに役立ちます。

Dicevadersの戦闘は、ロールされたダイスの行の下にエイリアンユニットが列ごとに配置されたターン制グリッドに基づいています:

  • 列の起動(Column Activation): ユニットは、対応する特定の列のダイスがスコア化されたときにのみ攻撃力に貢献します。空の列は、ダイスの目に関係なくダメージを一切生み出しません。
  • 基本計算式(Base Formula): スコア化された列のダメージは、その列のユニットの合計戦力にダイスパワーを掛け合わせた値となります。
  • Molt倍率(Molt Multipliers): Moltはターン終了時の乗数として機能し、スコア化されたすべての列の総ダメージを拡大します。Moltアーティファクトを重ねることで、控えめなダイスロールでも高い瞬間火力を叩き出すことが可能です。
  • ダイス操作(Dice Manipulation): Budge(ダイスの出目を+1または-1する)やChrono(ダイスやショップ選択肢のリロール)といったメカニクスにより、追加の恩恵をトリガーするペアやトリプルを狙うことができます。

Martianのように消費リソースに応じて戦力を得るユニット(使用したBudgeやChronoごとに戦力+15)もあるため、加算型の戦力強化と割合強化のどちらが適用されているかを把握することで、攻撃力の合計が正確な整数なのか近似値なのかを見極める指標になります。

ボス戦およびパイロット戦での敗北ペナルティ

目標防御力に届かなかった場合(実力不足であれ、同点バグに遭遇した場合であれ)、ゲームプレイ上で即座にペナルティが発生します:

  • ハートの減少: 戦闘の目標値を達成できないと、ハートを1つ失います。
  • 追加ターンのリトライ: アクトの最後に登場するパイロット戦でハートを失った場合、目標スコアを達成するための追加ターンが1回与えられます。
  • ラン終了: ハートがすべて尽きると、侵略(ラン)は終了となります。

端数処理による意図しない敗北からランを守るため、割合スケーリングユニットを使用している際は、目標防御力のギリギリを狙わないようにしましょう。余分なBudgeを温存したり、Chronoを使ってスコア化するダイスを押し上げ、明らかな余剰ダメージを確保しておくことで、実際の攻撃力が目標防御力を確実に上回るようになります。

よくある質問(FAQ)

Dicevadersでは攻撃力と防御力が同値ならラウンドに勝利できますか?

Steamコミュニティのフォーラムでの回答によると、目標防御力に到達していればクリアとなるのが本来の仕様です。同値で敗北と判定された場合は、バグとして扱われます。

攻撃力500対防御力500でハートを失ったのはなぜですか?

あるプレイヤーは、画面上で同点に見えていても内部で隠れた小数値(例: 499.9が四捨五入で500と表示されているなど)が存在することが原因ではないかと指摘しています。ただし、この説明が確定的な原因であると公式に証明されているわけではありません。

攻撃力=防御力のバグで敗北しないためにはどうすればよいですか?

可能な限り、目標防御力を数ポイント以上上回ることを目指してください。Budgeを使用してダイスの目を調整したり、Molt倍率を活用してスコアを目標値より確実に高く引き上げることで、小数の端数処理エラーによるリスクを排除できます。