if ((dam < 20) && (randint0(100) >= dam)) return (0);
/* Perfect damage */
- if (dam == total && dam >= 40) max++;
+ if ((dam >= total) && (dam >= 40)) max++;
/* Super-charge */
if (dam >= 20)
monster_desc(m_name, m_ptr, 0);
/* Get the "died from" information (i.e. "a kobold") */
- monster_desc(ddesc, m_ptr, 0x288);
+ monster_desc(ddesc, m_ptr, MD_IGNORE_HALLU | MD_ASSUME_VISIBLE | MD_INDEF_VISIBLE);
if (p_ptr->special_defense & KATA_IAI)
{
((randint0(100) + p_ptr->lev) > 50))
{
/* Remember the Evil-ness */
- if (m_ptr->ml)
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
r_ptr->r_flags3 |= RF3_EVIL;
}
if (artifact_p(o_ptr) || o_ptr->art_name) continue;
/* Get a description */
- object_desc(o_name, o_ptr, FALSE, 3);
+ object_desc(o_name, o_ptr, OD_OMIT_PREFIX);
/* Message */
#ifdef JP
if ((o_ptr->tval != TV_FOOD) && !((o_ptr->tval == TV_CORPSE) && (o_ptr->sval))) continue;
/* Get a description */
- object_desc(o_name, o_ptr, FALSE, 0);
+ object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
/* Message */
#ifdef JP
{
if (p_ptr->sh_fire && alive && !p_ptr->is_dead)
{
- if (!(r_ptr->flags3 & RF3_IM_FIRE))
+ if (!(r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK))
{
int dam = damroll(2, 6);
}
else
{
- if (m_ptr->ml)
- r_ptr->r_flags3 |= RF3_IM_FIRE;
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK);
}
}
if (p_ptr->sh_elec && alive && !p_ptr->is_dead)
{
- if (!(r_ptr->flags3 & RF3_IM_ELEC))
+ if (!(r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK))
{
int dam = damroll(2, 6);
}
else
{
- if (m_ptr->ml)
- r_ptr->r_flags3 |= RF3_IM_ELEC;
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK);
}
}
if (p_ptr->sh_cold && alive && !p_ptr->is_dead)
{
- if (!(r_ptr->flags3 & RF3_IM_COLD))
+ if (!(r_ptr->flagsr & RFR_EFF_IM_COLD_MASK))
{
int dam = damroll(2, 6);
}
else
{
- if (m_ptr->ml)
- r_ptr->r_flags3 |= RF3_IM_COLD;
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK);
}
}
/* by henkma */
if (p_ptr->dustrobe && alive && !p_ptr->is_dead)
{
- if (!(r_ptr->flags4 & RF4_BR_SHAR))
+ if (!(r_ptr->flagsr & RFR_EFF_RES_SHAR_MASK))
{
int dam = damroll(2, 6);
if (mon_take_hit(m_idx, dam, &fear,
" had torn to pieces."))
#endif
-
{
blinked = FALSE;
alive = FALSE;
}
}
+ else
+ {
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_RES_SHAR_MASK);
+ }
+
if (is_mirror_grid(&cave[py][px])) {
teleport_player(10);
}
{
if (r_ptr->flags3 & RF3_EVIL)
{
- int dam = damroll(2, 6);
+ if (!(r_ptr->flagsr & RFR_RES_ALL))
+ {
+ int dam = damroll(2, 6);
- /* Modify the damage */
- dam = mon_damage_mod(m_ptr, dam, FALSE);
+ /* Modify the damage */
+ dam = mon_damage_mod(m_ptr, dam, FALSE);
#ifdef JP
- msg_format("%^s¤ÏÀ»¤Ê¤ë¥ª¡¼¥é¤Ç½ý¤Ä¤¤¤¿¡ª", m_name);
- if (mon_take_hit(m_idx, dam, &fear,
- "¤ÏÅݤ줿¡£"))
+ msg_format("%^s¤ÏÀ»¤Ê¤ë¥ª¡¼¥é¤Ç½ý¤Ä¤¤¤¿¡ª", m_name);
+ if (mon_take_hit(m_idx, dam, &fear,
+ "¤ÏÅݤ줿¡£"))
#else
- msg_format("%^s is injured by holy power!", m_name);
+ msg_format("%^s is injured by holy power!", m_name);
- if (mon_take_hit(m_idx, dam, &fear,
- " is destroyed."))
+ if (mon_take_hit(m_idx, dam, &fear,
+ " is destroyed."))
#endif
-
+ {
+ blinked = FALSE;
+ alive = FALSE;
+ }
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ r_ptr->r_flags3 |= RF3_EVIL;
+ }
+ else
{
- blinked = FALSE;
- alive = FALSE;
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ r_ptr->r_flagsr |= RFR_RES_ALL;
}
- if (m_ptr->ml)
- r_ptr->r_flags3 |= RF3_EVIL;
}
}
if (p_ptr->tim_sh_touki && alive && !p_ptr->is_dead)
{
- int dam = damroll(2, 6);
+ if (!(r_ptr->flagsr & RFR_RES_ALL))
+ {
+ int dam = damroll(2, 6);
- /* Modify the damage */
- dam = mon_damage_mod(m_ptr, dam, FALSE);
+ /* Modify the damage */
+ dam = mon_damage_mod(m_ptr, dam, FALSE);
#ifdef JP
- msg_format("%^s¤¬±Ô¤¤Æ®µ¤¤Î¥ª¡¼¥é¤Ç½ý¤Ä¤¤¤¿¡ª", m_name);
- if (mon_take_hit(m_idx, dam, &fear,
- "¤ÏÅݤ줿¡£"))
+ msg_format("%^s¤¬±Ô¤¤Æ®µ¤¤Î¥ª¡¼¥é¤Ç½ý¤Ä¤¤¤¿¡ª", m_name);
+ if (mon_take_hit(m_idx, dam, &fear,
+ "¤ÏÅݤ줿¡£"))
#else
- msg_format("%^s is injured by the Force", m_name);
+ msg_format("%^s is injured by the Force", m_name);
- if (mon_take_hit(m_idx, dam, &fear,
- " is destroyed."))
+ if (mon_take_hit(m_idx, dam, &fear,
+ " is destroyed."))
#endif
+ {
+ blinked = FALSE;
+ alive = FALSE;
+ }
+ }
+ else
{
- blinked = FALSE;
- alive = FALSE;
+ if (m_ptr->ml && is_original_ap(m_ptr))
+ r_ptr->r_flagsr |= RFR_RES_ALL;
}
}
}
msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", m_name);
#else
char m_name_self[80];
-
+
/* hisself */
- monster_desc(m_name_self, m_ptr, 0x23);
+ monster_desc(m_name_self, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE | MD_OBJECTIVE);
msg_format("The attack of %s has wounded %s!", m_name, m_name_self);
#endif
#endif
py_attack(m_ptr->fy, m_ptr->fx, HISSATSU_COUNTER);
fear = FALSE;
+
+ /* Redraw mana */
+ p_ptr->redraw |= (PR_MANA);
}
/* Blink away */