壁の中での速駆け発動
壁の中でも速駆け状態になることができ、また壁の中に移動して速駆けが解除されても そのターンのエネルギー消費は低減されるため、両者を交互に行うことで 結果的に壁の中を速駆けすることができてしまう
以下は発動時にチェックするパッチだが、プレイヤーターンの終了時か開始時にチェックした方がよいかもしれない
diff --git a/src/racial.c b/src/racial.c index c0d3ded..80a8790 100644 --- a/src/racial.c +++ b/src/racial.c @@ -1407,8 +1407,29 @@ static bool cmd_racial_power_aux(s32b command) } case CLASS_NINJA: { - if (p_ptr->action == ACTION_HAYAGAKE) set_action(ACTION_NONE); - else set_action(ACTION_HAYAGAKE); + if (p_ptr->action == ACTION_HAYAGAKE) + { + set_action(ACTION_NONE); + } + else + { + cave_type *c_ptr = &cave[py][px]; + feature_type *f_ptr = &f_info[c_ptr->feat]; + + if (!have_flag(f_ptr->flags, FF_PROJECT) || + (!p_ptr->levitation && have_flag(f_ptr->flags, FF_DEEP))) + { +#ifdef JP + msg_print("ここでは素早く動けない。"); +#else + msg_print("You cannot run in here."); +#endif + } + else + { + set_action(ACTION_HAYAGAKE); + } + } energy_use = 0; break; }
用意していただいた差分を利用の上、effects.c上で消費エネルギーを即座に通常の移動に戻す仕様に修正してみました。 ご協力ありがとうございます。
壁の中でも速駆け状態になることができ、また壁の中に移動して速駆けが解除されても
そのターンのエネルギー消費は低減されるため、両者を交互に行うことで
結果的に壁の中を速駆けすることができてしまう
以下は発動時にチェックするパッチだが、プレイヤーターンの終了時か開始時にチェックした方がよいかもしれない