#include "angband.h"
#include "cmd-pet.h"
#include "object-curse.h"
+#include "monster-hook.h"
#define REWARD_CHANCE 10
/* Redraw experience */
p_ptr->redraw |= (PR_EXP);
-
- /* Handle stuff */
handle_stuff();
{
/* Lose a level */
p_ptr->lev--;
-
- /* Update some stuff */
p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
-
- /* Redraw some stuff */
p_ptr->redraw |= (PR_LEV | PR_TITLE);
-
p_ptr->window |= (PW_PLAYER);
-
- /* Handle stuff */
handle_stuff();
}
msg_format(_("レベル %d にようこそ。", "Welcome to level %d."), p_ptr->lev);
- /* Update some stuff */
p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
-
- /* Redraw some stuff */
p_ptr->redraw |= (PR_LEV | PR_TITLE | PR_EXP);
-
p_ptr->window |= (PW_PLAYER | PW_SPELL | PW_INVEN);
/* HPとMPの上昇量を表示 */
level_up = 1;
-
- /* Handle stuff */
handle_stuff();
level_up = 0;
level_reward = FALSE;
}
- /* Update some stuff */
p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
-
- /* Redraw some stuff */
p_ptr->redraw |= (PR_LEV | PR_TITLE);
-
p_ptr->window |= (PW_PLAYER | PW_SPELL);
-
- /* Handle stuff */
handle_stuff();
}
* @param r_ptr 撃破されたモンスターの種族情報を持つ構造体の参照ポインタ
* @return 撃破されたモンスターの述語
*/
-cptr extract_note_dies(monster_race *r_ptr)
+cptr extract_note_dies(MONRACE_IDX r_idx)
{
+ monster_race *r_ptr = &r_info[r_idx];
/* Some monsters get "destroyed" */
- if (!monster_living(r_ptr))
+ if (!monster_living(r_idx))
{
int i;
*/
void monster_death(MONSTER_IDX m_idx, bool drop_item)
{
- int i, j, y, x;
+ int i, j;
+ POSITION y, x;
int dump_item = 0;
int dump_gold = 0;
-
int number = 0;
monster_type *m_ptr = &m_list[m_idx];
-
monster_race *r_ptr = &r_info[m_ptr->r_idx];
bool visible = ((m_ptr->ml && !p_ptr->image) || (r_ptr->flags1 & RF1_UNIQUE));
/* Prepare to make a prize */
object_prep(q_ptr, lookup_kind(arena_info[p_ptr->arena_number].tval, arena_info[p_ptr->arena_number].sval));
-
apply_magic(q_ptr, object_level, AM_NO_FIXED_ART);
/* Drop it in the dungeon */
#ifdef WORLD_SCORE
if (m_ptr->r_idx == MON_SERPENT)
{
- /* Make screen dump */
screen_dump = make_screen_dump();
}
#endif
}
/* Death by Physical attack -- non-living monster */
- else if (!monster_living(r_ptr))
+ else if (!monster_living(m_ptr->r_idx))
{
bool explode = FALSE;
p_ptr->update |= (PU_MONSTERS);
p_ptr->redraw |= (PR_MAP);
-
- /* Handle stuff */
handle_stuff();
/* Success */
panel_bounds_center();
p_ptr->update |= (PU_MONSTERS);
-
p_ptr->redraw |= (PR_MAP);
-
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
}
cptr look_mon_desc(monster_type *m_ptr, BIT_FLAGS mode)
{
monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx];
- bool living;
- int perc;
+ bool living;
+ int perc;
cptr desc;
cptr attitude;
cptr clone;
/* Determine if the monster is "living" */
- living = monster_living(ap_r_ptr);
+ living = monster_living(m_ptr->ap_r_idx);
/* Calculate a health "percentage" */
perc = 100L * m_ptr->hp / m_ptr->maxhp;
/* Healthy monsters */
if (m_ptr->hp >= m_ptr->maxhp)
{
- /* No damage */
-#ifdef JP
- desc = living ? "無傷" : "無ダメージ";
-#else
- desc = living ? "unhurt" : "undamaged";
-#endif
-
+ desc = living ? _("無傷", "unhurt") : _("無ダメージ", "undamaged");
}
else if (perc >= 60)
{
-#ifdef JP
- desc = living ? "軽傷" : "小ダメージ";
-#else
- desc = living ? "somewhat wounded" : "somewhat damaged";
-#endif
-
+ desc = living ? _("軽傷", "somewhat wounded") : _("小ダメージ", "somewhat damaged");
}
else if (perc >= 25)
{
-#ifdef JP
- desc = living ? "負傷" : "中ダメージ";
-#else
- desc = living ? "wounded" : "damaged";
-#endif
-
+ desc = living ? _("負傷", "wounded") : _("中ダメージ", "damaged");
}
else if (perc >= 10)
{
-#ifdef JP
- desc = living ? "重傷" : "大ダメージ";
-#else
- desc = living ? "badly wounded" : "badly damaged";
-#endif
-
+ desc = living ? _("重傷", "badly wounded") : _("大ダメージ", "badly damaged");
}
else
{
-#ifdef JP
- desc = living ? "半死半生" : "倒れかけ";
-#else
- desc = living ? "almost dead" : "almost destroyed";
-#endif
+ desc = living ? _("半死半生", "almost dead") : _("倒れかけ", "almost destroyed");
}
-
/* Need attitude information? */
if (!(mode & 0x01))
{
attitude = _("", "");
}
-
/* Clone monster? */
if (m_ptr->smart & SM_CLONED)
{
{
return format(_("レベル???, %s%s%s", "Level ???, %s%s%s"), desc, attitude, clone);
}
+
}
/* Hack -- health bar for this monster */
health_track(c_ptr->m_idx);
-
- /* Hack -- handle stuff */
handle_stuff();
/* Interact */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Recalculate interesting grids */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Recalculate interesting grids */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Recalculate interesting grids */
p_ptr->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
/* Failure to set target */
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->redraw |= (PR_MAP);
p_ptr->window |= (PW_OVERHEAD);
-
- /* Handle stuff */
handle_stuff();
*x_ptr = x;