OSDN Git Service

82878d3968e95d765214e8b30fb9bf51b50d05cc
[hengbandforosx/hengbandosx.git] / src / birth / initial-equipments-table.cpp
1 #include "birth/initial-equipments-table.h"
2 #include "object/tval-types.h"
3 #include "sv-definition/sv-armor-types.h"
4 #include "sv-definition/sv-bow-types.h"
5 #include "sv-definition/sv-food-types.h"
6 #include "sv-definition/sv-potion-types.h"
7 #include "sv-definition/sv-ring-types.h"
8 #include "sv-definition/sv-scroll-types.h"
9 #include "sv-definition/sv-wand-types.h"
10 #include "sv-definition/sv-weapon-types.h"
11
12 /*!
13  * プレイヤーの職業毎の初期装備テーブル。/\n
14  * Each player starts out with a few items, given as tval/sval pairs.\n
15  * In addition, he always has some food and a few torches.\n
16  */
17 std::vector<std::vector<std::tuple<ItemPrimaryType, byte>>> player_init = {
18     {
19         /* Warrior */
20         std::make_tuple(ItemPrimaryType::TV_RING, SV_RING_RES_FEAR),
21         std::make_tuple(ItemPrimaryType::TV_HARD_ARMOR, SV_CHAIN_MAIL),
22         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_BROAD_SWORD),
23     },
24
25     {
26         /* Mage */
27         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
28         std::make_tuple(ItemPrimaryType::TV_DEATH_BOOK, 0),
29         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
30     },
31
32     {
33         /* Priest */
34         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
35         std::make_tuple(ItemPrimaryType::TV_DEATH_BOOK, 0),
36         std::make_tuple(ItemPrimaryType::TV_HAFTED, SV_MACE),
37     },
38
39     {
40         /* Rogue */
41         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
42         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
43         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
44     },
45
46     {
47         /* Ranger */
48         std::make_tuple(ItemPrimaryType::TV_NATURE_BOOK, 0),
49         std::make_tuple(ItemPrimaryType::TV_DEATH_BOOK, 0),
50         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
51     },
52
53     {
54         /* Paladin */
55         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
56         std::make_tuple(ItemPrimaryType::TV_SCROLL, SV_SCROLL_PROTECTION_FROM_EVIL),
57         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_BROAD_SWORD),
58     },
59
60     {
61         /* Warrior-Mage */
62         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
63         std::make_tuple(ItemPrimaryType::TV_DEATH_BOOK, 0),
64         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_SHORT_SWORD),
65     },
66
67     {
68         /* Chaos Warrior */
69         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
70         std::make_tuple(ItemPrimaryType::TV_HARD_ARMOR, SV_METAL_SCALE_MAIL),
71         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_BROAD_SWORD),
72     },
73
74     {
75         /* Monk */
76         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
77         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_SPEED),
78         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_HEROISM),
79     },
80
81     {
82         /* Mindcrafter */
83         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_SPEED),
84         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
85         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_SMALL_SWORD),
86     },
87
88     {
89         /* High Mage */
90         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
91         std::make_tuple(ItemPrimaryType::TV_RING, SV_RING_SUSTAIN_INT),
92         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
93     },
94
95     {
96         /* Tourist */
97         std::make_tuple(ItemPrimaryType::TV_FOOD, SV_FOOD_JERKY),
98         std::make_tuple(ItemPrimaryType::TV_SCROLL, SV_SCROLL_MAPPING),
99         std::make_tuple(ItemPrimaryType::TV_BOW, SV_SLING),
100     },
101
102     {
103         /* Imitator */
104         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_SPEED),
105         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
106         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_SHORT_SWORD),
107     },
108
109     {
110         /* Beastmaster */
111         std::make_tuple(ItemPrimaryType::TV_TRUMP_BOOK, 0),
112         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
113         std::make_tuple(ItemPrimaryType::TV_POLEARM, SV_SPEAR),
114     },
115
116     {
117         /* Sorcerer */
118         std::make_tuple(ItemPrimaryType::TV_HAFTED, SV_WIZSTAFF),
119         std::make_tuple(ItemPrimaryType::TV_RING, SV_RING_SUSTAIN_INT),
120         std::make_tuple(ItemPrimaryType::TV_WAND, SV_WAND_MAGIC_MISSILE),
121     },
122
123     {
124         /* Archer */
125         std::make_tuple(ItemPrimaryType::TV_BOW, SV_SHORT_BOW),
126         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_LEATHER_SCALE_MAIL),
127         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_SHORT_SWORD),
128     },
129
130     {
131         /* Magic eater */
132         std::make_tuple(ItemPrimaryType::TV_WAND, SV_WAND_MAGIC_MISSILE),
133         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
134         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_SHORT_SWORD),
135     },
136
137     {
138         /* Bard */
139         std::make_tuple(ItemPrimaryType::TV_MUSIC_BOOK, 0),
140         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
141         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_SHORT_SWORD),
142     },
143
144     {
145         /* Red Mage */
146         std::make_tuple(ItemPrimaryType::TV_ARCANE_BOOK, 0),
147         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_HARD_LEATHER_ARMOR),
148         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_SHORT_SWORD),
149     },
150
151     {
152         /* Samurai */
153         std::make_tuple(ItemPrimaryType::TV_HISSATSU_BOOK, 0),
154         std::make_tuple(ItemPrimaryType::TV_HARD_ARMOR, SV_CHAIN_MAIL),
155         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_BROAD_SWORD),
156     },
157
158     {
159         /* ForceTrainer */
160         std::make_tuple(ItemPrimaryType::TV_SORCERY_BOOK, 0),
161         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_SPEED),
162         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_RESTORE_MANA),
163     },
164
165     {
166         /* Blue Mage */
167         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_ROBE),
168         std::make_tuple(ItemPrimaryType::TV_WAND, SV_WAND_MAGIC_MISSILE),
169         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
170     },
171
172     {
173         /* Cavalry */
174         std::make_tuple(ItemPrimaryType::TV_BOW, SV_SHORT_BOW),
175         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_LEATHER_SCALE_MAIL),
176         std::make_tuple(ItemPrimaryType::TV_POLEARM, SV_BROAD_SPEAR),
177     },
178
179     {
180         /* Berserker */
181         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_HEALING),
182         std::make_tuple(ItemPrimaryType::TV_HARD_ARMOR, SV_AUGMENTED_CHAIN_MAIL),
183         std::make_tuple(ItemPrimaryType::TV_POLEARM, SV_BROAD_AXE),
184     },
185
186     {
187         /* Weaponsmith */
188         std::make_tuple(ItemPrimaryType::TV_RING, SV_RING_RES_FEAR),
189         std::make_tuple(ItemPrimaryType::TV_HARD_ARMOR, SV_CHAIN_MAIL),
190         std::make_tuple(ItemPrimaryType::TV_POLEARM, SV_BROAD_AXE),
191     },
192
193     {
194         /* Mirror-Master */
195         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_SPEED),
196         std::make_tuple(ItemPrimaryType::TV_RING, SV_RING_SUSTAIN_INT),
197         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
198     },
199
200     {
201         /* Ninja */
202         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_SPEED),
203         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
204         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
205     },
206
207     {
208         /* Sniper */
209         std::make_tuple(ItemPrimaryType::TV_BOW, SV_LIGHT_XBOW),
210         std::make_tuple(ItemPrimaryType::TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR),
211         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
212     },
213
214     {
215         /* Elementalist */
216         std::make_tuple(ItemPrimaryType::TV_POTION, SV_POTION_SPEED),
217         std::make_tuple(ItemPrimaryType::TV_RING, SV_RING_SUSTAIN_WIS),
218         std::make_tuple(ItemPrimaryType::TV_SWORD, SV_DAGGER),
219     },
220 };