-#include "info-reader/race-info-tokens-table.h"
+#include "info-reader/race-info-tokens-table.h"
#include "monster-attack/monster-attack-effect.h"
#include "monster-attack/monster-attack-types.h"
#include "monster-race/race-ability-flags.h"
* Monster race flags
*/
const std::unordered_map<std::string_view, race_flags1> r_info_flags1 = {
- { "UNIQUE", RF1_UNIQUE },
- { "QUESTOR", RF1_QUESTOR },
- { "MALE", RF1_MALE },
- { "FEMALE", RF1_FEMALE },
- { "CHAR_CLEAR", RF1_CHAR_CLEAR },
- { "SHAPECHANGER", RF1_SHAPECHANGER },
- { "ATTR_CLEAR", RF1_ATTR_CLEAR },
- { "ATTR_MULTI", RF1_ATTR_MULTI },
- { "FORCE_DEPTH", RF1_FORCE_DEPTH },
- { "FORCE_MAXHP", RF1_FORCE_MAXHP },
- { "PREVENT_SUDDEN_MAGIC", RF1_PREVENT_SUDDEN_MAGIC },
- { "FORCE_EXTRA", RF1_FORCE_EXTRA },
- { "ATTR_SEMIRAND", RF1_ATTR_SEMIRAND },
- { "FRIENDS", RF1_FRIENDS },
- { "ESCORT", RF1_ESCORT },
- { "ESCORTS", RF1_ESCORTS },
- { "NEVER_BLOW", RF1_NEVER_BLOW },
- { "NEVER_MOVE", RF1_NEVER_MOVE },
- { "RAND_25", RF1_RAND_25 },
- { "RAND_50", RF1_RAND_50 },
- { "ONLY_GOLD", RF1_ONLY_GOLD },
- { "ONLY_ITEM", RF1_ONLY_ITEM },
- { "DROP_60", RF1_DROP_60 },
- { "DROP_90", RF1_DROP_90 },
- { "DROP_1D2", RF1_DROP_1D2 },
- { "DROP_2D2", RF1_DROP_2D2 },
- { "DROP_3D2", RF1_DROP_3D2 },
- { "DROP_4D2", RF1_DROP_4D2 },
- { "DROP_GOOD", RF1_DROP_GOOD },
- { "DROP_GREAT", RF1_DROP_GREAT },
+ { "UNIQUE", RF1_UNIQUE },
+ { "QUESTOR", RF1_QUESTOR },
+ { "MALE", RF1_MALE },
+ { "FEMALE", RF1_FEMALE },
+ { "CHAR_CLEAR", RF1_CHAR_CLEAR },
+ { "SHAPECHANGER", RF1_SHAPECHANGER },
+ { "ATTR_CLEAR", RF1_ATTR_CLEAR },
+ { "ATTR_MULTI", RF1_ATTR_MULTI },
+ { "FORCE_DEPTH", RF1_FORCE_DEPTH },
+ { "FORCE_MAXHP", RF1_FORCE_MAXHP },
+ { "FORCE_EXTRA", RF1_FORCE_EXTRA },
+ { "ATTR_SEMIRAND", RF1_ATTR_SEMIRAND },
+ { "FRIENDS", RF1_FRIENDS },
+ { "ESCORT", RF1_ESCORT },
+ { "ESCORTS", RF1_ESCORTS },
+ { "ONLY_GOLD", RF1_ONLY_GOLD },
+ { "ONLY_ITEM", RF1_ONLY_ITEM },
+ { "DROP_60", RF1_DROP_60 },
+ { "DROP_90", RF1_DROP_90 },
+ { "DROP_1D2", RF1_DROP_1D2 },
+ { "DROP_2D2", RF1_DROP_2D2 },
+ { "DROP_3D2", RF1_DROP_3D2 },
+ { "DROP_4D2", RF1_DROP_4D2 },
+ { "DROP_GOOD", RF1_DROP_GOOD },
+ { "DROP_GREAT", RF1_DROP_GREAT },
};
/*!
* Monster race flags
*/
const std::unordered_map<std::string_view, race_flags2> r_info_flags2 = {
- { "STUPID", RF2_STUPID },
- { "SMART", RF2_SMART },
- { "CAN_SPEAK", RF2_CAN_SPEAK },
- { "REFLECTING", RF2_REFLECTING },
- { "INVISIBLE", RF2_INVISIBLE },
- { "COLD_BLOOD", RF2_COLD_BLOOD },
- { "EMPTY_MIND", RF2_EMPTY_MIND },
- { "WEIRD_MIND", RF2_WEIRD_MIND },
- { "MULTIPLY", RF2_MULTIPLY },
- { "REGENERATE", RF2_REGENERATE },
- { "CHAR_MULTI", RF2_CHAR_MULTI },
- { "ATTR_ANY", RF2_ATTR_ANY },
- { "POWERFUL", RF2_POWERFUL },
- { "ELDRITCH_HORROR", RF2_ELDRITCH_HORROR },
- { "FLAGS2_XX14", RF2_XX14 },
- { "FLAGS2_XX15", RF2_XX15 },
- { "OPEN_DOOR", RF2_OPEN_DOOR },
- { "BASH_DOOR", RF2_BASH_DOOR },
- { "PASS_WALL", RF2_PASS_WALL },
- { "KILL_WALL", RF2_KILL_WALL },
- { "MOVE_BODY", RF2_MOVE_BODY },
- { "KILL_BODY", RF2_KILL_BODY },
- { "TAKE_ITEM", RF2_TAKE_ITEM },
- { "KILL_ITEM", RF2_KILL_ITEM },
- { "HUMAN", RF2_HUMAN },
- { "QUANTUM", RF2_QUANTUM }
+ { "CAN_SPEAK", RF2_CAN_SPEAK },
+ { "REFLECTING", RF2_REFLECTING },
+ { "INVISIBLE", RF2_INVISIBLE },
+ { "COLD_BLOOD", RF2_COLD_BLOOD },
+ { "EMPTY_MIND", RF2_EMPTY_MIND },
+ { "WEIRD_MIND", RF2_WEIRD_MIND },
+ { "MULTIPLY", RF2_MULTIPLY },
+ { "REGENERATE", RF2_REGENERATE },
+ { "CHAR_MULTI", RF2_CHAR_MULTI },
+ { "ATTR_ANY", RF2_ATTR_ANY },
+ { "POWERFUL", RF2_POWERFUL },
+ { "ELDRITCH_HORROR", RF2_ELDRITCH_HORROR },
+ { "FLAGS2_XX14", RF2_XX14 },
+ { "FLAGS2_XX15", RF2_XX15 },
+ { "PASS_WALL", RF2_PASS_WALL },
+ { "KILL_WALL", RF2_KILL_WALL },
+ { "HUMAN", RF2_HUMAN },
+ { "QUANTUM", RF2_QUANTUM }
};
/*!
* "GUARDIAN" ... init.c d_infoの FINAL_GUARDIAN_* にて自動指定
*/
const std::unordered_map<std::string_view, race_flags7> r_info_flags7 = {
- { "AQUATIC", RF7_AQUATIC },
- { "CAN_SWIM", RF7_CAN_SWIM },
- { "CAN_FLY", RF7_CAN_FLY },
- { "FRIENDLY", RF7_FRIENDLY },
- { "NAZGUL", RF7_NAZGUL },
- { "UNIQUE2", RF7_UNIQUE2 },
- { "RIDING", RF7_RIDING },
- { "KAGE", RF7_KAGE },
- { "HAS_LITE_1", RF7_HAS_LITE_1 },
- { "SELF_LITE_1", RF7_SELF_LITE_1 },
- { "HAS_LITE_2", RF7_HAS_LITE_2 },
- { "SELF_LITE_2", RF7_SELF_LITE_2 },
- { "CHAMELEON", RF7_CHAMELEON },
- { "TANUKI", RF7_TANUKI },
- { "HAS_DARK_1", RF7_HAS_DARK_1 },
- { "SELF_DARK_1", RF7_SELF_DARK_1 },
- { "HAS_DARK_2", RF7_HAS_DARK_2 },
- { "SELF_DARK_2", RF7_SELF_DARK_2 },
+ { "AQUATIC", RF7_AQUATIC },
+ { "CAN_SWIM", RF7_CAN_SWIM },
+ { "CAN_FLY", RF7_CAN_FLY },
+ { "NAZGUL", RF7_NAZGUL },
+ { "UNIQUE2", RF7_UNIQUE2 },
+ { "RIDING", RF7_RIDING },
+ { "KAGE", RF7_KAGE },
+ { "HAS_LITE_1", RF7_HAS_LITE_1 },
+ { "SELF_LITE_1", RF7_SELF_LITE_1 },
+ { "HAS_LITE_2", RF7_HAS_LITE_2 },
+ { "SELF_LITE_2", RF7_SELF_LITE_2 },
+ { "CHAMELEON", RF7_CHAMELEON },
+ { "TANUKI", RF7_TANUKI },
+ { "HAS_DARK_1", RF7_HAS_DARK_1 },
+ { "SELF_DARK_1", RF7_SELF_DARK_1 },
+ { "HAS_DARK_2", RF7_HAS_DARK_2 },
+ { "SELF_DARK_2", RF7_SELF_DARK_2 },
};
/*!
{ "AURA_VOIDS", MonsterAuraType::VOIDS },
{ "AURA_ABYSS", MonsterAuraType::ABYSS },
};
+
+const std::unordered_map<std::string_view, MonsterBehaviorType> r_info_behavior_flags = {
+ { "NEVER_BLOW", MonsterBehaviorType::NEVER_BLOW },
+ { "NEVER_MOVE", MonsterBehaviorType::NEVER_MOVE },
+ { "OPEN_DOOR", MonsterBehaviorType::OPEN_DOOR },
+ { "BASH_DOOR", MonsterBehaviorType::BASH_DOOR },
+ { "MOVE_BODY", MonsterBehaviorType::MOVE_BODY },
+ { "KILL_BODY", MonsterBehaviorType::KILL_BODY },
+ { "TAKE_ITEM", MonsterBehaviorType::TAKE_ITEM },
+ { "KILL_ITEM", MonsterBehaviorType::KILL_ITEM },
+ { "RAND_25", MonsterBehaviorType::RAND_MOVE_25 },
+ { "RAND_50", MonsterBehaviorType::RAND_MOVE_50 },
+ { "STUPID", MonsterBehaviorType::STUPID },
+ { "SMART", MonsterBehaviorType::SMART },
+ { "FRIENDLY", MonsterBehaviorType::FRIENDLY },
+ { "PREVENT_SUDDEN_MAGIC", MonsterBehaviorType::PREVENT_SUDDEN_MAGIC },
+};