1 #include "info-reader/race-info-tokens-table.h"
2 #include "monster-attack/monster-attack-effect.h"
3 #include "monster-attack/monster-attack-types.h"
4 #include "monster-race/race-ability-flags.h"
10 concptr r_info_blow_method[NB_RBM_TYPE + 1] = {
42 * Monster Blow Effects
44 concptr r_info_blow_effect[NB_RBE_TYPE + 1] = {
89 concptr r_info_flags1[NUM_R_FLAGS_1] = {
100 "PREVENT_SUDDEN_MAGIC",
128 concptr r_info_flags2[NUM_R_FLAGS_2] = {
167 concptr r_info_flags3[NUM_R_FLAGS_3] = {
203 * モンスター特性トークン (発動型能力) /
206 /* clang-format off */
207 const std::unordered_map<std::string_view, RF_ABILITY> r_info_ability_flags = {
208 {"SHRIEK", RF_ABILITY::SHRIEK },
209 {"XXX1", RF_ABILITY::XXX1 },
210 {"DISPEL", RF_ABILITY::DISPEL },
211 {"ROCKET", RF_ABILITY::ROCKET },
212 {"SHOOT", RF_ABILITY::SHOOT },
213 {"XXX2", RF_ABILITY::XXX2 },
214 {"XXX3", RF_ABILITY::XXX3 },
215 {"XXX4", RF_ABILITY::XXX4 },
216 {"BR_ACID", RF_ABILITY::BR_ACID },
217 {"BR_ELEC", RF_ABILITY::BR_ELEC },
218 {"BR_FIRE", RF_ABILITY::BR_FIRE },
219 {"BR_COLD", RF_ABILITY::BR_COLD },
220 {"BR_POIS", RF_ABILITY::BR_POIS },
221 {"BR_NETH", RF_ABILITY::BR_NETH },
222 {"BR_LITE", RF_ABILITY::BR_LITE },
223 {"BR_DARK", RF_ABILITY::BR_DARK },
224 {"BR_CONF", RF_ABILITY::BR_CONF },
225 {"BR_SOUN", RF_ABILITY::BR_SOUN },
226 {"BR_CHAO", RF_ABILITY::BR_CHAO },
227 {"BR_DISE", RF_ABILITY::BR_DISE },
228 {"BR_NEXU", RF_ABILITY::BR_NEXU },
229 {"BR_TIME", RF_ABILITY::BR_TIME },
230 {"BR_INER", RF_ABILITY::BR_INER },
231 {"BR_GRAV", RF_ABILITY::BR_GRAV },
232 {"BR_SHAR", RF_ABILITY::BR_SHAR },
233 {"BR_PLAS", RF_ABILITY::BR_PLAS },
234 {"BR_WALL", RF_ABILITY::BR_WALL },
235 {"BR_MANA", RF_ABILITY::BR_MANA },
236 {"BA_NUKE", RF_ABILITY::BA_NUKE },
237 {"BR_NUKE", RF_ABILITY::BR_NUKE },
238 {"BA_CHAO", RF_ABILITY::BA_CHAO },
239 {"BR_DISI", RF_ABILITY::BR_DISI },
241 {"BA_ACID", RF_ABILITY::BA_ACID },
242 {"BA_ELEC", RF_ABILITY::BA_ELEC },
243 {"BA_FIRE", RF_ABILITY::BA_FIRE },
244 {"BA_COLD", RF_ABILITY::BA_COLD },
245 {"BA_POIS", RF_ABILITY::BA_POIS },
246 {"BA_NETH", RF_ABILITY::BA_NETH },
247 {"BA_WATE", RF_ABILITY::BA_WATE },
248 {"BA_MANA", RF_ABILITY::BA_MANA },
249 {"BA_DARK", RF_ABILITY::BA_DARK },
250 {"DRAIN_MANA", RF_ABILITY::DRAIN_MANA },
251 {"MIND_BLAST", RF_ABILITY::MIND_BLAST },
252 {"BRAIN_SMASH", RF_ABILITY::BRAIN_SMASH },
253 {"CAUSE_1", RF_ABILITY::CAUSE_1 },
254 {"CAUSE_2", RF_ABILITY::CAUSE_2 },
255 {"CAUSE_3", RF_ABILITY::CAUSE_3 },
256 {"CAUSE_4", RF_ABILITY::CAUSE_4 },
257 {"BO_ACID", RF_ABILITY::BO_ACID },
258 {"BO_ELEC", RF_ABILITY::BO_ELEC },
259 {"BO_FIRE", RF_ABILITY::BO_FIRE },
260 {"BO_COLD", RF_ABILITY::BO_COLD },
261 {"BA_LITE", RF_ABILITY::BA_LITE },
262 {"BO_NETH", RF_ABILITY::BO_NETH },
263 {"BO_WATE", RF_ABILITY::BO_WATE },
264 {"BO_MANA", RF_ABILITY::BO_MANA },
265 {"BO_PLAS", RF_ABILITY::BO_PLAS },
266 {"BO_ICEE", RF_ABILITY::BO_ICEE },
267 {"MISSILE", RF_ABILITY::MISSILE },
268 {"SCARE", RF_ABILITY::SCARE },
269 {"BLIND", RF_ABILITY::BLIND },
270 {"CONF", RF_ABILITY::CONF },
271 {"SLOW", RF_ABILITY::SLOW },
272 {"HOLD", RF_ABILITY::HOLD },
274 {"HASTE", RF_ABILITY::HASTE },
275 {"HAND_DOOM", RF_ABILITY::HAND_DOOM },
276 {"HEAL", RF_ABILITY::HEAL },
277 {"INVULNER", RF_ABILITY::INVULNER },
278 {"BLINK", RF_ABILITY::BLINK },
279 {"TPORT", RF_ABILITY::TPORT },
280 {"WORLD", RF_ABILITY::WORLD },
281 {"SPECIAL", RF_ABILITY::SPECIAL },
282 {"TELE_TO", RF_ABILITY::TELE_TO },
283 {"TELE_AWAY", RF_ABILITY::TELE_AWAY },
284 {"TELE_LEVEL", RF_ABILITY::TELE_LEVEL },
285 {"PSY_SPEAR", RF_ABILITY::PSY_SPEAR },
286 {"DARKNESS", RF_ABILITY::DARKNESS },
287 {"TRAPS", RF_ABILITY::TRAPS },
288 {"FORGET", RF_ABILITY::FORGET },
289 {"ANIM_DEAD", RF_ABILITY::RAISE_DEAD /* ToDo: Implement ANIM_DEAD */ },
290 {"S_KIN", RF_ABILITY::S_KIN },
291 {"S_CYBER", RF_ABILITY::S_CYBER },
292 {"S_MONSTER", RF_ABILITY::S_MONSTER },
293 {"S_MONSTERS", RF_ABILITY::S_MONSTERS },
294 {"S_ANT", RF_ABILITY::S_ANT },
295 {"S_SPIDER", RF_ABILITY::S_SPIDER },
296 {"S_HOUND", RF_ABILITY::S_HOUND },
297 {"S_HYDRA", RF_ABILITY::S_HYDRA },
298 {"S_ANGEL", RF_ABILITY::S_ANGEL },
299 {"S_DEMON", RF_ABILITY::S_DEMON },
300 {"S_UNDEAD", RF_ABILITY::S_UNDEAD },
301 {"S_DRAGON", RF_ABILITY::S_DRAGON },
302 {"S_HI_UNDEAD", RF_ABILITY::S_HI_UNDEAD },
303 {"S_HI_DRAGON", RF_ABILITY::S_HI_DRAGON },
304 {"S_AMBERITES", RF_ABILITY::S_AMBERITES },
305 {"S_UNIQUE", RF_ABILITY::S_UNIQUE },
307 /* clang-format on */
312 * "GUARDIAN" ... init.c d_infoの FINAL_GUARDIAN_* にて自動指定
314 concptr r_info_flags7[NUM_R_FLAGS_7] = {
353 concptr r_info_flags8[NUM_R_FLAGS_8] = {
384 "WILD_SWAMP", /* ToDo: Implement Swamp */
392 concptr r_info_flags9[NUM_R_FLAGS_9] = {
429 * モンスター特性トークンの定義R(耐性) /
432 concptr r_info_flagsr[NUM_R_FLAGS_R] = {