Ticket #41264

指輪の殺戮修正が両手にかかる

오픈 날짜: 2021-01-19 19:11 마지막 업데이트: 2021-01-31 11:19

Reporter:
소유자:
Type:
Status:
Closed
Component:
(None)
Priority:
7
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

バグを調査していて別のバグに気づいたので報告します。

概要の通り、指輪の殺戮修正が両手にかかっています。

具体例を書くとなぜかSPAM扱いされるので、とりあえずこれだけチケットに登録。詳細はIRCで説明した通り。

Ticket History (3/12 Histories)

2021-01-19 19:11 Updated by: habu
  • New Ticket "指輪の殺戮修正が両手にかかる" created
2021-01-19 22:47 Updated by: deskull
댓글 올리기

了解しました。自分が対応します。

2021-01-27 22:57 Updated by: deskull
댓글 올리기

修正中、一つ一つ整理しなおしているがまだ殺戮修正が両方にかかりっぱなし。

2021-01-28 07:14 Updated by: deskull
  • Priority Update from 5 - Medium to 7
2021-01-29 02:33 Updated by: taotao
댓글 올리기

自分なりにコードを読んで修正を試みたのですが、やや変更量が多くなったためとりあえずダメージ修正についてのみ解決案のようなものを置いておきます:

https://osdn.net/users/taotao/pf/hengband/scm/commits/b22a6d6f827f0d5250a162a5b6136c589cd2ae28

修正の要点:

  • get_default_hand() は二刀流でないときに攻撃を行う側の手を返す関数だと思いますが、正しい値を返さないことがあるようです。
  • 両手が素手の場合、修行僧/練気術師/狂戦士は両手持ち扱い、他職は片手持ち扱いになるようです。(v2.2.1 のコードより)
  • 元のコードは指輪とそれ以外を一括で処理しようとしていますが、愚直に場合分けする方が無難だと思います。
2021-01-29 08:22 Updated by: deskull
댓글 올리기

taotao への返信

自分なりにコードを読んで修正を試みたのですが、やや変更量が多くなったためとりあえずダメージ修正についてのみ解決案のようなものを置いておきます: https://osdn.net/users/taotao/pf/hengband/scm/commits/b22a6d6f827f0d5250a162a5b6136c589cd2ae28 修正の要点: * get_default_hand() は二刀流でないときに攻撃を行う側の手を返す関数だと思いますが、正しい値を返さないことがあるようです。

これも併せて修正の対象にしたいと思います。

* 両手が素手の場合、修行僧/練気術師/狂戦士は両手持ち扱い、他職は片手持ち扱いになるようです。(v2.2.1 のコードより)

Discordでは2.2.1も正しい挙動だったか怪しく感じていましたが、流石に変えてはおらん気もします。もう少し古いコードを確認してなるべく元の仕様に合わせます。

* 元のコードは指輪とそれ以外を一括で処理しようとしていますが、愚直に場合分けする方が無難だと思います。

自分も先ほど個人的にいじっていましたが、おおむねその方針で修正していこうと思います。

2021-01-29 19:55 Updated by: deskull
댓글 올리기

dis-氏がtaotao氏の方針をより発展させた形で解決進めてくれているので、確認してそっちに切り替える。

2021-01-29 21:45 Updated by: taotao
댓글 올리기

装備状態を enum にする方がわかりやすくて良いですね。dis- 氏の修正に賛成です。

2021-01-29 22:16 Updated by: deskull
댓글 올리기

とりあえず自分の feature/fix-ring-slaying-bonus は feature/Fix-Calc-Slaying に吸収して(適当に追加したコメント以外)後者のみ通しました。

2021-01-30 09:20 Updated by: deskull
댓글 올리기

https://osdn.net/projects/hengband/scm/git/hengband/commits/873a4473e7f8f274a83f9d4729e4599f6af408ef マージ時のミス修正していただきました。ありがとうございます。

2021-01-31 11:19 Updated by: deskull
  • Status Update from Open to Closed
  • Resolution Update from None to Fixed
댓글 올리기

https://osdn.net/projects/hengband/scm/git/hengband/commits/5d618a3f8283d5027034fb2eee8a6d3d00612697

さらにここまでで、リファクタリングしてもらいつつ、指輪枠の挙動については正しく成立していることを確認。本チケットは完了にする。各氏ありがとうございます。

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login