OSDN Git Service

[Fix] move を機能させるためにPatronコンストラクタの reward_table 引数の const 削除.
[hengbandforosx/hengbandosx.git] / src / player / patron.h
1 #pragma once
2
3 #include "player-ability/player-ability-types.h"
4 #include "system/angband.h"
5 #include <string>
6 #include <vector>
7
8 #define MAX_PATRON 16 /*!< カオスパトロンの最大定義数 / The number of "patrons" available (for Chaos Warriors) */
9
10 /* カオスパトロンからの報酬種別定義 / Chaos Warrior: Reward types: */
11 enum patron_reward {
12     REW_POLY_SLF = 1, /*!< カオスパトロンからの報酬: 自己変容 */
13     REW_GAIN_EXP = 2, /*!< カオスパトロンからの報酬: 経験値増加 */
14     REW_LOSE_EXP = 3, /*!< カオスパトロンからの報酬: 経験値減少 */
15     REW_GOOD_OBJ = 4, /*!< カオスパトロンからの報酬: GOODなアイテム単体の下賜 */
16     REW_GREA_OBJ = 5, /*!< カオスパトロンからの報酬: GREATなアイテム単体の下賜 */
17     REW_CHAOS_WP = 6, /*!< カオスパトロンからの報酬: 混沌武器の下賜 */
18     REW_GOOD_OBS = 7, /*!< カオスパトロンからの報酬: GOODなアイテム複数の下賜 */
19     REW_GREA_OBS = 8, /*!< カオスパトロンからの報酬: GREATなアイテム複数の下賜 */
20     REW_TY_CURSE = 9, /*!< カオスパトロンからの報酬: 太古の怨念 */
21     REW_SUMMON_M = 10, /*!< カオスパトロンからの報酬: 敵対的なモンスターの召喚(通常) */
22     REW_H_SUMMON = 11, /*!< カオスパトロンからの報酬: 敵対的なモンスターの召喚(hi-summon) */
23     REW_DO_HAVOC = 12, /*!< カオスパトロンからの報酬: 混沌招来 */
24     REW_GAIN_ABL = 13, /*!< カオスパトロンからの報酬: 増強 */
25     REW_LOSE_ABL = 14, /*!< カオスパトロンからの報酬: 1能力低下 */
26     REW_RUIN_ABL = 15, /*!< カオスパトロンからの報酬: 全能力低下 */
27     REW_AUGM_ABL = 16, /*!< カオスパトロンからの報酬: 1能力上昇 */
28     REW_POLY_WND = 17, /*!< カオスパトロンからの報酬: 傷の変化 */
29     REW_HEAL_FUL = 18, /*!< カオスパトロンからの報酬: 完全回復 */
30     REW_HURT_LOT = 19, /*!< カオスパトロンからの報酬: 分解の球によるダメージ */
31     REW_CURSE_WP = 20, /*!< カオスパトロンからの報酬: 武器呪縛 */
32     REW_CURSE_AR = 21, /*!< カオスパトロンからの報酬: 防具呪縛 */
33     REW_PISS_OFF = 22, /*!< カオスパトロンからの報酬: 苛立ち */
34     REW_WRATH = 23, /*!< カオスパトロンからの報酬: 怒り */
35     REW_DESTRUCT = 24, /*!< カオスパトロンからの報酬: *破壊* */
36     REW_GENOCIDE = 25, /*!< カオスパトロンからの報酬: シンボル抹殺 */
37     REW_MASS_GEN = 26, /*!< カオスパトロンからの報酬: 周辺抹殺 */
38     REW_DISPEL_C = 27, /*!< カオスパトロンからの報酬: モンスター退散 */
39     REW_UNUSED_1 = 28, /*!< カオスパトロンからの報酬: 未使用 */
40     REW_UNUSED_2 = 29, /*!< カオスパトロンからの報酬: 未使用 */
41     REW_UNUSED_3 = 30, /*!< カオスパトロンからの報酬: 未使用 */
42     REW_UNUSED_4 = 31, /*!< カオスパトロンからの報酬: 未使用 */
43     REW_UNUSED_5 = 32, /*!< カオスパトロンからの報酬: 未使用 */
44     REW_IGNORE = 33, /*!< カオスパトロンからの報酬: 無視 */
45     REW_SER_UNDE = 34, /*!< カオスパトロンからの報酬: アンデッドの下僕下賜 */
46     REW_SER_DEMO = 35, /*!< カオスパトロンからの報酬: 悪魔の下僕下賜 */
47     REW_SER_MONS = 36, /*!< カオスパトロンからの報酬: モンスターの下僕下賜 */
48 };
49
50 struct player_type;
51
52 /*!
53  * @brief パトロン情報の定義
54  */
55 class Patron {
56 public:
57     std::string name = ""; //!< パトロン名
58 #ifdef JP
59     std::string ename = ""; //!< PatronName
60     Patron(const char *name, const char *ename, std::vector<patron_reward> reward_table, const player_ability_type boost_stat, player_type *player_ptr);
61 #else
62     Patron(const char *name, std::vector<patron_reward> reward_table, const player_ability_type boost_stat, player_type *player_ptr);
63 #endif
64     std::vector<patron_reward> reward_table = {}; //!< 報酬テーブル
65     player_ability_type boost_stat = player_ability_type::A_STR; //!< 強化能力値傾向
66     player_type *player_ptr; //!< プレイヤー参照ポインタ
67     void gain_level_reward(int chosen_reward) const;
68     void admire() const;
69     virtual ~Patron() = default;
70 };
71
72 extern const std::vector<Patron> patron_list;