q_ptr->number = (byte)rand_range(15,30);
object_aware(q_ptr);
object_known(q_ptr);
- apply_magic(q_ptr, p_ptr->lev, FALSE, FALSE, FALSE, FALSE);
+ apply_magic(q_ptr, p_ptr->lev, AM_NO_FIXED_ART);
q_ptr->discount = 99;
(void)inven_carry(q_ptr);
#endif
(void)wall_to_mud(dir);
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW);
+ p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MONSTERS | PU_MON_LITE);
p_ptr->window |= (PW_OVERHEAD);
}
else
/* Hack -- Give the player some small firestones */
object_prep(q_ptr, lookup_kind(TV_ARROW, m_bonus(1, p_ptr->lev)+ 1));
- q_ptr->number = (byte)rand_range(5,10);
+ q_ptr->number = (byte)rand_range(5, 10);
object_aware(q_ptr);
object_known(q_ptr);
- apply_magic(q_ptr, p_ptr->lev, FALSE, FALSE, FALSE, FALSE);
+ apply_magic(q_ptr, p_ptr->lev, AM_NO_FIXED_ART);
q_ptr->discount = 99;
else
{
q_ptr = &o_list[0 - item];
- }
+ }
/* Get local object */
q_ptr = &forge;
/* Hack -- Give the player some small firestones */
object_prep(q_ptr, lookup_kind(TV_BOLT, m_bonus(1, p_ptr->lev)+1));
- q_ptr->number = (byte)rand_range(4,8);
+ q_ptr->number = (byte)rand_range(4, 8);
object_aware(q_ptr);
object_known(q_ptr);
- apply_magic(q_ptr, p_ptr->lev, FALSE, FALSE, FALSE, FALSE);
+ apply_magic(q_ptr, p_ptr->lev, AM_NO_FIXED_ART);
q_ptr->discount = 99;
static int racial_cost;
-static bool racial_use_hp;
/*
* Note: return value indicates that we have succesfully used the power
s16b min_level = pd_ptr->level;
int use_stat = pd_ptr->stat;
int difficulty = pd_ptr->fail;
+ int use_hp = 0;
- racial_cost = pd_ptr->cost;
- racial_use_hp = FALSE;
+ racial_cost = pd_ptr->cost;
/* Not enough mana - use hp */
- if (p_ptr->csp < racial_cost) racial_use_hp = TRUE;
+ if (p_ptr->csp < racial_cost) use_hp = racial_cost - p_ptr->csp;
/* Power is not available yet */
if (p_ptr->lev < min_level)
}
/* Risk death? */
- else if (racial_use_hp && (p_ptr->chp < racial_cost))
+ else if (p_ptr->chp < use_hp)
{
#ifdef JP
if (!get_check("ËÜÅö¤Ëº£¤Î¿ê¼å¤·¤¿¾õÂ֤Ǥ³¤ÎǽÎϤò»È¤¤¤Þ¤¹¤«¡©"))
{
int y = 0, x = 0, i;
cave_type *c_ptr;
- monster_type *m_ptr;
for (i = 0; i < 6; i++)
{
x = px + ddx_ddd[dir];
c_ptr = &cave[y][x];
- /* Get the monster */
- m_ptr = &m_list[c_ptr->m_idx];
-
/* Hack -- attack monsters */
if (c_ptr->m_idx)
py_attack(y, x, 0);
{
if (command == -3)
{
- int gain_sp;
#ifdef JP
- if ((gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, "£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1)))
+ int gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, "£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1) / 5;
#else
- if ((gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, "thoughtless convertion from HP to SP", -1)))
+ int gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, "thoughtless convertion from HP to SP", -1) / 5;
#endif
+ if (gain_sp)
{
- p_ptr->csp += gain_sp / 5;
+ p_ptr->csp += gain_sp;
if (p_ptr->csp > p_ptr->msp)
{
p_ptr->csp = p_ptr->msp;
}
else if (command == -4)
{
- if (p_ptr->csp >= p_ptr->lev/5)
+ if (p_ptr->csp >= p_ptr->lev / 5)
{
p_ptr->csp -= p_ptr->lev / 5;
hp_player(p_ptr->lev);
msg_print("You failed to convert.");
#endif
}
+
+ /* Redraw mana and hp */
+ p_ptr->redraw |= (PR_HP | PR_MANA);
+
break;
}
case CLASS_CHAOS_WARRIOR:
p_ptr->csp = p_ptr->msp;
p_ptr->csp_frac = 0;
}
+
+ /* Redraw mana */
+ p_ptr->redraw |= (PR_MANA);
break;
}
case CLASS_TOURIST:
p_ptr->csp = max_csp;
p_ptr->csp_frac = 0;
}
+
+ /* Redraw mana */
+ p_ptr->redraw |= (PR_MANA);
}
else if (command == -4)
{
p_ptr->csp = p_ptr->msp;
p_ptr->csp_frac = 0;
}
+
+ /* Redraw mana */
+ p_ptr->redraw |= (PR_MANA);
}
else
{
{
if (racial_cost)
{
- if (racial_use_hp)
+ int actual_racial_cost = racial_cost / 2 + randint1(racial_cost / 2);
+
+ /* If mana is not enough, player consumes hit point! */
+ if (p_ptr->csp < actual_racial_cost)
{
+ actual_racial_cost -= p_ptr->csp;
+ p_ptr->csp = 0;
#ifdef JP
- take_hit(DAMAGE_USELIFE, (racial_cost / 2) + randint1(racial_cost / 2),
- "²áÅ٤ν¸Ãæ", -1);
+ take_hit(DAMAGE_USELIFE, actual_racial_cost, "²áÅ٤ν¸Ãæ", -1);
#else
- take_hit(DAMAGE_USELIFE, (racial_cost / 2) + randint1(racial_cost / 2),
- "concentrating too hard", -1);
+ take_hit(DAMAGE_USELIFE, actual_racial_cost, "concentrating too hard", -1);
#endif
}
- else
- {
- p_ptr->csp -= (racial_cost / 2) + randint1(racial_cost / 2);
- }
+ else p_ptr->csp -= actual_racial_cost;
/* Redraw mana and hp */
p_ptr->redraw |= (PR_HP | PR_MANA);