#include "info-reader/race-info-tokens-table.h"
+#include "monster-attack/monster-attack-effect.h"
+#include "monster-attack/monster-attack-types.h"
/*!
* モンスターの打撃手段トークンの定義 /
* Monster Blow Methods
*/
-concptr r_info_blow_method[NUM_R_BLOW_METHOD] = {
+concptr r_info_blow_method[NB_RBM_TYPE + 1] = {
"",
"HIT",
"TOUCH",
* モンスターの打撃属性トークンの定義 /
* Monster Blow Effects
*/
-concptr r_info_blow_effect[NUM_R_BLOW_EFFECT] = {
+concptr r_info_blow_effect[NB_RBE_TYPE + 1] = {
"",
"HURT",
"POISON",
#pragma once
+#include "monster-attack/monster-attack-effect.h"
+#include "monster-attack/monster-attack-types.h"
#include "system/angband.h"
-#define NUM_R_BLOW_METHOD 27
-#define NUM_R_BLOW_EFFECT 38
#define NUM_R_FLAGS_1 32
#define NUM_R_FLAGS_2 32
#define NUM_R_FLAGS_3 32
#define NUM_R_FLAGS_9 33
#define NUM_R_FLAGS_R 32
-extern concptr r_info_blow_method[NUM_R_BLOW_METHOD];
-extern concptr r_info_blow_effect[NUM_R_BLOW_EFFECT];
+extern concptr r_info_blow_method[NB_RBM_TYPE + 1];
+extern concptr r_info_blow_effect[NB_RBE_TYPE + 1];
extern concptr r_info_flags1[NUM_R_FLAGS_1];
extern concptr r_info_flags2[NUM_R_FLAGS_2];
extern concptr r_info_flags3[NUM_R_FLAGS_3];
/*!
* @note モンスターの攻撃効果 / New monster blow effects
+ *
+ * "Race Blow Effect" の略。
+ * 実装の都合上、0 から始まる連番でなければならない。
*/
typedef enum rbe_type {
RBE_NONE = 0,
RBE_INERTIA = 34, /*!< モンスターの攻撃効果: 減速させる*/
RBE_STUN = 35, /*!< モンスターの攻撃効果: 朦朧とさせる*/
RBE_FLAVOR = 36, /*!< モンスターの攻撃効果: フレーバー(メッセージ表示のみ) */
+
+ NB_RBE_TYPE, /*!< enum バリアント数 */
} rbe_type;
#include "monster-attack/monster-attack-types.h"
+#include "monster-attack/monster-attack-effect.h"
#include "spell/spell-types.h"
/*!
* @brief モンスターの打撃効力テーブル /
* The table of monsters' blow effects
*/
-const mbe_info_type mbe_info[MAX_MBE] = {
+const mbe_info_type mbe_info[NB_RBE_TYPE] = {
{
0,
0,
#pragma once
+#include "monster-attack/monster-attack-effect.h"
#include "system/angband.h"
/*!
* @note モンスターの打撃方法 / New monster blow methods
* 打撃の種別に応じて傷と朦朧が発生するかがコメントの通りに決まる
+ *
+ * "Race Blow Method" の略。
+ * 実装の都合上、0 から始まる連番でなければならない。
*/
typedef enum rbm_type {
RBM_NONE = 0,
RBM_MOAN = 23, /*!< モンスターの攻撃種別:うめく */
RBM_SHOW = 24, /*!< モンスターの攻撃種別:歌う */
RBM_SHOOT = 25, /*!< モンスターの攻撃種別:射撃(非打撃) */
-} rbm_type;
-#define MAX_MBE 34
+ NB_RBM_TYPE, /*!< enum バリアント数 */
+} rbm_type;
typedef struct mbe_info_type {
int power; /* The attack "power" */
int explode_type; /* Explosion effect */
} mbe_info_type;
-extern const mbe_info_type mbe_info[MAX_MBE];
+extern const mbe_info_type mbe_info[NB_RBE_TYPE];