* @param dam ものまねの威力
* @return なし
*/
-static void mane_info(char *p, int power, int dam)
+static void mane_info(char *p, int power, HIT_POINT dam)
{
int plev = p_ptr->lev;
-#ifdef JP
- cptr s_dam = "損傷:";
- cptr s_dur = "期間:";
- cptr s_range = "範囲:";
- cptr s_heal = "回復:";
-#else
- cptr s_dam = "dam ";
- cptr s_dur = "dur ";
- cptr s_range = "range ";
- cptr s_heal = "heal ";
-#endif
+ cptr s_dam = _("損傷:", "dam ");
+ cptr s_dur = _("期間:", "dur ");
+ cptr s_range = _("範囲:", "range ");
+ cptr s_heal = _("回復:", "heal ");
strcpy(p, "");
if ((power > 2 && power < 41) || (power > 41 && power < 59) || (power == 75))
- sprintf(p, " %s%d", s_dam, dam);
+ sprintf(p, " %s%d", s_dam, (int)dam);
else
{
switch (power)
/* Reduce failure rate by INT/WIS adjustment */
chance -= 3 * (adj_mag_stat[p_ptr->stat_ind[spell.use_stat]] + adj_mag_stat[p_ptr->stat_ind[A_DEX]] - 2) / 2;
- if (spell.manedam) chance = chance * p_ptr->mane_dam[i] / spell.manedam;
+ if (spell.manedam) chance = chance * (baigaesi ? p_ptr->mane_dam[i] * 2 : p_ptr->mane_dam[i]) / spell.manedam;
chance += p_ptr->to_m_chance;
/* spell code */
switch (spell)
{
+
case MS_SHRIEK:
msg_print(_("かん高い金切り声をあげた。", "You make a high pitched shriek."));
aggravate_monsters(0);
break;
+
case MS_XXX1:
break;
+
case MS_DISPEL:
{
MONSTER_IDX m_idx;
dispel_monster_status(m_idx);
break;
}
+
case MS_ROCKET:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("ロケットを発射した。", "You fire a rocket."));
-
fire_rocket(GF_ROCKET, dir, damage, 2);
break;
+
case MS_SHOOT:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("矢を放った。", "You fire an arrow."));
-
fire_bolt(GF_ARROW, dir, damage);
break;
+
case MS_XXX2:
break;
+
case MS_XXX3:
break;
+
case MS_XXX4:
break;
+
case MS_BR_ACID:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("酸のブレスを吐いた。", "You breathe acid."));
-
- fire_ball(GF_ACID, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_ACID, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_ELEC:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("稲妻のブレスを吐いた。", "You breathe lightning."));
-
- fire_ball(GF_ELEC, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_ELEC, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_FIRE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("火炎のブレスを吐いた。", "You breathe fire."));
-
- fire_ball(GF_FIRE, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_FIRE, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_COLD:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("冷気のブレスを吐いた。", "You breathe frost."));
-
- fire_ball(GF_COLD, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_COLD, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_POIS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("ガスのブレスを吐いた。", "You breathe gas."));
-
- fire_ball(GF_POIS, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_POIS, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_NETHER:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("地獄のブレスを吐いた。", "You breathe nether."));
-
- fire_ball(GF_NETHER, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_NETHER, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_LITE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("閃光のブレスを吐いた。", "You breathe light."));
-
- fire_ball(GF_LITE, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_LITE, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_DARK:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("暗黒のブレスを吐いた。", "You breathe darkness."));
-
- fire_ball(GF_DARK, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_DARK, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_CONF:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("混乱のブレスを吐いた。", "You breathe confusion."));
-
- fire_ball(GF_CONFUSION, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_CONFUSION, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_SOUND:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("轟音のブレスを吐いた。", "You breathe sound."));
-
- fire_ball(GF_SOUND, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_SOUND, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_CHAOS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("カオスのブレスを吐いた。", "You breathe chaos."));
-
- fire_ball(GF_CHAOS, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_CHAOS, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_DISEN:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("劣化のブレスを吐いた。", "You breathe disenchantment."));
-
- fire_ball(GF_DISENCHANT, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_DISENCHANT, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_NEXUS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("因果混乱のブレスを吐いた。", "You breathe nexus."));
-
- fire_ball(GF_NEXUS, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_NEXUS, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_TIME:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("時間逆転のブレスを吐いた。", "You breathe time."));
-
- fire_ball(GF_TIME, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_TIME, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_INERTIA:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("遅鈍のブレスを吐いた。", "You breathe inertia."));
-
- fire_ball(GF_INERTIAL, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_INERTIAL, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_GRAVITY:
if (!get_aim_dir(&dir)) return FALSE;
- else msg_print(_("重力のブレスを吐いた。", "You breathe gravity."));
-
- fire_ball(GF_GRAVITY, dir, damage, (plev > 35 ? -3 : -2));
+ else msg_print(_("重力のブレスを吐いた。", "You breathe gravity."));
+ fire_breath(GF_GRAVITY, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_SHARDS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("破片のブレスを吐いた。", "You breathe shards."));
-
- fire_ball(GF_SHARDS, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_SHARDS, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_PLASMA:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("プラズマのブレスを吐いた。", "You breathe plasma."));
- fire_ball(GF_PLASMA, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_PLASMA, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_FORCE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("フォースのブレスを吐いた。", "You breathe force."));
- fire_ball(GF_FORCE, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_FORCE, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BR_MANA:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("魔力のブレスを吐いた。", "You breathe mana."));
- fire_ball(GF_MANA, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_MANA, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BALL_NUKE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("放射能球を放った。", "You cast a ball of radiation."));
fire_ball(GF_NUKE, dir, damage, 2);
break;
+
case MS_BR_NUKE:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("放射性廃棄物のブレスを吐いた。", "You breathe toxic waste."));
- fire_ball(GF_NUKE, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_NUKE, dir, damage, (plev > 35 ? 3 : 2));
break;
+
case MS_BALL_CHAOS:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("純ログルスを放った。", "You invoke a raw Logrus."));
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("分解のブレスを吐いた。", "You breathe disintegration."));
- fire_ball(GF_DISINTEGRATE, dir, damage, (plev > 35 ? -3 : -2));
+ fire_breath(GF_DISINTEGRATE, dir, damage, (plev > 35 ? 3 : 2));
break;
case MS_BALL_ACID:
if (!get_aim_dir(&dir)) return FALSE;
else teleport_level(target_m_idx);
break;
}
+
case MS_PSY_SPEAR:
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("光の剣を放った。", "You throw a psycho-spear."));
(void)fire_beam(GF_PSY_SPEAR, dir, damage);
break;
+
case MS_DARKNESS:
msg_print(_("暗闇の中で手を振った。", "You gesture in shadow."));
(void)unlite_area(10, 3);
break;
+
case MS_MAKE_TRAP:
if (!target_set(TARGET_KILL)) return FALSE;
msg_print(_("呪文を唱えて邪悪に微笑んだ。", "You cast a spell and cackles evilly."));