1 #include "market/articles-on-sale.h"
2 #include "sv-definition/sv-amulet-types.h"
3 #include "sv-definition/sv-armor-types.h"
4 #include "sv-definition/sv-bow-types.h"
5 #include "sv-definition/sv-digging-types.h"
6 #include "sv-definition/sv-food-types.h"
7 #include "sv-definition/sv-other-types.h"
8 #include "sv-definition/sv-lite-types.h"
9 #include "sv-definition/sv-potion-types.h"
10 #include "sv-definition/sv-protector-types.h"
11 #include "sv-definition/sv-scroll-types.h"
12 #include "sv-definition/sv-ring-types.h"
13 #include "sv-definition/sv-rod-types.h"
14 #include "sv-definition/sv-staff-types.h"
15 #include "sv-definition/sv-wand-types.h"
16 #include "sv-definition/sv-weapon-types.h"
19 * @brief 店舗で常時販売するオブジェクトを定義する
22 * 重複して同じ商品を設定した場合、数量が増える。
23 * 17エントリーまで設定可能。(最後は TV_NONE で止める)
24 * 種類が多すぎる場合、店舗を埋めつくすので注意。
26 store_stock_item_type store_regular_table[MAX_STORES][STORE_MAX_KEEP] =
30 { TV_FOOD, SV_FOOD_RATION },
31 { TV_LITE, SV_LITE_TORCH },
32 { TV_LITE, SV_LITE_LANTERN },
33 { TV_FLASK, SV_FLASK_OIL },
34 { TV_POTION, SV_POTION_WATER },
44 { TV_HISSATSU_BOOK, 0 },
45 { TV_SHOT, SV_AMMO_NORMAL },
46 { TV_SHOT, SV_AMMO_NORMAL },
47 { TV_ARROW, SV_AMMO_NORMAL },
48 { TV_ARROW, SV_AMMO_NORMAL },
49 { TV_BOLT, SV_AMMO_NORMAL },
50 { TV_BOLT, SV_AMMO_NORMAL },
55 { TV_POTION, SV_POTION_CURE_CRITICAL },
56 { TV_POTION, SV_POTION_CURE_SERIOUS },
57 { TV_POTION, SV_POTION_HEROISM },
58 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
59 { TV_SCROLL, SV_SCROLL_REMOVE_CURSE },
61 { TV_CRUSADE_BOOK, 0 },
66 { TV_SCROLL, SV_SCROLL_PHASE_DOOR },
67 { TV_SCROLL, SV_SCROLL_PHASE_DOOR },
68 { TV_SCROLL, SV_SCROLL_TELEPORT },
69 { TV_SCROLL, SV_SCROLL_TELEPORT },
70 { TV_SCROLL, SV_SCROLL_RECHARGING },
71 { TV_SCROLL, SV_SCROLL_IDENTIFY },
72 { TV_SCROLL, SV_SCROLL_DETECT_GOLD },
77 { TV_STAFF, SV_STAFF_IDENTIFY },
78 { TV_STAFF, SV_STAFF_IDENTIFY },
79 { TV_STAFF, SV_STAFF_MAPPING },
80 { TV_ARCANE_BOOK, 0 },
81 { TV_SORCERY_BOOK, 0 },
94 { TV_SORCERY_BOOK, 0 },
95 { TV_NATURE_BOOK, 0 },
99 { TV_ARCANE_BOOK, 0 },
100 { TV_CRAFT_BOOK, 0 },
101 { TV_DEMON_BOOK, 0 },
102 { TV_MUSIC_BOOK, 0 },
113 * @brief 店舗でランダム販売するオブジェクトを定義する
114 * @detail tval/svalのペア
116 store_stock_item_type store_table[MAX_STORES][STORE_CHOICES] =
120 { TV_FOOD, SV_FOOD_RATION },
121 { TV_FOOD, SV_FOOD_RATION },
122 { TV_FOOD, SV_FOOD_RATION },
123 { TV_FOOD, SV_FOOD_RATION },
125 { TV_FOOD, SV_FOOD_BISCUIT },
126 { TV_FOOD, SV_FOOD_JERKY },
127 { TV_FOOD, SV_FOOD_PINT_OF_WINE },
128 { TV_FOOD, SV_FOOD_PINT_OF_ALE },
130 { TV_LITE, SV_LITE_TORCH },
131 { TV_LITE, SV_LITE_TORCH },
132 { TV_LITE, SV_LITE_LANTERN },
133 { TV_LITE, SV_LITE_LANTERN },
135 { TV_POTION, SV_POTION_WATER },
136 { TV_POTION, SV_POTION_WATER },
137 { TV_FOOD, SV_FOOD_WAYBREAD },
138 { TV_FOOD, SV_FOOD_WAYBREAD },
147 { TV_SHOT, SV_AMMO_NORMAL },
148 { TV_SHOT, SV_AMMO_NORMAL },
150 { TV_ARROW, SV_AMMO_NORMAL },
151 { TV_ARROW, SV_AMMO_NORMAL },
152 { TV_BOLT, SV_AMMO_NORMAL },
153 { TV_BOLT, SV_AMMO_NORMAL },
155 { TV_DIGGING, SV_SHOVEL },
156 { TV_DIGGING, SV_SHOVEL },
157 { TV_DIGGING, SV_PICK },
158 { TV_CLOAK, SV_CLOAK },
160 { TV_CLOAK, SV_CLOAK },
161 { TV_CLOAK, SV_FUR_CLOAK },
167 { TV_ROD, SV_ROD_PESTICIDE },
168 { TV_STATUE, SV_ANY },
183 { TV_BOOTS, SV_PAIR_OF_SOFT_LEATHER_BOOTS },
184 { TV_BOOTS, SV_PAIR_OF_SOFT_LEATHER_BOOTS },
185 { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS },
186 { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS },
188 { TV_HELM, SV_HARD_LEATHER_CAP },
189 { TV_HELM, SV_HARD_LEATHER_CAP },
190 { TV_HELM, SV_METAL_CAP },
191 { TV_HELM, SV_IRON_HELM },
193 { TV_SOFT_ARMOR, SV_ROBE },
194 { TV_SOFT_ARMOR, SV_ROBE },
195 { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
196 { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
198 { TV_SOFT_ARMOR, SV_HARD_LEATHER_ARMOR },
199 { TV_SOFT_ARMOR, SV_HARD_LEATHER_ARMOR },
200 { TV_SOFT_ARMOR, SV_HARD_STUDDED_LEATHER },
201 { TV_SOFT_ARMOR, SV_HARD_STUDDED_LEATHER },
203 { TV_SOFT_ARMOR, SV_RHINO_HIDE_ARMOR },
204 { TV_SOFT_ARMOR, SV_LEATHER_SCALE_MAIL },
205 { TV_HARD_ARMOR, SV_METAL_SCALE_MAIL },
206 { TV_HARD_ARMOR, SV_CHAIN_MAIL },
208 { TV_HARD_ARMOR, SV_DOUBLE_RING_MAIL },
209 { TV_HARD_ARMOR, SV_AUGMENTED_CHAIN_MAIL },
210 { TV_HARD_ARMOR, SV_BAR_CHAIN_MAIL },
211 { TV_HARD_ARMOR, SV_DOUBLE_CHAIN_MAIL },
213 { TV_HARD_ARMOR, SV_METAL_BRIGANDINE_ARMOUR },
214 { TV_HARD_ARMOR, SV_SPLINT_MAIL },
215 { TV_GLOVES, SV_SET_OF_LEATHER_GLOVES },
216 { TV_GLOVES, SV_SET_OF_LEATHER_GLOVES },
218 { TV_GLOVES, SV_SET_OF_GAUNTLETS },
219 { TV_SHIELD, SV_SMALL_LEATHER_SHIELD },
220 { TV_SHIELD, SV_LARGE_LEATHER_SHIELD },
221 { TV_SHIELD, SV_SMALL_METAL_SHIELD },
223 { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS },
224 { TV_BOOTS, SV_PAIR_OF_HARD_LEATHER_BOOTS },
225 { TV_HELM, SV_HARD_LEATHER_CAP },
226 { TV_HELM, SV_HARD_LEATHER_CAP },
228 { TV_SOFT_ARMOR, SV_ROBE },
229 { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
230 { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
231 { TV_SOFT_ARMOR, SV_HARD_LEATHER_ARMOR },
233 { TV_SOFT_ARMOR, SV_LEATHER_JACK },
234 { TV_HARD_ARMOR, SV_METAL_SCALE_MAIL },
235 { TV_HARD_ARMOR, SV_CHAIN_MAIL },
236 { TV_HARD_ARMOR, SV_CHAIN_MAIL },
238 { TV_GLOVES, SV_SET_OF_LEATHER_GLOVES },
239 { TV_GLOVES, SV_SET_OF_GAUNTLETS },
240 { TV_SHIELD, SV_SMALL_LEATHER_SHIELD },
241 { TV_SHIELD, SV_SMALL_LEATHER_SHIELD }
246 { TV_SWORD, SV_DAGGER },
247 { TV_SWORD, SV_MAIN_GAUCHE },
248 { TV_SWORD, SV_RAPIER },
249 { TV_SWORD, SV_SMALL_SWORD },
251 { TV_SWORD, SV_SHORT_SWORD },
252 { TV_SWORD, SV_SABRE },
253 { TV_SWORD, SV_CUTLASS },
254 { TV_SWORD, SV_TULWAR },
256 { TV_SWORD, SV_BROAD_SWORD },
257 { TV_SWORD, SV_LONG_SWORD },
258 { TV_SWORD, SV_SCIMITAR },
259 { TV_SWORD, SV_KATANA },
261 { TV_SWORD, SV_BASTARD_SWORD },
262 { TV_POLEARM, SV_SPEAR },
263 { TV_POLEARM, SV_AWL_PIKE },
264 { TV_POLEARM, SV_TRIDENT },
266 { TV_POLEARM, SV_PIKE },
267 { TV_POLEARM, SV_BEAKED_AXE },
268 { TV_POLEARM, SV_BROAD_AXE },
269 { TV_POLEARM, SV_LANCE },
271 { TV_POLEARM, SV_BATTLE_AXE },
272 { TV_POLEARM, SV_HATCHET },
273 { TV_BOW, SV_SLING },
274 { TV_BOW, SV_SHORT_BOW },
276 { TV_BOW, SV_LIGHT_XBOW },
277 { TV_SHOT, SV_AMMO_NORMAL },
278 { TV_SHOT, SV_AMMO_NORMAL },
279 { TV_ARROW, SV_AMMO_NORMAL },
281 { TV_ARROW, SV_AMMO_NORMAL },
282 { TV_BOLT, SV_AMMO_NORMAL },
283 { TV_BOLT, SV_AMMO_NORMAL },
284 { TV_BOW, SV_LIGHT_XBOW },
286 { TV_ARROW, SV_AMMO_NORMAL },
287 { TV_BOLT, SV_AMMO_NORMAL },
288 { TV_BOW, SV_SHORT_BOW },
289 { TV_BOW, SV_LIGHT_XBOW },
291 { TV_SWORD, SV_DAGGER },
292 { TV_SWORD, SV_TANTO },
293 { TV_SWORD, SV_RAPIER },
294 { TV_SWORD, SV_SMALL_SWORD },
296 { TV_SWORD, SV_SHORT_SWORD },
297 { TV_SWORD, SV_LONG_SWORD },
298 { TV_SWORD, SV_SCIMITAR },
299 { TV_SWORD, SV_BROAD_SWORD },
301 { TV_HISSATSU_BOOK, 0 },
302 { TV_HISSATSU_BOOK, 0 },
303 { TV_HISSATSU_BOOK, 1 },
304 { TV_HISSATSU_BOOK, 1 },
309 { TV_HAFTED, SV_NUNCHAKU },
310 { TV_HAFTED, SV_QUARTERSTAFF },
311 { TV_HAFTED, SV_MACE },
312 { TV_HAFTED, SV_BO_STAFF },
314 { TV_HAFTED, SV_WAR_HAMMER },
315 { TV_HAFTED, SV_WAR_HAMMER },
316 { TV_HAFTED, SV_MORNING_STAR },
317 { TV_HAFTED, SV_FLAIL },
319 { TV_HAFTED, SV_LEAD_FILLED_MACE },
320 { TV_SCROLL, SV_SCROLL_REMOVE_CURSE },
321 { TV_SCROLL, SV_SCROLL_BLESSING },
322 { TV_SCROLL, SV_SCROLL_HOLY_CHANT },
324 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
325 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
326 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
327 { TV_POTION, SV_POTION_CURE_LIGHT },
329 { TV_POTION, SV_POTION_HEROISM },
330 { TV_POTION, SV_POTION_HEROISM },
331 { TV_POTION, SV_POTION_CURE_SERIOUS },
332 { TV_POTION, SV_POTION_CURE_SERIOUS },
334 { TV_POTION, SV_POTION_CURE_CRITICAL },
335 { TV_POTION, SV_POTION_CURE_CRITICAL },
336 { TV_POTION, SV_POTION_CURE_CRITICAL },
337 { TV_POTION, SV_POTION_CURE_CRITICAL },
339 { TV_POTION, SV_POTION_RESTORE_EXP },
340 { TV_POTION, SV_POTION_RESTORE_EXP },
341 { TV_POTION, SV_POTION_RESTORE_EXP },
342 { TV_POTION, SV_POTION_RESTORE_EXP },
349 { TV_CRUSADE_BOOK, 0 },
350 { TV_CRUSADE_BOOK, 1 },
351 { TV_CRUSADE_BOOK, 1 },
352 { TV_CRUSADE_BOOK, 1 },
354 { TV_HAFTED, SV_WHIP },
355 { TV_HAFTED, SV_MACE },
356 { TV_HAFTED, SV_BALL_AND_CHAIN },
357 { TV_HAFTED, SV_WAR_HAMMER },
359 { TV_POTION, SV_POTION_RESIST_HEAT },
360 { TV_POTION, SV_POTION_RESIST_COLD },
362 { TV_STATUE, SV_ANY },
364 { TV_SCROLL, SV_SCROLL_REMOVE_CURSE },
365 { TV_SCROLL, SV_SCROLL_REMOVE_CURSE },
366 { TV_SCROLL, SV_SCROLL_STAR_REMOVE_CURSE },
367 { TV_SCROLL, SV_SCROLL_STAR_REMOVE_CURSE },
372 { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_HIT },
373 { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_DAM },
374 { TV_SCROLL, SV_SCROLL_ENCHANT_ARMOR },
375 { TV_SCROLL, SV_SCROLL_IDENTIFY },
377 { TV_SCROLL, SV_SCROLL_IDENTIFY },
378 { TV_SCROLL, SV_SCROLL_IDENTIFY },
379 { TV_SCROLL, SV_SCROLL_IDENTIFY },
380 { TV_SCROLL, SV_SCROLL_LIGHT },
382 { TV_SCROLL, SV_SCROLL_PHASE_DOOR },
383 { TV_SCROLL, SV_SCROLL_PHASE_DOOR },
384 { TV_SCROLL, SV_SCROLL_TELEPORT },
385 { TV_SCROLL, SV_SCROLL_MONSTER_CONFUSION },
387 { TV_SCROLL, SV_SCROLL_MAPPING },
388 { TV_SCROLL, SV_SCROLL_DETECT_GOLD },
389 { TV_SCROLL, SV_SCROLL_DETECT_ITEM },
390 { TV_SCROLL, SV_SCROLL_DETECT_TRAP },
392 { TV_SCROLL, SV_SCROLL_DETECT_INVIS },
393 { TV_SCROLL, SV_SCROLL_RECHARGING },
394 { TV_SCROLL, SV_SCROLL_TELEPORT },
395 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
397 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
398 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
399 { TV_SCROLL, SV_SCROLL_WORD_OF_RECALL },
400 { TV_SCROLL, SV_SCROLL_TELEPORT },
402 { TV_SCROLL, SV_SCROLL_TELEPORT },
403 { TV_POTION, SV_POTION_RES_STR },
404 { TV_POTION, SV_POTION_RES_INT },
405 { TV_POTION, SV_POTION_RES_WIS },
407 { TV_POTION, SV_POTION_RES_DEX },
408 { TV_POTION, SV_POTION_RES_CON },
409 { TV_POTION, SV_POTION_RES_CHR },
410 { TV_SCROLL, SV_SCROLL_IDENTIFY },
412 { TV_SCROLL, SV_SCROLL_IDENTIFY },
413 { TV_SCROLL, SV_SCROLL_STAR_IDENTIFY },
414 { TV_SCROLL, SV_SCROLL_STAR_IDENTIFY },
415 { TV_SCROLL, SV_SCROLL_LIGHT },
417 { TV_POTION, SV_POTION_RES_STR },
418 { TV_POTION, SV_POTION_RES_INT },
419 { TV_POTION, SV_POTION_RES_WIS },
420 { TV_POTION, SV_POTION_RES_DEX },
422 { TV_POTION, SV_POTION_RES_CON },
423 { TV_POTION, SV_POTION_RES_CHR },
424 { TV_SCROLL, SV_SCROLL_ENCHANT_ARMOR },
425 { TV_SCROLL, SV_SCROLL_ENCHANT_ARMOR },
427 { TV_SCROLL, SV_SCROLL_RECHARGING },
428 { TV_SCROLL, SV_SCROLL_PHASE_DOOR },
429 { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_HIT },
430 { TV_SCROLL, SV_SCROLL_ENCHANT_WEAPON_TO_DAM },
435 /* Magic-User store */
436 { TV_RING, SV_RING_PROTECTION },
437 { TV_RING, SV_RING_LEVITATION_FALL },
438 { TV_RING, SV_RING_PROTECTION },
439 { TV_RING, SV_RING_RESIST_FIRE },
441 { TV_RING, SV_RING_RESIST_COLD },
442 { TV_AMULET, SV_AMULET_CHARISMA },
443 { TV_RING, SV_RING_WARNING },
444 { TV_AMULET, SV_AMULET_RESIST_ACID },
446 { TV_AMULET, SV_AMULET_SEARCHING },
447 { TV_WAND, SV_WAND_SLOW_MONSTER },
448 { TV_WAND, SV_WAND_CONFUSE_MONSTER },
449 { TV_WAND, SV_WAND_SLEEP_MONSTER },
451 { TV_WAND, SV_WAND_MAGIC_MISSILE },
452 { TV_WAND, SV_WAND_STINKING_CLOUD },
453 { TV_WAND, SV_WAND_WONDER },
454 { TV_WAND, SV_WAND_DISARMING },
456 { TV_STAFF, SV_STAFF_LITE },
457 { TV_STAFF, SV_STAFF_MAPPING },
458 { TV_STAFF, SV_STAFF_DETECT_TRAP },
459 { TV_STAFF, SV_STAFF_DETECT_DOOR },
461 { TV_STAFF, SV_STAFF_DETECT_GOLD },
462 { TV_STAFF, SV_STAFF_DETECT_ITEM },
463 { TV_STAFF, SV_STAFF_DETECT_INVIS },
464 { TV_STAFF, SV_STAFF_DETECT_EVIL },
466 { TV_STAFF, SV_STAFF_TELEPORTATION },
467 { TV_STAFF, SV_STAFF_TELEPORTATION },
468 { TV_STAFF, SV_STAFF_TELEPORTATION },
469 { TV_STAFF, SV_STAFF_TELEPORTATION },
471 { TV_STAFF, SV_STAFF_IDENTIFY },
472 { TV_STAFF, SV_STAFF_IDENTIFY },
473 { TV_STAFF, SV_STAFF_IDENTIFY },
475 { TV_STAFF, SV_STAFF_IDENTIFY },
476 { TV_STAFF, SV_STAFF_REMOVE_CURSE },
477 { TV_STAFF, SV_STAFF_CURE_LIGHT },
478 { TV_STAFF, SV_STAFF_PROBING },
482 { TV_SORCERY_BOOK, 0 },
483 { TV_SORCERY_BOOK, 0 },
484 { TV_SORCERY_BOOK, 1 },
485 { TV_SORCERY_BOOK, 1 },
487 { TV_ARCANE_BOOK, 0 },
488 { TV_ARCANE_BOOK, 0 },
489 { TV_ARCANE_BOOK, 1 },
490 { TV_ARCANE_BOOK, 1 },
492 { TV_ARCANE_BOOK, 2 },
493 { TV_ARCANE_BOOK, 2 },
494 { TV_ARCANE_BOOK, 3 },
495 { TV_ARCANE_BOOK, 3 },
499 /* Black Market (unused) */
572 { TV_SORCERY_BOOK, 0 },
573 { TV_SORCERY_BOOK, 0 },
574 { TV_SORCERY_BOOK, 1 },
575 { TV_SORCERY_BOOK, 1 },
577 { TV_NATURE_BOOK, 0 },
578 { TV_NATURE_BOOK, 0 },
579 { TV_NATURE_BOOK, 1 },
580 { TV_NATURE_BOOK, 1 },
582 { TV_CHAOS_BOOK, 0 },
583 { TV_CHAOS_BOOK, 0 },
584 { TV_CHAOS_BOOK, 1 },
585 { TV_CHAOS_BOOK, 1 },
587 { TV_DEATH_BOOK, 0 },
588 { TV_DEATH_BOOK, 0 },
589 { TV_DEATH_BOOK, 1 },
590 { TV_DEATH_BOOK, 1 },
592 { TV_TRUMP_BOOK, 0 },
593 { TV_TRUMP_BOOK, 0 },
594 { TV_TRUMP_BOOK, 1 },
595 { TV_TRUMP_BOOK, 1 },
597 { TV_ARCANE_BOOK, 0 },
598 { TV_ARCANE_BOOK, 1 },
599 { TV_ARCANE_BOOK, 2 },
600 { TV_ARCANE_BOOK, 3 },
602 { TV_CRAFT_BOOK, 0 },
603 { TV_CRAFT_BOOK, 0 },
604 { TV_CRAFT_BOOK, 1 },
605 { TV_CRAFT_BOOK, 1 },
607 { TV_DEMON_BOOK, 0 },
608 { TV_DEMON_BOOK, 0 },
609 { TV_DEMON_BOOK, 1 },
610 { TV_DEMON_BOOK, 1 },
612 { TV_MUSIC_BOOK, 0 },
613 { TV_MUSIC_BOOK, 0 },
614 { TV_MUSIC_BOOK, 1 },
615 { TV_MUSIC_BOOK, 1 },
624 /* Museum (unused) */