#include "angband.h"
-
-/*!
- * @brief ¥â¥ó¥¹¥¿¡¼¤¬Å¨ÂÐ¥â¥ó¥¹¥¿¡¼¤Ë¥Ö¥ì¥¹/¥Ü¡¼¥ë·¿Æü쵻ǽ¤òÊü¤Ä½èÍý /
- * Monster casts a breath (or ball) attack at another monster.
- * @param m_idx Æü쵻ǽ¤ò»È¤¦¥â¥ó¥¹¥¿¡¼¤Î»²¾ÈID
- * @param y ÌÜɸ¤ÎYºÂɸ
- * @param x ÌÜɸ¤ÎXºÂɸ
- * @param typ ¸ú²Ì°À¤ÎID
- * @param dam_hp °ÒÎÏ
- * @param rad Ⱦ·Â
- * @param breath TRUE¤Ê¤é¤Ð¥Ö¥ì¥¹ / FALSE¤Ê¤é¤Ð¥Ü¡¼¥ë
- * @param monspell Æü칶·â¤ÎID
- * @return ¤Ê¤·
- * @details
- * Pass over any monsters that may be in the way
- * Affect grids, objects, monsters, and the player
- */
-void monst_breath_monst(int m_idx, int y, int x, int typ, int dam_hp, int rad, bool breath, int monspell)
-{
- int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
- bool learnable = spell_learnable(m_idx);
-
- monster_type *m_ptr = &m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
-
- /* Determine the radius of the blast */
- if (rad < 1 && breath) rad = (r_ptr->flags2 & RF2_POWERFUL) ? 3 : 2;
-
- /* Handle breath attacks */
- if (breath) rad = 0 - rad;
-
- switch (typ)
- {
- case GF_ROCKET:
- flg |= PROJECT_STOP;
- break;
- case GF_DRAIN_MANA:
- case GF_MIND_BLAST:
- case GF_BRAIN_SMASH:
- case GF_CAUSE_1:
- case GF_CAUSE_2:
- case GF_CAUSE_3:
- case GF_CAUSE_4:
- case GF_HAND_DOOM:
- flg |= (PROJECT_HIDE | PROJECT_AIMED);
- break;
- }
-
- (void)project(m_idx, rad, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
-}
-
-
/*!
* @brief ¥â¥ó¥¹¥¿¡¼¤¬Å¨ÂÐ¥â¥ó¥¹¥¿¡¼¤Ë¥Ü¥ë¥È·¿Æü쵻ǽ¤òÊü¤Ä½èÍý /
* Monster casts a bolt at another monster
}
dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_ACID,
- dam,0, TRUE, MS_BR_ACID);
+ breath(y, x, m_idx,GF_ACID,dam, 0, TRUE, MS_BR_ACID, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_ELEC,
- dam,0, TRUE, MS_BR_ELEC);
+ breath(y, x, m_idx,GF_ELEC, dam, 0, TRUE, MS_BR_ELEC, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_FIRE,
- dam,0, TRUE, MS_BR_FIRE);
+ breath(y, x, m_idx,GF_FIRE, dam, 0, TRUE, MS_BR_FIRE, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_COLD,
- dam,0, TRUE, MS_BR_COLD);
+ breath(y, x, m_idx,GF_COLD, dam, 0, TRUE, MS_BR_COLD, SPELL_MON_TO_MON);
break;
/* RF4_BR_POIS */
}
dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_POIS,
- dam,0, TRUE, MS_BR_POIS);
+ breath(y, x, m_idx,GF_POIS, dam, 0, TRUE, MS_BR_POIS, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_NETHER,
- dam,0, TRUE, MS_BR_NETHER);
+ breath(y, x, m_idx,GF_NETHER, dam, 0, TRUE, MS_BR_NETHER, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_LITE,
- dam,0, TRUE, MS_BR_LITE);
+ breath(y, x, m_idx,GF_LITE, dam, 0, TRUE, MS_BR_LITE, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_DARK,
- dam,0, TRUE, MS_BR_DARK);
+ breath(y, x, m_idx,GF_DARK, dam, 0, TRUE, MS_BR_DARK, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_CONFUSION,
- dam,0, TRUE, MS_BR_CONF);
+ breath(y, x, m_idx,GF_CONFUSION, dam, 0, TRUE, MS_BR_CONF, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_SOUND,
- dam,0, TRUE, MS_BR_SOUND);
+ breath(y, x, m_idx,GF_SOUND, dam, 0, TRUE, MS_BR_SOUND, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_CHAOS,
- dam,0, TRUE, MS_BR_CHAOS);
+ breath(y, x, m_idx, GF_CHAOS, dam, 0, TRUE, MS_BR_CHAOS, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_DISENCHANT,
- dam,0, TRUE, MS_BR_DISEN);
+ breath(y, x, m_idx, GF_DISENCHANT, dam, 0, TRUE, MS_BR_DISEN, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_NEXUS,
- dam,0, TRUE, MS_BR_NEXUS);
+ breath(y, x, m_idx, GF_NEXUS, dam, 0, TRUE, MS_BR_NEXUS, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_TIME,
- dam,0, TRUE, MS_BR_TIME);
+ breath(y, x, m_idx, GF_TIME, dam, 0, TRUE, MS_BR_TIME, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_INERTIA,
- dam,0, TRUE, MS_BR_INERTIA);
+ breath(y, x, m_idx, GF_INERTIA, dam, 0, TRUE, MS_BR_INERTIA, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_GRAVITY,
- dam,0, TRUE, MS_BR_GRAVITY);
+ breath(y, x, m_idx, GF_GRAVITY, dam, 0, TRUE, MS_BR_GRAVITY, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_SHARDS,
- dam,0, TRUE, MS_BR_SHARDS);
+ breath(y, x, m_idx, GF_SHARDS, dam, 0, TRUE, MS_BR_SHARDS, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_PLASMA,
- dam,0, TRUE, MS_BR_PLASMA);
+ breath(y, x, m_idx,GF_PLASMA, dam, 0, TRUE, MS_BR_PLASMA, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_FORCE,
- dam,0, TRUE, MS_BR_FORCE);
+ breath(y, x, m_idx,GF_FORCE, dam, 0, TRUE, MS_BR_FORCE, SPELL_MON_TO_MON);
break;
/* RF4_BR_MANA */
}
dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_MANA,
- dam,0, TRUE, MS_BR_MANA);
+ breath(y, x, m_idx,GF_MANA, dam, 0, TRUE, MS_BR_MANA, SPELL_MON_TO_MON);
break;
}
dam = (rlev + damroll(10, 6));
- monst_breath_monst(m_idx, y, x, GF_NUKE,
- dam, 2, FALSE, MS_BALL_NUKE);
+ breath(y, x, m_idx,GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- monst_breath_monst(m_idx, y, x, GF_NUKE,
- dam,0, TRUE, MS_BR_NUKE);
+ breath(y, x, m_idx,GF_NUKE, dam, 0, TRUE, MS_BR_NUKE, SPELL_MON_TO_MON);
break;
/* RF4_BA_CHAO */
}
dam = (rlev * 2) + damroll(10, 10);
- monst_breath_monst(m_idx, y, x, GF_CHAOS,
- dam, 4, FALSE, MS_BALL_CHAOS);
+ breath(y, x, m_idx,GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, SPELL_MON_TO_MON);
break;
}
dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- monst_breath_monst(m_idx, y, x, GF_DISINTEGRATE,
- dam,0, TRUE, MS_BR_DISI);
+ breath(y, x, m_idx,GF_DISINTEGRATE, dam, 0, TRUE, MS_BR_DISI, SPELL_MON_TO_MON);
break;
/* RF5_BA_ACID */
rad = 2;
dam = (randint1(rlev * 3) + 15);
}
- monst_breath_monst(m_idx, y, x, GF_ACID, dam, rad, FALSE, MS_BALL_ACID);
+ breath(y, x, m_idx,GF_ACID, dam, rad, FALSE, MS_BALL_ACID, SPELL_MON_TO_MON);
break;
/* RF5_BA_ELEC */
rad = 2;
dam = (randint1(rlev * 3 / 2) + 8);
}
- monst_breath_monst(m_idx, y, x, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC);
+ breath(y, x, m_idx,GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, SPELL_MON_TO_MON);
break;
/* RF5_BA_FIRE */
rad = 2;
dam = (randint1(rlev * 7 / 2) + 10);
}
- monst_breath_monst(m_idx, y, x, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE);
+ breath(y, x, m_idx,GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, SPELL_MON_TO_MON);
break;
/* RF5_BA_COLD */
rad = 2;
dam = (randint1(rlev * 3 / 2) + 10);
}
- monst_breath_monst(m_idx, y, x, GF_COLD, dam, rad, FALSE, MS_BALL_COLD);
+ breath(y, x, m_idx,GF_COLD, dam, rad, FALSE, MS_BALL_COLD, SPELL_MON_TO_MON);
break;
/* RF5_BA_POIS */
}
dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- monst_breath_monst(m_idx, y, x, GF_POIS, dam, 2, FALSE, MS_BALL_POIS);
+ breath(y, x, m_idx,GF_POIS, dam, 2, FALSE, MS_BALL_POIS, SPELL_MON_TO_MON);
break;
}
dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
- monst_breath_monst(m_idx, y, x, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER);
+ breath(y, x, m_idx,GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, SPELL_MON_TO_MON);
break;
}
dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
- monst_breath_monst(m_idx, y, x, GF_WATER, dam, 4, FALSE, MS_BALL_WATER);
+ breath(y, x, m_idx,GF_WATER, dam, 4, FALSE, MS_BALL_WATER, SPELL_MON_TO_MON);
break;
}
dam = (rlev * 4) + 50 + damroll(10, 10);
- monst_breath_monst(m_idx, y, x, GF_MANA, dam, 4, FALSE, MS_BALL_MANA);
+ breath(y, x, m_idx,GF_MANA, dam, 4, FALSE, MS_BALL_MANA, SPELL_MON_TO_MON);
break;
}
dam = (rlev * 4) + 50 + damroll(10, 10);
- monst_breath_monst(m_idx, y, x, GF_DARK, dam, 4, FALSE, MS_BALL_DARK);
+ breath(y, x, m_idx,GF_DARK, dam, 4, FALSE, MS_BALL_DARK, SPELL_MON_TO_MON);
break;
}
dam = ((randint1(rlev) / 2) + 1);
- monst_breath_monst(m_idx, y, x, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA);
+ breath(y, x, m_idx,GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, SPELL_MON_TO_MON);
break;
}
dam = damroll(7, 7);
- monst_breath_monst(m_idx, y, x, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST);
+ breath(y, x, m_idx,GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, SPELL_MON_TO_MON);
break;
}
dam = damroll(12, 12);
- monst_breath_monst(m_idx, y, x, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH);
+ breath(y, x, m_idx,GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, SPELL_MON_TO_MON);
break;
}
dam = damroll(3, 8);
- monst_breath_monst(m_idx, y, x, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1);
+ breath(y, x, m_idx,GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, SPELL_MON_TO_MON);
break;
}
dam = damroll(8, 8);
- monst_breath_monst(m_idx, y, x, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2);
+ breath(y, x, m_idx,GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, SPELL_MON_TO_MON);
break;
}
dam = damroll(10, 15);
- monst_breath_monst(m_idx, y, x, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3);
+ breath(y, x, m_idx,GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, SPELL_MON_TO_MON);
break;
}
dam = damroll(15, 15);
- monst_breath_monst(m_idx, y, x, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4);
+ breath(y, x, m_idx,GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, SPELL_MON_TO_MON);
break;
}
dam = (rlev * 4) + 50 + damroll(10, 10);
- monst_breath_monst(m_idx, y, x, GF_LITE, dam, 4, FALSE, MS_STARBURST);
+ breath(y, x, m_idx,GF_LITE, dam, 4, FALSE, MS_STARBURST, SPELL_MON_TO_MON);
break;
}
dam = 20; /* Dummy power */
- monst_breath_monst(m_idx, y, x, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM);
+ breath(y, x, m_idx,GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, SPELL_MON_TO_MON);
break;
{
case RF4_ROCKET:
dam = (hp / 4) > 800 ? 800 : (hp / 4);
+ breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, SPELL_TYPE);
if (SPELL_TYPE == SPELL_MON_TO_PLAYER)
{
- breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET);
update_smart_learn(m_idx, DRS_SHARD);
}
- else if (SPELL_TYPE == SPELL_MON_TO_MON)
- {
- monst_breath_monst(m_idx, y, x, GF_ROCKET, dam, 2, FALSE, MS_ROCKET);
- }
break;
}
return dam;
msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
}
- breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type);
+ breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, SPELL_MON_TO_PLAYER);
if (smart_learn) update_smart_learn(m_idx, drs_type);
return dam;
}
dam = ((r_ptr->flags2 & RF2_POWERFUL) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10);
- breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS);
+ breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_CHAOS);
return dam;
}
dam = (rlev + damroll(10, 6)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE);
+ breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_POIS);
return dam;
}
rad = 2;
dam = (randint1(rlev * 3) + 15);
}
- breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID);
+ breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_ACID);
return dam;
}
rad = 2;
dam = (randint1(rlev * 3 / 2) + 8);
}
- breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC);
+ breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_ELEC);
return dam;
}
rad = 2;
dam = (randint1(rlev * 7 / 2) + 10);
}
- breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE);
+ breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_FIRE);
return dam;
}
rad = 2;
dam = (randint1(rlev * 3 / 2) + 10);
}
- breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD);
+ breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_COLD);
return dam;
}
msg_format(_("%^s¤¬°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), m_name);
dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
- breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS);
+ breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_POIS);
return dam;
}
msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name);
dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
- breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER);
+ breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_NETH);
return dam;
}
msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
- breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER);
+ breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, SPELL_MON_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA);
+ breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, SPELL_MON_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK);
+ breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_DARK);
return dam;
}
disturb(1, 1);
dam = (randint1(rlev) / 2) + 1;
- breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA);
+ breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_MANA);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
dam = damroll(7, 7);
- breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST);
+ breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, SPELL_MON_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name);
dam = damroll(12, 12);
- breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH);
+ breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, SPELL_MON_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."), m_name);
dam = damroll(3, 8);
- breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1);
+ breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, SPELL_MON_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name);
dam = damroll(8, 8);
- breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2);
+ breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, SPELL_MON_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name);
dam = damroll(10, 15);
- breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3);
+ breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, SPELL_MON_TO_PLAYER);
return dam;
}
"%^s points at you, screaming the word DIE!"), m_name);
dam = damroll(15, 15);
- breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4);
+ breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, SPELL_MON_TO_PLAYER);
return dam;
}
msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
- breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST);
+ breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, SPELL_MON_TO_PLAYER);
update_smart_learn(m_idx, DRS_LITE);
return dam;
}
disturb(1, 1);
msg_format(_("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"), m_name);
dam = (((s32b)((40 + randint1(20)) * (p_ptr->chp))) / 100);
- breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM);
+ breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, SPELL_MON_TO_PLAYER);
return dam;
}