4 #include <unordered_map>
7 #include "object-enchant/tr-flags.h"
8 #include "object-enchant/tr-types.h"
9 #include "player-ability/player-ability-types.h"
10 #include "player-info/class-types.h"
11 #include "player-info/race-types.h"
12 #include "system/angband.h"
17 enum class MimicKindType {
27 enum class PlayerRaceLifeType {
28 LIVING = 0, //!< 生きている
31 NONLIVING = 3, //!< 生きてない
38 enum class PlayerRaceFoodType {
44 CORPSE = 5, //!< 死体(捧げる)
49 * @brief プレイヤー種族の条件設定構造体
51 struct player_race_condition {
54 std::optional<PlayerClassType> pclass{};
57 player_race_condition(tr_type t, PLAYER_LEVEL l = 1, const std::optional<PlayerClassType> &c = std::nullopt, bool nc = false)
67 * @brief プレイヤー種族情報構造体 / Player racial info
69 struct player_race_info {
70 concptr title{}; //!< 種族名 / Title of race
72 concptr E_title{}; //!< 英語種族名
74 concptr symbol{}; //!< 種族シンボル(救援召喚) / Race symbols
75 int16_t r_adj[A_MAX]{}; //!< 能力値ボーナス / Racial stat bonuses
77 int16_t r_dis{}; //!< 解除 / disarming
78 int16_t r_dev{}; //!< 魔道具使用 /magic devices
79 int16_t r_sav{}; //!< 魔法防御 / saving throw
80 int16_t r_stl{}; //!< 隠密 / stealth
81 int16_t r_srh{}; //!< 探索 / search ability
82 int16_t r_fos{}; //!< 知覚 / search frequency
83 int16_t r_thn{}; //!< 打撃修正(命中) / combat (normal)
84 int16_t r_thb{}; //!< 射撃修正(命中) / combat (shooting)
86 byte r_mhp{}; //!< ヒットダイス / Race hit-dice modifier
87 byte r_exp{}; //!< 経験値修正 /Race experience factor
89 byte b_age{}; //!< 年齢最小値 / base age
90 byte m_age{}; //!< 年齢加算範囲 / mod age
92 byte m_b_ht{}; //!< 身長最小値(男) / base height (males)
93 byte m_m_ht{}; //!< 身長加算範囲(男) / mod height (males)
94 byte m_b_wt{}; //!< 体重最小値(男) / base weight (males)
95 byte m_m_wt{}; //!< 体重加算範囲(男) / mod weight (males)
97 byte f_b_ht{}; //!< 身長最小値(女) / base height (females)
98 byte f_m_ht{}; //!< 身長加算範囲(女) / mod height (females)
99 byte f_b_wt{}; //!< 体重最小値(女) / base weight (females)
100 byte f_m_wt{}; //!< 体重加算範囲(女) / mod weight (females)
102 byte infra{}; //!< 赤外線視力 / Infra-vision range
104 uint32_t choice{}; //!< 似つかわしい職業(ミミック時はミミック種族属性) / Legal class choices
105 PlayerRaceLifeType life{}; //!< 生命の形態
106 PlayerRaceFoodType food{}; //!< 食料の形態
108 std::vector<player_race_condition> extra_flags;
111 extern const player_race_info *rp_ptr;
114 char get_summon_symbol_from_player(PlayerType *player_ptr);