else if ((prace_is_(RACE_DEMON) ||
(mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON)) &&
(o_ptr->tval == TV_CORPSE && o_ptr->sval == SV_CORPSE &&
- strchr("pht", r_info[o_ptr->pval].d_char)))
+ my_strchr("pht", r_info[o_ptr->pval].d_char)))
{
/* Drain vitality of humanoids */
char o_name[MAX_NLEN];
- object_desc(o_name, o_ptr, FALSE, 0);
+ object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
#ifdef JP
msg_format("%s¤Ïdz¤¨¾å¤ê³¥¤Ë¤Ê¤Ã¤¿¡£ÀºÎϤòµÛ¼ý¤·¤¿µ¤¤¬¤¹¤ë¡£", o_name);
{
if (o_ptr->tval == TV_CORPSE &&
o_ptr->sval == SV_CORPSE &&
- strchr("pht", r_info[o_ptr->pval].d_char))
+ my_strchr("pht", r_info[o_ptr->pval].d_char))
return TRUE;
}
#ifdef JP
msg_print("Ƭ¤¬¥Ï¥Ã¥¥ê¤È¤·¤¿¡£");
#else
- msg_print("Your feel your head clear.");
+ msg_print("You feel your head clear.");
#endif
p_ptr->window |= (PW_PLAYER);
ident = TRUE;
#ifdef JP
msg_print("Ƭ¤¬¥Ï¥Ã¥¥ê¤È¤·¤¿¡£");
#else
- msg_print("Your feel your head clear.");
+ msg_print("You feel your head clear.");
#endif
p_ptr->redraw |= (PR_MANA);
#endif
used_up = FALSE;
}
- else if (o_ptr->tval==TV_PARCHEMENT)
+ else if (o_ptr->tval==TV_PARCHMENT)
{
cptr q;
char o_name[MAX_NLEN];
q=format("book-%d_jp.txt",o_ptr->sval);
/* Display object description */
- object_desc(o_name, o_ptr, TRUE, 0);
+ object_desc(o_name, o_ptr, OD_NAME_ONLY);
/* Build the filename */
path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, q);
*/
static bool item_tester_hook_readable(object_type *o_ptr)
{
- if ((o_ptr->tval==TV_SCROLL) || (o_ptr->tval==TV_PARCHEMENT) || (o_ptr->name1 == ART_GHB) || (o_ptr->name1 == ART_POWER)) return (TRUE);
+ if ((o_ptr->tval==TV_SCROLL) || (o_ptr->tval==TV_PARCHMENT) || (o_ptr->name1 == ART_GHB) || (o_ptr->name1 == ART_POWER)) return (TRUE);
/* Assume not */
return (FALSE);
{
scatter(&y, &x, py, px, 4, 0);
- if (!cave_floor_bold(y, x)) continue;
+ if (!have_flag(f_flags_bold(y, x), FF_PROJECT)) continue;
if (!player_bold(y, x)) break;
}
#ifdef JP
msg_print("Ƭ¤¬¥Ï¥Ã¥¥ê¤È¤·¤¿¡£");
#else
- msg_print("Your feel your head clear.");
+ msg_print("You feel your head clear.");
#endif
p_ptr->redraw |= (PR_MANA);
{
scatter(&y, &x, py, px, 4, 0);
- if (!cave_floor_bold(y, x)) continue;
+ if (!have_flag(f_flags_bold(y, x), FF_PROJECT)) continue;
if (!player_bold(y, x)) break;
}
detect_all(DETECT_RAD_DEFAULT);
probing();
identify_fully(FALSE);
- o_ptr->timeout = 1000;
+ o_ptr->timeout = 100;
break;
}
case ART_BOROMIR:
{
+#ifdef JP
+ msg_print("¤¢¤Ê¤¿¤ÏÎ϶¯¤¤ÆÍÉ÷¤ò¿á¤ÌĤ餷¤¿¡£¼þ°Ï¤ÎŨ¤¬¿Ì¤¨¾å¤Ã¤Æ¤¤¤ë!");
+#else
msg_print("You wind a mighty blast; your enemies tremble!");
+#endif
(void)turn_monsters((3 * p_ptr->lev / 2) + 10);
o_ptr->timeout = randint0(40) + 40;
break;
y = py+ddy[dir];
x = px+ddx[dir];
tsuri_dir = dir;
- if (!(cave[y][x].feat == FEAT_DEEP_WATER) && !(cave[y][x].feat == FEAT_SHAL_WATER))
+ if (!have_flag(f_flags_bold(y, x), FF_WATER))
{
#ifdef JP
- msg_print("¤½¤³¤ÏΦÃϤÀ¡£");
+ msg_print("¤½¤³¤Ï¿åÊդǤϤʤ¤¡£");
#else
msg_print("There is no fishing place.");
#endif
if (!m_ptr->r_idx) continue;
if (!((m_ptr->r_idx == MON_SUKE) || (m_ptr->r_idx == MON_KAKU))) continue;
if (!los(m_ptr->fy, m_ptr->fx, py, px)) continue;
+ if (!projectable(m_ptr->fy, m_ptr->fx, py, px)) continue;
count++;
break;
}
#else
msg_print("Your pendant glows pale...");
#endif
- if (!get_aim_dir(&dir)) return;
- fire_ball(GF_MANA, dir, 200, 4);
- o_ptr->timeout = randint0(150) + 150;
+ if (p_ptr->pclass == CLASS_MAGIC_EATER)
+ {
+ int i;
+ for (i = 0; i < EATER_EXT*2; i++)
+ {
+ p_ptr->magic_num1[i] += (p_ptr->magic_num2[i] < 10) ? EATER_CHARGE * 3 : p_ptr->magic_num2[i]*EATER_CHARGE/3;
+ if (p_ptr->magic_num1[i] > p_ptr->magic_num2[i]*EATER_CHARGE) p_ptr->magic_num1[i] = p_ptr->magic_num2[i]*EATER_CHARGE;
+ }
+ for (; i < EATER_EXT*3; i++)
+ {
+ int k_idx = lookup_kind(TV_ROD, i-EATER_EXT*2);
+ p_ptr->magic_num1[i] -= ((p_ptr->magic_num2[i] < 10) ? EATER_ROD_CHARGE*3 : p_ptr->magic_num2[i]*EATER_ROD_CHARGE/3)*k_info[k_idx].pval;
+ if (p_ptr->magic_num1[i] < 0) p_ptr->magic_num1[i] = 0;
+ }
+#ifdef JP
+ msg_print("Ƭ¤¬¥Ï¥Ã¥¥ê¤È¤·¤¿¡£");
+#else
+ msg_print("You feel your head clear.");
+#endif
+ p_ptr->window |= (PW_PLAYER);
+ }
+ else if (p_ptr->csp < p_ptr->msp)
+ {
+ p_ptr->csp = p_ptr->msp;
+ p_ptr->csp_frac = 0;
+#ifdef JP
+ msg_print("Ƭ¤¬¥Ï¥Ã¥¥ê¤È¤·¤¿¡£");
+#else
+ msg_print("You feel your head clear.");
+#endif
+
+ p_ptr->redraw |= (PR_MANA);
+ p_ptr->window |= (PW_PLAYER);
+ p_ptr->window |= (PW_SPELL);
+ }
+ o_ptr->timeout = 777;
break;
}
}
{
bool success = FALSE;
if (!get_rep_dir2(&dir)) return;
- if (cave_floor_bold(py+ddy[dir],px+ddx[dir]))
+ if (monster_can_enter(py + ddy[dir], px + ddx[dir], &r_info[o_ptr->pval], 0))
{
if (place_monster_aux(0, py + ddy[dir], px + ddx[dir], o_ptr->pval, (PM_FORCE_PET | PM_NO_KAGE)))
{
{
chance -= 3 * (p_ptr->lev - level);
}
- chance += p_ptr->to_m_chance;
- if (p_ptr->heavy_spell) chance += 20;
- if(p_ptr->dec_mana && p_ptr->easy_spell) chance-=4;
- else if (p_ptr->easy_spell) chance-=3;
- else if (p_ptr->dec_mana) chance-=2;
+ chance = mod_spell_chance_1(chance);
chance = MAX(chance, adj_mag_fail[p_ptr->stat_ind[mp_ptr->spell_stat]]);
/* Stunning makes spells harder */
if (p_ptr->stun > 50) chance += 25;
if (chance > 95) chance = 95;
- if(p_ptr->dec_mana) chance--;
- if (p_ptr->heavy_spell) chance += 5;
+ chance = mod_spell_chance_2(chance);
col = TERM_WHITE;
{
chance -= 3 * (p_ptr->lev - level);
}
- chance += p_ptr->to_m_chance;
- if (p_ptr->heavy_spell) chance += 20;
- if(p_ptr->dec_mana && p_ptr->easy_spell) chance-=4;
- else if (p_ptr->easy_spell) chance-=3;
- else if (p_ptr->dec_mana) chance-=2;
+ chance = mod_spell_chance_1(chance);
chance = MAX(chance, adj_mag_fail[p_ptr->stat_ind[mp_ptr->spell_stat]]);
/* Stunning makes spells harder */
if (p_ptr->stun > 50) chance += 25;
if (chance > 95) chance = 95;
- if(p_ptr->dec_mana) chance--;
- if (p_ptr->heavy_spell) chance += 5;
+ chance = mod_spell_chance_2(chance);
if (randint0(100) < chance)
{