OSDN Git Service

[Refactor] #40634 Separated activation-bolt-ball.c/h from activation-switcher.c
authorHourier <hourier@users.sourceforge.jp>
Tue, 18 Aug 2020 10:03:38 +0000 (19:03 +0900)
committerHourier <hourier@users.sourceforge.jp>
Wed, 19 Aug 2020 00:37:18 +0000 (09:37 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/object-activation/activation-bolt-ball.c [new file with mode: 0644]
src/object-activation/activation-bolt-ball.h [new file with mode: 0644]
src/object-activation/activation-switcher.c

index 8225f1c..2f77de2 100644 (file)
     <ClCompile Include="..\..\src\mutation\lose-mutation-switcher.c" />\r
     <ClCompile Include="..\..\src\mutation\mutation-util.c" />\r
     <ClCompile Include="..\..\src\mutation\mutation-investor-remover.c" />\r
+    <ClCompile Include="..\..\src\object-activation\activation-bolt-ball.c" />\r
     <ClCompile Include="..\..\src\object-activation\activation-breath.c" />\r
     <ClCompile Include="..\..\src\object-use\read-execution.c" />\r
     <ClCompile Include="..\..\src\player\player-status-flags.c" />\r
     <ClInclude Include="..\..\src\mutation\lose-mutation-switcher.h" />\r
     <ClInclude Include="..\..\src\mutation\mutation-util.h" />\r
     <ClInclude Include="..\..\src\mutation\mutation-investor-remover.h" />\r
+    <ClInclude Include="..\..\src\object-activation\activation-bolt-ball.h" />\r
     <ClInclude Include="..\..\src\object-activation\activation-breath.h" />\r
     <ClInclude Include="..\..\src\object-use\read-execution.h" />\r
     <ClInclude Include="..\..\src\player\player-status-flags.h" />\r
index ed2f1f7..d4eb41f 100644 (file)
     <ClCompile Include="..\..\src\object-activation\activation-switcher.c">
       <Filter>object-activation</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\object-activation\activation-bolt-ball.c">
+      <Filter>object-activation</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\combat\shoot.h">
     <ClInclude Include="..\..\src\object-activation\activation-switcher.h">
       <Filter>object-activation</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\object-activation\activation-bolt-ball.h">
+      <Filter>object-activation</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index 151f9c0..6308975 100644 (file)
@@ -538,6 +538,7 @@ hengband_SOURCES = \
        object/object-mark-types.h \
        object/item-use-flags.h \
        \
+       object-activation/activation-bolt-ball.c object-activation/activation-bolt-ball.h \
        object-activation/activation-breath.c object-activation/activation-breath.h \
        object-activation/acrivation-switcher.c object-activation/acrivation-switcher.h \
        \
diff --git a/src/object-activation/activation-bolt-ball.c b/src/object-activation/activation-bolt-ball.c
new file mode 100644 (file)
index 0000000..470089b
--- /dev/null
@@ -0,0 +1,346 @@
+#include "object-activation/activation-bolt-ball.h"
+#include "core/hp-mp-processor.h"
+#include "effect/effect-characteristics.h"
+#include "floor/cave.h"
+#include "floor/floor.h"
+#include "grid/feature-flag-types.h"
+#include "spell-kind/spells-launcher.h"
+#include "spell-kind/spells-specific-bolt.h"
+#include "spell/process-effect.h"
+#include "spell/spell-types.h"
+#include "target/target-getter.h"
+#include "view/display-messages.h"
+
+bool activate_missile_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Íá¿\82µ\82¢\82­\82ç\82¢\82É\96¾\82é\82­\8bP\82¢\82Ä\82¢\82é...", "It glows extremely brightly..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_bolt(user_ptr, GF_MISSILE, dir, damroll(2, 6));
+    return TRUE;
+}
+
+bool activate_missile_2(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\96\82\96@\82Ì\83g\83Q\82ª\8c»\82ê\82½...", "It grows magical spikes..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_bolt(user_ptr, GF_ARROW, dir, 150);
+    return TRUE;
+}
+
+bool activate_missile_3(player_type *user_ptr)
+{
+    DIRECTION dir;
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    msg_print(_("\82 \82È\82½\82Í\83G\83\8c\83\81\83\93\83g\82Ì\83u\83\8c\83X\82ð\93f\82¢\82½\81B", "You breathe the elements."));
+    fire_breath(user_ptr, GF_MISSILE, dir, 300, 4);
+    return TRUE;
+}
+
+bool activate_bolt_acid_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\8e_\82É\95¢\82í\82ê\82½...", "It is covered in acid..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_bolt(user_ptr, GF_ACID, dir, damroll(5, 8));
+    return TRUE;
+}
+
+bool activate_bolt_elec_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\89Î\89Ô\82É\95¢\82í\82ê\82½...", "It is covered in sparks..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_bolt(user_ptr, GF_ELEC, dir, damroll(4, 8));
+    return TRUE;
+}
+
+bool activate_bolt_fire_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\89\8a\82É\95¢\82í\82ê\82½...", "It is covered in fire..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_bolt(user_ptr, GF_FIRE, dir, damroll(9, 8));
+    return TRUE;
+}
+
+bool activate_bolt_cold_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\91\9a\82É\95¢\82í\82ê\82½...", "It is covered in frost..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_bolt(user_ptr, GF_COLD, dir, damroll(6, 8));
+    return TRUE;
+}
+
+bool activate_bolt_hypodynamia_1(player_type *user_ptr, concptr name)
+{
+    DIRECTION dir;
+    msg_format(_("\82 \82È\82½\82Í%s\82É\93G\82ð\92÷\82ß\8eE\82·\82æ\82¤\96½\82\82½\81B", "You order the %s to strangle your opponent."), name);
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    hypodynamic_bolt(user_ptr, dir, 100);
+    return TRUE;
+}
+
+bool activate_bolt_hypodynamia_2(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\8d\95\82­\8bP\82¢\82Ä\82¢\82é...", "It glows black..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    hypodynamic_bolt(user_ptr, dir, 120);
+    return TRUE;
+}
+
+bool activate_bolt_drain_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    for (int dummy = 0; dummy < 3; dummy++)
+        if (hypodynamic_bolt(user_ptr, dir, 50))
+            hp_player(user_ptr, 50);
+
+    return TRUE;
+}
+
+bool activate_bolt_drain_2(player_type *user_ptr)
+{
+    DIRECTION dir;
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    for (int dummy = 0; dummy < 3; dummy++)
+        if (hypodynamic_bolt(user_ptr, dir, 100))
+            hp_player(user_ptr, 100);
+
+    return TRUE;
+}
+
+bool activate_bolt_mana(player_type *user_ptr, concptr name)
+{
+    DIRECTION dir;
+    msg_format(_("%s\82É\96\82\96@\82Ì\83g\83Q\82ª\8c»\82ê\82½...", "The %s grows magical spikes..."), name);
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_bolt(user_ptr, GF_ARROW, dir, 150);
+    return TRUE;
+}
+
+bool activate_ball_pois_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\94Z\97Î\90F\82É\96¬\93®\82µ\82Ä\82¢\82é...", "It throbs deep green..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_POIS, dir, 12, 3);
+    return TRUE;
+}
+
+bool activate_ball_cold_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\91\9a\82É\95¢\82í\82ê\82½...", "It is covered in frost..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_COLD, dir, 48, 2);
+    return TRUE;
+}
+
+bool activate_ball_cold_2(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\90Â\82­\8c\83\82µ\82­\8bP\82¢\82½...", "It glows an intense blue..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_COLD, dir, 100, 2);
+    return TRUE;
+}
+
+bool activate_ball_cold_3(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\96¾\82é\82­\94\92\90F\82É\8bP\82¢\82Ä\82¢\82é...", "It glows bright white..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_COLD, dir, 400, 3);
+    return TRUE;
+}
+
+bool activate_ball_fire_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\90Ô\82­\8c\83\82µ\82­\8bP\82¢\82½...", "It glows an intense red..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_FIRE, dir, 72, 2);
+    return TRUE;
+}
+
+bool activate_ball_fire_2(player_type *user_ptr, concptr name)
+{
+    DIRECTION dir;
+    msg_format(_("%s\82©\82ç\89\8a\82ª\90\81\82«\8fo\82µ\82½...", "The %s rages in fire..."), name);
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_FIRE, dir, 120, 3);
+    return TRUE;
+}
+
+bool activate_ball_fire_3(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\90[\90Ô\90F\82É\8bP\82¢\82Ä\82¢\82é...", "It glows deep red..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_FIRE, dir, 300, 3);
+    return TRUE;
+}
+
+bool activate_ball_fire_4(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\90Ô\82­\8c\83\82µ\82­\8bP\82¢\82½...", "It glows an intense red..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_FIRE, dir, 100, 2);
+    return TRUE;
+}
+
+bool activate_ball_elec_2(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\93d\8bC\82ª\83p\83`\83p\83`\89¹\82ð\97§\82Ä\82½...", "It crackles with electricity..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_ELEC, dir, 100, 3);
+    return TRUE;
+}
+
+bool activate_ball_elec_3(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\90[\90Â\90F\82É\8bP\82¢\82Ä\82¢\82é...", "It glows deep blue..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_ELEC, dir, 500, 3);
+    return TRUE;
+}
+
+bool activate_ball_acid_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\8d\95\82­\8c\83\82µ\82­\8bP\82¢\82½...", "It glows an intense black..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_ACID, dir, 100, 2);
+    return TRUE;
+}
+
+bool activate_ball_nuke_1(player_type *user_ptr)
+{
+    DIRECTION dir;
+    msg_print(_("\82»\82ê\82Í\97Î\82É\8c\83\82µ\82­\8bP\82¢\82½...", "It glows an intense green..."));
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_NUKE, dir, 100, 2);
+    return TRUE;
+}
+
+bool activate_rocket(player_type *user_ptr)
+{
+    DIRECTION dir;
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    msg_print(_("\83\8d\83P\83b\83g\82ð\94­\8eË\82µ\82½\81I", "You launch a rocket!"));
+    (void)fire_ball(user_ptr, GF_ROCKET, dir, 250 + user_ptr->lev * 3, 2);
+    return TRUE;
+}
+
+bool activate_ball_water(player_type *user_ptr, concptr name)
+{
+    DIRECTION dir;
+    msg_format(_("%s\82ª\90[\82¢\90Â\90F\82É\8cÛ\93®\82µ\82Ä\82¢\82é...", "The %s throbs deep blue..."), name);
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_WATER, dir, 200, 3);
+    return TRUE;
+}
+
+bool activate_ball_lite(player_type *user_ptr, concptr name)
+{
+    HIT_POINT num = damroll(5, 3);
+    POSITION y = 0, x = 0;
+    msg_format(_("%s\82ª\88î\8dÈ\82Å\95¢\82í\82ê\82½...", "The %s is surrounded by lightning..."), name);
+    for (int k = 0; k < num; k++) {
+        int attempts = 1000;
+        while (attempts--) {
+            scatter(user_ptr, &y, &x, user_ptr->y, user_ptr->x, 4, 0);
+            if (!cave_have_flag_bold(user_ptr->current_floor_ptr, y, x, FF_PROJECT))
+                continue;
+
+            if (!player_bold(user_ptr, y, x))
+                break;
+        }
+
+        project(user_ptr, 0, 3, y, x, 150, GF_ELEC, PROJECT_THRU | PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL, -1);
+    }
+
+    return TRUE;
+}
+
+bool activate_ball_dark(player_type *user_ptr, concptr name)
+{
+    DIRECTION dir;
+    msg_format(_("%s\82ª\90[\82¢\88Å\82É\95¢\82í\82ê\82½...", "The %s is coverd in pitch-darkness..."), name);
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_DARK, dir, 250, 4);
+    return TRUE;
+}
+
+bool activate_ball_mana(player_type *user_ptr, concptr name)
+{
+    DIRECTION dir;
+    msg_format(_("%s\82ª\90Â\94\92\82­\8cõ\82Á\82½\81D\81D\81D", "The %s glows pale..."), name);
+    if (!get_aim_dir(user_ptr, &dir))
+        return FALSE;
+
+    (void)fire_ball(user_ptr, GF_MANA, dir, 250, 4);
+    return TRUE;
+}
diff --git a/src/object-activation/activation-bolt-ball.h b/src/object-activation/activation-bolt-ball.h
new file mode 100644 (file)
index 0000000..f7fcf4d
--- /dev/null
@@ -0,0 +1,33 @@
+#pragma once
+
+#include "system/angband.h"
+
+bool activate_missile_1(player_type *user_ptr);
+bool activate_missile_2(player_type *user_ptr);
+bool activate_missile_3(player_type *user_ptr);
+bool activate_bolt_acid_1(player_type *user_ptr);
+bool activate_bolt_elec_1(player_type *user_ptr);
+bool activate_bolt_fire_1(player_type *user_ptr);
+bool activate_bolt_cold_1(player_type *user_ptr);
+bool activate_bolt_hypodynamia_1(player_type *user_ptr, concptr name);
+bool activate_bolt_hypodynamia_2(player_type *user_ptr);
+bool activate_bolt_drain_1(player_type *user_ptr);
+bool activate_bolt_drain_2(player_type *user_ptr);
+bool activate_bolt_mana(player_type *user_ptr, concptr name);
+bool activate_ball_pois_1(player_type *user_ptr);
+bool activate_ball_cold_1(player_type *user_ptr);
+bool activate_ball_cold_2(player_type *user_ptr);
+bool activate_ball_cold_3(player_type *user_ptr);
+bool activate_ball_fire_1(player_type *user_ptr);
+bool activate_ball_fire_2(player_type *user_ptr, concptr name);
+bool activate_ball_fire_3(player_type *user_ptr);
+bool activate_ball_fire_4(player_type *user_ptr);
+bool activate_ball_elec_2(player_type *user_ptr);
+bool activate_ball_elec_3(player_type *user_ptr);
+bool activate_ball_acid_1(player_type *user_ptr);
+bool activate_ball_nuke_1(player_type *user_ptr);
+bool activate_rocket(player_type *user_ptr);
+bool activate_ball_water(player_type *user_ptr, concptr name);
+bool activate_ball_lite(player_type *user_ptr, concptr name);
+bool activate_ball_dark(player_type *user_ptr, concptr name);
+bool activate_ball_mana(player_type *user_ptr, concptr name);
index aae5186..57f4947 100644 (file)
@@ -38,6 +38,7 @@
 #include "monster/monster-status.h"
 #include "monster/monster-util.h"
 #include "monster/smart-learn-types.h"
