チケット #40853

閃光/暗黒耐性があっても盲目になる

登録: 2020-10-10 12:54 最終更新: 2020-10-18 14:58

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
(未割り当て)
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
受領
ファイル:
なし

詳細

スターバースト・閃光のブレスを受けると、閃光耐性があっても盲目になる

暗黒の嵐・暗黒のブレスを受けると、暗黒耐性があっても盲目になる

(いずれもv2.2.1rでは盲目にならない)

いつ・どこで・どのブランチでエンバグしたのかまだ不明です、もし心当たりがありましたら確認・修正をお願いします

こちらでも調査します

チケットの履歴 (7 件中 3 件表示)

2020-10-10 12:54 更新者: hourier
  • 新しいチケット "閃光/暗黒耐性があっても盲目になる" が作成されました
2020-10-10 14:07 更新者: hourier
2020-10-10 16:21 更新者: hourier
コメント

以下の2コミットでエンバグしていることを確認しました

#40810 と本質的には同じバグと思われます

確認・修正をお願いします

https://osdn.net/projects/hengband/scm/git/hengband/commits/0e25ed3700452f10444133fa126571ca140feaaa

https://osdn.net/projects/hengband/scm/git/hengband/commits/123a6feeecb7fc555d21d9538ad2cd7bef00dc6a

2020-10-15 23:42 更新者: deskull
  • 状況オープン から 完了 に更新されました
コメント

仰る通り #40514 の過渡で産んだ、 #40810 と同類の演算ミスでした。他にも因果混乱など同様の症状が起きる可能性があったんので(bool)*_ptr->(耐性変数)なんて計算をやっている部分を軒並み修正しました。 一応完了扱いしておきます。今後類似のエラーが起こらないようリファクタリングを進める上、再発次第また別途チケットを上げます。

2020-10-16 09:03 更新者: hourier
  • 状況完了 から オープン に更新されました
  • 解決法なし から リマインド に更新されました
コメント

引き続き事象が発生し続けています

コード差分を見たところ、純粋な盲目魔法 (BLIND)は修正済のようですが、閃光/暗黒属性の追加効果たる盲目は未修正と見えます

更に調査した結果、effect_player_lite() とeffect_player_dark() の中でresist_blindしかチェックしていませんでした

これが原因と想定されます (なお昔のコードにまでは遡って調査していません、現状の設計が食い違いを起こしている感じです)

修正方針案:is_resist_blind() をhas_resist_blind() に変更し、別途「追加効果への耐性」 (例:破片属性の切り傷@ゴーレム、重力属性の減速、水属性の混乱@マーフォーク) の判定を行う関数を作成する

全属性で試していないのであれやこれやあるかもしれません、属性に応じたチケットへ作成もご検討下さい

なお本チケットに関する再現方法は以下の通りです、ご参照下さい

・適当にデバッグキャラ (エルフorハイエルフ@閃光、吸血鬼@暗黒)を作る

・適当に@のレベルを上げてニセドラゴン辺りをデバッグ召喚する

2020-10-16 22:15 更新者: deskull
  • 解決法リマインド から 受領 に更新されました
2020-10-18 14:58 更新者: deskull
  • 状況オープン から 完了 に更新されました
コメント

いただいた複数の報告と修正については、こちらも考えていた件もいくつかありました。 #40514 による副作用、エンバグは同チケットに一度報告してから、多大なものは別途切り分ける形にしますので同コメント内容を向こうに転記して、こちらはやはり一度完了します。

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする