OSDN Git Service

不可能な地形上での忍者の速駆け発動禁止。
authordeskull <deskull@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 8 Mar 2011 16:54:43 +0000 (16:54 +0000)
committerdeskull <deskull@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 8 Mar 2011 16:54:43 +0000 (16:54 +0000)
速駆けが終了した瞬間に、移動消費エネルギーが元に戻るよう設定。

src/cmd6.c
src/effects.c
src/racial.c

index f8dd82c..27bfe1d 100644 (file)
@@ -711,7 +711,7 @@ void do_cmd_eat_food(void)
 static void do_cmd_quaff_potion_aux(int item)
 {
        int         ident, lev;
-       object_type     *o_ptr;
+       object_type *o_ptr;
        object_type forge;
        object_type *q_ptr;
 
index b244442..0a818bc 100644 (file)
@@ -87,6 +87,7 @@ void set_action(int typ)
 #else
                                msg_print("You are no longer walking extremely fast.");
 #endif
+                               energy_use = 100;
                                break;
                        }
                        case ACTION_SPELL:
index c0d3ded..4145154 100644 (file)
@@ -1407,11 +1407,35 @@ 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;
                }
+
                }
        }
        else if (p_ptr->mimic_form)