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:
#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;
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)
{
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'"));
}
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);
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);
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);
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);
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
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)
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)
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¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª",
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)
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)
{
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);
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 */
}
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 */
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))
{
}
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¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
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;
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)
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);
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);
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)
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);
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)) &&
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)
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¤¬¤¢¤Ê¤¿¤Îµ²±¤ò¾Ãµî¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£",
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)
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)
{
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)
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)
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)
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)
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)
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)
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)
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);
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)
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)
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)
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);
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);
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);
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;