ランダムアーティファクトの生成強化
pekiman氏がこの件について、アイデアを含めて実際のソース改変まで行ってくれたので適用。 各種スレイが(対邪悪まで含めて)提案の通り1/4の確率で*スレイ*に化けるようになった代わりに、対邪、理力、吸血、追加攻撃の複合によって極端に高いダメージが確認される場合にはダイス目とダメージ修正に抑止がかかるように調整した。この状態で当分様子を見る。
僭越ながらいくつか懸念点を挙げさせていただきます
L2050 : !one_in_(12) の12はWEIRD_LUCK に統一しては?
L3921-3959 :
/* 改善案 */ if (have_flag(flgs, TR_KILL_EVIL)) { dam = dam * 35 / 10; if (cheat_xtra) msg_format("X邪計算後%d ", dam); } else if (!have_flag(flgs, TR_KILL_EVIL) && have_flag(flgs, TR_SLAY_EVIL)) { dam = dam * 2; if (cheat_xtra) msg_format("/邪計算後%d ", dam); } if (have_flag(flgs,TR_FORCE_WEAPON)) { dam = dam * 3 / 2 + (o_ptr->dd * o_ptr->ds + o_ptr->dd); // 厳密計算の場合 // dam = dam * 3 / 2 ; // 最後の2倍分はMPコストの対価として見逃す場合 } if (have_flag(flgs, TR_VORPAL)) { dam = dam * 11 / 9; if (cheat_xtra) msg_format("/切計算後%d ", dam); }
L4013 : これでは不等号が逆で、ダイスがマイナスにブーストされた時だけ有効になっており 実際にはダイスのマイナスブーストは存在しないので機能していない。
不等号を直しても、この処理ではブーストされた方に限定せず絶対値で ddを減らすかdsを減らすか選択しているので、 例えば2d11の六尺棒(ベース1d11)が最終的に2d7になったり不自然な結果を生む。
また、ループで回すのにダイス弱化と修正弱化が同時に行われて必要以上の弱化が起こりやすくなっている
/* 改善案 */ int bst_dd = o_ptr->dd - k_info[k_idx].dd; int bst_ds = o_ptr->ds - k_info[k_idx].ds; if (bst_dd > 0 || bst_ds > 0) { if (bsd_dd > bst_ds) { o_ptr->dd--; } else { o_ptr->ds--; } return 1; } else if (o_ptr->to_d > 10) {
ありがとうございます。概ねご指摘の通りに直していくことになると思います。
多忙につき、寄稿を未精査のままでとりあえずコミットした点、自分のミスです。ひとまずあからさまに問題な部分は即直し、下方修正処理についてはデバッグ機能で多数生成の上の統計を取ってから引き続き調整したいと思います。
強化、とはちょっと違うかもしれないがランダムアーティファクト生成中に、ドラゴンとユニークESPが候補にあがらない不具合を修正したのでここで報告。
抑制処置で新規追加した部分にまた目も当てられない見逃しがあったので修正。
一定期待値を超えた場合にダイスを弱体化するのが大分不評であり、フレーバー的にもエンターテイメント性でもよろしくないので再調整の予定。少なくとも減らすのはダイスでなく殺戮修正やX邪などの強力なスレイのみで。
2.2.2までに再修正してチケット完了にする。
一応修正完了。ひどいことにダイス抑制よりは意図せずベースアイテムより劣化する不具合を長いこと放置していた。大変申し訳ない。
#37324 よりいただいた匿名コメントを分離。
正直、噛み合わない組み合わせになる確率、まともに有効な特性がつかない確率が多すぎるところであったと自身も実感しているので、引用案も含めてもう少し考えてみる。