From ddb881790a6cb6a97a118bb7e3a9b53d6ccdbb3c Mon Sep 17 00:00:00 2001 From: dis- Date: Thu, 20 Feb 2014 17:35:53 +0900 Subject: [PATCH] refactor: extract damage spells in monst_spell_monst --- src/externs.h | 77 ++-- src/mspells1.c | 110 +++--- src/mspells2.c | 787 +++--------------------------------- src/mspells4.c | 1203 ++++++++++++++++++++++++++++++-------------------------- 4 files changed, 784 insertions(+), 1393 deletions(-) diff --git a/src/externs.h b/src/externs.h index 5b9c2b31f..b78a66e66 100644 --- a/src/externs.h +++ b/src/externs.h @@ -1584,42 +1584,40 @@ extern void set_rf_masks(s32b *f4, s32b *f5, s32b *f6, int mode); /* mspells4.c */ extern bool spell_learnable(int m_idx); - -/* spells monster to player */ -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 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 int spell_RF5_BA_ELEC(int y, int x, int m_idx); -extern int spell_RF5_BA_FIRE(int y, int x, int m_idx); -extern int spell_RF5_BA_COLD(int y, int x, int m_idx); -extern int spell_RF5_BA_POIS(int y, int x, int m_idx); -extern int spell_RF5_BA_NETH(int y, int x, int m_idx); -extern int spell_RF5_BA_WATE(int y, int x, int m_idx); -extern int spell_RF5_BA_MANA(int y, int x, int m_idx); -extern int spell_RF5_BA_DARK(int y, int x, int m_idx); -extern int spell_RF5_DRAIN_MANA(int y, int x, int m_idx); -extern int spell_RF5_MIND_BLAST(int y, int x, int m_idx); -extern int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx); -extern int spell_RF5_CAUSE_1(int y, int x, int m_idx); -extern int spell_RF5_CAUSE_2(int y, int x, int m_idx); -extern int spell_RF5_CAUSE_3(int y, int x, int m_idx); -extern int spell_RF5_CAUSE_4(int y, int x, int m_idx); -extern int spell_RF5_BO_ACID(int y, int x, int m_idx); -extern int spell_RF5_BO_ELEC(int y, int x, int m_idx); -extern int spell_RF5_BO_FIRE(int y, int x, int m_idx); -extern int spell_RF5_BO_COLD(int y, int x, int m_idx); -extern int spell_RF5_BA_LITE(int y, int x, int m_idx); -extern int spell_RF5_BO_NETH(int y, int x, int m_idx); -extern int spell_RF5_BO_WATE(int y, int x, int m_idx); -extern int spell_RF5_BO_MANA(int y, int x, int m_idx); -extern int spell_RF5_BO_PLAS(int y, int x, int m_idx); -extern int spell_RF5_BO_ICEE(int y, int x, int m_idx); -extern int spell_RF5_MISSILE(int y, int x, int m_idx); +extern void spell_RF4_SHRIEK(int m_idx, int t_idx, int TARGET_TYPE);; +extern void spell_RF4_DISPEL(int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF4_BA_NUKE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF4_BA_CHAO(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_POIS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_DARK(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_DRAIN_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_MIND_BLAST(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_CAUSE_1(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_CAUSE_2(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_CAUSE_3(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_CAUSE_4(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BA_LITE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_PLAS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_BO_ICEE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); +extern int spell_RF5_MISSILE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE); extern void spell_RF5_SCARE(int y, int x, int m_idx); extern void spell_RF5_BLIND(int y, int x, int m_idx); extern void spell_RF5_CONF(int y, int x, int m_idx); @@ -1658,13 +1656,6 @@ extern void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx); extern void spell_RF6_S_AMBERITES(int y, int x, int m_idx); extern void spell_RF6_S_UNIQUE(int y, int x, int m_idx); -/* spells monster to monster */ -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); extern void do_cmd_hissatsu(void); diff --git a/src/mspells1.c b/src/mspells1.c index e8b26c9e3..a83758fb4 100644 --- a/src/mspells1.c +++ b/src/mspells1.c @@ -1874,65 +1874,65 @@ bool make_attack_spell(int m_idx) /* Cast the spell. */ switch (thrown_spell) { - case 96 + 0: MP_spell_RF4_SHRIEK(m_idx); break; /* RF4_SHRIEK */ + case 96 + 0: spell_RF4_SHRIEK(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_SHRIEK */ 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 = MP_spell_RF4_SHOOT(y, x, m_idx); break; /* RF4_SHOOT */ + case 96 + 2: spell_RF4_DISPEL(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_DISPEL */ + case 96 + 3: dam = spell_RF4_ROCKET(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_ROCKET */ + case 96 + 4: dam = spell_RF4_SHOOT(y, x, m_idx, 0, MONSTER_TO_PLAYER); 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 = 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 = 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 = 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 */ - case 128 + 3: dam = spell_RF5_BA_COLD(y, x, m_idx); break; /* RF5_BA_COLD */ - case 128 + 4: dam = spell_RF5_BA_POIS(y, x, m_idx); break; /* RF5_BA_POIS */ - case 128 + 5: dam = spell_RF5_BA_NETH(y, x, m_idx); break; /* RF5_BA_NETH */ - case 128 + 6: dam = spell_RF5_BA_WATE(y, x, m_idx); break; /* RF5_BA_WATE */ - case 128 + 7: dam = spell_RF5_BA_MANA(y, x, m_idx); break; /* RF5_BA_MANA */ - case 128 + 8: dam = spell_RF5_BA_DARK(y, x, m_idx); break; /* RF5_BA_DARK */ - case 128 + 9: dam = spell_RF5_DRAIN_MANA(y, x, m_idx); break; /* RF5_DRAIN_MANA */ - case 128 + 10: dam = spell_RF5_MIND_BLAST(y, x, m_idx); break; /* RF5_MIND_BLAST */ - case 128 + 11: dam = spell_RF5_BRAIN_SMASH(y, x, m_idx); break; /* RF5_MIND_BLAST */ - case 128 + 12: dam = spell_RF5_CAUSE_1(y, x, m_idx); break; /* RF5_CAUSE_1 */ - case 128 + 13: dam = spell_RF5_CAUSE_2(y, x, m_idx); break; /* RF5_CAUSE_2 */ - case 128 + 14: dam = spell_RF5_CAUSE_3(y, x, m_idx); break; /* RF5_CAUSE_3 */ - case 128 + 15: dam = spell_RF5_CAUSE_4(y, x, m_idx); break; /* RF5_CAUSE_4 */ - case 128 + 16: dam = spell_RF5_BO_ACID(y, x, m_idx); break; /* RF5_BO_ACID */ - case 128 + 17: dam = spell_RF5_BO_ELEC(y, x, m_idx); break; /* RF5_BO_ELEC */ - case 128 + 18: dam = spell_RF5_BO_FIRE(y, x, m_idx); break; /* RF5_BO_FIRE */ - case 128 + 19: dam = spell_RF5_BO_COLD(y, x, m_idx); break; /* RF5_BO_COLD */ - case 128 + 20: dam = spell_RF5_BA_LITE(y, x, m_idx); break; /* RF5_BA_LITE */ - case 128 + 21: dam = spell_RF5_BO_NETH(y, x, m_idx); break; /* RF5_BO_NETH */ - case 128 + 22: dam = spell_RF5_BO_WATE(y, x, m_idx); break; /* RF5_BO_WATE */ - case 128 + 23: dam = spell_RF5_BO_MANA(y, x, m_idx); break; /* RF5_BO_MANA */ - case 128 + 24: dam = spell_RF5_BO_PLAS(y, x, m_idx); break; /* RF5_BO_PLAS */ - case 128 + 25: dam = spell_RF5_BO_ICEE(y, x, m_idx); break; /* RF5_BO_ICEE */ - case 128 + 26: dam = spell_RF5_MISSILE(y, x, m_idx); break; /* RF5_MISSILE */ + case 96 + 8: dam = spell_RF4_BREATH(GF_ACID, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_ACID */ + case 96 + 9: dam = spell_RF4_BREATH(GF_ELEC, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_ELEC */ + case 96 + 10: dam = spell_RF4_BREATH(GF_FIRE, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_FIRE */ + case 96 + 11: dam = spell_RF4_BREATH(GF_COLD, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_COLD */ + case 96 + 12: dam = spell_RF4_BREATH(GF_POIS, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_POIS */ + case 96 + 13: dam = spell_RF4_BREATH(GF_NETHER, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_NETH */ + case 96 + 14: dam = spell_RF4_BREATH(GF_LITE, y_br_lite, x_br_lite, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_LITE */ + case 96 + 15: dam = spell_RF4_BREATH(GF_DARK, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_DARK */ + case 96 + 16: dam = spell_RF4_BREATH(GF_CONFUSION, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_CONF */ + case 96 + 17: dam = spell_RF4_BREATH(GF_SOUND, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_SOUN */ + case 96 + 18: dam = spell_RF4_BREATH(GF_CHAOS, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_CHAO */ + case 96 + 19: dam = spell_RF4_BREATH(GF_DISENCHANT, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_DISE */ + case 96 + 20: dam = spell_RF4_BREATH(GF_NEXUS, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_NEXU */ + case 96 + 21: dam = spell_RF4_BREATH(GF_TIME, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_TIME */ + case 96 + 22: dam = spell_RF4_BREATH(GF_INERTIA, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_INER */ + case 96 + 23: dam = spell_RF4_BREATH(GF_GRAVITY, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_GRAV */ + case 96 + 24: dam = spell_RF4_BREATH(GF_SHARDS, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_SHAR */ + case 96 + 25: dam = spell_RF4_BREATH(GF_PLASMA, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_PLAS */ + case 96 + 26: dam = spell_RF4_BREATH(GF_FORCE, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_WALL */ + case 96 + 27: dam = spell_RF4_BREATH(GF_MANA, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_MANA */ + case 96 + 28: dam = spell_RF4_BA_NUKE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BA_NUKE */ + case 96 + 29: dam = spell_RF4_BREATH(GF_NUKE, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_NUKE */ + case 96 + 30: dam = spell_RF4_BA_CHAO(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BA_CHAO */ + case 96 + 31: dam = spell_RF4_BREATH(GF_DISINTEGRATE, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_BR_DISI */ + case 128 + 0: dam = spell_RF5_BA_ACID(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_ACID */ + case 128 + 1: dam = spell_RF5_BA_ELEC(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_ELEC */ + case 128 + 2: dam = spell_RF5_BA_FIRE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_FIRE */ + case 128 + 3: dam = spell_RF5_BA_COLD(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_COLD */ + case 128 + 4: dam = spell_RF5_BA_POIS(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_POIS */ + case 128 + 5: dam = spell_RF5_BA_NETH(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_NETH */ + case 128 + 6: dam = spell_RF5_BA_WATE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_WATE */ + case 128 + 7: dam = spell_RF5_BA_MANA(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_MANA */ + case 128 + 8: dam = spell_RF5_BA_DARK(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_DARK */ + case 128 + 9: dam = spell_RF5_DRAIN_MANA(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_DRAIN_MANA */ + case 128 + 10: dam = spell_RF5_MIND_BLAST(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_MIND_BLAST */ + case 128 + 11: dam = spell_RF5_BRAIN_SMASH(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_MIND_BLAST */ + case 128 + 12: dam = spell_RF5_CAUSE_1(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_CAUSE_1 */ + case 128 + 13: dam = spell_RF5_CAUSE_2(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_CAUSE_2 */ + case 128 + 14: dam = spell_RF5_CAUSE_3(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_CAUSE_3 */ + case 128 + 15: dam = spell_RF5_CAUSE_4(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_CAUSE_4 */ + case 128 + 16: dam = spell_RF5_BO_ACID(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_ACID */ + case 128 + 17: dam = spell_RF5_BO_ELEC(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_ELEC */ + case 128 + 18: dam = spell_RF5_BO_FIRE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_FIRE */ + case 128 + 19: dam = spell_RF5_BO_COLD(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_COLD */ + case 128 + 20: dam = spell_RF5_BA_LITE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BA_LITE */ + case 128 + 21: dam = spell_RF5_BO_NETH(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_NETH */ + case 128 + 22: dam = spell_RF5_BO_WATE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_WATE */ + case 128 + 23: dam = spell_RF5_BO_MANA(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_MANA */ + case 128 + 24: dam = spell_RF5_BO_PLAS(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_PLAS */ + case 128 + 25: dam = spell_RF5_BO_ICEE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BO_ICEE */ + case 128 + 26: dam = spell_RF5_MISSILE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_MISSILE */ case 128 + 27: spell_RF5_SCARE(y, x, m_idx); break; /* RF5_SCARE */ case 128 + 28: spell_RF5_BLIND(y, x, m_idx); break; /* RF5_BLIND */ case 128 + 29: spell_RF5_CONF(y, x, m_idx); break; /* RF5_CONF */ diff --git a/src/mspells2.c b/src/mspells2.c index 8181a77d6..0779e9e9b 100644 --- a/src/mspells2.c +++ b/src/mspells2.c @@ -735,734 +735,65 @@ 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 */ - 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: - if (known) - { - if (see_either) - { - disturb(1, 1); - - if (blind) - { - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - } - else - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts an acid ball at %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - if (r_ptr->flags2 & RF2_POWERFUL) - { - rad = 4; - dam = (rlev * 4) + 50 + damroll(10, 10); - } - else - { - rad = 2; - dam = (randint1(rlev * 3) + 15); - } - breath(y, x, m_idx,GF_ACID, dam, rad, FALSE, MS_BALL_ACID, MONSTER_TO_MONSTER); - break; - - /* RF5_BA_ELEC */ - case 128+1: - 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 lightning ball at %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - if (r_ptr->flags2 & RF2_POWERFUL) - { - rad = 4; - dam = (rlev * 4) + 50 + damroll(10, 10); - } - else - { - rad = 2; - dam = (randint1(rlev * 3 / 2) + 8); - } - breath(y, x, m_idx,GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, MONSTER_TO_MONSTER); - break; - - /* RF5_BA_FIRE */ - case 128+2: - if (known) - { - if (see_either) - { - disturb(1, 1); - - if (m_ptr->r_idx == MON_ROLENTO) - { - if (blind) - msg_format(_("%^s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."), m_name); - else - msg_format(_("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), m_name, t_name); - } - else - { - if (blind) - { - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - } - else - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts a fire ball at %s."), m_name, t_name); - } - } - } - else - { - mon_fight = TRUE; - } - } - - if (r_ptr->flags2 & RF2_POWERFUL) - { - rad = 4; - dam = (rlev * 4) + 50 + damroll(10, 10); - } - else - { - rad = 2; - dam = (randint1(rlev * 7 / 2) + 10); - } - breath(y, x, m_idx,GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, MONSTER_TO_MONSTER); - break; - - /* RF5_BA_COLD */ - case 128+3: - 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 frost ball at %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - if (r_ptr->flags2 & RF2_POWERFUL) - { - rad = 4; - dam = (rlev * 4) + 50 + damroll(10, 10); - } - else - { - rad = 2; - dam = (randint1(rlev * 3 / 2) + 10); - } - breath(y, x, m_idx,GF_COLD, dam, rad, FALSE, MS_BALL_COLD, MONSTER_TO_MONSTER); - break; - - /* RF5_BA_POIS */ - case 128+4: - 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 stinking cloud at %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - breath(y, x, m_idx,GF_POIS, dam, 2, FALSE, MS_BALL_POIS, MONSTER_TO_MONSTER); - - break; - - /* RF5_BA_NETH */ - case 128+5: - 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 nether ball at %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - 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, MONSTER_TO_MONSTER); - - break; - - /* RF5_BA_WATE */ - case 128+6: - if (known) - { - if (see_either) - { - disturb(1, 1); - - if (blind) - { - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - } - else - { - msg_format(_("%^s¤¬%s¤ËÂФ·¤Æή¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly at %s."), m_name, t_name); - - msg_format(_("%^s¤Ï±²´¬¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "%^s is engulfed in a whirlpool."), t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - 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, MONSTER_TO_MONSTER); - - break; - - /* RF5_BA_MANA */ - case 128+7: - if (known) - { - if (see_either) - { - disturb(1, 1); - - if (blind) - { - msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); - } - else - { - msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm upon %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - dam = (rlev * 4) + 50 + damroll(10, 10); - breath(y, x, m_idx,GF_MANA, dam, 4, FALSE, MS_BALL_MANA, MONSTER_TO_MONSTER); - - break; - - /* RF5_BA_DARK */ - case 128+8: - if (known) - { - if (see_either) - { - disturb(1, 1); - - if (blind) - { - msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); - } - else - { - msg_format(_("%^s¤¬%s¤ËÂФ·¤Æ°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm upon %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - dam = (rlev * 4) + 50 + damroll(10, 10); - breath(y, x, m_idx,GF_DARK, dam, 4, FALSE, MS_BALL_DARK, MONSTER_TO_MONSTER); - - break; - - /* RF5_DRAIN_MANA */ - case 128+9: - if (see_m) - { - /* Basic message */ - msg_format(_("%^s¤ÏÀº¿À¥¨¥Í¥ë¥®¡¼¤ò%s¤«¤éµÛ¤¤¤È¤Ã¤¿¡£", "%^s draws psychic energy from %s."), m_name, t_name); - } - - dam = ((randint1(rlev) / 2) + 1); - breath(y, x, m_idx,GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, MONSTER_TO_MONSTER); - - break; - - /* RF5_MIND_BLAST */ - case 128+10: - if (see_m) - { - msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name); - } - - dam = damroll(7, 7); - breath(y, x, m_idx,GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, MONSTER_TO_MONSTER); - - break; - - /* RF5_BRAIN_SMASH */ - case 128+11: - if (see_m) - { - msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name); - } - - dam = damroll(12, 12); - breath(y, x, m_idx,GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, MONSTER_TO_MONSTER); - - break; - - /* RF5_CAUSE_1 */ - case 128+12: - if (known) - { - if (see_m) - { - msg_format(_("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¼ö¤¤¤ò¤«¤±¤¿¡£", "%^s points at %s and curses."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(3, 8); - breath(y, x, m_idx,GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, MONSTER_TO_MONSTER); - - break; - - /* RF5_CAUSE_2 */ - case 128+13: - if (known) - { - if (see_m) - { - msg_format(_("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤¤¤ò¤«¤±¤¿¡£", - "%^s points at %s and curses horribly."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(8, 8); - breath(y, x, m_idx,GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, MONSTER_TO_MONSTER); - - break; - - /* RF5_CAUSE_3 */ - case 128+14: - if (known) - { - if (see_m) - { - msg_format(_("%^s¤Ï%s¤ò»Ø¤µ¤·¡¢¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", - "%^s points at %s, incanting terribly!"), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(10, 15); - breath(y, x, m_idx,GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, MONSTER_TO_MONSTER); - - break; - - /* RF5_CAUSE_4 */ - case 128+15: - if (known) - { - if (see_m) - { - msg_format(_("%^s¤¬%s¤ÎÈ빦¤òÆͤ¤¤Æ¡¢¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", - "%^s points at %s, screaming the word, 'DIE!'"), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(15, 15); - breath(y, x, m_idx,GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_ACID */ - case 128+16: - if (known) - { - if (see_either) - { - msg_format(_("%s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_ELEC */ - case 128+17: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_FIRE */ - case 128+18: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_COLD */ - case 128+19: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, MONSTER_TO_MONSTER); - - break; - - /* RF5_BA_LITE */ - case 128+20: - if (known) - { - if (see_either) - { - disturb(1, 1); - - if (blind) - { - msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); - } - else - { - msg_format(_("%^s¤¬%s¤ËÂФ·¤Æ¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", - "%^s invokes a starburst upon %s."), m_name, t_name); - } - } - else - { - mon_fight = TRUE; - } - } - - dam = (rlev * 4) + 50 + damroll(10, 10); - breath(y, x, m_idx,GF_LITE, dam, 4, FALSE, MS_STARBURST, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_NETH */ - case 128+21: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts a nether bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - 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, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_WATE */ - case 128+22: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts a water bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3)); - bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_MANA */ - case 128+23: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts a mana bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = randint1(rlev * 7 / 2) + 50; - bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_PLAS */ - case 128+24: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts a plasma bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - 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, MONSTER_TO_MONSTER); - - break; - - /* RF5_BO_ICEE */ - case 128+25: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts an ice bolt at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3)); - bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, MONSTER_TO_MONSTER); - - break; - - /* RF5_MISSILE */ - case 128+26: - if (known) - { - if (see_either) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", - "%^s casts a magic missile at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - - dam = damroll(2, 6) + (rlev / 3); - bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, MONSTER_TO_MONSTER); - - break; + case 96 + 0: spell_RF4_SHRIEK(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_SHRIEK */ + case 96 + 1: return FALSE; /* RF4_XXX1 */ + case 96 + 2: spell_RF4_DISPEL(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_DISPEL */ + case 96 + 3: dam = spell_RF4_ROCKET(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_ROCKET */ + case 96 + 4: dam = spell_RF4_SHOOT(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); 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 = spell_RF4_BREATH(GF_ACID, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_ACID */ + case 96 + 9: dam = spell_RF4_BREATH(GF_ELEC, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_ELEC */ + case 96 + 10: dam = spell_RF4_BREATH(GF_FIRE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_FIRE */ + case 96 + 11: dam = spell_RF4_BREATH(GF_COLD, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_COLD */ + case 96 + 12: dam = spell_RF4_BREATH(GF_POIS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_POIS */ + case 96 + 13: dam = spell_RF4_BREATH(GF_NETHER, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_NETH */ + case 96 + 14: dam = spell_RF4_BREATH(GF_LITE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_LITE */ + case 96 + 15: dam = spell_RF4_BREATH(GF_DARK, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_DARK */ + case 96 + 16: dam = spell_RF4_BREATH(GF_CONFUSION, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_CONF */ + case 96 + 17: dam = spell_RF4_BREATH(GF_SOUND, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_SOUN */ + case 96 + 18: dam = spell_RF4_BREATH(GF_CHAOS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_CHAO */ + case 96 + 19: dam = spell_RF4_BREATH(GF_DISENCHANT, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_DISE */ + case 96 + 20: dam = spell_RF4_BREATH(GF_NEXUS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_NEXU */ + case 96 + 21: dam = spell_RF4_BREATH(GF_TIME, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_TIME */ + case 96 + 22: dam = spell_RF4_BREATH(GF_INERTIA, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_INER */ + case 96 + 23: dam = spell_RF4_BREATH(GF_GRAVITY, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_GRAV */ + case 96 + 24: dam = spell_RF4_BREATH(GF_SHARDS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_SHAR */ + case 96 + 25: dam = spell_RF4_BREATH(GF_PLASMA, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_PLAS */ + case 96 + 26: dam = spell_RF4_BREATH(GF_FORCE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_WALL */ + case 96 + 27: dam = spell_RF4_BREATH(GF_MANA, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_MANA */ + case 96 + 28: dam = spell_RF4_BA_NUKE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BA_NUKE */ + case 96 + 29: dam = spell_RF4_BREATH(GF_NUKE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_NUKE */ + case 96 + 30: dam = spell_RF4_BA_CHAO(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BA_CHAO */ + case 96 + 31: dam = spell_RF4_BREATH(GF_DISINTEGRATE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_BR_DISI */ + case 128 + 0: dam = spell_RF5_BA_ACID(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_ACID */ + case 128 + 1: dam = spell_RF5_BA_ELEC(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_ELEC */ + case 128 + 2: dam = spell_RF5_BA_FIRE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_FIRE */ + case 128 + 3: dam = spell_RF5_BA_COLD(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_COLD */ + case 128 + 4: dam = spell_RF5_BA_POIS(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_POIS */ + case 128 + 5: dam = spell_RF5_BA_NETH(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_NETH */ + case 128 + 6: dam = spell_RF5_BA_WATE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_WATE */ + case 128 + 7: dam = spell_RF5_BA_MANA(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_MANA */ + case 128 + 8: dam = spell_RF5_BA_DARK(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_DARK */ + case 128 + 9: dam = spell_RF5_DRAIN_MANA(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_DRAIN_MANA */ + case 128 + 10: dam = spell_RF5_MIND_BLAST(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_MIND_BLAST */ + case 128 + 11: dam = spell_RF5_BRAIN_SMASH(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BRAIN_SMASH */ + case 128 + 12: dam = spell_RF5_CAUSE_1(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_CAUSE_1 */ + case 128 + 13: dam = spell_RF5_CAUSE_2(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_CAUSE_2 */ + case 128 + 14: dam = spell_RF5_CAUSE_3(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_CAUSE_3 */ + case 128 + 15: dam = spell_RF5_CAUSE_4(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_CAUSE_4 */ + case 128 + 16: dam = spell_RF5_BO_ACID(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_ACID */ + case 128 + 17: dam = spell_RF5_BO_ELEC(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_ELEC */ + case 128 + 18: dam = spell_RF5_BO_FIRE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_FIRE */ + case 128 + 19: dam = spell_RF5_BO_COLD(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_COLD */ + case 128 + 20: dam = spell_RF5_BA_LITE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BA_LITE */ + case 128 + 21: dam = spell_RF5_BO_NETH(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_NETH */ + case 128 + 22: dam = spell_RF5_BO_WATE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_WATE */ + case 128 + 23: dam = spell_RF5_BO_MANA(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_MANA */ + case 128 + 24: dam = spell_RF5_BO_PLAS(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_PLAS */ + case 128 + 25: dam = spell_RF5_BO_ICEE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BO_ICEE */ + case 128 + 26: dam = spell_RF5_MISSILE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_MISSILE */ /* RF5_SCARE */ case 128+27: diff --git a/src/mspells4.c b/src/mspells4.c index 978683bc8..91e64d602 100644 --- a/src/mspells4.c +++ b/src/mspells4.c @@ -1,8 +1,7 @@ #include "angband.h" -cptr monster_name(int m_idx) +char* monster_name(int m_idx, char* m_name) { - static char m_name[80]; monster_type *m_ptr = &m_list[m_idx]; monster_desc(m_name, m_ptr, 0x00); return m_name; @@ -41,197 +40,175 @@ int monster_level_idx(int m_idx) return rlev; } -void MP_spell_RF4_SHRIEK(int m_idx) +bool monster_is_powerful(int m_idx) { - cptr m_name = monster_name(m_idx); - disturb(1, 1); - msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name); - aggravate_monsters(m_idx); + monster_type *m_ptr = &m_list[m_idx]; + monster_race *r_ptr = &r_info[m_ptr->r_idx]; + return (r_ptr->flags2 & RF2_POWERFUL); } -void MM_spell_RF4_SHRIEK(int m_idx, int t_idx) +void monspell_message(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int TARGET_TYPE) { - 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_m = see_monster(m_idx); - if (known) - { - if (see_m) - { - msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."), m_name, t_name); - } - else - { - mon_fight = TRUE; - } - } - (void)set_monster_csleep(t_idx, 0); -} + bool see_either = see_monster(m_idx) || see_monster(t_idx); + bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER); + bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); -void MP_spell_RF4_DISPEL(int m_idx) -{ - cptr m_name = monster_name(m_idx); - disturb(1, 1); + + if (mon_to_player || (mon_to_mon && known && see_either)) + disturb(1, 1); if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); + { + if (mon_to_player || (mon_to_mon && known && see_either)) + msg_format(msg1, m_name); + } else - msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name); - - dispel_player(); - if (p_ptr->riding) dispel_monster_status(p_ptr->riding); - - if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON)) - msg_print(_("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª", "")); - - learn_spell(MS_DISPEL); -} - -void MM_spell_RF4_DISPEL(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_m = see_monster(m_idx); - if (known) { - if (see_m) + if (mon_to_player) { - msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", - "%^s invokes a dispel magic at %s."), m_name, t_name); + msg_format(msg2, m_name); } - else + else if (mon_to_mon && known && see_either) { - mon_fight = TRUE; + msg_format(msg3, m_name, t_name); } } - if (t_idx == p_ptr->riding) dispel_player(); - dispel_monster_status(t_idx); + if (mon_to_mon && known && !see_either) + mon_fight = TRUE; } -int spell_RF4_ROCKET(int y, int x, int m_idx, int TARGET_TYPE) +void spell_RF4_SHRIEK(int m_idx, int t_idx, int TARGET_TYPE) { - int dam; - monster_type *m_ptr = &m_list[m_idx]; + bool known = monster_near_player(m_idx, t_idx); + bool see_m = see_monster(m_idx); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); - 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) + if (TARGET_TYPE == MONSTER_TO_MONSTER) { - update_smart_learn(m_idx, DRS_SHARD); + if (known) + { + if (see_m) + { + msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."), m_name, t_name); + } + else + { + mon_fight = TRUE; + } + } + (void)set_monster_csleep(t_idx, 0); + } + else if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + disturb(1, 1); + msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name); + aggravate_monsters(m_idx); } - return dam; } -int MP_spell_RF4_ROCKET(int y, int x, int m_idx) +void spell_RF4_DISPEL(int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(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_RF4_ROCKET(y, x, m_idx, MONSTER_TO_PLAYER); -} + bool known = monster_near_player(m_idx, t_idx); + bool see_m = see_monster(m_idx); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); -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); - bool known = monster_near_player(m_idx, t_idx); - bool see_either = see_monster(m_idx) || see_monster(t_idx); - if (known) + if (TARGET_TYPE == MONSTER_TO_MONSTER) { - if (see_either) + if (known) { - disturb(1, 1); - - if (p_ptr->blind) + if (see_m) { - msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name); + msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", + "%^s invokes a dispel magic at %s."), m_name, t_name); } else { - msg_format(_("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."), m_name, t_name); + mon_fight = TRUE; } } + + if (t_idx == p_ptr->riding) dispel_player(); + dispel_monster_status(t_idx); + } + else if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + disturb(1, 1); + + if (p_ptr->blind) + msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); else - { - mon_fight = TRUE; - } + msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name); + + dispel_player(); + if (p_ptr->riding) dispel_monster_status(p_ptr->riding); + + if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON)) + msg_print(_("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª", "")); + + learn_spell(MS_DISPEL); } - return spell_RF4_ROCKET(y, x, m_idx, MONSTER_TO_MONSTER); } -int spell_RF4_SHOOT(int y, int x, int m_idx, int TARGET_TYPE) +int spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { int dam; monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - 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); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), + _("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."), + _("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."), + TARGET_TYPE); + 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_SHOOT(int y, int x, int m_idx) +int spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx,int TARGET_TYPE) { - 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); + int dam; + monster_type *m_ptr = &m_list[m_idx]; + monster_race *r_ptr = &r_info[m_ptr->r_idx]; + + monspell_message(m_idx, t_idx, + _("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), + _("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."), + _("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow at %s."), + TARGET_TYPE); - return spell_RF4_SHOOT(y, x, m_idx, MONSTER_TO_PLAYER); -} + 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); -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); + return dam; } 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); + bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER); + bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); switch (GF_TYPE) { @@ -371,7 +348,9 @@ int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET break; } - disturb(1, 1); + if (mon_to_player || (mon_to_mon && known && see_either)) + disturb(1, 1); + if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND) { msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'")); @@ -382,104 +361,85 @@ int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET } 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); + if (mon_to_player || (mon_to_mon && known && see_either)) + msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name); } else { - if (TARGET_TYPE == MONSTER_TO_PLAYER) + if (mon_to_player) { msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s); } - else if ((TARGET_TYPE == MONSTER_TO_MONSTER) && known && see_either) + else if (mon_to_mon && 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)); } } - if (known && !see_either) + if (mon_to_mon && 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) + if (smart_learn && mon_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); + return dam; } -int spell_RF4_BA_CHAO(int y, int x, int m_idx) +int spell_RF4_BA_NUKE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; + int dam; int rlev = monster_level_idx(m_idx); - int dam; - disturb(1, 1); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."), + _("%^s¤¬%s¤ËÊü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation at %s."), + TARGET_TYPE); - if (p_ptr->blind) - msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), m_name); - else - msg_format(_("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."), m_name); - - dam = ((r_ptr->flags2 & RF2_POWERFUL) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10); + dam = (rlev + damroll(10, 6)) * (monster_is_powerful(m_idx) ? 2 : 1); + breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_POIS); - 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; } -int spell_RF4_BA_NUKE(int y, int x, int m_idx) +int spell_RF4_BA_CHAO(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."), m_name); - - dam = (rlev + damroll(10, 6)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); + monspell_message(m_idx, t_idx, + _("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), + _("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."), + _("%^s¤¬%s¤Ë½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes raw Logrus upon %s."), + TARGET_TYPE); + + dam = (monster_is_powerful(m_idx) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10); + + breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_CHAOS); - 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; } -int spell_RF5_BA_ACID(int y, int x, int m_idx) +int spell_RF5_BA_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam, rad; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."), m_name); - - if (r_ptr->flags2 & RF2_POWERFUL) + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", + "%^s casts an acid ball at %s."), + TARGET_TYPE); + + if (monster_is_powerful(m_idx)) { rad = 4; dam = (rlev * 4) + 50 + damroll(10, 10); @@ -489,27 +449,27 @@ 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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_ACID); + + breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_ACID); + return dam; } -int spell_RF5_BA_ELEC(int y, int x, int m_idx) +int spell_RF5_BA_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam, rad; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", + "%^s casts a lightning ball at %s."), + TARGET_TYPE); - if (r_ptr->flags2 & RF2_POWERFUL) + if (monster_is_powerful(m_idx)) { rad = 4; dam = (rlev * 4) + 50 + damroll(10, 10); @@ -519,37 +479,39 @@ 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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_ELEC); + + breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_ELEC); + return dam; } -int spell_RF5_BA_FIRE(int y, int x, int m_idx) +int spell_RF5_BA_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); + int dam, rad; monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; int rlev = monster_level_idx(m_idx); - int dam, rad; - disturb(1, 1); if (m_ptr->r_idx == MON_ROLENTO) { - if (p_ptr->blind) - msg_format(_("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."), m_name); - else - msg_format(_("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), m_name); + monspell_message(m_idx, t_idx, + _("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."), + _("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), + _("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), + TARGET_TYPE); } else { - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", + "%^s casts a fire ball at %s."), + TARGET_TYPE); } - if (r_ptr->flags2 & RF2_POWERFUL) + if (monster_is_powerful(m_idx)) { rad = 4; dam = (rlev * 4) + 50 + damroll(10, 10); @@ -559,27 +521,27 @@ 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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_FIRE); + + breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_FIRE); + return dam; } -int spell_RF5_BA_COLD(int y, int x, int m_idx) +int spell_RF5_BA_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam, rad; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", + "%^s casts a frost ball at %s."), + TARGET_TYPE); - if (r_ptr->flags2 & RF2_POWERFUL) + if (monster_is_powerful(m_idx)) { rad = 4; dam = (rlev * 4) + 50 + damroll(10, 10); @@ -589,468 +551,521 @@ 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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_COLD); + + breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_COLD); + return dam; } -int spell_RF5_BA_POIS(int y, int x, int m_idx) + +int spell_RF5_BA_POIS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬°­½­±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬°­½­±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ°­½­±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud at %s."), + TARGET_TYPE); + + dam = damroll(12, 2) * (monster_is_powerful(m_idx) ? 2 : 1); + breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_POIS); return dam; } -int spell_RF5_BA_NETH(int y, int x, int m_idx) +int spell_RF5_BA_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name); + int rlev = monster_level_idx(m_idx); + + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball at %s."), + TARGET_TYPE); + + dam = 50 + damroll(10, 10) + (rlev * (monster_is_powerful(m_idx) ? 2 : 1)); + breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_NETH); - 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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_NETH); return dam; } -int spell_RF5_BA_WATE(int y, int x, int m_idx) +int spell_RF5_BA_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); + bool known = monster_near_player(m_idx, t_idx); + bool see_either = see_monster(m_idx) || see_monster(t_idx); + bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER); + bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER); + char t_name[80]; + monster_name(t_idx, t_name); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."), m_name); - msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤­¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool.")); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."), + _("%^s¤¬%s¤ËÂФ·¤Æή¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly at %s."), + TARGET_TYPE); + + if (mon_to_player) + { + msg_format(_("¤¢¤Ê¤¿¤Ï±²´¬¤­¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool.")); + } + else if (mon_to_mon && known && see_either && !p_ptr->blind) + { + msg_format(_("%^s¤Ï±²´¬¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "%^s is engulfed in a whirlpool."), t_name); + } - 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, MONSTER_TO_PLAYER); + dam = (monster_is_powerful(m_idx) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50; + breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, TARGET_TYPE); return dam; } -int spell_RF5_BA_MANA(int y, int x, int m_idx) + +int spell_RF5_BA_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); - else - msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name); + int rlev = monster_level_idx(m_idx); + + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), + _("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), + _("%^s¤¬%s¤ËÂФ·¤ÆËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm upon %s."), + TARGET_TYPE); dam = (rlev * 4) + 50 + damroll(10, 10); - breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, MONSTER_TO_PLAYER); + breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, TARGET_TYPE); return dam; } -int spell_RF5_BA_DARK(int y, int x, int m_idx) +int spell_RF5_BA_DARK(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); - else - msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), + _("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), + _("%^s¤¬%s¤ËÂФ·¤Æ°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm upon %s."), + TARGET_TYPE); dam = (rlev * 4) + 50 + damroll(10, 10); - breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_DARK); + breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_DARK); + return dam; } -int spell_RF5_DRAIN_MANA(int y, int x, int m_idx) +int spell_RF5_DRAIN_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); + - dam = (randint1(rlev) / 2) + 1; - breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_MANA); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + disturb(1, 1); + } + else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx)) + { + /* Basic message */ + msg_format(_("%^s¤ÏÀº¿À¥¨¥Í¥ë¥®¡¼¤ò%s¤«¤éµÛ¤¤¤È¤Ã¤¿¡£", "%^s draws psychic energy from %s."), m_name, t_name); + } + + dam = ((randint1(rlev) / 2) + 1); + breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_MANA); + return dam; } -int spell_RF5_MIND_BLAST(int y, int x, int m_idx) +int spell_RF5_MIND_BLAST(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; bool seen = (!p_ptr->blind && m_ptr->ml); int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (!seen) - msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind.")); - else - msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); + + + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + disturb(1, 1); + if (!seen) + msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind.")); + else + msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name); + } + else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx)) + { + msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name); + } dam = damroll(7, 7); - breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, MONSTER_TO_PLAYER); + breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, TARGET_TYPE); return dam; } -int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx) +int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; bool seen = (!p_ptr->blind && m_ptr->ml); int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (!seen) - msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind.")); - else - msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); + + + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + disturb(1, 1); + if (!seen) + msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind.")); + else + msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name); + } + else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx)) + { + msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name); + } dam = damroll(12, 12); - breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, MONSTER_TO_PLAYER); + breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, TARGET_TYPE); return dam; } -int spell_RF5_CAUSE_1(int y, int x, int m_idx) +void spell_RF5_CAUSE(int GF_TYPE, int dam, int y, int x, int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int MS_TYPE, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); - int dam; - disturb(1, 1); + char m_name[80], t_name[80]; + monster_name(m_idx, m_name); + monster_name(t_idx, t_name); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - 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, MONSTER_TO_PLAYER); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + disturb(1, 1); + if (p_ptr->blind) + msg_format(msg1, m_name); + else + msg_format(msg2, m_name); + } + else if (TARGET_TYPE == MONSTER_TO_MONSTER) + { + if (see_monster(m_idx)) + { + msg_format(msg3, m_name, t_name); + } + else + { + mon_fight = TRUE; + } + } + breath(y, x, m_idx, GF_TYPE, dam, 0, FALSE, MS_TYPE, TARGET_TYPE); +} + +int spell_RF5_CAUSE_1(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) +{ + cptr msg1, msg2, msg3; + int dam = damroll(3, 8); + + msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."); + msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."); + msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¼ö¤¤¤ò¤«¤±¤¿¡£", "%^s points at %s and curses."); + + spell_RF5_CAUSE(GF_CAUSE_1, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_1, TARGET_TYPE); return dam; } -int spell_RF5_CAUSE_2(int y, int x, int m_idx) +int spell_RF5_CAUSE_2(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); - int rlev = monster_level_idx(m_idx); - int dam; - disturb(1, 1); + cptr msg1, msg2, msg3; + int dam = damroll(8, 8); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name); + msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."); + msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."); + msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤¤¤ò¤«¤±¤¿¡£", "%^s points at %s and curses horribly."); - dam = damroll(8, 8); - breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, MONSTER_TO_PLAYER); + spell_RF5_CAUSE(GF_CAUSE_2, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_2, TARGET_TYPE); return dam; } -int spell_RF5_CAUSE_3(int y, int x, int m_idx) +int spell_RF5_CAUSE_3(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); - int rlev = monster_level_idx(m_idx); - int dam; - disturb(1, 1); + cptr msg1, msg2, msg3; + int dam = damroll(10, 15); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly."), m_name); - else - msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name); + msg1 = _("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly."); + msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"); + msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¡¢¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at %s, incanting terribly!"); - dam = damroll(10, 15); - breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, MONSTER_TO_PLAYER); + spell_RF5_CAUSE(GF_CAUSE_3, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_3, TARGET_TYPE); return dam; } -int spell_RF5_CAUSE_4(int y, int x, int m_idx) +int spell_RF5_CAUSE_4(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); - int rlev = monster_level_idx(m_idx); - int dam; - disturb(1, 1); + cptr msg1, msg2, msg3; + int dam = damroll(15, 15); - if (p_ptr->blind) - msg_format(_("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'"), m_name); - else - msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", - "%^s points at you, screaming the word DIE!"), m_name); + msg1 = _("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'"); + msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s points at you, screaming the word DIE!"); + msg3 = _("%^s¤¬%s¤ÎÈ빦¤òÆͤ¤¤Æ¡¢¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s points at %s, screaming the word, 'DIE!'"); - dam = damroll(15, 15); - breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, MONSTER_TO_PLAYER); + spell_RF5_CAUSE(GF_CAUSE_4, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_4, TARGET_TYPE); return dam; } -int spell_RF5_BO_ACID(int y, int x, int m_idx) +int spell_RF5_BO_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), + _("%s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid bolt at %s."), + TARGET_TYPE); - dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - 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); + dam = (damroll(7, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1); + bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_ACID); + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } -int spell_RF5_BO_ELEC(int y, int x, int m_idx) +int spell_RF5_BO_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt at %s."), + TARGET_TYPE); - dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - 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); + dam = (damroll(4, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1); + bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_ELEC); + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } -int spell_RF5_BO_FIRE(int y, int x, int m_idx) +int spell_RF5_BO_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt at %s."), + TARGET_TYPE); - dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - 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); + dam = (damroll(9, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1); + bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_FIRE); + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } -int spell_RF5_BO_COLD(int y, int x, int m_idx) +int spell_RF5_BO_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt at %s."), + TARGET_TYPE); - dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1); - 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); + dam = (damroll(6, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1); + bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_COLD); + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } - -int spell_RF5_BA_LITE(int y, int x, int m_idx) +int spell_RF5_BA_LITE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - cptr m_name = monster_name(m_idx); - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name); - else - msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), + _("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), + _("%^s¤¬%s¤ËÂФ·¤Æ¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst upon %s."), + TARGET_TYPE); dam = (rlev * 4) + 50 + damroll(10, 10); - breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_LITE); + breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + update_smart_learn(m_idx, DRS_LITE); + return dam; } -int spell_RF5_BO_NETH(int y, int x, int m_idx) +int spell_RF5_BO_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt at %s."), + TARGET_TYPE); - 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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_NETH); - update_smart_learn(m_idx, DRS_REFLECT); + dam = 30 + damroll(5, 5) + (rlev * 4) / (monster_is_powerful(m_idx) ? 2 : 3); + bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_NETH); + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } -int spell_RF5_BO_WATE(int y, int x, int m_idx) +int spell_RF5_BO_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); + int rlev = monster_level_idx(m_idx); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt at %s."), + TARGET_TYPE); - dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3)); - bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_REFLECT); + dam = damroll(10, 10) + (rlev * 3 / (monster_is_powerful(m_idx) ? 2 : 3)); + bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } -int spell_RF5_BO_MANA(int y, int x, int m_idx) +int spell_RF5_BO_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), m_name); + int rlev = monster_level_idx(m_idx); + + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt at %s."), + TARGET_TYPE); dam = randint1(rlev * 7 / 2) + 50; - bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_REFLECT); + bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } -int spell_RF5_BO_PLAS(int y, int x, int m_idx) +int spell_RF5_BO_PLAS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); + int rlev = monster_level_idx(m_idx); - else - msg_format(_("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."), m_name); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt at %s."), + TARGET_TYPE); - 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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_REFLECT); + dam = 10 + damroll(8, 7) + (rlev * 3 / (monster_is_powerful(m_idx) ? 2 : 3)); + bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } -int spell_RF5_BO_ICEE(int y, int x, int m_idx) +int spell_RF5_BO_ICEE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."), m_name); + int rlev = monster_level_idx(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, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_COLD); - update_smart_learn(m_idx, DRS_REFLECT); + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt at %s."), + TARGET_TYPE); + + dam = damroll(6, 6) + (rlev * 3 / (monster_is_powerful(m_idx) ? 2 : 3)); + bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_COLD); + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } - -int spell_RF5_MISSILE(int y, int x, int m_idx) +int spell_RF5_MISSILE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); - int rlev = monster_level_idx(m_idx); int dam; - disturb(1, 1); - if (p_ptr->blind) - msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); - else - msg_format(_("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."), m_name); + int rlev = monster_level_idx(m_idx); + + monspell_message(m_idx, t_idx, + _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), + _("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."), + _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile at %s."), + TARGET_TYPE); dam = damroll(2, 6) + (rlev / 3); - bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, MONSTER_TO_PLAYER); - update_smart_learn(m_idx, DRS_REFLECT); + bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, TARGET_TYPE); + if (TARGET_TYPE == MONSTER_TO_PLAYER) + { + update_smart_learn(m_idx, DRS_REFLECT); + } return dam; } void spell_RF5_SCARE(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); + if (p_ptr->blind) msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢¶²¤í¤·¤²¤Ê²»¤¬Ê¹¤³¤¨¤¿¡£", "%^s mumbles, and you hear scary noises."), m_name); else @@ -1074,8 +1089,10 @@ void spell_RF5_SCARE(int y, int x, int m_idx) void spell_RF5_BLIND(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1102,8 +1119,10 @@ void spell_RF5_BLIND(int y, int x, int m_idx) void spell_RF5_CONF(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1131,8 +1150,10 @@ void spell_RF5_CONF(int y, int x, int m_idx) void spell_RF5_SLOW(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª", @@ -1156,8 +1177,9 @@ void spell_RF5_SLOW(int y, int x, int m_idx) void spell_RF5_HOLD(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); if (p_ptr->blind) @@ -1183,8 +1205,9 @@ void spell_RF5_HOLD(int y, int x, int m_idx) void spell_RF6_HASTE(int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); if (p_ptr->blind) { @@ -1204,9 +1227,10 @@ void spell_RF6_HASTE(int m_idx) int spell_RF6_HAND_DOOM(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; int dam; + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); msg_format(_("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"), m_name); dam = (((s32b)((40 + randint1(20)) * (p_ptr->chp))) / 100); @@ -1216,10 +1240,12 @@ int spell_RF6_HAND_DOOM(int y, int x, int m_idx) void spell_RF6_HEAL(int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; int rlev = monster_level_idx(m_idx); bool seen = (!p_ptr->blind && m_ptr->ml); + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); /* Message */ @@ -1270,9 +1296,10 @@ void spell_RF6_HEAL(int m_idx) } void spell_RF6_INVULNER(int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; bool seen = (!p_ptr->blind && m_ptr->ml); + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); /* Message */ @@ -1286,7 +1313,9 @@ void spell_RF6_INVULNER(int m_idx) void spell_RF6_BLINK(int m_idx) { - cptr m_name = monster_name(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (teleport_barrier(m_idx)) { @@ -1302,9 +1331,11 @@ void spell_RF6_BLINK(int m_idx) } void spell_RF6_TPORT(int m_idx) -{ - cptr m_name = monster_name(m_idx); - disturb(1, 1); +{ + char m_name[80]; + monster_name(m_idx, m_name); + + disturb(1, 1); if (teleport_barrier(m_idx)) { msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£", @@ -1319,9 +1350,11 @@ void spell_RF6_TPORT(int m_idx) int spell_RF6_WORLD(int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; int who = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (m_ptr->r_idx == MON_DIO) who = 1; else if (m_ptr->r_idx == MON_WONG) who = 3; @@ -1331,12 +1364,13 @@ int spell_RF6_WORLD(int m_idx) int spell_RF6_SPECIAL(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; u32b mode = 0L; bool direct = player_bold(y, x); int k, dam, count=0; + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); switch (m_ptr->r_idx) @@ -1481,8 +1515,10 @@ int spell_RF6_SPECIAL(int y, int x, int m_idx) void spell_RF6_TELE_TO(int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò°ú¤­Ìᤷ¤¿¡£", "%^s commands you to return."), m_name); @@ -1492,7 +1528,8 @@ void spell_RF6_TELE_TO(int m_idx) void spell_RF6_TELE_AWAY(int m_idx) { - cptr m_name = monster_name(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); msg_format(_("%^s¤Ë¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤é¤ì¤¿¡£", "%^s teleports you away."), m_name); @@ -1505,8 +1542,10 @@ void spell_RF6_TELE_AWAY(int m_idx) void spell_RF6_TELE_LEVEL(int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1532,12 +1571,13 @@ void spell_RF6_TELE_LEVEL(int m_idx) int spell_RF6_PSY_SPEAR(int y, int x, int m_idx) { - bool learnable = spell_learnable(m_idx); - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; - int rlev = monster_level_idx(m_idx); + int rlev = monster_level_idx(m_idx); int dam; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name); @@ -1551,10 +1591,11 @@ int spell_RF6_PSY_SPEAR(int y, int x, int m_idx) void spell_RF6_DARKNESS(int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; bool can_use_lite_area = FALSE; + char m_name[80]; + monster_name(m_idx, m_name); if ((p_ptr->pclass == CLASS_NINJA) && !(r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) && @@ -1582,7 +1623,8 @@ void spell_RF6_DARKNESS(int m_idx) void spell_RF6_TRAPS(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); if (p_ptr->blind) @@ -1598,8 +1640,10 @@ void spell_RF6_TRAPS(int y, int x, int m_idx) void spell_RF6_FORGET(int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Îµ­²±¤ò¾Ãµî¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£", @@ -1618,8 +1662,10 @@ void spell_RF6_FORGET(int m_idx) void spell_RF6_RAISE_DEAD(int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1633,12 +1679,14 @@ void spell_RF6_RAISE_DEAD(int m_idx) void spell_RF6_S_KIN(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; int rlev = monster_level_idx(m_idx); int count = 0, k; u32b mode = 0L; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT) { @@ -1744,8 +1792,10 @@ void spell_RF6_S_KIN(int y, int x, int m_idx) void spell_RF6_S_CYBER(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1762,9 +1812,11 @@ void spell_RF6_S_CYBER(int y, int x, int m_idx) void spell_RF6_S_MONSTER(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1782,9 +1834,11 @@ void spell_RF6_S_MONSTER(int y, int x, int m_idx) void spell_RF6_S_MONSTERS(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1803,9 +1857,11 @@ void spell_RF6_S_MONSTERS(int y, int x, int m_idx) void spell_RF6_S_ANT(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1824,9 +1880,11 @@ void spell_RF6_S_ANT(int y, int x, int m_idx) void spell_RF6_S_SPIDER(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1845,9 +1903,11 @@ void spell_RF6_S_SPIDER(int y, int x, int m_idx) void spell_RF6_S_HOUND(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1866,9 +1926,11 @@ void spell_RF6_S_HOUND(int y, int x, int m_idx) void spell_RF6_S_HYDRA(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1886,12 +1948,13 @@ void spell_RF6_S_HYDRA(int y, int x, int m_idx) void spell_RF6_S_ANGEL(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); monster_type *m_ptr = &m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; int rlev = monster_level_idx(m_idx); int k, count = 0; int num = 1; + char m_name[80]; + monster_name(m_idx, m_name); disturb(1, 1); @@ -1924,9 +1987,11 @@ void spell_RF6_S_ANGEL(int y, int x, int m_idx) void spell_RF6_S_DEMON(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1946,9 +2011,11 @@ void spell_RF6_S_DEMON(int y, int x, int m_idx) void spell_RF6_S_UNDEAD(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1968,9 +2035,11 @@ void spell_RF6_S_UNDEAD(int y, int x, int m_idx) void spell_RF6_S_DRAGON(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); int rlev = monster_level_idx(m_idx); int k, count = 0; + char m_name[80]; + monster_name(m_idx, m_name); + disturb(1, 1); if (p_ptr->blind) @@ -1988,7 +2057,7 @@ void spell_RF6_S_DRAGON(int y, int x, int m_idx) void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); + char* m_name = monster_name(m_idx, ""); monster_type *m_ptr = &m_list[m_idx]; monster_race *r_ptr = &r_info[m_ptr->r_idx]; int rlev = monster_level_idx(m_idx); @@ -2064,7 +2133,7 @@ void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx) void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); + char* m_name = monster_name(m_idx, ""); int rlev = monster_level_idx(m_idx); int k, count = 0; disturb(1, 1); @@ -2087,7 +2156,7 @@ void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx) void spell_RF6_S_AMBERITES(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); + char* m_name = monster_name(m_idx, ""); int rlev = monster_level_idx(m_idx); int k, count = 0; disturb(1, 1); @@ -2109,7 +2178,7 @@ void spell_RF6_S_AMBERITES(int y, int x, int m_idx) void spell_RF6_S_UNIQUE(int y, int x, int m_idx) { - cptr m_name = monster_name(m_idx); + char* m_name = monster_name(m_idx, ""); monster_type *m_ptr = &m_list[m_idx]; int rlev = monster_level_idx(m_idx); int k, count = 0; -- 2.11.0