OSDN Git Service

[Refactor] #37353 魔力の嵐の杖の効果を unleash_mana_storm() に分離。 / Separate implementation...
authorDeskull <deskull@users.sourceforge.jp>
Fri, 18 Jan 2019 12:41:42 +0000 (21:41 +0900)
committerDeskull <deskull@users.sourceforge.jp>
Fri, 18 Jan 2019 12:41:42 +0000 (21:41 +0900)
src/cmd-usestaff.c
src/externs.h
src/spells2.c

index a97a724..44e3ce4 100644 (file)
@@ -265,15 +265,7 @@ int staff_effect(OBJECT_SUBTYPE_VALUE sval, bool *use_charge, bool powerful, boo
 \r
        case SV_STAFF_MSTORM:\r
        {\r
-               msg_print(_("強力な魔力が敵を引き裂いた!", "Mighty magics rend your enemies!"));\r
-               project(0, (powerful ? 7 : 5), p_ptr->y, p_ptr->x,\r
-                       (randint1(200) + (powerful ? 500 : 300)) * 2, GF_MANA, PROJECT_KILL | PROJECT_ITEM | PROJECT_GRID, -1);\r
-               if ((p_ptr->pclass != CLASS_MAGE) && (p_ptr->pclass != CLASS_HIGH_MAGE) && (p_ptr->pclass != CLASS_SORCERER) && (p_ptr->pclass != CLASS_MAGIC_EATER) && (p_ptr->pclass != CLASS_BLUE_MAGE))\r
-               {\r
-                       (void)take_hit(DAMAGE_NOESCAPE, 50, _("コントロールし難い強力な魔力の解放", "unleashing magics too mighty to control"), -1);\r
-               }\r
-               ident = TRUE;\r
-\r
+               ident = unleash_mana_storm(p_ptr, powerful);\r
                break;\r
        }\r
 \r
index 84b2a99..437e033 100644 (file)
@@ -909,6 +909,7 @@ extern bool dispel_monsters(HIT_POINT dam);
 extern bool dispel_living(HIT_POINT dam);
 extern bool dispel_demons(HIT_POINT dam);
 extern bool cleansing_nova(player_type *creature_ptr, bool magic, bool powerful);
+extern bool unleash_mana_storm(player_type *creature_ptr, bool powerful);
 extern bool crusade(void);
 extern bool turn_undead(void);
 extern bool destroy_area(POSITION y1, POSITION x1, POSITION r, bool in_generate);
index a88ffaa..1ec518c 100644 (file)
@@ -920,6 +920,18 @@ bool cleansing_nova(player_type *creature_ptr, bool magic, bool powerful)
        return ident;
 }
 
+bool unleash_mana_storm(player_type *creature_ptr, bool powerful)
+{
+       msg_print(_("強力な魔力が敵を引き裂いた!", "Mighty magics rend your enemies!"));
+       project(0, (powerful ? 7 : 5), p_ptr->y, p_ptr->x,
+       (randint1(200) + (powerful ? 500 : 300)) * 2, GF_MANA, PROJECT_KILL | PROJECT_ITEM | PROJECT_GRID, -1);
+       if ((p_ptr->pclass != CLASS_MAGE) && (p_ptr->pclass != CLASS_HIGH_MAGE) && (p_ptr->pclass != CLASS_SORCERER) && (p_ptr->pclass != CLASS_MAGIC_EATER) && (p_ptr->pclass != CLASS_BLUE_MAGE))
+       {
+               (void)take_hit(DAMAGE_NOESCAPE, 50, _("コントロールし難い強力な魔力の解放", "unleashing magics too mighty to control"), -1);
+       }
+       return TRUE;
+}
+
 /*!
  * @brief 視界内の生命のあるモンスターにダメージを与える処理 / Dispel 'living' monsters
  * @return 効力があった場合TRUEを返す