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)
object_type *o_ptr;
- object_kind *k_ptr;
-
char o_name[MAX_NLEN];
char m_name[80];
bool blinked;
bool touched = FALSE, fear = FALSE, alive = TRUE;
bool explode = FALSE;
- bool resist_drain = FALSE;
bool do_silly_attack = (one_in_(2) && p_ptr->image);
- int syouryaku = 0;
int get_damage = 0;
+#ifdef JP
+ int abbreviate = 0;
+#endif
/* Not allowed to attack */
if (r_ptr->flags1 & (RF1_NEVER_BLOW)) return (FALSE);
/* ...nor if friendly */
if (!is_hostile(m_ptr)) return FALSE;
- /* Total armor */
- ac = p_ptr->ac + p_ptr->to_a;
-
/* Extract the effective monster level */
rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
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)
{
if (m_ptr->ml) visible = TRUE;
/* Extract the attack "power" */
- switch (effect)
- {
- case RBE_HURT: power = 60; break;
- case RBE_POISON: power = 5; break;
- case RBE_UN_BONUS: power = 20; break;
- case RBE_UN_POWER: power = 15; break;
- case RBE_EAT_GOLD: power = 5; break;
- case RBE_EAT_ITEM: power = 5; break;
- case RBE_EAT_FOOD: power = 5; break;
- case RBE_EAT_LITE: power = 5; break;
- case RBE_ACID: power = 0; break;
- case RBE_ELEC: power = 10; break;
- case RBE_FIRE: power = 10; break;
- case RBE_COLD: power = 10; break;
- case RBE_BLIND: power = 2; break;
- case RBE_CONFUSE: power = 10; break;
- case RBE_TERRIFY: power = 10; break;
- case RBE_PARALYZE: power = 2; break;
- case RBE_LOSE_STR: power = 0; break;
- case RBE_LOSE_DEX: power = 0; break;
- case RBE_LOSE_CON: power = 0; break;
- case RBE_LOSE_INT: power = 0; break;
- case RBE_LOSE_WIS: power = 0; break;
- case RBE_LOSE_CHR: power = 0; break;
- case RBE_LOSE_ALL: power = 2; break;
- case RBE_SHATTER: power = 60; break;
- case RBE_EXP_10: power = 5; break;
- case RBE_EXP_20: power = 5; break;
- case RBE_EXP_40: power = 5; break;
- case RBE_EXP_80: power = 5; break;
- case RBE_DISEASE: power = 5; break;
- case RBE_TIME: power = 5; break;
- case RBE_EXP_VAMP: power = 5; break;
- case RBE_DR_MANA: power = 5; break;
- case RBE_SUPERHURT: power = 60; break;
- }
+ power = mbe_info[effect].power;
+ /* Total armor */
+ ac = p_ptr->ac + p_ptr->to_a;
/* Monster hits player */
if (!effect || check_hit(power, rlev, m_ptr->stunned))
((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;
}
/* Message */
#ifdef JP
- if (syouryaku)
+ if (abbreviate)
msg_format("·âÂष¤¿¡£");
else
msg_format("%^s¤Ï·âÂव¤ì¤¿¡£", m_name);
- syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
+ abbreviate = 1;/*£²²óÌܰʹߤϾÊά */
#else
msg_format("%^s is repelled.", m_name);
#endif
case RBM_CHARGE:
{
#ifdef JP
- syouryaku = -1;
+ abbreviate = -1;
act = "¤ÏÀÁµá½ñ¤ò¤è¤³¤·¤¿¡£";
#else
act = "charges you.";
case RBM_CRAWL:
{
#ifdef JP
- syouryaku = -1;
+ abbreviate = -1;
act = "¤¬ÂΤξå¤òÇ礤²ó¤Ã¤¿¡£";
#else
act = "crawls on you.";
case RBM_EXPLODE:
{
- syouryaku = -1;
#ifdef JP
+ abbreviate = -1;
act = "¤ÏÇúȯ¤·¤¿¡£";
#else
act = "explodes.";
case RBM_XXX4:
{
- syouryaku = -1;
#ifdef JP
+ abbreviate = -1;
act = "¤¬ XXX4 ¤òȯ¼Í¤·¤¿¡£";
#else
act = "projects XXX4's at you.";
case RBM_INSULT:
{
- syouryaku = -1;
+#ifdef JP
+ abbreviate = -1;
+#endif
act = desc_insult[randint0(m_ptr->r_idx == MON_DEBBY ? 10 : 8)];
sound(SOUND_MOAN);
break;
case RBM_MOAN:
{
- syouryaku = -1;
+#ifdef JP
+ abbreviate = -1;
+#endif
act = desc_moan[randint0(4)];
sound(SOUND_MOAN);
break;
case RBM_SHOW:
{
- syouryaku = -1;
+#ifdef JP
+ abbreviate = -1;
+#endif
if (m_ptr->r_idx == MON_JAIAN)
{
#ifdef JP
{
if (do_silly_attack)
{
- syouryaku = -1;
+#ifdef JP
+ abbreviate = -1;
+#endif
act = silly_attacks[randint0(MAX_SILLY_ATTACK)];
}
#ifdef JP
- if(syouryaku==0)
+ if (abbreviate == 0)
msg_format("%^s¤Ë%s", m_name, act);
- else if(syouryaku==1)
+ else if (abbreviate == 1)
msg_format("%s", act);
- else /*if(syouryaku==-1)*/
+ else /* if (abbreviate == -1) */
msg_format("%^s%s", m_name, act);
- syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
+ abbreviate = 1;/*£²²óÌܰʹߤϾÊά */
#else
- msg_format("%^s %s", m_name, act);
+ msg_format("%^s %s%s", m_name, act, do_silly_attack ? " you." : "");
#endif
}
case RBE_SUPERHURT:
{
- int ac = p_ptr->ac+p_ptr->to_a;
if ((randint1(rlev*2+300) > (ac+200)) || one_in_(13)) {
int tmp_damage = damage-(damage*((ac < 150) ? ac : 150)/250);
#ifdef JP
if (explode) break;
/* Take "poison" effect */
- if (!(p_ptr->resist_pois || p_ptr->oppose_pois))
+ if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()))
{
if (set_poisoned(p_ptr->poisoned + randint1(rlev) + 5))
{
if (!p_ptr->resist_disen)
{
/* Apply disenchantment */
- if (apply_disenchant(0)) obvious = TRUE;
+ if (apply_disenchant(0))
+ {
+ /* Hack -- Update AC */
+ update_stuff();
+ obvious = TRUE;
+ }
}
/* Take some damage */
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
/* Make an object */
o_idx = o_pop();
-
+
/* Success */
if (o_idx)
{
object_type *j_ptr;
-
+
/* Get new object */
j_ptr = &o_list[o_idx];
-
+
/* Copy object */
object_copy(j_ptr, o_ptr);
-
+
/* Modify number */
j_ptr->number = 1;
-
+
/* Hack -- If a rod or wand, allocate total
* maximum timeouts or charges between those
* stolen and those missed. -LM-
*/
if ((o_ptr->tval == TV_ROD) || (o_ptr->tval == TV_WAND))
{
- k_ptr = &k_info[o_ptr->k_idx];
j_ptr->pval = o_ptr->pval / o_ptr->number;
o_ptr->pval -= j_ptr->pval;
}
-
+
/* Forget mark */
j_ptr->marked = 0;
-
+
/* Memorize monster */
j_ptr->held_m_idx = m_idx;
-
+
/* Build stack */
j_ptr->next_o_idx = m_ptr->hold_o_idx;
-
+
/* Build stack */
m_ptr->hold_o_idx = o_idx;
}
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
/* Special damage */
get_damage += acid_dam(damage, ddesc, -1);
+ /* Hack -- Update AC */
+ update_stuff();
+
/* Learn about the player */
update_smart_learn(m_idx, DRS_ACID);
case RBE_EXP_10:
{
+ s32b d = damroll(10, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
+
/* Obvious */
obvious = TRUE;
if (p_ptr->is_dead) break;
- if (p_ptr->prace == RACE_ANDROID)
- {
- }
- else if (p_ptr->hold_life && (randint0(100) < 95))
- {
-#ifdef JP
- msg_print("¤·¤«¤·¼«¸Ê¤ÎÀ¸Ì¿ÎϤò¼é¤ê¤¤Ã¤¿¡ª");
-#else
- msg_print("You keep hold of your life force!");
-#endif
-
- }
- else
- {
- s32b d = damroll(10, 6) + (p_ptr->exp/100) * MON_DRAIN_LIFE;
- if (p_ptr->hold_life)
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤò¾¯¤·µÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life slipping away!");
-#endif
-
- lose_exp(d/10);
- }
- else
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤ¬ÂΤ«¤éµÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life draining away!");
-#endif
-
- lose_exp(d);
- }
- }
+ (void)drain_exp(d, d / 10, 95);
break;
}
case RBE_EXP_20:
{
+ s32b d = damroll(20, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
+
/* Obvious */
obvious = TRUE;
if (p_ptr->is_dead) break;
- if (p_ptr->prace == RACE_ANDROID)
- {
- }
- else if (p_ptr->hold_life && (randint0(100) < 90))
- {
-#ifdef JP
- msg_print("¤·¤«¤·¼«¸Ê¤ÎÀ¸Ì¿ÎϤò¼é¤ê¤¤Ã¤¿¡ª");
-#else
- msg_print("You keep hold of your life force!");
-#endif
-
- }
- else
- {
- s32b d = damroll(20, 6) + (p_ptr->exp/100) * MON_DRAIN_LIFE;
- if (p_ptr->hold_life)
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤò¾¯¤·µÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life slipping away!");
-#endif
-
- lose_exp(d/10);
- }
- else
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤ¬ÂΤ«¤éµÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life draining away!");
-#endif
-
- lose_exp(d);
- }
- }
+ (void)drain_exp(d, d / 10, 90);
break;
}
case RBE_EXP_40:
{
+ s32b d = damroll(40, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
+
/* Obvious */
obvious = TRUE;
if (p_ptr->is_dead) break;
- if (p_ptr->prace == RACE_ANDROID)
- {
- }
- else if (p_ptr->hold_life && (randint0(100) < 75))
- {
-#ifdef JP
- msg_print("¤·¤«¤·¼«¸Ê¤ÎÀ¸Ì¿ÎϤò¼é¤ê¤¤Ã¤¿¡ª");
-#else
- msg_print("You keep hold of your life force!");
-#endif
-
- }
- else
- {
- s32b d = damroll(40, 6) + (p_ptr->exp/100) * MON_DRAIN_LIFE;
- if (p_ptr->hold_life)
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤò¾¯¤·µÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life slipping away!");
-#endif
-
- lose_exp(d/10);
- }
- else
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤ¬ÂΤ«¤éµÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life draining away!");
-#endif
-
- lose_exp(d);
- }
- }
+ (void)drain_exp(d, d / 10, 75);
break;
}
case RBE_EXP_80:
{
+ s32b d = damroll(80, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
+
/* Obvious */
obvious = TRUE;
if (p_ptr->is_dead) break;
- if (p_ptr->prace == RACE_ANDROID)
- {
- }
- else if (p_ptr->hold_life && (randint0(100) < 50))
- {
-#ifdef JP
- msg_print("¤·¤«¤·¼«¸Ê¤ÎÀ¸Ì¿ÎϤò¼é¤ê¤¤Ã¤¿¡ª");
-#else
- msg_print("You keep hold of your life force!");
-#endif
-
- }
- else
- {
- s32b d = damroll(80, 6) + (p_ptr->exp/100) * MON_DRAIN_LIFE;
- if (p_ptr->hold_life)
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤò¾¯¤·µÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life slipping away!");
-#endif
-
- lose_exp(d/10);
- }
- else
- {
-#ifdef JP
- msg_print("À¸Ì¿ÎϤ¬ÂΤ«¤éµÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life draining away!");
-#endif
-
- lose_exp(d);
- }
- }
+ (void)drain_exp(d, d / 10, 50);
break;
}
if (p_ptr->is_dead) break;
/* Take "poison" effect */
- if (!(p_ptr->resist_pois || p_ptr->oppose_pois))
+ if (!(p_ptr->resist_pois || IS_OPPOSE_POIS()))
{
if (set_poisoned(p_ptr->poisoned + randint1(rlev) + 5))
{
}
case RBE_EXP_VAMP:
{
+ s32b d = damroll(60, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
+ bool resist_drain;
+
/* Obvious */
obvious = TRUE;
if (p_ptr->is_dead) break;
- if (p_ptr->prace == RACE_ANDROID)
- {
- }
- else if (p_ptr->hold_life && (randint0(100) < 50))
- {
-#ifdef JP
-msg_print("¤·¤«¤·¼«¸Ê¤ÎÀ¸Ì¿ÎϤò¼é¤ê¤¤Ã¤¿¡ª");
-#else
- msg_print("You keep hold of your life force!");
-#endif
-
- resist_drain = TRUE;
- }
- else
- {
- s32b d = damroll(60, 6) + (p_ptr->exp / 100) * MON_DRAIN_LIFE;
- if (p_ptr->hold_life)
- {
-#ifdef JP
-msg_print("À¸Ì¿ÎϤ¬¾¯¤·ÂΤ«¤éÈ´¤±Íî¤Á¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life slipping away!");
-#endif
-
- lose_exp(d / 10);
- }
- else
- {
-#ifdef JP
-msg_print("À¸Ì¿ÎϤ¬ÂΤ«¤éµÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª");
-#else
- msg_print("You feel your life draining away!");
-#endif
-
- lose_exp(d);
- }
- }
+ resist_drain = !drain_exp(d, d / 10, 50);
/* Heal the attacker? */
if (p_ptr->mimic_form)
if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
/* Special message */
- if ((m_ptr->ml) && (did_heal))
+ if (m_ptr->ml && did_heal)
{
#ifdef JP
msg_format("%s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", m_name);
}
case RBE_DR_MANA:
{
- bool did_heal = FALSE;
-
/* Obvious */
obvious = TRUE;
p_ptr->csp_frac = 0;
}
- if (m_ptr->hp < m_ptr->maxhp) did_heal = TRUE;
-
p_ptr->redraw |= (PR_MANA);
break;
{
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;
}
}
}
/* Message */
#ifdef JP
- if (syouryaku)
+ if (abbreviate)
msg_format("%s¤«¤ï¤·¤¿¡£", (p_ptr->special_attack & ATTACK_SUIKEN) ? "´ñ̯¤ÊÆ°¤¤Ç" : "");
else
msg_format("%s%^s¤Î¹¶·â¤ò¤«¤ï¤·¤¿¡£", (p_ptr->special_attack & ATTACK_SUIKEN) ? "´ñ̯¤ÊÆ°¤¤Ç" : "", m_name);
- syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
+ abbreviate = 1;/*£²²óÌܰʹߤϾÊά */
#else
msg_format("%^s misses you.", m_name);
#endif
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 */