<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
<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" />
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 \
\
--- /dev/null
+#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;
+}
--- /dev/null
+#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);
#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"
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;
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;