/* Redraw experience */
p_ptr->redraw |= (PR_EXP);
-
- /* Handle stuff */
handle_stuff();
p_ptr->redraw |= (PR_LEV | PR_TITLE);
p_ptr->window |= (PW_PLAYER);
-
- /* Handle stuff */
handle_stuff();
}
/* HPとMPの上昇量を表示 */
level_up = 1;
-
- /* Handle stuff */
handle_stuff();
level_up = 0;
p_ptr->redraw |= (PR_LEV | PR_TITLE);
p_ptr->window |= (PW_PLAYER | PW_SPELL);
-
- /* Handle stuff */
handle_stuff();
}
for (i = 0; i < (dun_level / 15)+1; i++)
{
- /* Get local object */
o_ptr = &forge;
object_wipe(o_ptr);
if (arena_info[p_ptr->arena_number].tval)
{
- /* Get local object */
q_ptr = &forge;
/* Prepare to make a prize */
if (!one_in_(5)) corpse = TRUE;
}
}
-
- /* Get local object */
q_ptr = &forge;
/* Prepare to make an object */
/* Bloodletters of Khorne may drop a blade of chaos */
if (drop_chosen_item && (randint1(100) < 15))
{
- /* Get local object */
q_ptr = &forge;
/* Prepare to make a Blade of Chaos */
case MON_RAAL:
if (drop_chosen_item && (dun_level > 9))
{
- /* Get local object */
q_ptr = &forge;
object_wipe(q_ptr);
case MON_SERPENT:
if (!drop_chosen_item) break;
-
- /* Get local object */
q_ptr = &forge;
/* Mega-Hack -- Prepare to make "Grond" */
/* Drop it in the dungeon */
(void)drop_near(q_ptr, -1, y, x);
-
- /* Get local object */
q_ptr = &forge;
/* Mega-Hack -- Prepare to make "Chaos" */
case MON_B_DEATH_SWORD:
if (drop_chosen_item)
{
- /* Get local object */
q_ptr = &forge;
/* Prepare to make a broken sword */
if (drop_chosen_item && ((m_ptr->r_idx == MON_A_GOLD) ||
((m_ptr->r_idx == MON_A_SILVER) && (r_ptr->r_akills % 5 == 0))))
{
- /* Get local object */
q_ptr = &forge;
/* Prepare to make a Can of Toys */
case '(':
if (dun_level > 0)
{
- /* Get local object */
q_ptr = &forge;
object_wipe(q_ptr);
case '/':
if (dun_level > 4)
{
- /* Get local object */
q_ptr = &forge;
object_wipe(q_ptr);
case '[':
if (dun_level > 19)
{
- /* Get local object */
q_ptr = &forge;
object_wipe(q_ptr);
case '\\':
if (dun_level > 4)
{
- /* Get local object */
q_ptr = &forge;
object_wipe(q_ptr);
case '|':
if (m_ptr->r_idx != MON_STORMBRINGER)
{
- /* Get local object */
q_ptr = &forge;
object_wipe(q_ptr);
if (k_idx)
{
- /* Get local object */
q_ptr = &forge;
/* Prepare to make a reward */
/* Drop some objects */
for (j = 0; j < number; j++)
{
- /* Get local object */
q_ptr = &forge;
object_wipe(q_ptr);
*/
bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note)
{
- monster_type *m_ptr = &m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
-
- monster_type exp_mon;
+ monster_type *m_ptr = &m_list[m_idx];
+ monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ monster_type exp_mon;
/* Innocent until proven otherwise */
- bool innocent = TRUE, thief = FALSE;
- int i;
- int expdam;
+ bool innocent = TRUE, thief = FALSE;
+ int i;
+ HIT_POINT expdam;
(void)COPY(&exp_mon, m_ptr, monster_type);
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 */
(void)set_monster_csleep(m_idx, 0);
/* Hack - Cancel any special player stealth magics. -LM- */
/* Genocided by chaos patron */
if (!m_idx) return TRUE;
- /* Hurt it */
m_ptr->hp -= dam;
-
m_ptr->dealt_damage += dam;
+
if(m_ptr->dealt_damage > m_ptr->max_maxhp * 100) m_ptr->dealt_damage = m_ptr->max_maxhp * 100;
+
if (p_ptr->wizard)
{
- msg_format( _("合計%d/%dのダメージを与えた。","You do %d (out of %d) damage."),
- m_ptr->dealt_damage, m_ptr->maxhp);
+ msg_format( _("合計%d/%dのダメージを与えた。","You do %d (out of %d) damage."), m_ptr->dealt_damage, m_ptr->maxhp);
}
/* It is dead now */
/* Dump a message */
if (!get_rnd_line(_("mondeath_j.txt", "mondeath.txt"), m_ptr->r_idx, line_got))
-
+ {
msg_format("%^s %s", m_name, line_got);
+ }
#ifdef WORLD_SCORE
if (m_ptr->r_idx == MON_SERPENT)
chg_virtue(V_COMPASSION, -1);
}
- if ((r_ptr->flags3 & RF3_GOOD) &&
- ((r_ptr->level) / 10 + (3 * dun_level) >= randint1(100)))
+ if ((r_ptr->flags3 & RF3_GOOD) && ((r_ptr->level) / 10 + (3 * dun_level) >= randint1(100)))
chg_virtue(V_UNLIFE, 1);
if (r_ptr->d_char == 'A')
{
if (r_ptr->flags1 & RF1_UNIQUE)
chg_virtue(V_JUSTICE, 3);
- else if (1+((r_ptr->level) / 10 + (2 * dun_level))
- >= randint1(100))
+ else if (1+((r_ptr->level) / 10 + (2 * dun_level)) >= randint1(100))
chg_virtue(V_JUSTICE, 1);
}
else if (innocent)
if ((r_ptr->flags1 & RF1_UNIQUE) && record_destroy_uniq)
{
char note_buf[160];
-#ifdef JP
- sprintf(note_buf, "%s%s", r_name + r_ptr->name, (m_ptr->smart & SM_CLONED) ? "(クローン)" : "");
-#else
- sprintf(note_buf, "%s%s", r_name + r_ptr->name, (m_ptr->smart & SM_CLONED) ? "(Clone)" : "");
-#endif
+ sprintf(note_buf, "%s%s", r_name + r_ptr->name, (m_ptr->smart & SM_CLONED) ? _("(クローン)", "(Clone)") : "");
do_cmd_write_nikki(NIKKI_UNIQUE, 0, note_buf);
}
if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
msg_format("せっかくだから%sを倒した。", m_name);
else
-msg_format("%sを倒した。", m_name);
+ msg_format("%sを倒した。", m_name);
#else
msg_format("You have destroyed %s.", m_name);
#endif
if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
msg_format("せっかくだから%sを葬り去った。", m_name);
else
-msg_format("%sを葬り去った。", m_name);
+ msg_format("%sを葬り去った。", m_name);
#else
msg_format("You have slain %s.", m_name);
#endif
monster_death(m_idx, TRUE);
/* Mega hack : replace IKETA to BIKETAL */
- if ((m_ptr->r_idx == MON_IKETA) &&
- !(p_ptr->inside_arena || p_ptr->inside_battle))
+ if ((m_ptr->r_idx == MON_IKETA) && !(p_ptr->inside_arena || p_ptr->inside_battle))
{
- int dummy_y = m_ptr->fy;
- int dummy_x = m_ptr->fx;
+ POSITION dummy_y = m_ptr->fy;
+ POSITION dummy_x = m_ptr->fx;
BIT_FLAGS mode = 0L;
-
if (is_pet(m_ptr)) mode |= PM_FORCE_PET;
-
-
delete_monster_idx(m_idx);
-
if (summon_named_creature(0, dummy_y, dummy_x, MON_BIKETAL, mode))
{
msg_print(_("「ハァッハッハッハ!!私がバイケタルだ!!」", "Uwa-hahaha! *I* am Biketal!"));
}
else
{
-
delete_monster_idx(m_idx);
}
* Run (sometimes) if at 10% or less of max hit points,
* or (usually) when hit for half its current hit points
*/
- if ((randint1(10) >= percentage) ||
- ((dam >= m_ptr->hp) && (randint0(100) < 80)))
+ if ((randint1(10) >= percentage) || ((dam >= m_ptr->hp) && (randint0(100) < 80)))
{
/* Hack -- note fear */
(*fear) = TRUE;
#endif
-#if 0
- if (p_ptr->riding && (p_ptr->riding == m_idx) && (dam > 0))
- {
- char m_name[80];
-
- /* Extract monster name */
- monster_desc(m_name, m_ptr, 0);
-
- if (m_ptr->hp > m_ptr->maxhp/3) dam = (dam + 1) / 2;
- if (rakuba((dam > 200) ? 200 : dam, FALSE))
- {
- msg_format(_("%^sに振り落とされた!", "%^s has thrown you off!"), m_name);
- }
- }
-#endif
-
/* Not dead yet */
return (FALSE);
}
/* Hack -- update */
handle_stuff();
-
- /* Redraw */
Term_redraw();
/*
if (!character_dungeon) return;
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
-
p_ptr->window |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT);
/* Hack -- update */
handle_stuff();
-
- /* Redraw */
Term_redraw();
}
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
-
- /* Handle stuff */
handle_stuff();
/* Success */
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
char o_name[MAX_NLEN];
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
char o_name[MAX_NLEN];
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[floor_list[0]];
object_desc(o_name, o_ptr, 0);
{
/* Display rough information about items */
#ifdef JP
- sprintf(out_val, "%s %d個のアイテム%s%s ['x'で一覧, %s]",
- s1, (int)floor_num, s2, s3, info);
+ sprintf(out_val, "%s %d個のアイテム%s%s ['x'で一覧, %s]", s1, (int)floor_num, s2, s3, info);
#else
- sprintf(out_val, "%s%s%sa pile of %d items [x,%s]",
- s1, s2, s3, (int)floor_num, info);
+ sprintf(out_val, "%s%s%sa pile of %d items [x,%s]", s1, s2, s3, (int)floor_num, info);
#endif
prt(out_val, 0, 0);
{
int i;
OBJECT_IDX o_idx;
-
- /* Save screen */
screen_save();
/* Display */
/* Prompt */
#ifdef JP
- sprintf(out_val, "%s %d個のアイテム%s%s [Enterで次へ, %s]",
- s1, (int)floor_num, s2, s3, info);
+ sprintf(out_val, "%s %d個のアイテム%s%s [Enterで次へ, %s]", s1, (int)floor_num, s2, s3, info);
#else
- sprintf(out_val, "%s%s%sa pile of %d items [Enter,%s]",
- s1, s2, s3, (int)floor_num, info);
+ sprintf(out_val, "%s%s%sa pile of %d items [Enter,%s]", s1, s2, s3, (int)floor_num, info);
#endif
prt(out_val, 0, 0);
-
- /* Wait */
query = inkey();
-
- /* Load screen */
screen_load();
/* Exit unless 'Enter' */
for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
{
object_type *o_ptr;
-
- /* Acquire object */
o_ptr = &o_list[this_o_idx];
/* Acquire next object */
* some form of "scrolling" the map around the cursor.
* That is, consider the possibility of "auto-scrolling" the screen
* while the cursor moves around. This may require changes in the
- * "update_mon()" code to allow "visibility" even if off panel, and
+ * "update_monster()" code to allow "visibility" even if off panel, and
* may require dynamic recalculation of the "temp" grid set.
*
* Hack -- targeting/observing an "outer border grid" may induce
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Recalculate interesting grids */
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Recalculate interesting grids */
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Recalculate interesting grids */
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Failure to set target */
msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), chaos_patrons[p_ptr->chaos_patron]);
msg_print(_("「汝の行いは貴き剣に値せり。」", "'Thy deed hath earned thee a worthy blade.'"));
-
- /* Get local object */
q_ptr = &forge;
dummy = TV_SWORD;
switch (randint1(p_ptr->lev))
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
}
else /* move cursor to next stair and change panel */
p_ptr->update |= (PU_MONSTERS);
- /* Redraw map */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
*x_ptr = x;