}
case RBE_HURT:
{
- /* Obvious */
obvious = TRUE;
/* Hack -- Player armor reduces total damage */
msg_print(_("ザックからエネルギーが吸い取られた!", "Energy drains from your pack!"));
- /* Obvious */
obvious = TRUE;
/* Heal the monster */
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
- /* Obvious */
obvious = TRUE;
/* Saving throw (unless paralyzed) based on dex and level */
/* Occasional "blink" anyway */
blinked = TRUE;
- /* Obvious */
obvious = TRUE;
break;
inven_item_increase(i, -1);
inven_item_optimize(i);
- /* Obvious */
obvious = TRUE;
/* Blink away */
inven_item_increase(i, -1);
inven_item_optimize(i);
- /* Obvious */
obvious = TRUE;
break;
case RBE_ACID:
{
if (explode) break;
- /* Obvious */
obvious = TRUE;
msg_print(_("酸を浴びせられた!", "You are covered in acid!"));
case RBE_ELEC:
{
if (explode) break;
- /* Obvious */
obvious = TRUE;
msg_print(_("電撃を浴びせられた!", "You are struck by electricity!"));
case RBE_FIRE:
{
if (explode) break;
- /* Obvious */
obvious = TRUE;
msg_print(_("全身が炎に包まれた!", "You are enveloped in flames!"));
case RBE_COLD:
{
if (explode) break;
- /* Obvious */
obvious = TRUE;
msg_print(_("全身が冷気で覆われた!", "You are covered with frost!"));
case RBE_LOSE_STR:
{
- /* Damage (physical) */
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
-
- /* Damage (stat) */
if (do_dec_stat(A_STR)) obvious = TRUE;
break;
case RBE_LOSE_INT:
{
- /* Damage (physical) */
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
-
- /* Damage (stat) */
if (do_dec_stat(A_INT)) obvious = TRUE;
break;
case RBE_LOSE_WIS:
{
- /* Damage (physical) */
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
-
- /* Damage (stat) */
if (do_dec_stat(A_WIS)) obvious = TRUE;
break;
case RBE_LOSE_DEX:
{
- /* Damage (physical) */
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
-
- /* Damage (stat) */
if (do_dec_stat(A_DEX)) obvious = TRUE;
break;
case RBE_LOSE_CON:
{
- /* Damage (physical) */
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
-
- /* Damage (stat) */
if (do_dec_stat(A_CON)) obvious = TRUE;
break;
case RBE_LOSE_CHR:
{
- /* Damage (physical) */
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
-
- /* Damage (stat) */
if (do_dec_stat(A_CHR)) obvious = TRUE;
break;
case RBE_LOSE_ALL:
{
- /* Damage (physical) */
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
if (p_ptr->is_dead || CHECK_MULTISHADOW()) break;
case RBE_SHATTER:
{
- /* Obvious */
obvious = TRUE;
/* Hack -- Reduce damage based on the player armor class */
{
s32b d = damroll(10, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
- /* Obvious */
obvious = TRUE;
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
{
s32b d = damroll(20, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
- /* Obvious */
obvious = TRUE;
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
{
s32b d = damroll(40, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
- /* Obvious */
obvious = TRUE;
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
{
s32b d = damroll(80, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
- /* Obvious */
obvious = TRUE;
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
s32b d = damroll(60, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
bool resist_drain;
- /* Obvious */
obvious = TRUE;
get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1);
}
case RBE_DR_MANA:
{
- /* Obvious */
obvious = TRUE;
if (CHECK_MULTISHADOW())
if (!resists_tele)
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Prepare to teleport */
/* Only affect undead */
if (r_ptr->flags3 & (RF3_UNDEAD))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Learn about type */
/* Only affect evil */
if (r_ptr->flags3 & (RF3_EVIL))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Learn about type */
skipped = TRUE;
break;
}
- /* Obvious */
if (seen) obvious = TRUE;
/* Apply some fear */
/* Only affect undead */
if (r_ptr->flags3 & (RF3_UNDEAD))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Learn about type */
/* Only affect evil */
if (r_ptr->flags3 & (RF3_EVIL))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Learn about type */
/* Only affect good */
if (r_ptr->flags3 & (RF3_GOOD))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Learn about type */
/* Only affect non-undead */
if (monster_living(r_ptr))
{
- /* Obvious */
if (seen) obvious = TRUE;
note = _("は身震いした。", " shudders.");
/* Only affect demons */
if (r_ptr->flags3 & (RF3_DEMON))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Learn about type */
dam = 0;
break;
}
- /* Obvious */
if (seen) obvious = TRUE;
note = _("は身震いした。", " shudders.");
!(r_ptr->flagsr & (RFR_RES_SOUN | RFR_RES_WALL)) &&
!(r_ptr->flags3 & RF3_NO_STUN))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Get stunned */
!(r_ptr->flags3 & RF3_NO_CONF) &&
!(r_ptr->flagsr & RFR_EFF_RES_CHAO_MASK))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Already partially confused */
if (do_time)
{
- /* Obvious */
if (seen) obvious = TRUE;
if (do_time >= m_ptr->maxhp) do_time = m_ptr->maxhp - 1;
{
if (polymorph_monster(y, x))
{
- /* Obvious */
if (seen) obvious = TRUE;
/* Monster polymorphs */
/* Handle "teleport" */
if (do_dist)
{
- /* Obvious */
if (seen) obvious = TRUE;
note = _("が消え去った!", " disappears!");