OSDN Git Service

[Refactor] #40481 Separated cast_blue_bolt_*() (others) from blue-magic-caster.c...
authorHourier <hourier@users.sourceforge.jp>
Tue, 21 Jul 2020 09:59:46 +0000 (18:59 +0900)
committerHourier <hourier@users.sourceforge.jp>
Tue, 21 Jul 2020 09:59:46 +0000 (18:59 +0900)
src/blue-magic/blue-magic-ball-bolt.c
src/blue-magic/blue-magic-ball-bolt.h
src/blue-magic/blue-magic-caster.c

index e2fef86..9521dfe 100644 (file)
@@ -189,3 +189,69 @@ bool cast_blue_bolt_cold(player_type *caster_ptr, bmc_type *bmc_ptr)
     fire_bolt(caster_ptr, GF_COLD, bmc_ptr->dir, bmc_ptr->damage);
     return TRUE;
 }
+
+bool cast_blue_bolt_nether(player_type *caster_ptr, bmc_type *bmc_ptr)
+{
+    if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        return FALSE;
+
+    msg_print(_("地獄の矢の呪文を唱えた。", "You cast a nether bolt."));
+    bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_NETHER), bmc_ptr->plev, DAM_ROLL);
+    fire_bolt(caster_ptr, GF_NETHER, bmc_ptr->dir, bmc_ptr->damage);
+    return TRUE;
+}
+
+bool cast_blue_bolt_water(player_type *caster_ptr, bmc_type *bmc_ptr)
+{
+    if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        return FALSE;
+
+    msg_print(_("ウォーター・ボルトの呪文を唱えた。", "You cast a water bolt."));
+    bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_WATER), bmc_ptr->plev, DAM_ROLL);
+    fire_bolt(caster_ptr, GF_WATER, bmc_ptr->dir, bmc_ptr->damage);
+    return TRUE;
+}
+
+bool cast_blue_bolt_mana(player_type *caster_ptr, bmc_type *bmc_ptr)
+{
+    if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        return FALSE;
+
+    msg_print(_("魔力の矢の呪文を唱えた。", "You cast a mana bolt."));
+    bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_MANA), bmc_ptr->plev, DAM_ROLL);
+    fire_bolt(caster_ptr, GF_MANA, bmc_ptr->dir, bmc_ptr->damage);
+    return TRUE;
+}
+
+bool cast_blue_bolt_plasma(player_type *caster_ptr, bmc_type *bmc_ptr)
+{
+    if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        return FALSE;
+
+    msg_print(_("プラズマ・ボルトの呪文を唱えた。", "You cast a plasma bolt."));
+    bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_PLASMA), bmc_ptr->plev, DAM_ROLL);
+    fire_bolt(caster_ptr, GF_PLASMA, bmc_ptr->dir, bmc_ptr->damage);
+    return TRUE;
+}
+
+bool cast_blue_bolt_icee(player_type *caster_ptr, bmc_type *bmc_ptr)
+{
+    if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        return FALSE;
+
+    msg_print(_("極寒の矢の呪文を唱えた。", "You cast a ice bolt."));
+    bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_ICE), bmc_ptr->plev, DAM_ROLL);
+    fire_bolt(caster_ptr, GF_ICE, bmc_ptr->dir, bmc_ptr->damage);
+    return TRUE;
+}
+
+bool cast_blue_bolt_missile(player_type *caster_ptr, bmc_type *bmc_ptr)
+{
+    if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        return FALSE;
+
+    msg_print(_("マジック・ミサイルの呪文を唱えた。", "You cast a magic missile."));
+    bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_MAGIC_MISSILE), bmc_ptr->plev, DAM_ROLL);
+    fire_bolt(caster_ptr, GF_MISSILE, bmc_ptr->dir, bmc_ptr->damage);
+    return TRUE;
+}
index 6d07628..4069b10 100644 (file)
@@ -20,3 +20,9 @@ bool cast_blue_bolt_acid(player_type *caster_ptr, bmc_type *bmc_ptr);
 bool cast_blue_bolt_elec(player_type *caster_ptr, bmc_type *bmc_ptr);
 bool cast_blue_bolt_fire(player_type *caster_ptr, bmc_type *bmc_ptr);
 bool cast_blue_bolt_cold(player_type *caster_ptr, bmc_type *bmc_ptr);
