7 #include "object-enchant/object-ego.h"
8 #include "object-enchant/tr-flags.h"
9 #include "object-enchant/tr-types.h"
10 #include "object-enchant/trg-types.h"
11 #include "system/angband.h"
12 #include "util/flag-group.h"
40 /* Crowns and Helms */
110 W_DARK_REVENGER = 85,
141 LIGHTNING_BOLT = 121,
151 LITE_ILLUMINATION = 141,
152 LITE_AURA_FIRE = 142,
162 RING_MAGIC_MIS = 153,
163 RING_FIRE_BOLT = 154,
164 RING_COLD_BOLT = 155,
165 RING_ELEC_BOLT = 156,
166 RING_ACID_BOLT = 157,
167 RING_MANA_BOLT = 158,
168 RING_FIRE_BALL = 159,
169 RING_COLD_BALL = 160,
170 RING_ELEC_BALL = 161,
171 RING_ACID_BALL = 162,
172 RING_MANA_BALL = 163,
176 RING_BERSERKER = 167,
183 RING_TELE_AWAY = 174,
190 RING_DRAIN_EXP = 181,
192 RING_AGGRAVATE = 183,
223 AMU_LEVITATION = 234,
231 struct ego_generate_type {
234 std::vector<tr_type> tr_flags{};
235 std::vector<ItemGenerationTraitType> trg_flags{};
239 * Information about "ego-items".
241 enum class RandomArtActType : short;
242 struct ego_item_type {
245 std::string name; //!< エゴの名前
246 std::string text; //!< フレーバーテキスト
248 INVENTORY_IDX slot{}; //!< 装備部位 / Standard slot value
249 PRICE rating{}; //!< レーティングボーナス(雰囲気に影響) / Rating boost
251 DEPTH level{}; //!< 生成レベル
252 RARITY rarity{}; //<! レアリティ
254 HIT_PROB base_to_h{}; //!< ベース命中修正
255 int base_to_d{}; //!< べ^スダメージ修正
256 ARMOUR_CLASS base_to_a{}; //!< ベースAC修正
258 HIT_PROB max_to_h{}; //!< 最大ボーナス命中修正
259 int max_to_d{}; //!< 最大ボーナスダメージ修正
260 ARMOUR_CLASS max_to_a{}; //!< 最大ボーナスAC修正
262 PARAMETER_VALUE max_pval{}; //!< 最大pval
264 PRICE cost{}; //!< コスト
266 TrFlags flags{}; //!< 能力/耐性フラグ
267 EnumClassFlagGroup<ItemGenerationTraitType> gen_flags; //!< 生成時適用フラグ
268 std::vector<ego_generate_type> xtra_flags{}; //!< 追加能力/耐性フラグ
270 RandomArtActType act_idx{}; //!< 発動番号 / Activative ability index
273 extern std::map<EgoType, ego_item_type> e_info;
277 EgoType get_random_ego(byte slot, bool good);
278 void apply_ego(ObjectType *o_ptr, DEPTH lev);