1 #include "view/display-monster-status.h"
2 #include "monster-race/monster-race-hook.h"
3 #include "monster-race/monster-race.h"
4 #include "monster/monster-flag-types.h"
5 #include "monster/monster-info.h"
6 #include "monster/smart-learn-types.h"
7 #include "system/monster-entity.h"
8 #include "system/monster-race-info.h"
11 * Monster health description
13 std::string look_mon_desc(MonsterEntity *m_ptr, BIT_FLAGS mode)
15 auto living = m_ptr->has_living_flag(true);
16 auto perc = m_ptr->maxhp > 0 ? 100L * m_ptr->hp / m_ptr->maxhp : 0;
20 desc = _("損傷具合不明", "damage unknown");
21 } else if (m_ptr->hp >= m_ptr->maxhp) {
22 desc = living ? _("無傷", "unhurt") : _("無ダメージ", "undamaged");
23 } else if (perc >= 60) {
24 desc = living ? _("軽傷", "somewhat wounded") : _("小ダメージ", "somewhat damaged");
25 } else if (perc >= 25) {
26 desc = living ? _("負傷", "wounded") : _("中ダメージ", "damaged");
27 } else if (perc >= 10) {
28 desc = living ? _("重傷", "badly wounded") : _("大ダメージ", "badly damaged");
30 desc = living ? _("半死半生", "almost dead") : _("倒れかけ", "almost destroyed");
36 } else if (m_ptr->is_pet()) {
37 attitude = _(", ペット", ", pet");
38 } else if (m_ptr->is_friendly()) {
39 attitude = _(", 友好的", ", friendly");
44 concptr clone = m_ptr->mflag2.has(MonsterConstantFlagType::CLONED) ? ", clone" : "";
45 MonsterRaceInfo *ap_r_ptr = &monraces_info[m_ptr->ap_r_idx];
46 if (ap_r_ptr->r_tkills && m_ptr->mflag2.has_not(MonsterConstantFlagType::KAGE)) {
47 return format(_("レベル%d, %s%s%s", "Level %d, %s%s%s"), ap_r_ptr->level, desc, attitude, clone);
50 return format(_("レベル???, %s%s%s", "Level ???, %s%s%s"), desc, attitude, clone);