チケット #37745

忍者ヴォーパルの挙動調整の余地

登録: 2017-11-30 23:23 最終更新: 2017-11-30 23:23

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

詳細

hradish氏より報告された忍者のみの特別なヴォーパル処理について、 maxhpの値は本来モンスターの最大HPを目安にしていると思われるがFORCE_MAXが指定されているモンスターでない限り、大半が最大HPであっても即死処理に回る。

			else if ((p_ptr->pclass == CLASS_NINJA) && buki_motteruka(INVEN_RARM + hand) && !p_ptr->icky_wield[hand] && ((p_ptr->cur_lite <= 0) || one_in_(7)))
			{
				int maxhp = maxroll(r_ptr->hdice, r_ptr->hside);
				if (one_in_(backstab ? 13 : (stab_fleeing || fuiuchi) ? 15 : 27))
				{
					k *= 5;
					drain_result *= 2;
					msg_format(_("刃が%sに深々と突き刺さった!", "You critically injured %s!"), m_name);
				}
				else if (((m_ptr->hp < maxhp/2) && one_in_((p_ptr->num_blow[0]+p_ptr->num_blow[1]+1)*10)) || ((one_in_(666) || ((backstab || fuiuchi) && one_in_(11))) && !(r_ptr->flags1 & RF1_UNIQUE) && !(r_ptr->flags7 & RF7_UNIQUE2)))
				{
					if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_UNIQUE2) || (m_ptr->hp >= maxhp/2))
					{
						k = MAX(k*5, m_ptr->hp/2);
						drain_result *= 2;
						msg_format(_("%sに致命傷を負わせた!", "You fatally injured %s!"), m_name);
					}
					else
					{
						k = m_ptr->hp + 1;
						msg_format(_("刃が%sの急所を貫いた!", "You hit %s on a fatal spot!"), m_name);
					}
				}
			}

また、二刀流で命中率が極めて低かった時 右手の攻撃が全部外れた場合はまだ超隠密状態が維持されて左手の初撃で再度不意打ち判定があるので 数回の回避の後に不意打ちを食らう流れになる場合がある。

ミス! ドラコリッチにかわされた。 <x4>            
不意を突いてドラコリッチに強烈な一撃を喰らわせた!
再び敵の目にさらされるようになった。              
ミス! ドラコリッチにかわされた。                 
ドラコリッチを攻撃した。 <x2>                     
ミス! ドラコリッチにかわされた。 <x2>    

以上の修正について検討する。

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

2017-11-30 23:23 更新者: deskull
  • 新しいチケット "忍者ヴォーパルの挙動調整の余地" が作成されました

添付ファイルリスト

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

編集

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