+#include "object-activation/activation-bolt-ball.h"
 #include "object-activation/activation-breath.h"
 #include "object-enchant/activation-info-table.h"
 #include "object-enchant/dragon-breaths-table.h"
@@ -117,318 +118,6 @@ bool activate_sunlight(player_type *user_ptr)
     return TRUE;
 }
 
-bool activate_missile_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは眩しいくらいに明るく輝いている...", "It glows extremely brightly..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_bolt(user_ptr, GF_MISSILE, dir, damroll(2, 6));
-    return TRUE;
-}
-
-bool activate_ball_pois_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは濃緑色に脈動している...", "It throbs deep green..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_POIS, dir, 12, 3);
-    return TRUE;
-}
-
-bool activate_bolt_elec_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは火花に覆われた...", "It is covered in sparks..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_bolt(user_ptr, GF_ELEC, dir, damroll(4, 8));
-    return TRUE;
-}
-
-bool activate_bolt_acid_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは酸に覆われた...", "It is covered in acid..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_bolt(user_ptr, GF_ACID, dir, damroll(5, 8));
-    return TRUE;
-}
-
-bool activate_bolt_cold_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは霜に覆われた...", "It is covered in frost..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_bolt(user_ptr, GF_COLD, dir, damroll(6, 8));
-    return TRUE;
-}
-
-bool activate_bolt_fire_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは炎に覆われた...", "It is covered in fire..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_bolt(user_ptr, GF_FIRE, dir, damroll(9, 8));
-    return TRUE;
-}
-
-bool activate_ball_cold_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは霜に覆われた...", "It is covered in frost..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_COLD, dir, 48, 2);
-    return TRUE;
-}
-
-bool activate_ball_cold_2(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは青く激しく輝いた...", "It glows an intense blue..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_COLD, dir, 100, 2);
-    return TRUE;
-}
-
-bool activate_ball_cold_3(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("明るく白色に輝いている...", "It glows bright white..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_COLD, dir, 400, 3);
-    return TRUE;
-}
-
-bool activate_ball_fire_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは赤く激しく輝いた...", "It glows an intense red..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_FIRE, dir, 72, 2);
-    return TRUE;
-}
-
-bool activate_ball_fire_2(player_type *user_ptr, concptr name)
-{
-    DIRECTION dir;
-    msg_format(_("%sから炎が吹き出した...", "The %s rages in fire..."), name);
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_FIRE, dir, 120, 3);
-    return TRUE;
-}
-
-bool activate_ball_fire_3(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("深赤色に輝いている...", "It glows deep red..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_FIRE, dir, 300, 3);
-    return TRUE;
-}
-
-bool activate_ball_fire_4(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは赤く激しく輝いた...", "It glows an intense red..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_FIRE, dir, 100, 2);
-    return TRUE;
-}
-
-bool activate_ball_elec_2(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("電気がパチパチ音を立てた...", "It crackles with electricity..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_ELEC, dir, 100, 3);
-    return TRUE;
-}
-
-bool activate_ball_elec_3(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("深青色に輝いている...", "It glows deep blue..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_ELEC, dir, 500, 3);
-    return TRUE;
-}
-
-bool activate_ball_acid_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは黒く激しく輝いた...", "It glows an intense black..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_ACID, dir, 100, 2);
-    return TRUE;
-}
-
-bool activate_ball_nuke_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("それは緑に激しく輝いた...", "It glows an intense green..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_NUKE, dir, 100, 2);
-    return TRUE;
-}
-
-bool activate_bolt_hypodynamia_1(player_type *user_ptr, concptr name)
-{
-    DIRECTION dir;
-    msg_format(_("あなたは%sに敵を締め殺すよう命じた。", "You order the %s to strangle your opponent."), name);
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    hypodynamic_bolt(user_ptr, dir, 100);
-    return TRUE;
-}
-
-bool activate_bolt_hypodynamia_2(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("黒く輝いている...", "It glows black..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    hypodynamic_bolt(user_ptr, dir, 120);
-    return TRUE;
-}
-
-bool activate_bolt_drain_1(player_type *user_ptr)
-{
-    DIRECTION dir;
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    for (int dummy = 0; dummy < 3; dummy++)
-        if (hypodynamic_bolt(user_ptr, dir, 50))
-            hp_player(user_ptr, 50);
-
-    return TRUE;
-}
-
-bool activate_missile_2(player_type *user_ptr)
-{
-    DIRECTION dir;
-    msg_print(_("魔法のトゲが現れた...", "It grows magical spikes..."));
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_bolt(user_ptr, GF_ARROW, dir, 150);
-    return TRUE;
-}
-
-bool activate_bolt_drain_2(player_type *user_ptr)
-{
-    DIRECTION dir;
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    for (int dummy = 0; dummy < 3; dummy++)
-        if (hypodynamic_bolt(user_ptr, dir, 100))
-            hp_player(user_ptr, 100);
-
-    return TRUE;
-}
-
-bool activate_rocket(player_type *user_ptr)
-{
-    DIRECTION dir;
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    msg_print(_("ロケットを発射した!", "You launch a rocket!"));
-    (void)fire_ball(user_ptr, GF_ROCKET, dir, 250 + user_ptr->lev * 3, 2);
-    return TRUE;
-}
-
-bool activate_missile_3(player_type *user_ptr)
-{
-    DIRECTION dir;
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    msg_print(_("あなたはエレメントのブレスを吐いた。", "You breathe the elements."));
-    fire_breath(user_ptr, GF_MISSILE, dir, 300, 4);
-    return TRUE;
-}
-
-bool activate_bolt_mana(player_type *user_ptr, concptr name)
-{
-    DIRECTION dir;
-    msg_format(_("%sに魔法のトゲが現れた...", "The %s grows magical spikes..."), name);
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_bolt(user_ptr, GF_ARROW, dir, 150);
-    return TRUE;
-}
-
-bool activate_ball_water(player_type *user_ptr, concptr name)
-{
-    DIRECTION dir;
-    msg_format(_("%sが深い青色に鼓動している...", "The %s throbs deep blue..."), name);
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_WATER, dir, 200, 3);
-    return TRUE;
-}
-
-bool activate_ball_dark(player_type *user_ptr, concptr name)
-{
-    DIRECTION dir;
-    msg_format(_("%sが深い闇に覆われた...", "The %s is coverd in pitch-darkness..."), name);
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_DARK, dir, 250, 4);
-    return TRUE;
-}
-
-bool activate_ball_mana(player_type *user_ptr, concptr name)
-{
-    DIRECTION dir;
-    msg_format(_("%sが青白く光った...", "The %s glows pale..."), name);
-    if (!get_aim_dir(user_ptr, &dir))
-        return FALSE;
-
-    (void)fire_ball(user_ptr, GF_MANA, dir, 250, 4);
-    return TRUE;
-}
-
 bool activate_ring_of_power(player_type *user_ptr, concptr name)
 {
     DIRECTION dir;
@@ -440,28 +129,6 @@ bool activate_ring_of_power(player_type *user_ptr, concptr name)
     return TRUE;
 }
 
-bool activate_ball_lite(player_type *user_ptr, concptr name)
-{
-    HIT_POINT num = damroll(5, 3);
-    POSITION y = 0, x = 0;
-    msg_format(_("%sが稲妻で覆われた...", "The %s is surrounded by lightning..."), name);
-    for (int k = 0; k < num; k++) {
-        int attempts = 1000;
-        while (attempts--) {
-            scatter(user_ptr, &y, &x, user_ptr->y, user_ptr->x, 4, 0);
-            if (!cave_have_flag_bold(user_ptr->current_floor_ptr, y, x, FF_PROJECT))
-                continue;
-
-            if (!player_bold(user_ptr, y, x))
-                break;
-        }
-
-        project(user_ptr, 0, 3, y, x, 150, GF_ELEC, (PROJECT_THRU | PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL), -1);
-    }
-
-    return TRUE;
-}
-
 bool activate_bladeturner(player_type *user_ptr)
 {
     DIRECTION dir;