3 #include "spells-status.h"
4 #include "projection.h"
7 * @brief
\83\82\83\93\83X
\83^
\81[
\89ñ
\95\9c\8f\88\97\9d
8 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
10 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
12 bool heal_monster(DIRECTION dir, HIT_POINT dam)
14 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
15 return (project_hook(GF_OLD_HEAL, dir, dam, flg));
19 * @brief
\83\82\83\93\83X
\83^
\81[
\89Á
\91¬
\8f\88\97\9d
20 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
21 * @param power
\8cø
\97Í
22 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
24 bool speed_monster(DIRECTION dir, int power)
26 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
27 return (project_hook(GF_OLD_SPEED, dir, power, flg));
31 * @brief
\83\82\83\93\83X
\83^
\81[
\8c¸
\91¬
\8f\88\97\9d
32 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
33 * @param power
\8cø
\97Í
34 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
36 bool slow_monster(DIRECTION dir, int power)
38 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
39 return (project_hook(GF_OLD_SLOW, dir, power, flg));
43 * @brief
\83\82\83\93\83X
\83^
\81[
\8dÃ
\96°
\8f\88\97\9d
44 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
45 * @param power
\8cø
\97Í
46 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
48 bool sleep_monster(DIRECTION dir, int power)
50 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
51 return (project_hook(GF_OLD_SLEEP, dir, power, flg));
55 * @brief
\83\82\83\93\83X
\83^
\81[
\8dS
\91©(STASIS)
\8f\88\97\9d
56 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
57 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
58 * @details
\88Ð
\97Í
\82Í
\83v
\83\8c\83C
\83\84\81[
\83\8c\83x
\83\8b*2
\82É
\8cÅ
\92è
60 bool stasis_monster(DIRECTION dir)
62 return (fire_ball_hide(GF_STASIS, dir, p_ptr->lev * 2, 0));
66 * @brief
\8e×
\88«
\82È
\83\82\83\93\83X
\83^
\81[
\8dS
\91©(STASIS)
\8f\88\97\9d
67 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
68 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
69 * @details
\88Ð
\97Í
\82Í
\83v
\83\8c\83C
\83\84\81[
\83\8c\83x
\83\8b*2
\82É
\8cÅ
\92è
71 bool stasis_evil(DIRECTION dir)
73 return (fire_ball_hide(GF_STASIS_EVIL, dir, p_ptr->lev * 2, 0));
77 * @brief
\83\82\83\93\83X
\83^
\81[
\8d¬
\97\90\8f\88\97\9d
78 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
79 * @param plev
\83v
\83\8c\83C
\83\84\81[
\83\8c\83x
\83\8b(=
\8cø
\97Í)
80 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
82 bool confuse_monster(DIRECTION dir, PLAYER_LEVEL plev)
84 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
85 return (project_hook(GF_OLD_CONF, dir, plev, flg));
89 * @brief
\83\82\83\93\83X
\83^
\81[
\9eN
\9eO
\8f\88\97\9d
90 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
91 * @param plev
\83v
\83\8c\83C
\83\84\81[
\83\8c\83x
\83\8b(=
\8cø
\97Í)
92 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
94 bool stun_monster(DIRECTION dir, PLAYER_LEVEL plev)
96 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
97 return (project_hook(GF_STUN, dir, plev, flg));
101 * @brief
\83`
\83F
\83\93\83W
\83\82\83\93\83X
\83^
\81[
\8f\88\97\9d
102 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
103 * @param power
\8cø
\97Í
104 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
106 bool poly_monster(DIRECTION dir, int power)
108 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
109 bool tester = (project_hook(GF_OLD_POLY, dir, power, flg));
111 chg_virtue(V_CHANCE, 1);
116 * @brief
\83N
\83\8d\81[
\83\93\83\82\83\93\83X
\83^
\81[
\8f\88\97\9d
117 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
118 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
120 bool clone_monster(DIRECTION dir)
122 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
123 return (project_hook(GF_OLD_CLONE, dir, 0, flg));
127 * @brief
\83\82\83\93\83X
\83^
\81[
\8b°
\8dQ
\8f\88\97\9d
128 * @param dir
\95û
\8cü(5
\82È
\82ç
\82Î
\83O
\83\8d\81[
\83o
\83\8b\95Ï
\90\94 target_col/target_row
\82Ì
\8dÀ
\95W
\82ð
\96Ú
\95W
\82É
\82·
\82é)
129 * @param plev
\83v
\83\8c\83C
\83\84\81[
\83\8c\83x
\83\8b(=
\8cø
\97Í)
130 * @return
\8dì
\97p
\82ª
\8eÀ
\8dÛ
\82É
\82 \82Á
\82½
\8fê
\8d\87TRUE
\82ð
\95Ô
\82·
132 bool fear_monster(DIRECTION dir, PLAYER_LEVEL plev)
134 BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
135 return (project_hook(GF_TURN_ALL, dir, plev, flg));
139 * @brief
\89Ì
\82Ì
\92â
\8e~
\82ð
\8f\88\97\9d\82·
\82é / Stop singing if the player is a Bard
142 void stop_singing(void)
144 if (p_ptr->pclass != CLASS_BARD) return;
146 /* Are there interupted song? */
147 if (INTERUPTING_SONG_EFFECT(p_ptr))
149 /* Forget interupted song */
150 INTERUPTING_SONG_EFFECT(p_ptr) = MUSIC_NONE;
154 /* The player is singing? */
155 if (!SINGING_SONG_EFFECT(p_ptr)) return;
157 /* Hack -- if called from set_action(), avoid recursive loop */
158 if (p_ptr->action == ACTION_SING) set_action(ACTION_NONE);
160 /* Message text of each song or etc. */
161 do_spell(REALM_MUSIC, SINGING_SONG_ID(p_ptr), SPELL_STOP);
163 SINGING_SONG_EFFECT(p_ptr) = MUSIC_NONE;
164 SINGING_SONG_ID(p_ptr) = 0;
165 p_ptr->update |= (PU_BONUS);
166 p_ptr->redraw |= (PR_STATUS);