From b6432097d17afc51de4af3be2df2b2712034c77d Mon Sep 17 00:00:00 2001 From: dis- Date: Wed, 19 Feb 2014 18:12:12 +0900 Subject: [PATCH] refactor: extract breath spells in monst_spell_monst --- src/defines.h | 4 +- src/externs.h | 12 +- src/mspells1.c | 76 ++--- src/mspells2.c | 912 ++++++++------------------------------------------------- src/mspells4.c | 457 ++++++++++++++++------------- 5 files changed, 417 insertions(+), 1044 deletions(-) diff --git a/src/defines.h b/src/defines.h index 058b5b5c6..7b494f881 100644 --- a/src/defines.h +++ b/src/defines.h @@ -5696,8 +5696,8 @@ extern int PlayerUID; (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) diff --git a/src/externs.h b/src/externs.h index 3869cf9ca..80e9141d1 100644 --- a/src/externs.h +++ b/src/externs.h @@ -1569,9 +1569,9 @@ extern bool raise_possible(monster_type *m_ptr); 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); @@ -1589,8 +1589,8 @@ extern bool spell_learnable(int m_idx); 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); @@ -1662,6 +1662,8 @@ extern void spell_RF6_S_UNIQUE(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); diff --git a/src/mspells1.c b/src/mspells1.c index 517d60586..e8b26c9e3 100644 --- a/src/mspells1.c +++ b/src/mspells1.c @@ -507,20 +507,20 @@ bool clean_shot(int y1, int x1, int y2, int x2, bool is_friend) * @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; } @@ -538,20 +538,20 @@ void bolt(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int spell_ * @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; } @@ -572,22 +572,22 @@ void beam(int m_idx, int y, int x, int typ, int dam_hp, int monspell, int spell_ * @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; } @@ -1878,34 +1878,34 @@ bool make_attack_spell(int m_idx) 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 */ diff --git a/src/mspells2.c b/src/mspells2.c index 3f1fe100f..8181a77d6 100644 --- a/src/mspells2.c +++ b/src/mspells2.c @@ -735,773 +735,93 @@ bool monst_spell_monst(int m_idx) 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: @@ -1537,7 +857,7 @@ bool monst_spell_monst(int m_idx) 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 */ @@ -1573,7 +893,7 @@ bool monst_spell_monst(int m_idx) 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 */ @@ -1620,7 +940,7 @@ bool monst_spell_monst(int m_idx) 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 */ @@ -1657,7 +977,7 @@ bool monst_spell_monst(int m_idx) 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 */ @@ -1685,7 +1005,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1713,7 +1033,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1743,7 +1063,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1771,7 +1091,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1799,7 +1119,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1812,7 +1132,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1824,7 +1144,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1836,7 +1156,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1855,7 +1175,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1875,7 +1195,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1895,7 +1215,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1915,7 +1235,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1934,7 +1254,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1953,7 +1273,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1972,7 +1292,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -1991,7 +1311,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2020,7 +1340,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2040,7 +1360,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2060,7 +1380,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2080,7 +1400,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2100,7 +1420,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2120,7 +1440,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2140,7 +1460,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2363,7 +1683,7 @@ bool monst_spell_monst(int m_idx) } 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; @@ -2752,7 +2072,7 @@ bool monst_spell_monst(int m_idx) } 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 */ diff --git a/src/mspells4.c b/src/mspells4.c index ec0d74ab7..978683bc8 100644 --- a/src/mspells4.c +++ b/src/mspells4.c @@ -41,28 +41,6 @@ int monster_level_idx(int m_idx) 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); @@ -133,25 +111,36 @@ void MM_spell_RF4_DISPEL(int m_idx, int t_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); @@ -175,174 +164,211 @@ int MM_spell_RF4_ROCKET(int y, int x, int m_idx, int 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); @@ -356,18 +382,43 @@ int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx) } 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); @@ -386,7 +437,7 @@ int spell_RF4_BA_CHAO(int y, int x, int 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; } @@ -408,7 +459,7 @@ int spell_RF4_BA_NUKE(int y, int x, int m_idx) 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; } @@ -438,7 +489,7 @@ int spell_RF5_BA_ACID(int y, int x, int m_idx) 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; } @@ -468,7 +519,7 @@ int spell_RF5_BA_ELEC(int y, int x, int m_idx) 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; } @@ -508,7 +559,7 @@ int spell_RF5_BA_FIRE(int y, int x, int m_idx) 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; } @@ -538,7 +589,7 @@ int spell_RF5_BA_COLD(int y, int x, int m_idx) 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; } @@ -559,7 +610,7 @@ int spell_RF5_BA_POIS(int y, int x, int m_idx) 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; } @@ -579,7 +630,7 @@ int spell_RF5_BA_NETH(int y, int x, int m_idx) 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; } @@ -602,7 +653,7 @@ int spell_RF5_BA_WATE(int y, int x, int m_idx) 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; } @@ -620,7 +671,7 @@ int spell_RF5_BA_MANA(int y, int x, int m_idx) 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; } @@ -639,7 +690,7 @@ int spell_RF5_BA_DARK(int y, int x, int m_idx) 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; } @@ -652,7 +703,7 @@ int spell_RF5_DRAIN_MANA(int y, int x, int m_idx) 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; } @@ -671,7 +722,7 @@ int spell_RF5_MIND_BLAST(int y, int x, int m_idx) 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; } @@ -689,7 +740,7 @@ int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx) 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; } @@ -706,7 +757,7 @@ int spell_RF5_CAUSE_1(int y, int x, int m_idx) 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; } @@ -723,7 +774,7 @@ int spell_RF5_CAUSE_2(int y, int x, int m_idx) 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; } @@ -740,7 +791,7 @@ int spell_RF5_CAUSE_3(int y, int x, int m_idx) 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; } @@ -758,7 +809,7 @@ int spell_RF5_CAUSE_4(int y, int x, int m_idx) "%^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; } @@ -778,7 +829,7 @@ int spell_RF5_BO_ACID(int y, int x, int m_idx) 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; @@ -800,7 +851,7 @@ int spell_RF5_BO_ELEC(int y, int x, int m_idx) 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; @@ -822,7 +873,7 @@ int spell_RF5_BO_FIRE(int y, int x, int m_idx) 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; @@ -844,7 +895,7 @@ int spell_RF5_BO_COLD(int y, int x, int m_idx) 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; @@ -864,7 +915,7 @@ int spell_RF5_BA_LITE(int y, int x, int m_idx) 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; } @@ -886,7 +937,7 @@ int spell_RF5_BO_NETH(int y, int x, int m_idx) 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; @@ -908,7 +959,7 @@ int spell_RF5_BO_WATE(int y, int x, int m_idx) 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; } @@ -928,7 +979,7 @@ int spell_RF5_BO_MANA(int y, int x, int m_idx) 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; } @@ -949,7 +1000,7 @@ int spell_RF5_BO_PLAS(int y, int x, int m_idx) 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; } @@ -969,7 +1020,7 @@ int spell_RF5_BO_ICEE(int y, int x, int m_idx) 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; @@ -989,7 +1040,7 @@ int spell_RF5_MISSILE(int y, int x, int m_idx) 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; } @@ -1159,7 +1210,7 @@ int spell_RF6_HAND_DOOM(int y, int x, int m_idx) 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; } @@ -1494,7 +1545,7 @@ int spell_RF6_PSY_SPEAR(int y, int x, int m_idx) 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; } -- 2.11.0