¤³¤Î¥ª¥×¥·¥ç¥ó¤òON¤Ë¤¹¤ë¤È¥á¥¤¥ó²èÌ̤κ¸¤Ë¤¢¤ë·Ð¸³ÃͤÎÍó¤Ë¸½ºß¤Î·Ð
¸³ÃͤǤϤʤ¯¡¢¼¡¤Î¥ì¥Ù¥ë¤ËɬÍפʷи³Ãͤòɽ¼¨¤·¤Þ¤¹¡£
+***** <ignore_unview>
+»ë³¦³°¤Î¥â¥ó¥¹¥¿¡¼¤Î¹ÔÆ°¤òɽ¼¨¤·¤Ê¤¤ [ignore_unview]
+ »ë³¦³°¤Ç¤«¤Ä¥Æ¥ì¥Ñ¥·¡¼¤Ê¤É¤Ç¸«¤¨¤Æ¤¤¤ë¤À¤±¤Î¥â¥ó¥¹¥¿¡¼¤¬¹ÔÆ°¤·¤Æ¤â
+ ¤½¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤»¤ó¡£¤¿¤À¤·¼ÂºÝ¤Ë¤Ï¤½¤Î¥â¥ó¥¹¥¿¡¼¤Ï¹ÔÆ°¤·
+ ¤Æ¤¤¤ë¤¿¤á¡¢¥â¥ó¥¹¥¿¡¼¤Î¹ÔÆ°¤Ïµ²±¤Ë»Ä¤ê¤Þ¤¹¡£
+
***** <GamePlay>
=== ¥ª¥×¥·¥ç¥ó4 -- ¥²¡¼¥à¥×¥ì¥¤ ===
X:abbrev_extra
X:abbrev_all
X:exp_need
+X:ignore_unview
##### Game-Play #####
#define is_original_ap(A) \
(bool)(((A)->ap_r_idx == (A)->r_idx) ? TRUE : FALSE)
+/*
+ * Is the monster seen by the player?
+ */
+#define is_seen(A) \
+ ((bool) ((A)->ml && (!ignore_unview || player_can_see_bold((A)->fy, (A)->fx))))
+
/*** Option Definitions ***/
int m_idx;
monster_type *m_ptr;
monster_race *r_ptr;
+ bool see_m;
u32b noise; /* Hack -- local "player stealth" value */
/* Ignore "dead" monsters */
if (!m_ptr->r_idx) continue;
+ see_m = is_seen(m_ptr);
+
/* Handle Invulnerability */
if (m_ptr->invulner)
{
if (!m_ptr->invulner)
{
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
#else
msg_format("%^s is no longer invulnerable.", m_name);
#endif
-
+ }
+ if (m_ptr->ml)
+ {
if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
}
/* Reduce by one, note if expires */
m_ptr->fast--;
- if (!m_ptr->fast && m_ptr->ml)
+ if (!m_ptr->fast)
{
- char m_name[80];
+ if (see_m)
+ {
+ char m_name[80];
- /* Acquire the monster name */
- monster_desc(m_name, m_ptr, 0);
+ /* Acquire the monster name */
+ monster_desc(m_name, m_ptr, 0);
- /* Dump a message */
+ /* Dump a message */
#ifdef JP
- msg_format("%^s¤Ï¤â¤¦²Ã®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
+ msg_format("%^s¤Ï¤â¤¦²Ã®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
#else
- msg_format("%^s is no longer fast.", m_name);
+ msg_format("%^s is no longer fast.", m_name);
#endif
-
- if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == m_idx)
- {
- p_ptr->redraw |= (PR_UHEALTH);
- p_ptr->update |= (PU_BONUS);
}
+ if (p_ptr->riding == m_idx) p_ptr->update |= (PU_BONUS);
}
}
/* Reduce by one, note if expires */
m_ptr->slow--;
- if (!m_ptr->slow && m_ptr->ml)
+ if (!m_ptr->slow)
{
- char m_name[80];
+ if (see_m)
+ {
+ char m_name[80];
- /* Acquire the monster name */
- monster_desc(m_name, m_ptr, 0);
+ /* Acquire the monster name */
+ monster_desc(m_name, m_ptr, 0);
- /* Dump a message */
+ /* Dump a message */
#ifdef JP
- msg_format("%^s¤Ï¤â¤¦¸ºÂ®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
+ msg_format("%^s¤Ï¤â¤¦¸ºÂ®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
#else
- msg_format("%^s is no longer slow.", m_name);
+ msg_format("%^s is no longer slow.", m_name);
#endif
-
- if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == m_idx)
- {
- p_ptr->redraw |= (PR_UHEALTH);
- p_ptr->update |= (PU_BONUS);
}
+ if (p_ptr->riding == m_idx) p_ptr->update |= (PU_BONUS);
}
}
if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
/* Notice the "waking up" */
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
#else
msg_format("%^s wakes up.", m_name);
#endif
+ }
+ if (m_ptr->ml)
+ {
/* Redraw the health bar */
if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
m_ptr->stunned = 0;
/* Message if visible */
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
#else
msg_format("%^s is no longer stunned.", m_name);
#endif
-
- if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
}
}
}
m_ptr->confused = 0;
/* Message if visible */
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
#else
msg_format("%^s is no longer confused.", m_name);
#endif
-
- if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
}
}
}
m_ptr->monfear = 0;
/* Visual note */
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
#ifndef JP
#else
msg_format("%^s recovers %s courage.", m_name, m_poss);
#endif
-
+ }
+ if (m_ptr->ml)
+ {
if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
}
extern bool abbrev_extra; /* Describe obj's extra resistances by abbreviation */
extern bool abbrev_all; /* Describe obj's all resistances by abbreviation */
extern bool exp_need; /* Show the experience needed for next level */
+extern bool ignore_unview; /* Ignore whenever any monster does */
/*** Game-Play Options ***/
{
/* Its parent have gone, it also goes away. */
- if (m_ptr->ml)
+ if (is_seen(m_ptr))
{
char m_name[80];
-
+
/* Acquire the monster name */
monster_desc(m_name, m_ptr, 0);
char m_name[160];
- bool seen = m_ptr->ml;
+ bool seen = is_seen(m_ptr);
/* Can the player be aware of this attack? */
bool known = (m_ptr->cdis <= MAX_SIGHT);
monster_desc(m_name, m_ptr, 0);
/* Redraw (later) if needed */
- if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
+ if (m_ptr->ml)
+ {
+ if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
+ if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
+ }
/* Wake it up */
m_ptr->csleep = 0;
int y_saver = t_ptr->fy;
int x_saver = t_ptr->fx;
- bool see_m = m_ptr->ml;
- bool see_t = t_ptr->ml;
+ bool see_m = is_seen(m_ptr);
+ bool see_t = is_seen(t_ptr);
bool see_either = see_m || see_t;
/* Can the player be aware of this attack? */
#else
msg_format("%^s is suddenly very hot!", m_name);
#endif
-
- if (see_t && is_original_ap(t_ptr)) tr_ptr->r_flags2 |= RF2_AURA_FIRE;
}
+ if (m_ptr->ml && t_ptr->ml && is_original_ap(t_ptr)) tr_ptr->r_flags2 |= RF2_AURA_FIRE;
project(t_idx, 0, m_ptr->fy, m_ptr->fx,
damroll (1 + ((tr_ptr->level) / 26),
1 + ((tr_ptr->level) / 17)),
}
else
{
- if (see_m && is_original_ap(m_ptr)) r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK);
+ if (m_ptr->ml && is_original_ap(m_ptr)) r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK);
}
}
#else
msg_format("%^s is suddenly very cold!", m_name);
#endif
-
- if (see_t && is_original_ap(t_ptr)) tr_ptr->r_flags3 |= RF3_AURA_COLD;
}
+ if (m_ptr->ml && t_ptr->ml && is_original_ap(t_ptr)) tr_ptr->r_flags3 |= RF3_AURA_COLD;
project(t_idx, 0, m_ptr->fy, m_ptr->fx,
damroll (1 + ((tr_ptr->level) / 26),
1 + ((tr_ptr->level) / 17)),
}
else
{
- if (see_m && is_original_ap(m_ptr)) r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK);
+ if (m_ptr->ml && is_original_ap(m_ptr)) r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK);
}
}
#else
msg_format("%^s gets zapped!", m_name);
#endif
-
- if (see_t && is_original_ap(t_ptr)) tr_ptr->r_flags2 |= RF2_AURA_ELEC;
}
+ if (m_ptr->ml && t_ptr->ml && is_original_ap(t_ptr)) tr_ptr->r_flags2 |= RF2_AURA_ELEC;
project(t_idx, 0, m_ptr->fy, m_ptr->fx,
damroll (1 + ((tr_ptr->level) / 26),
1 + ((tr_ptr->level) / 17)),
}
else
{
- if (see_m && is_original_ap(m_ptr)) r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK);
+ if (m_ptr->ml && is_original_ap(m_ptr)) r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK);
}
}
}
/* Analyze "visible" monsters only */
- if (see_m && !do_silly_attack)
+ if (m_ptr->ml && !do_silly_attack)
{
/* Count "obvious" attacks (and ones that cause damage) */
if (obvious || damage || (r_ptr->r_blows[ap_cnt] > 10))
bool is_riding_mon = (m_idx == p_ptr->riding);
+ bool see_m = is_seen(m_ptr);
+
if (is_riding_mon && !(r_ptr->flags7 & RF7_RIDING))
{
if (rakuba(0, TRUE))
{
/* Its parent have gone, it also goes away. */
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
-
+
/* Acquire the monster name */
monster_desc(m_name, m_ptr, 0);
if (is_pet(m_ptr) && !(m_ptr->ml))
sad = TRUE;
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
/* Oops */
#ifdef JP
-msg_format("%s¤Ï¾Ã¤¨µî¤Ã¤¿¡ª", m_name);
+ msg_format("%s¤Ï¾Ã¤¨µî¤Ã¤¿¡ª", m_name);
#else
msg_format("%^s disappears!", m_name);
#endif
-
}
/* Generate treasure, etc */
if (sad)
{
#ifdef JP
-msg_print("¾¯¤·¤Î´ÖÈᤷ¤¤µ¤Ê¬¤Ë¤Ê¤Ã¤¿¡£");
+ msg_print("¾¯¤·¤Î´ÖÈᤷ¤¤µ¤Ê¬¤Ë¤Ê¤Ã¤¿¡£");
#else
msg_print("You feel sad for a moment.");
#endif
-
}
return;
}
}
- if (m_ptr->ml)
+ if (see_m)
{
if ((r_ptr->flags2 & RF2_CAN_SPEAK) && (m_ptr->r_idx != MON_GRIP) && (m_ptr->r_idx != MON_WOLF) && (m_ptr->r_idx != MON_FANG) &&
player_has_los_bold(m_ptr->fy, m_ptr->fx) && projectable(m_ptr->fy, m_ptr->fx, py, px))
if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
/* Notice the "waking up" */
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
m_ptr->monfear = 0;
/* Message if seen */
- if (m_ptr->ml)
+ if (see_m)
{
char m_name[80];
if (is_pet(m_ptr) || m_ptr->ml)
{
+ if (!ignore_unview || player_can_see_bold(m_ptr->fy, m_ptr->fx))
+ {
#ifdef JP
- msg_format("%s¤Ï%s¤Ë¿Ê²½¤·¤¿¡£", m_name, r_name + r_ptr->name);
+ msg_format("%s¤Ï%s¤Ë¿Ê²½¤·¤¿¡£", m_name, r_name + r_ptr->name);
#else
- msg_format("%^s evolved into %s.", m_name, r_name + r_ptr->name);
+ msg_format("%^s evolved into %s.", m_name, r_name + r_ptr->name);
#endif
+ }
+
r_info[old_r_idx].r_xtra1 |= MR1_SINKA;
/* Now you feel very close to this pet. */
bool blind = (p_ptr->blind ? TRUE : FALSE);
- bool see_m = m_ptr->ml;
+ bool see_m = is_seen(m_ptr);
bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
- bool learnable = (see_m && maneable && !world_monster);
+ bool learnable = (m_ptr->ml && maneable && !world_monster);
bool see_t;
bool see_either;
bool known;
/* Choose a spell to cast */
thrown_spell = spell[randint0(num)];
- see_t = t_ptr->ml;
+ see_t = is_seen(t_ptr);
see_either = (see_m || see_t);
/* Can the player be aware of this attack? */
else
{
#ifdef JP
- if (see_t) msg_format("%^s¤ÏÌܤ¬¸«¤¨¤Ê¤¯¤Ê¤Ã¤¿¡ª ", t_name);
+ if (see_t) msg_format("%^s¤ÏÌܤ¬¸«¤¨¤Ê¤¯¤Ê¤Ã¤¿¡ª ", t_name);
#else
if (see_t) msg_format("%^s is blinded!", t_name);
#endif
}
t_ptr->slow = MIN(200, t_ptr->slow + 50);
+ if (p_ptr->riding == t_idx) p_ptr->update |= PU_BONUS;
}
wake_up = TRUE;
teleport_away(m_idx, MAX_SIGHT * 2 + 5, FALSE, FALSE);
- if (los(py, px, m_ptr->fy, m_ptr->fx) && !world_monster && see_m)
+ if (los(py, px, m_ptr->fy, m_ptr->fx) && !world_monster && m_ptr->ml)
{
for (i = INVEN_RARM; i < INVEN_TOTAL; i++)
{
{
if ((tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flagsr & RFR_RES_ALL))
{
+ if (t_ptr->ml && is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
if (see_t)
{
- if (is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
#ifdef JP
msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
#else
msg_format("%^s is unaffected!", t_name);
#endif
-
}
resists_tele = TRUE;
}
else if (tr_ptr->level > randint1(100))
{
+ if (t_ptr->ml && is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
if (see_t)
{
- if (is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
#ifdef JP
msg_format("%^s¤ÏÂÑÀ¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
#else
msg_format("%^s resists!", t_name);
#endif
-
}
resists_tele = TRUE;
{
if ((tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flagsr & RFR_RES_ALL))
{
+ if (t_ptr->ml && is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
if (see_t)
{
- if (is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
#ifdef JP
msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
#else
msg_format("%^s is unaffected!", t_name);
#endif
-
}
resists_tele = TRUE;
}
else if (tr_ptr->level > randint1(100))
{
+ if (t_ptr->ml && is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
if (see_t)
{
- if (is_original_ap(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
#ifdef JP
msg_format("%^s¤ÏÂÑÀ¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
#else
msg_format("%^s resists!", t_name);
#endif
-
}
resists_tele = TRUE;
}
- if (see_m && maneable && !world_monster && !p_ptr->blind && (p_ptr->pclass == CLASS_IMITATOR))
+ if (m_ptr->ml && maneable && !world_monster && !p_ptr->blind && (p_ptr->pclass == CLASS_IMITATOR))
{
if (thrown_spell != 167) /* Not RF6_SPECIAL */
{
}
/* Remember what the monster did, if we saw it */
- if (see_m && is_original_ap(m_ptr))
+ if (m_ptr->ml && is_original_ap(m_ptr))
{
/* Inate spell */
if (thrown_spell < 32*4)
cave_type *c_ptr = &cave[y][x];
monster_type *m_ptr = &m_list[c_ptr->m_idx];
+ monster_type *caster_ptr = (who > 0) ? &m_list[who] : NULL;
monster_race *r_ptr = &r_info[m_ptr->r_idx];
bool known = ((m_ptr->cdis <= MAX_SIGHT) || p_ptr->inside_battle);
/* Can the player see the source of this effect? */
- bool see_s = ((who <= 0) || m_list[who].ml);
+ bool see_s = ((who <= 0) || is_seen(caster_ptr));
/* Were the effects "irrelevant"? */
bool skipped = FALSE;
int ty = m_ptr->fy;
int tx = m_ptr->fx;
- int caster_lev = (who > 0) ? r_info[m_list[who].r_idx].level : p_ptr->lev * 2;
+ int caster_lev = (who > 0) ? r_info[caster_ptr->r_idx].level : (p_ptr->lev * 2);
/* Nobody here */
if (!c_ptr->m_idx) return (FALSE);
if (!(los(m_ptr->fy, m_ptr->fx, py, px)))
{
#ifdef JP
- if (seen) msg_format("%s¤Ï¤¢¤Ê¤¿¤¬¸«¤¨¤Ê¤¤¤Î¤Ç±Æ¶Á¤µ¤ì¤Ê¤¤¡ª", m_name);
+ if (is_seen(m_ptr)) msg_format("%s¤Ï¤¢¤Ê¤¿¤¬¸«¤¨¤Ê¤¤¤Î¤Ç±Æ¶Á¤µ¤ì¤Ê¤¤¡ª", m_name);
#else
- if (seen) msg_format("%^s can't see you, and isn't affected!", m_name);
+ if (is_seen(m_ptr)) msg_format("%^s can't see you, and isn't affected!", m_name);
#endif
skipped = TRUE;
break;
{
if (who > 0)
{
- monster_type *caster_ptr = &m_list[who];
-
/* Heal the monster */
if (caster_ptr->hp < caster_ptr->maxhp)
{
if (p_ptr->riding == who) p_ptr->redraw |= (PR_UHEALTH);
/* Special message */
- if (caster_ptr->ml)
+ if (is_seen(caster_ptr))
{
/* Get the monster name */
monster_desc(killer, caster_ptr, 0);
}
/* Attempt a saving throw */
- if ((randint0(100 + (caster_lev / 2)) < (r_ptr->level + 35)) && ((who <= 0) || (m_list[who].r_idx != MON_KENSHIROU)))
+ if ((randint0(100 + (caster_lev / 2)) < (r_ptr->level + 35)) && ((who <= 0) || (caster_ptr->r_idx != MON_KENSHIROU)))
{
#ifdef JP
note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
else
{
/* Give detailed messages if visible or destroyed */
- if (note && seen) msg_format("%^s%s", m_name, note);
+ if (note && is_seen(m_ptr)) msg_format("%^s%s", m_name, note);
/* Hack -- Pain message */
else if (see_s)
else if (heal_leper)
{
#ifdef JP
-msg_print("ÉÔ·é¤ÊÉ¿ͤÏɵ¤¤¬¼£¤Ã¤¿¡ª");
+ if (is_seen(m_ptr)) msg_print("ÉÔ·é¤ÊÉ¿ͤÏɵ¤¤¬¼£¤Ã¤¿¡ª");
#else
- msg_print("The Mangy looking leper is healed!");
+ if (is_seen(m_ptr)) msg_print("The Mangy looking leper is healed!");
#endif
delete_monster_idx(c_ptr->m_idx);
if (do_sleep) anger_monster(m_ptr);
/* Give detailed messages if visible or destroyed */
- if (note && seen)
+ if (note && is_seen(m_ptr))
#ifdef JP
-msg_format("%s%s", m_name, note);
+ msg_format("%s%s", m_name, note);
#else
msg_format("%^s%s", m_name, note);
#endif
anger_monster(m_ptr);
/* Take note */
- if ((fear || do_fear) && (m_ptr->ml))
+ if ((fear || do_fear) && is_seen(m_ptr))
{
/* Sound */
sound(SOUND_FLEE);
/* Message */
#ifdef JP
-msg_format("%^s¤Ï¶²Éݤ·¤Æƨ¤²½Ð¤·¤¿¡ª", m_name);
+ msg_format("%^s¤Ï¶²Éݤ·¤Æƨ¤²½Ð¤·¤¿¡ª", m_name);
#else
msg_format("%^s flees in terror!", m_name);
#endif
-
}
/* Hack -- handle sleep */
set_target(m_ptr, monster_target_y, monster_target_x);
}
}
- else if (is_pet(&m_list[who]) && !player_bold(m_ptr->target_y, m_ptr->target_x))
+ else if ((who > 0) && is_pet(caster_ptr) && !player_bold(m_ptr->target_y, m_ptr->target_x))
{
- set_target(m_ptr, m_list[who].fy, m_list[who].fx);
+ set_target(m_ptr, caster_ptr->fy, caster_ptr->fx);
}
}
case GF_PLASMA:
{
#ifdef JP
-if (fuzzy) msg_print("²¿¤«¤È¤Æ¤âÇ®¤¤¤â¤Î¤Ç¤Ç¹¶·â¤µ¤ì¤¿¡ª");
+ if (fuzzy) msg_print("²¿¤«¤È¤Æ¤âÇ®¤¤¤â¤Î¤Ç¹¶·â¤µ¤ì¤¿¡ª");
#else
if (fuzzy) msg_print("You are hit by something *HOT*!");
#endif
case GF_DISENCHANT:
{
#ifdef JP
-if (fuzzy) msg_print("²¿¤«¤µ¤¨¤Ê¤¤¤â¤Î¤Ç¤Ç¹¶·â¤µ¤ì¤¿¡ª");
+ if (fuzzy) msg_print("²¿¤«¤µ¤¨¤Ê¤¤¤â¤Î¤Ç¹¶·â¤µ¤ì¤¿¡ª");
#else
if (fuzzy) msg_print("You are hit by something static!");
#endif
case GF_GRAVITY:
{
#ifdef JP
-if (fuzzy) msg_print("²¿¤«½Å¤¤¤â¤Î¤Ç¤Ç¹¶·â¤µ¤ì¤¿¡ª");
-msg_print("¼þÊդνÅÎϤ¬¤æ¤¬¤ó¤À¡£");
+ if (fuzzy) msg_print("²¿¤«½Å¤¤¤â¤Î¤Ç¹¶·â¤µ¤ì¤¿¡ª");
+ msg_print("¼þÊդνÅÎϤ¬¤æ¤¬¤ó¤À¡£");
#else
if (fuzzy) msg_print("You are hit by something heavy!");
msg_print("Gravity warps around you.");
t_x = x_saver;
}
- if (m_ptr->ml)
+ if (is_seen(m_ptr))
{
#ifdef JP
if ((m_ptr->r_idx == MON_KENSHIROU) || (m_ptr->r_idx == MON_RAOU))
#else
msg_print("The attack bounces!");
#endif
-
- if (is_original_ap(m_ptr)) ref_ptr->r_flags2 |= RF2_REFLECTING;
}
+ if (m_ptr->ml && is_original_ap(m_ptr)) ref_ptr->r_flags2 |= RF2_REFLECTING;
/* Reflected bolts randomly target either one */
if (one_in_(2)) flg |= PROJECT_PLAYER;
if (angry && player_cast)
{
+ bool see_m = is_seen(m_ptr);
+
monster_desc(m_name, m_ptr, 0);
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", m_name);
{
m_ptr->csleep = 0;
if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%^s¤¬Ìܤò³Ð¤Þ¤·¤¿¡£", m_name);
}
if (is_friendly(m_ptr) && !is_pet(m_ptr))
{
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%s¤ÏÅܤä¿¡ª", m_name);
if (angry && player_cast)
{
+ bool see_m = is_seen(m_ptr);
+
monster_desc(m_name, m_ptr, 0);
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", m_name);
{
m_ptr->csleep = 0;
if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%^s¤¬Ìܤò³Ð¤Þ¤·¤¿¡£", m_name);
}
if (is_friendly(m_ptr) && !is_pet(m_ptr))
{
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%s¤ÏÅܤä¿¡ª", m_name);
if (angry && player_cast)
{
+ bool see_m = is_seen(m_ptr);
+
monster_desc(m_name, m_ptr, 0);
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", m_name);
{
m_ptr->csleep = 0;
if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%^s¤¬Ìܤò³Ð¤Þ¤·¤¿¡£", m_name);
}
if (is_friendly(m_ptr) && !is_pet(m_ptr))
{
- if (m_ptr->ml && !p_ptr->blind)
+ if (see_m && !p_ptr->blind)
{
#ifdef JP
msg_format("%s¤ÏÅܤä¿¡ª", m_name);
if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
/* Notice the "waking up" */
- if (m_ptr->ml)
+ if (is_seen(m_ptr))
{
char m_name[80];
#else
msg_format("%^s wakes up.", m_name);
#endif
- /* Redraw the health bar */
- if (p_ptr->health_who == c_ptr->m_idx)
- p_ptr->redraw |= (PR_HEALTH);
-
}
+
+ /* Redraw the health bar */
+ if (m_ptr->ml && (p_ptr->health_who == c_ptr->m_idx))
+ p_ptr->redraw |= (PR_HEALTH);
}
}
/* Get the monster name (or "it") */
monster_desc(m_name, m_ptr, 0);
- see_m = m_ptr->ml;
+ see_m = is_seen(m_ptr);
}
/* No effect in some case */
m_ptr->csleep = 0;
/* Notice the "waking up" */
- if (m_ptr->ml)
+ if (is_seen(m_ptr))
{
/* Acquire the monster name */
monster_desc(m_name, m_ptr, 0);
"display_path", "Display actual path before shooting" },
#endif
-
/*** Text Display Options ***/
#ifdef JP
"exp_need", "Show the experience needed for next level" },
#endif
+#ifdef JP
+ { &ignore_unview, FALSE, OPT_PAGE_TEXT, 2, 13,
+ "ignore_unview", "»ë³¦³°¤Î¥â¥ó¥¹¥¿¡¼¤Î¹ÔÆ°¤òɽ¼¨¤·¤Ê¤¤" },
+#else
+ { &ignore_unview, FALSE, OPT_PAGE_TEXT, 2, 13,
+ "ignore_unview", "Ignore whenever any monster does" },
+#endif
/*** Game-Play ***/
bool abbrev_extra; /* Describe obj's extra resistances by abbreviation */
bool abbrev_all; /* Describe obj's all resistances by abbreviation */
bool exp_need; /* Show the experience needed for next level */
+bool ignore_unview; /* Ignore whenever any monster does */
/*** Game-Play Options ***/
{
if (is_psy_spear)
{
- if(!p_ptr->blind && m_ptr->ml)
+ if (!p_ptr->blind && is_seen(m_ptr))
{
#ifdef JP
msg_print("¥Ð¥ê¥¢¤òÀÚ¤êÎö¤¤¤¿¡ª");