待辦事項 #40853

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

啟用日期: 2020-10-10 12:54 最後更新: 2020-10-18 14:58

回報者:
負責人:
類型:
狀態:
關閉
元件:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
Accepted
檔案:

細節

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

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

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

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

こちらでも調査します

Ticket History (3/7 Histories)

2020-10-10 12:54 Updated by: hourier
  • New Ticket "閃光/暗黒耐性があっても盲目になる" created
2020-10-10 14:07 Updated by: hourier
2020-10-10 16:21 Updated by: 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 Updated by: deskull
  • 狀態 Update from 開啟 to 關閉
評語

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

2020-10-16 09:03 Updated by: hourier
  • 狀態 Update from 關閉 to 開啟
  • 處理結果 Update from to Remind
評語

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

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

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

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

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

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

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

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

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

2020-10-16 22:15 Updated by: deskull
  • 處理結果 Update from Remind to Accepted
2020-10-18 14:58 Updated by: deskull
  • 狀態 Update from 開啟 to 關閉
評語

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

Attachment File List

No attachments

編輯

Please login to add comment to this ticket » 登入