OSDN Git Service

[Refactor] #1642 Separated sleep() from influence()
authorHourier <66951241+Hourier@users.noreply.github.com>
Thu, 10 Mar 2022 10:35:13 +0000 (19:35 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Fri, 11 Mar 2022 11:47:14 +0000 (20:47 +0900)
src/object-use/quaff/quaff-effects.cpp
src/object-use/quaff/quaff-effects.h

index d7f1774..7589293 100644 (file)
@@ -96,21 +96,7 @@ bool QuaffEffects::influence(const ObjectType &o_ref)
         ident = this->booze();
         break;
     case SV_POTION_SLEEP:
-        if (this->player_ptr->free_act) {
-            break;
-        }
-
-        msg_print(_("あなたは眠ってしまった。", "You fall asleep."));
-        if (ironman_nightmare) {
-            msg_print(_("恐ろしい光景が頭に浮かんできた。", "A horrible vision enters your mind."));
-            sanity_blast(this->player_ptr, nullptr, false);
-        }
-
-        if (BadStatusSetter(this->player_ptr).mod_paralysis(randint0(4) + 4)) {
-            ident = true;
-        }
-
-        break;
+        return this->sleep();
     case SV_POTION_LOSE_MEMORIES:
         if (this->player_ptr->hold_exp || (this->player_ptr->exp <= 0)) {
             break;
@@ -548,6 +534,25 @@ bool QuaffEffects::booze()
 }
 
 /*!
+ * @brief 眠りの薬
+ * @return 麻痺したか否か
+ */
+bool QuaffEffects::sleep()
+{
+    if (this->player_ptr->free_act) {
+        return false;
+    }
+
+    msg_print(_("あなたは眠ってしまった。", "You fall asleep."));
+    if (ironman_nightmare) {
+        msg_print(_("恐ろしい光景が頭に浮かんできた。", "A horrible vision enters your mind."));
+        sanity_blast(this->player_ptr, nullptr, false);
+    }
+
+    return BadStatusSetter(this->player_ptr).mod_paralysis(randint0(4) + 4);
+}
+
+/*!
  * @brief 爆発の薬 / Fumble ramble
  * @return 常にTRUE
  */
index 8191f52..a369213 100644 (file)
@@ -13,5 +13,6 @@ private:
 
     bool salt_water();
     bool booze();
+    bool sleep();
     bool detonation();
 };