(have_flag(ARRAY, TR_LITE_M1) || have_flag(ARRAY, TR_LITE_M2) || have_flag(ARRAY, TR_LITE_M3))
/* Spell Type flag */
-#define SPELL_MON_TO_PLAYER 0x01
-#define SPELL_MON_TO_MON 0x02
+#define MONSTER_TO_PLAYER 0x01
+#define MONSTER_TO_MONSTER 0x02
/* summoning number */
#define S_NUM_6 (easy_band ? 2 : 6)
extern bool dispel_check(int m_idx);
extern bool spell_is_inate(u16b spell);
extern bool make_attack_spell(int m_idx);
-extern void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int spell_type);
-extern void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int spell_type);
-extern void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int spell_type);
+extern void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
+extern void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type);
+extern void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int target_type);
/* mspells2.c */
extern void get_project_point(int sy, int sx, int *ty, int *tx, int flg);
extern void MP_spell_RF4_SHRIEK(int m_idx);
extern void MP_spell_RF4_DISPEL(int m_idx);
extern int MP_spell_RF4_ROCKET(int y, int x, int m_idx);
-extern int spell_RF4_SHOOT(int y, int x, int m_idx);
-extern int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx);
+extern int MP_spell_RF4_SHOOT(int y, int x, int m_idx);
+extern int MP_spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx);
extern int spell_RF4_BA_CHAO(int y, int x, int m_idx);
extern int spell_RF4_BA_NUKE(int y, int x, int m_idx);
extern int spell_RF5_BA_ACID(int y, int x, int m_idx);
extern void MM_spell_RF4_SHRIEK(int m_idx, int t_idx);
extern void MM_spell_RF4_DISPEL(int m_idx, int t_idx);
extern int MM_spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx);
+extern int MM_spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx);
+extern int MM_spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx);
/* hissatsu.c */
extern void hissatsu_info(char *p, int power);
* @param typ ¸ú²Ì°ÀID
* @param dam_hp °ÒÎÏ
* @param monspell ¥â¥ó¥¹¥¿¡¼ËâË¡¤ÎID
- * @param spell_type ¥â¥ó¥¹¥¿¡¼¤«¤é¥â¥ó¥¹¥¿¡¼¤Ø·â¤Ä¤Ê¤éSPELL_MON_TO_MON¡¢¥â¥ó¥¹¥¿¡¼¤«¤é¥×¥ì¥¤¥ä¡¼¤Ê¤éSPELL_MON_TO_PLAYER
+ * @param target_type ¥â¥ó¥¹¥¿¡¼¤«¤é¥â¥ó¥¹¥¿¡¼¤Ø·â¤Ä¤Ê¤éMONSTER_TO_MONSTER¡¢¥â¥ó¥¹¥¿¡¼¤«¤é¥×¥ì¥¤¥ä¡¼¤Ê¤éMONSTER_TO_PLAYER
* @return ¤Ê¤·
*/
-void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int spell_type)
+void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type)
{
int flg;
bool learnable = spell_learnable(m_idx);
- switch (spell_type)
+ switch (target_type)
{
- case SPELL_MON_TO_MON:
+ case MONSTER_TO_MONSTER:
flg = PROJECT_STOP | PROJECT_KILL;
break;
- case SPELL_MON_TO_PLAYER:
+ case MONSTER_TO_PLAYER:
flg = PROJECT_STOP | PROJECT_KILL | PROJECT_PLAYER;
break;
}
* @param typ ¸ú²Ì°ÀID
* @param dam_hp °ÒÎÏ
* @param monspell ¥â¥ó¥¹¥¿¡¼ËâË¡¤ÎID
- * @param spell_type ¥â¥ó¥¹¥¿¡¼¤«¤é¥â¥ó¥¹¥¿¡¼¤Ø·â¤Ä¤Ê¤éSPELL_MON_TO_MON¡¢¥â¥ó¥¹¥¿¡¼¤«¤é¥×¥ì¥¤¥ä¡¼¤Ê¤éSPELL_MON_TO_PLAYER
+ * @param target_type ¥â¥ó¥¹¥¿¡¼¤«¤é¥â¥ó¥¹¥¿¡¼¤Ø·â¤Ä¤Ê¤éMONSTER_TO_MONSTER¡¢¥â¥ó¥¹¥¿¡¼¤«¤é¥×¥ì¥¤¥ä¡¼¤Ê¤éMONSTER_TO_PLAYER
* @return ¤Ê¤·
*/
-void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int spell_type)
+void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type)
{
int flg;
bool learnable = spell_learnable(m_idx);
- switch (spell_type)
+ switch (target_type)
{
- case SPELL_MON_TO_MON:
+ case MONSTER_TO_MONSTER:
flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_THRU;
break;
- case SPELL_MON_TO_PLAYER:
+ case MONSTER_TO_PLAYER:
flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_THRU | PROJECT_PLAYER;
break;
}
* @param rad Ⱦ·Â
* @param breath TRUE¤Ê¤é¤Ð¥Ö¥ì¥¹½èÍý¡¢FALSE¤Ê¤é¤Ð¥Ü¡¼¥ë½èÍý
* @param monspell ¥â¥ó¥¹¥¿¡¼ËâË¡¤ÎID
- * @param spell_type ¥â¥ó¥¹¥¿¡¼¤«¤é¥â¥ó¥¹¥¿¡¼¤Ø·â¤Ä¤Ê¤éSPELL_MON_TO_MON¡¢¥â¥ó¥¹¥¿¡¼¤«¤é¥×¥ì¥¤¥ä¡¼¤Ê¤éSPELL_MON_TO_PLAYER
+ * @param target_type ¥â¥ó¥¹¥¿¡¼¤«¤é¥â¥ó¥¹¥¿¡¼¤Ø·â¤Ä¤Ê¤éMONSTER_TO_MONSTER¡¢¥â¥ó¥¹¥¿¡¼¤«¤é¥×¥ì¥¤¥ä¡¼¤Ê¤éMONSTER_TO_PLAYER
* @return ¤Ê¤·
*/
-void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int spell_type)
+void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, int target_type)
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
bool learnable = spell_learnable(m_idx);
int flg;
- switch (spell_type)
+ switch (target_type)
{
- case SPELL_MON_TO_MON:
+ case MONSTER_TO_MONSTER:
flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
break;
- case SPELL_MON_TO_PLAYER:
+ case MONSTER_TO_PLAYER:
flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_PLAYER;
break;
}
case 96 + 1: break; /* RF4_XXX1 */
case 96 + 2: MP_spell_RF4_DISPEL(m_idx); break; /* RF4_DISPEL */
case 96 + 3: dam = MP_spell_RF4_ROCKET(y, x, m_idx); break; /* RF4_ROCKET */
- case 96 + 4: dam = spell_RF4_SHOOT(y, x, m_idx); break; /* RF4_SHOOT */
+ case 96 + 4: dam = MP_spell_RF4_SHOOT(y, x, m_idx); break; /* RF4_SHOOT */
case 96 + 5: break; /* RF4_XXX2 */
case 96 + 6: break; /* RF4_XXX3 */
case 96 + 7: break; /* RF4_XXX4 */
- case 96 + 8: dam = spell_RF4_BREATH(GF_ACID, y, x, m_idx); break; /* RF4_BR_ACID */
- case 96 + 9: dam = spell_RF4_BREATH(GF_ELEC, y, x, m_idx); break; /* RF4_BR_ELEC */
- case 96 + 10: dam = spell_RF4_BREATH(GF_FIRE, y, x, m_idx); break; /* RF4_BR_FIRE */
- case 96 + 11: dam = spell_RF4_BREATH(GF_COLD, y, x, m_idx); break; /* RF4_BR_COLD */
- case 96 + 12: dam = spell_RF4_BREATH(GF_POIS, y, x, m_idx); break; /* RF4_BR_POIS */
- case 96 + 13: dam = spell_RF4_BREATH(GF_NETHER, y, x, m_idx); break; /* RF4_BR_NETH */
- case 96 + 14: dam = spell_RF4_BREATH(GF_LITE, y_br_lite, x_br_lite, m_idx); break; /* RF4_BR_LITE */
- case 96 + 15: dam = spell_RF4_BREATH(GF_DARK, y, x, m_idx); break; /* RF4_BR_DARK */
- case 96 + 16: dam = spell_RF4_BREATH(GF_CONFUSION, y, x, m_idx); break; /* RF4_BR_CONF */
- case 96 + 17: dam = spell_RF4_BREATH(GF_SOUND, y, x, m_idx); break; /* RF4_BR_SOUN */
- case 96 + 18: dam = spell_RF4_BREATH(GF_CHAOS, y, x, m_idx); break; /* RF4_BR_CHAO */
- case 96 + 19: dam = spell_RF4_BREATH(GF_DISENCHANT, y, x, m_idx); break; /* RF4_BR_DISE */
- case 96 + 20: dam = spell_RF4_BREATH(GF_NEXUS, y, x, m_idx); break; /* RF4_BR_NEXU */
- case 96 + 21: dam = spell_RF4_BREATH(GF_TIME, y, x, m_idx); break; /* RF4_BR_TIME */
- case 96 + 22: dam = spell_RF4_BREATH(GF_INERTIA, y, x, m_idx); break; /* RF4_BR_INER */
- case 96 + 23: dam = spell_RF4_BREATH(GF_GRAVITY, y, x, m_idx); break; /* RF4_BR_GRAV */
- case 96 + 24: dam = spell_RF4_BREATH(GF_SHARDS, y, x, m_idx); break; /* RF4_BR_SHAR */
- case 96 + 25: dam = spell_RF4_BREATH(GF_PLASMA, y, x, m_idx); break; /* RF4_BR_PLAS */
- case 96 + 26: dam = spell_RF4_BREATH(GF_FORCE, y, x, m_idx); break; /* RF4_BR_WALL */
- case 96 + 27: dam = spell_RF4_BREATH(GF_MANA, y, x, m_idx); break; /* RF4_BR_MANA */
+ case 96 + 8: dam = MP_spell_RF4_BREATH(GF_ACID, y, x, m_idx); break; /* RF4_BR_ACID */
+ case 96 + 9: dam = MP_spell_RF4_BREATH(GF_ELEC, y, x, m_idx); break; /* RF4_BR_ELEC */
+ case 96 + 10: dam = MP_spell_RF4_BREATH(GF_FIRE, y, x, m_idx); break; /* RF4_BR_FIRE */
+ case 96 + 11: dam = MP_spell_RF4_BREATH(GF_COLD, y, x, m_idx); break; /* RF4_BR_COLD */
+ case 96 + 12: dam = MP_spell_RF4_BREATH(GF_POIS, y, x, m_idx); break; /* RF4_BR_POIS */
+ case 96 + 13: dam = MP_spell_RF4_BREATH(GF_NETHER, y, x, m_idx); break; /* RF4_BR_NETH */
+ case 96 + 14: dam = MP_spell_RF4_BREATH(GF_LITE, y_br_lite, x_br_lite, m_idx); break; /* RF4_BR_LITE */
+ case 96 + 15: dam = MP_spell_RF4_BREATH(GF_DARK, y, x, m_idx); break; /* RF4_BR_DARK */
+ case 96 + 16: dam = MP_spell_RF4_BREATH(GF_CONFUSION, y, x, m_idx); break; /* RF4_BR_CONF */
+ case 96 + 17: dam = MP_spell_RF4_BREATH(GF_SOUND, y, x, m_idx); break; /* RF4_BR_SOUN */
+ case 96 + 18: dam = MP_spell_RF4_BREATH(GF_CHAOS, y, x, m_idx); break; /* RF4_BR_CHAO */
+ case 96 + 19: dam = MP_spell_RF4_BREATH(GF_DISENCHANT, y, x, m_idx); break; /* RF4_BR_DISE */
+ case 96 + 20: dam = MP_spell_RF4_BREATH(GF_NEXUS, y, x, m_idx); break; /* RF4_BR_NEXU */
+ case 96 + 21: dam = MP_spell_RF4_BREATH(GF_TIME, y, x, m_idx); break; /* RF4_BR_TIME */
+ case 96 + 22: dam = MP_spell_RF4_BREATH(GF_INERTIA, y, x, m_idx); break; /* RF4_BR_INER */
+ case 96 + 23: dam = MP_spell_RF4_BREATH(GF_GRAVITY, y, x, m_idx); break; /* RF4_BR_GRAV */
+ case 96 + 24: dam = MP_spell_RF4_BREATH(GF_SHARDS, y, x, m_idx); break; /* RF4_BR_SHAR */
+ case 96 + 25: dam = MP_spell_RF4_BREATH(GF_PLASMA, y, x, m_idx); break; /* RF4_BR_PLAS */
+ case 96 + 26: dam = MP_spell_RF4_BREATH(GF_FORCE, y, x, m_idx); break; /* RF4_BR_WALL */
+ case 96 + 27: dam = MP_spell_RF4_BREATH(GF_MANA, y, x, m_idx); break; /* RF4_BR_MANA */
case 96 + 28: dam = spell_RF4_BA_NUKE(y, x, m_idx); break; /* RF4_BA_NUKE */
- case 96 + 29: dam = spell_RF4_BREATH(GF_NUKE, y, x, m_idx); break; /* RF4_BR_NUKE */
+ case 96 + 29: dam = MP_spell_RF4_BREATH(GF_NUKE, y, x, m_idx); break; /* RF4_BR_NUKE */
case 96 + 30: dam = spell_RF4_BA_CHAO(y, x, m_idx); break; /* RF4_BA_CHAO */
- case 96 + 31: dam = spell_RF4_BREATH(GF_DISINTEGRATE, y, x, m_idx); break; /* RF4_BR_DISI */
+ case 96 + 31: dam = MP_spell_RF4_BREATH(GF_DISINTEGRATE, y, x, m_idx); break; /* RF4_BR_DISI */
case 128 + 0: dam = spell_RF5_BA_ACID(y, x, m_idx); break; /* RF5_BA_ACID */
case 128 + 1: dam = spell_RF5_BA_ELEC(y, x, m_idx); break; /* RF5_BA_ELEC */
case 128 + 2: dam = spell_RF5_BA_FIRE(y, x, m_idx); break; /* RF5_BA_FIRE */
switch (thrown_spell)
{
- case 96 + 0: MM_spell_RF4_SHRIEK(m_idx, t_idx); break; /* RF4_SHRIEK */
- case 96 + 1: return FALSE; /* RF4_XXX1 */
- case 96 + 2: MM_spell_RF4_DISPEL(m_idx, t_idx); break; /* RF4_DISPEL */
- case 96 + 3: dam = MM_spell_RF4_ROCKET(y, x, m_idx, t_idx); break; /* RF4_ROCKET */
-
- /* RF4_SHOOT */
- case 96+4:
- if (known)
- {
- if (see_either)
- {
- if (blind)
- {
- msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_SHOOT);
- }
-
- dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
- bolt(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_XXX2 */
- case 96+5:
- /* XXX XXX XXX */
- return FALSE;
-
- /* RF4_XXX3 */
- case 96+6:
- /* XXX XXX XXX */
- return FALSE;
-
- /* RF4_XXX4 */
- case 96+7:
- /* XXX XXX XXX */
- return FALSE;
-
- /* RF4_BR_ACID */
- case 96+8:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë»À¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes acid at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx,GF_ACID,dam, 0, TRUE, MS_BR_ACID, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_ELEC */
- case 96+9:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë°ðºÊ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes lightning at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx,GF_ELEC, dam, 0, TRUE, MS_BR_ELEC, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_FIRE */
- case 96+10:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë²Ð±ê¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes fire at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx,GF_FIRE, dam, 0, TRUE, MS_BR_FIRE, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_COLD */
- case 96+11:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÎ䵤¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes frost at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx,GF_COLD, dam, 0, TRUE, MS_BR_COLD, SPELL_MON_TO_MON);
- break;
-
- /* RF4_BR_POIS */
- case 96+12:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë¥¬¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes gas at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- breath(y, x, m_idx,GF_POIS, dam, 0, TRUE, MS_BR_POIS, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_NETH */
- case 96+13:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÃϹö¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes nether at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_NETHER, dam, 0, TRUE, MS_BR_NETHER, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_LITE */
- case 96+14:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÁ®¸÷¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes light at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_LITE, dam, 0, TRUE, MS_BR_LITE, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_DARK */
- case 96+15:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë°Å¹õ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes darkness at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_DARK, dam, 0, TRUE, MS_BR_DARK, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_CONF */
- case 96+16:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ëº®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes confusion at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_CONFUSION, dam, 0, TRUE, MS_BR_CONF, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_SOUN */
- case 96+17:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (m_ptr->r_idx == MON_JAIAN)
- {
- msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
- }
- else if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë¹ì²»¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes sound at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_SOUND, dam, 0, TRUE, MS_BR_SOUND, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_CHAO */
- case 96+18:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë¥«¥ª¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes chaos at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_CHAOS, dam, 0, TRUE, MS_BR_CHAOS, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_DISE */
- case 96+19:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÎô²½¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes disenchantment at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_DISENCHANT, dam, 0, TRUE, MS_BR_DISEN, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_NEXU */
- case 96+20:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë°ø²Ìº®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes nexus at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_NEXUS, dam, 0, TRUE, MS_BR_NEXUS, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_TIME */
- case 96+21:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë»þ´ÖµÕž¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes time at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_TIME, dam, 0, TRUE, MS_BR_TIME, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_INER */
- case 96+22:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÃÙÆߤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes inertia at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_INERTIA, dam, 0, TRUE, MS_BR_INERTIA, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_GRAV */
- case 96+23:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë½ÅÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes gravity at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_GRAVITY, dam, 0, TRUE, MS_BR_GRAVITY, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_SHAR */
- case 96+24:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (m_ptr->r_idx == MON_BOTEI)
- {
- msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
- }
- else if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÇËÊҤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes shards at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_SHARDS, dam, 0, TRUE, MS_BR_SHARDS, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_PLAS */
- case 96+25:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë¥×¥é¥º¥Þ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes plasma at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_PLASMA, dam, 0, TRUE, MS_BR_PLASMA, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_WALL */
- case 96+26:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë¥Õ¥©¡¼¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes force at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_FORCE, dam, 0, TRUE, MS_BR_FORCE, SPELL_MON_TO_MON);
- break;
-
- /* RF4_BR_MANA */
- case 96+27:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËËâÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes mana at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- breath(y, x, m_idx,GF_MANA, dam, 0, TRUE, MS_BR_MANA, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BA_NUKE */
- case 96+28:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÊü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
- }
-
- dam = (rlev + damroll(10, 6));
- breath(y, x, m_idx,GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_NUKE */
- case 96+29:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤ËÊü¼ÍÀÇÑ´þʪ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes toxic waste at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- breath(y, x, m_idx,GF_NUKE, dam, 0, TRUE, MS_BR_NUKE, SPELL_MON_TO_MON);
- break;
-
- /* RF4_BA_CHAO */
- case 96+30:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ë½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes raw Logrus upon %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
- }
-
- dam = (rlev * 2) + damroll(10, 10);
- breath(y, x, m_idx,GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, SPELL_MON_TO_MON);
-
- break;
-
- /* RF4_BR_DISI */
- case 96+31:
- if (known)
- {
- if (see_either)
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬%s¤Ëʬ²ò¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes disintegration at %s."), m_name, t_name);
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_BREATH);
- }
-
- dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- breath(y, x, m_idx,GF_DISINTEGRATE, dam, 0, TRUE, MS_BR_DISI, SPELL_MON_TO_MON);
- break;
+ case 96 + 0: MM_spell_RF4_SHRIEK(m_idx, t_idx); break; /* RF4_SHRIEK */
+ case 96 + 1: return FALSE; /* RF4_XXX1 */
+ case 96 + 2: MM_spell_RF4_DISPEL(m_idx, t_idx); break; /* RF4_DISPEL */
+ case 96 + 3: dam = MM_spell_RF4_ROCKET(y, x, m_idx, t_idx); break; /* RF4_ROCKET */
+ case 96 + 4: dam = MM_spell_RF4_SHOOT(y, x, m_idx, t_idx); break; /* RF4_SHOOT */
+ case 96 + 5: return FALSE; /* RF4_XXX2 */
+ case 96 + 6: return FALSE; /* RF4_XXX3 */
+ case 96 + 7: return FALSE; /* RF4_XXX4 */
+ case 96 + 8: dam = MM_spell_RF4_BREATH(GF_ACID, y, x, m_idx, t_idx); break; /* RF4_BR_ACID */
+ case 96 + 9: dam = MM_spell_RF4_BREATH(GF_ELEC, y, x, m_idx, t_idx); break; /* RF4_BR_ELEC */
+ case 96 + 10: dam = MM_spell_RF4_BREATH(GF_FIRE, y, x, m_idx, t_idx); break; /* RF4_BR_FIRE */
+ case 96 + 11: dam = MM_spell_RF4_BREATH(GF_COLD, y, x, m_idx, t_idx); break; /* RF4_BR_COLD */
+ case 96 + 12: dam = MM_spell_RF4_BREATH(GF_POIS, y, x, m_idx, t_idx); break; /* RF4_BR_POIS */
+ case 96 + 13: dam = MM_spell_RF4_BREATH(GF_NETHER, y, x, m_idx, t_idx); break; /* RF4_BR_NETH */
+ case 96 + 14: dam = MM_spell_RF4_BREATH(GF_LITE, y, x, m_idx, t_idx); break; /* RF4_BR_LITE */
+ case 96 + 15: dam = MM_spell_RF4_BREATH(GF_DARK, y, x, m_idx, t_idx); break; /* RF4_BR_DARK */
+ case 96 + 16: dam = MM_spell_RF4_BREATH(GF_CONFUSION, y, x, m_idx, t_idx); break; /* RF4_BR_CONF */
+ case 96 + 17: dam = MM_spell_RF4_BREATH(GF_SOUND, y, x, m_idx, t_idx); break; /* RF4_BR_SOUN */
+ case 96 + 18: dam = MM_spell_RF4_BREATH(GF_CHAOS, y, x, m_idx, t_idx); break; /* RF4_BR_CHAO */
+ case 96 + 19: dam = MM_spell_RF4_BREATH(GF_DISENCHANT, y, x, m_idx, t_idx); break; /* RF4_BR_DISE */
+ case 96 + 20: dam = MM_spell_RF4_BREATH(GF_NEXUS, y, x, m_idx, t_idx); break; /* RF4_BR_NEXU */
+ case 96 + 21: dam = MM_spell_RF4_BREATH(GF_TIME, y, x, m_idx, t_idx); break; /* RF4_BR_TIME */
+ case 96 + 22: dam = MM_spell_RF4_BREATH(GF_INERTIA, y, x, m_idx, t_idx); break; /* RF4_BR_INER */
+ case 96 + 23: dam = MM_spell_RF4_BREATH(GF_GRAVITY, y, x, m_idx, t_idx); break; /* RF4_BR_GRAV */
+ case 96 + 24: dam = MM_spell_RF4_BREATH(GF_SHARDS, y, x, m_idx, t_idx); break; /* RF4_BR_SHAR */
+ case 96 + 25: dam = MM_spell_RF4_BREATH(GF_PLASMA, y, x, m_idx, t_idx); break; /* RF4_BR_PLAS */
+ case 96 + 26: dam = MM_spell_RF4_BREATH(GF_FORCE, y, x, m_idx, t_idx); break; /* RF4_BR_WALL */
+ case 96 + 27: dam = MM_spell_RF4_BREATH(GF_MANA, y, x, m_idx, t_idx); break; /* RF4_BR_MANA */
+
+ /* RF4_BA_NUKE */
+ case 96 + 28:
+ if (known)
+ {
+ if (see_either)
+ {
+ disturb(1, 1);
+
+ if (blind)
+ {
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ }
+ else
+ {
+ msg_format(_("%^s¤¬%s¤ËÊü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation at %s."), m_name, t_name);
+ }
+ }
+ else
+ {
+ mon_fight = TRUE;
+ }
+ }
+
+ dam = (rlev + damroll(10, 6));
+ breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, MONSTER_TO_MONSTER);
+
+ break;
+
+ case 96 + 29: dam = MM_spell_RF4_BREATH(GF_NUKE, y, x, m_idx, t_idx); break; /* RF4_BR_NUKE */
+
+ /* RF4_BA_CHAO */
+ case 96 + 30:
+ if (known)
+ {
+ if (see_either)
+ {
+ disturb(1, 1);
+
+ if (blind)
+ {
+ msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), m_name);
+ }
+ else
+ {
+ msg_format(_("%^s¤¬%s¤Ë½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes raw Logrus upon %s."), m_name, t_name);
+ }
+ }
+ else
+ {
+ mon_fight = TRUE;
+ }
+ }
+
+ dam = (rlev * 2) + damroll(10, 10);
+ breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, MONSTER_TO_MONSTER);
+ break;
+
+ case 96 + 31: dam = MM_spell_RF4_BREATH(GF_DISINTEGRATE, y, x, m_idx, t_idx); break; /* RF4_BR_DISI */
/* RF5_BA_ACID */
case 128+0:
rad = 2;
dam = (randint1(rlev * 3) + 15);
}
- breath(y, x, m_idx,GF_ACID, dam, rad, FALSE, MS_BALL_ACID, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_ACID, dam, rad, FALSE, MS_BALL_ACID, MONSTER_TO_MONSTER);
break;
/* RF5_BA_ELEC */
rad = 2;
dam = (randint1(rlev * 3 / 2) + 8);
}
- breath(y, x, m_idx,GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, MONSTER_TO_MONSTER);
break;
/* RF5_BA_FIRE */
rad = 2;
dam = (randint1(rlev * 7 / 2) + 10);
}
- breath(y, x, m_idx,GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, MONSTER_TO_MONSTER);
break;
/* RF5_BA_COLD */
rad = 2;
dam = (randint1(rlev * 3 / 2) + 10);
}
- breath(y, x, m_idx,GF_COLD, dam, rad, FALSE, MS_BALL_COLD, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_COLD, dam, rad, FALSE, MS_BALL_COLD, MONSTER_TO_MONSTER);
break;
/* RF5_BA_POIS */
}
dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- breath(y, x, m_idx,GF_POIS, dam, 2, FALSE, MS_BALL_POIS, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_POIS, dam, 2, FALSE, MS_BALL_POIS, MONSTER_TO_MONSTER);
break;
}
dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
- breath(y, x, m_idx,GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, MONSTER_TO_MONSTER);
break;
}
dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
- breath(y, x, m_idx,GF_WATER, dam, 4, FALSE, MS_BALL_WATER, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_WATER, dam, 4, FALSE, MS_BALL_WATER, MONSTER_TO_MONSTER);
break;
}
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx,GF_MANA, dam, 4, FALSE, MS_BALL_MANA, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_MANA, dam, 4, FALSE, MS_BALL_MANA, MONSTER_TO_MONSTER);
break;
}
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx,GF_DARK, dam, 4, FALSE, MS_BALL_DARK, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_DARK, dam, 4, FALSE, MS_BALL_DARK, MONSTER_TO_MONSTER);
break;
}
dam = ((randint1(rlev) / 2) + 1);
- breath(y, x, m_idx,GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, MONSTER_TO_MONSTER);
break;
}
dam = damroll(7, 7);
- breath(y, x, m_idx,GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, MONSTER_TO_MONSTER);
break;
}
dam = damroll(12, 12);
- breath(y, x, m_idx,GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, MONSTER_TO_MONSTER);
break;
}
dam = damroll(3, 8);
- breath(y, x, m_idx,GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, MONSTER_TO_MONSTER);
break;
}
dam = damroll(8, 8);
- breath(y, x, m_idx,GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, MONSTER_TO_MONSTER);
break;
}
dam = damroll(10, 15);
- breath(y, x, m_idx,GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, MONSTER_TO_MONSTER);
break;
}
dam = damroll(15, 15);
- breath(y, x, m_idx,GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, MONSTER_TO_MONSTER);
break;
}
dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, MONSTER_TO_MONSTER);
break;
}
dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, MONSTER_TO_MONSTER);
break;
}
dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, MONSTER_TO_MONSTER);
break;
}
dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, MONSTER_TO_MONSTER);
break;
}
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx,GF_LITE, dam, 4, FALSE, MS_STARBURST, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_LITE, dam, 4, FALSE, MS_STARBURST, MONSTER_TO_MONSTER);
break;
}
dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
- bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, MONSTER_TO_MONSTER);
break;
}
dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
- bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, MONSTER_TO_MONSTER);
break;
}
dam = randint1(rlev * 7 / 2) + 50;
- bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, MONSTER_TO_MONSTER);
break;
}
dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
- bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, MONSTER_TO_MONSTER);
break;
}
dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
- bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, MONSTER_TO_MONSTER);
break;
}
dam = damroll(2, 6) + (rlev / 3);
- bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, SPELL_MON_TO_MON);
+ bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, MONSTER_TO_MONSTER);
break;
}
dam = 20; /* Dummy power */
- breath(y, x, m_idx,GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, SPELL_MON_TO_MON);
+ breath(y, x, m_idx,GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, MONSTER_TO_MONSTER);
break;
}
dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 180) : (randint1(rlev * 3 / 2) + 120);
- beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, SPELL_MON_TO_MON);
+ beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, MONSTER_TO_MONSTER);
break;
/* RF6_DARKNESS */
return rlev;
}
-int spell_core(int SPELL_NUM, int hp, int y, int x, int m_idx, int SPELL_TYPE)
-{
- int dam;
-
- monster_type *m_ptr = &m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
- bool learnable = spell_learnable(m_idx);
-
- switch (SPELL_NUM)
- {
- case RF4_ROCKET:
- dam = (hp / 4) > 800 ? 800 : (hp / 4);
- breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, SPELL_TYPE);
- if (SPELL_TYPE == SPELL_MON_TO_PLAYER)
- {
- update_smart_learn(m_idx, DRS_SHARD);
- }
- break;
- }
- return dam;
-}
-
void MP_spell_RF4_SHRIEK(int m_idx)
{
cptr m_name = monster_name(m_idx);
dispel_monster_status(t_idx);
}
+int spell_RF4_ROCKET(int y, int x, int m_idx, int TARGET_TYPE)
+{
+ int dam;
+ monster_type *m_ptr = &m_list[m_idx];
+
+ dam = (m_ptr->hp / 4) > 800 ? 800 : (m_ptr->hp / 4);
+ breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, TARGET_TYPE);
+ if (TARGET_TYPE == MONSTER_TO_PLAYER)
+ {
+ update_smart_learn(m_idx, DRS_SHARD);
+ }
+ return dam;
+}
int MP_spell_RF4_ROCKET(int y, int x, int m_idx)
{
cptr m_name = monster_name(m_idx);
- monster_type *m_ptr = &m_list[m_idx];
disturb(1, 1);
if (p_ptr->blind)
msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
else
msg_format(_("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."), m_name);
- return spell_core(RF4_ROCKET, m_ptr->hp, y, x, m_idx, SPELL_MON_TO_PLAYER);
+ return spell_RF4_ROCKET(y, x, m_idx, MONSTER_TO_PLAYER);
}
int MM_spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx)
{
cptr m_name = monster_name(m_idx);
cptr t_name = monster_name(t_idx);
- monster_type *m_ptr = &m_list[m_idx];
bool known = monster_near_player(m_idx, t_idx);
bool see_either = see_monster(m_idx) || see_monster(t_idx);
mon_fight = TRUE;
}
}
- return spell_core(RF4_ROCKET, m_ptr->hp, y, x, m_idx, SPELL_MON_TO_MON);
+ return spell_RF4_ROCKET(y, x, m_idx, MONSTER_TO_MONSTER);
}
-int spell_RF4_SHOOT(int y, int x, int m_idx)
+int spell_RF4_SHOOT(int y, int x, int m_idx, int TARGET_TYPE)
{
- bool learnable = spell_learnable(m_idx);
- cptr m_name = monster_name(m_idx);
+ int dam;
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- int dam;
+ dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
+ bolt(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, TARGET_TYPE);
+ sound(SOUND_SHOOT);
+
+ return dam;
+}
+
+int MP_spell_RF4_SHOOT(int y, int x, int m_idx)
+{
+ bool learnable = spell_learnable(m_idx);
+ cptr m_name = monster_name(m_idx);
+
disturb(1, 1);
if (p_ptr->blind)
msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
else
msg_format(_("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."), m_name);
- dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
- bolt(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, SPELL_MON_TO_PLAYER);
- update_smart_learn(m_idx, DRS_REFLECT);
- return dam;
+ return spell_RF4_SHOOT(y, x, m_idx, MONSTER_TO_PLAYER);
}
-int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx)
+int MM_spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx)
+{
+ cptr m_name = monster_name(m_idx);
+ cptr t_name = monster_name(t_idx);
+ bool known = monster_near_player(m_idx, t_idx);
+ bool see_either = see_monster(m_idx) || see_monster(t_idx);
+ if (known)
+ {
+ if (see_either)
+ {
+ if (p_ptr->blind)
+ {
+ msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
+ }
+ else
+ {
+ msg_format(_("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow at %s."), m_name, t_name);
+ }
+ }
+ else
+ {
+ mon_fight = TRUE;
+ }
+ }
+ return spell_RF4_SHOOT(y, x, m_idx, MONSTER_TO_MONSTER);
+}
+
+int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
{
bool learnable = spell_learnable(m_idx);
int dam, ms_type, drs_type;
cptr type_s;
bool smart_learn = TRUE;
cptr m_name = monster_name(m_idx);
+ cptr t_name = monster_name(t_idx);
monster_type *m_ptr = &m_list[m_idx];
+ bool known = monster_near_player(m_idx, t_idx);
+ bool see_either = see_monster(m_idx) || see_monster(t_idx);
switch (GF_TYPE)
{
- case GF_ACID:
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- type_s = _("»À", "acid");
- ms_type = MS_BR_ACID;
- drs_type = DRS_ACID;
- break;
- case GF_ELEC:
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- type_s = _("°ðºÊ", "lightning");
- ms_type = MS_BR_ELEC;
- drs_type = DRS_ELEC;
- break;
- case GF_FIRE:
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- type_s = _("²Ð±ê", "fire");
- ms_type = MS_BR_FIRE;
- drs_type = DRS_FIRE;
- break;
- case GF_COLD:
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- type_s = _("Î䵤", "frost");
- ms_type = MS_BR_COLD;
- drs_type = DRS_COLD;
- break;
- case GF_POIS:
- dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- type_s = _("¥¬¥¹", "gas");
- ms_type = MS_BR_POIS;
- drs_type = DRS_POIS;
- break;
- case GF_NETHER:
- dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
- type_s = _("ÃϹö", "nether");
- ms_type = MS_BR_NETHER;
- drs_type = DRS_NETH;
- break;
- case GF_LITE:
- dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- type_s = _("Á®¸÷", "light");
- ms_type = MS_BR_LITE;
- drs_type = DRS_LITE;
- break;
- case GF_DARK:
- dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- type_s = _("°Å¹õ", "darkness");
- ms_type = MS_BR_DARK;
- drs_type = DRS_DARK;
- break;
- case GF_CONFUSION:
- dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- type_s = _("º®Íð", "confusion");
- ms_type = MS_BR_CONF;
- drs_type = DRS_CONF;
- break;
- case GF_SOUND:
- dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- type_s = _("¹ì²»", "sound");
- ms_type = MS_BR_SOUND;
- drs_type = DRS_SOUND;
- break;
- case GF_CHAOS:
- dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
- type_s = _("¥«¥ª¥¹", "chaos");
- ms_type = MS_BR_CHAOS;
- drs_type = DRS_CHAOS;
- break;
- case GF_DISENCHANT:
- dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- type_s = _("Îô²½", "disenchantment");
- ms_type = MS_BR_DISEN;
- drs_type = DRS_DISEN;
- break;
- case GF_NEXUS:
- dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- type_s = _("°ø²Ìº®Íð", "nexus");
- ms_type = MS_BR_NEXUS;
- drs_type = DRS_NEXUS;
- break;
- case GF_TIME:
- dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
- type_s = _("»þ´ÖµÕž", "time");
- ms_type = MS_BR_TIME;
- smart_learn = FALSE;
- break;
- case GF_INERTIA:
- dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- type_s = _("ÃÙÆß", "inertia");
- ms_type = MS_BR_INERTIA;
- smart_learn = FALSE;
- break;
- case GF_GRAVITY:
- dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
- type_s = _("½ÅÎÏ", "gravity");
- ms_type = MS_BR_GRAVITY;
- smart_learn = FALSE;
- break;
- case GF_SHARDS:
- dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- type_s = _("ÇËÊÒ", "shards");
- ms_type = MS_BR_SHARDS;
- drs_type = DRS_SHARD;
- break;
- case GF_PLASMA:
- dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- type_s = _("¥×¥é¥º¥Þ", "plasma");
- ms_type = MS_BR_PLASMA;
- smart_learn = FALSE;
- break;
- case GF_FORCE:
- dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- type_s = _("¥Õ¥©¡¼¥¹", "force");
- ms_type = MS_BR_FORCE;
- smart_learn = FALSE;
- break;
- case GF_MANA:
- dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- type_s = _("ËâÎÏ", "mana");
- ms_type = MS_BR_MANA;
- smart_learn = FALSE;
- break;
- case GF_NUKE:
- dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
- ms_type = MS_BR_NUKE;
- drs_type = DRS_POIS;
- break;
- case GF_DISINTEGRATE:
- dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- type_s = _("ʬ²ò", "disintegration");
- ms_type = MS_BR_DISI;
- smart_learn = FALSE;
- break;
- default:
- break;
+ case GF_ACID:
+ dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
+ type_s = _("»À", "acid");
+ ms_type = MS_BR_ACID;
+ drs_type = DRS_ACID;
+ break;
+ case GF_ELEC:
+ dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
+ type_s = _("°ðºÊ", "lightning");
+ ms_type = MS_BR_ELEC;
+ drs_type = DRS_ELEC;
+ break;
+ case GF_FIRE:
+ dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
+ type_s = _("²Ð±ê", "fire");
+ ms_type = MS_BR_FIRE;
+ drs_type = DRS_FIRE;
+ break;
+ case GF_COLD:
+ dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
+ type_s = _("Î䵤", "frost");
+ ms_type = MS_BR_COLD;
+ drs_type = DRS_COLD;
+ break;
+ case GF_POIS:
+ dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
+ type_s = _("¥¬¥¹", "gas");
+ ms_type = MS_BR_POIS;
+ drs_type = DRS_POIS;
+ break;
+ case GF_NETHER:
+ dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
+ type_s = _("ÃϹö", "nether");
+ ms_type = MS_BR_NETHER;
+ drs_type = DRS_NETH;
+ break;
+ case GF_LITE:
+ dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
+ type_s = _("Á®¸÷", "light");
+ ms_type = MS_BR_LITE;
+ drs_type = DRS_LITE;
+ break;
+ case GF_DARK:
+ dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
+ type_s = _("°Å¹õ", "darkness");
+ ms_type = MS_BR_DARK;
+ drs_type = DRS_DARK;
+ break;
+ case GF_CONFUSION:
+ dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
+ type_s = _("º®Íð", "confusion");
+ ms_type = MS_BR_CONF;
+ drs_type = DRS_CONF;
+ break;
+ case GF_SOUND:
+ dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
+ type_s = _("¹ì²»", "sound");
+ ms_type = MS_BR_SOUND;
+ drs_type = DRS_SOUND;
+ break;
+ case GF_CHAOS:
+ dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
+ type_s = _("¥«¥ª¥¹", "chaos");
+ ms_type = MS_BR_CHAOS;
+ drs_type = DRS_CHAOS;
+ break;
+ case GF_DISENCHANT:
+ dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
+ type_s = _("Îô²½", "disenchantment");
+ ms_type = MS_BR_DISEN;
+ drs_type = DRS_DISEN;
+ break;
+ case GF_NEXUS:
+ dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
+ type_s = _("°ø²Ìº®Íð", "nexus");
+ ms_type = MS_BR_NEXUS;
+ drs_type = DRS_NEXUS;
+ break;
+ case GF_TIME:
+ dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
+ type_s = _("»þ´ÖµÕž", "time");
+ ms_type = MS_BR_TIME;
+ smart_learn = FALSE;
+ break;
+ case GF_INERTIA:
+ dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
+ type_s = _("ÃÙÆß", "inertia");
+ ms_type = MS_BR_INERTIA;
+ smart_learn = FALSE;
+ break;
+ case GF_GRAVITY:
+ dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
+ type_s = _("½ÅÎÏ", "gravity");
+ ms_type = MS_BR_GRAVITY;
+ smart_learn = FALSE;
+ break;
+ case GF_SHARDS:
+ dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
+ type_s = _("ÇËÊÒ", "shards");
+ ms_type = MS_BR_SHARDS;
+ drs_type = DRS_SHARD;
+ break;
+ case GF_PLASMA:
+ dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
+ type_s = _("¥×¥é¥º¥Þ", "plasma");
+ ms_type = MS_BR_PLASMA;
+ smart_learn = FALSE;
+ break;
+ case GF_FORCE:
+ dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
+ type_s = _("¥Õ¥©¡¼¥¹", "force");
+ ms_type = MS_BR_FORCE;
+ smart_learn = FALSE;
+ break;
+ case GF_MANA:
+ dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
+ type_s = _("ËâÎÏ", "mana");
+ ms_type = MS_BR_MANA;
+ smart_learn = FALSE;
+ break;
+ case GF_NUKE:
+ dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
+ type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
+ ms_type = MS_BR_NUKE;
+ drs_type = DRS_POIS;
+ break;
+ case GF_DISINTEGRATE:
+ dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
+ type_s = _("ʬ²ò", "disintegration");
+ ms_type = MS_BR_DISI;
+ smart_learn = FALSE;
+ break;
+ default:
+ break;
}
disturb(1, 1);
}
else if (p_ptr->blind)
{
+ if (TARGET_TYPE == MONSTER_TO_PLAYER ||
+ ((TARGET_TYPE == MONSTER_TO_MONSTER) && known && see_either))
msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
}
else
{
- msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
+ if (TARGET_TYPE == MONSTER_TO_PLAYER)
+ {
+ msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
+ }
+ else if ((TARGET_TYPE == MONSTER_TO_MONSTER) && known && see_either)
+ {
+ _(msg_format("%^s¤¬%^s¤Ë%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name, type_s),
+ msg_format("%^s breathes %^s at %^s.", m_name, type_s, t_name));
+ }
}
- breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, SPELL_MON_TO_PLAYER);
- if (smart_learn) update_smart_learn(m_idx, drs_type);
+ if (known && !see_either)
+ mon_fight = TRUE;
+
+ sound(SOUND_BREATH);
+ breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, TARGET_TYPE);
+ if (smart_learn && TARGET_TYPE == MONSTER_TO_PLAYER)
+ update_smart_learn(m_idx, drs_type);
return dam;
}
+int MP_spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx)
+{
+ return spell_RF4_BREATH(GF_TYPE, y, x, m_idx, 0, MONSTER_TO_PLAYER);
+}
+
+int MM_spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx)
+{
+ return spell_RF4_BREATH(GF_TYPE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER);
+}
+
int spell_RF4_BA_CHAO(int y, int x, int m_idx)
{
bool learnable = spell_learnable(m_idx);
dam = ((r_ptr->flags2 & RF2_POWERFUL) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10);
- breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_CHAOS);
return dam;
}
dam = (rlev + damroll(10, 6)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_POIS);
return dam;
}
rad = 2;
dam = (randint1(rlev * 3) + 15);
}
- breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_ACID);
return dam;
}
rad = 2;
dam = (randint1(rlev * 3 / 2) + 8);
}
- breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_ELEC);
return dam;
}
rad = 2;
dam = (randint1(rlev * 7 / 2) + 10);
}
- breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_FIRE);
return dam;
}
rad = 2;
dam = (randint1(rlev * 3 / 2) + 10);
}
- breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_COLD);
return dam;
}
msg_format(_("%^s¤¬°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), m_name);
dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_POIS);
return dam;
}
msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name);
dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
- breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_NETH);
return dam;
}
msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
- breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_DARK);
return dam;
}
disturb(1, 1);
dam = (randint1(rlev) / 2) + 1;
- breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_MANA);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
dam = damroll(7, 7);
- breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name);
dam = damroll(12, 12);
- breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."), m_name);
dam = damroll(3, 8);
- breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name);
dam = damroll(8, 8);
- breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name);
dam = damroll(10, 15);
- breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, MONSTER_TO_PLAYER);
return dam;
}
"%^s points at you, screaming the word DIE!"), m_name);
dam = damroll(15, 15);
- breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), m_name);
dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_ACID);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), m_name);
dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_ELEC);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), m_name);
dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_FIRE);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), m_name);
dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_COLD);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_LITE);
return dam;
}
msg_format(_("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), m_name);
dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
- bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_NETH);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
msg_format(_("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), m_name);
dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
- bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
}
msg_format(_("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), m_name);
dam = randint1(rlev * 7 / 2) + 50;
- bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
}
msg_format(_("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."), m_name);
dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
- bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
}
msg_format(_("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."), m_name);
dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
- bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_COLD);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
msg_format(_("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."), m_name);
dam = damroll(2, 6) + (rlev / 3);
- bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, SPELL_MON_TO_PLAYER);
+ bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, MONSTER_TO_PLAYER);
update_smart_learn(m_idx, DRS_REFLECT);
return dam;
}
disturb(1, 1);
msg_format(_("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"), m_name);
dam = (((s32b)((40 + randint1(20)) * (p_ptr->chp))) / 100);
- breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, SPELL_MON_TO_PLAYER);
+ breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, MONSTER_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-Spear."), m_name);
dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 150) : (randint1(rlev * 3 / 2) + 100);
- beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, SPELL_MON_TO_PLAYER);
+ beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, MONSTER_TO_PLAYER);
return dam;
}