+bool cast_blue_bolt_nether(player_type *caster_ptr, bmc_type *bmc_ptr);
+bool cast_blue_bolt_water(player_type *caster_ptr, bmc_type *bmc_ptr);
+bool cast_blue_bolt_mana(player_type *caster_ptr, bmc_type *bmc_ptr);
+bool cast_blue_bolt_plasma(player_type *caster_ptr, bmc_type *bmc_ptr);
+bool cast_blue_bolt_icee(player_type *caster_ptr, bmc_type *bmc_ptr);
+bool cast_blue_bolt_missile(player_type *caster_ptr, bmc_type *bmc_ptr);
index b70b486..c3cf032 100644 (file)
@@ -333,52 +333,34 @@ bool cast_learned_spell(player_type *caster_ptr, int spell, const bool success)
 
         break;
     case MS_BOLT_NETHER:
-        if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        if (!cast_blue_bolt_nether(caster_ptr, bmc_ptr))
             return FALSE;
 
-        msg_print(_("地獄の矢の呪文を唱えた。", "You cast a nether bolt."));
-        bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_NETHER), bmc_ptr->plev, DAM_ROLL);
-        fire_bolt(caster_ptr, GF_NETHER, bmc_ptr->dir, bmc_ptr->damage);
         break;
     case MS_BOLT_WATER:
-        if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        if (!cast_blue_bolt_water(caster_ptr, bmc_ptr))
             return FALSE;
 
-        msg_print(_("ウォーター・ボルトの呪文を唱えた。", "You cast a water bolt."));
-        bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_WATER), bmc_ptr->plev, DAM_ROLL);
-        fire_bolt(caster_ptr, GF_WATER, bmc_ptr->dir, bmc_ptr->damage);
         break;
     case MS_BOLT_MANA:
-        if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        if (!cast_blue_bolt_mana(caster_ptr, bmc_ptr))
             return FALSE;
 
-        msg_print(_("魔力の矢の呪文を唱えた。", "You cast a mana bolt."));
-        bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_MANA), bmc_ptr->plev, DAM_ROLL);
-        fire_bolt(caster_ptr, GF_MANA, bmc_ptr->dir, bmc_ptr->damage);
         break;
     case MS_BOLT_PLASMA:
-        if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        if (!cast_blue_bolt_plasma(caster_ptr, bmc_ptr))
             return FALSE;
 
-        msg_print(_("プラズマ・ボルトの呪文を唱えた。", "You cast a plasma bolt."));
-        bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_PLASMA), bmc_ptr->plev, DAM_ROLL);
-        fire_bolt(caster_ptr, GF_PLASMA, bmc_ptr->dir, bmc_ptr->damage);
         break;
     case MS_BOLT_ICE:
-        if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        if (!cast_blue_bolt_icee(caster_ptr, bmc_ptr))
             return FALSE;
 
-        msg_print(_("極寒の矢の呪文を唱えた。", "You cast a ice bolt."));
-        bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_BOLT_ICE), bmc_ptr->plev, DAM_ROLL);
-        fire_bolt(caster_ptr, GF_ICE, bmc_ptr->dir, bmc_ptr->damage);
         break;
     case MS_MAGIC_MISSILE:
-        if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))
+        if (!cast_blue_bolt_missile(caster_ptr, bmc_ptr))
             return FALSE;
 
-        msg_print(_("マジック・ミサイルの呪文を唱えた。", "You cast a magic missile."));
-        bmc_ptr->damage = monspell_bluemage_damage(caster_ptr, (MS_MAGIC_MISSILE), bmc_ptr->plev, DAM_ROLL);
-        fire_bolt(caster_ptr, GF_MISSILE, bmc_ptr->dir, bmc_ptr->damage);
         break;
     case MS_SCARE:
         if (!get_aim_dir(caster_ptr, &bmc_ptr->dir))