Ryo-9399 / mc_canvas

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

シューティング正男で子機アイテムを取った時にファイアボール、しっぽで倒すタイプのボスが現れると、ボスのHPが最大値より大きくなる

urotaichi opened this issue · comments

条件
j_tokugi 14(シューティングモード)
boss_destroy_type 2(ボスの倒し方はファイヤーボール,しっぽ)
この状態で文字「l」で出てくるアイテムを取ってボス戦を始めるとボスのHPが最大値より20大きくなります。
image
Java版から存在するバグだそうです。

commented

補足すると,
文字「l」のアイテムを1つ取った状態でボス戦開始→ボスのHPが+10
文字「l」のアイテムを2つ以上取った状態でボス戦開始→ボスのHPが+20
となります。

ボスのHPの最大値が増えるのが仕様で、HP最大値の表示が更新されていないのがバグという認識でよろしいでしょうか?

強化アイテムを取るとボスのHPの最大値が増えるのはどこにも明記されていないですがおそらく仕様だと思います。(難易度調整のため?)
現在の仕様のままだとボスのHPが最大値を上回ってしまうという不自然な格好のため、HP最大値の表示が更新されていないのがバグという認識でよろしいと思います。
表示を少し変えるだけならゲーム性に特に影響をもたらさないと思うので、Java版から存在するバグではありますが、互換性を考慮せず修正してしまったほうが良いのではと思います。

個人的には、このバグの修正には反対です。

ボスのHPが変化した場合、当然タイトルに戻るとボスのHPは元に戻ります。
そのため、ボスのHPは、「HPの最大値」と「現在のHP」という二つの変数によって管理されています。

このバグを修正する方法として、「暫定的なHPの最大値」を表す変数を追加することが考えられます。
HPの最大値が変化してからタイトルに戻った際にもともとのHP最大値に戻すためには、このように変数を1つ追加する必要があると思います。
とはいえ、現状のMainProgramを見るに、これ以上変数を増やしたくないという気持ちがあります。
この表示バグのためだけに変数を増やして状態管理のコストを増やすよりは、この挙動を残しておくほうが比較的良いのではないかと思います。