OSDN Git Service

[Refactor] #40414 Separated spells-launcher.c/h from spells2.c/h
[hengbandforosx/hengbandosx.git] / src / grid / trap.h
1 #pragma once
2
3 /*!
4  * 箱のトラップ定義 Chest trap flags
5  */
6 #define CHEST_LOSE_STR          0x0001 /*!< 箱のトラップ: STR減少の毒針 */
7 #define CHEST_LOSE_CON          0x0002 /*!< 箱のトラップ: CON減少の毒針 */
8 #define CHEST_POISON            0x0004 /*!< 箱のトラップ: 毒針 */
9 #define CHEST_PARALYZE          0x0008 /*!< 箱のトラップ: 麻痺ガス */
10 #define CHEST_EXPLODE           0x0010 /*!< 箱のトラップ: 爆発 */
11 #define CHEST_SUMMON            0x0020 /*!< 箱のトラップ: 召喚のルーン(モンスター) */
12 #define CHEST_SCATTER           0x0040 /*!< 箱のトラップ: アイテム散乱 */
13 #define CHEST_E_SUMMON          0x0080 /*!< 箱のトラップ: 召喚のルーン(エレメンタル) */
14 #define CHEST_BIRD_STORM        0x0100 /*!< 箱のトラップ: 召喚のルーン(鳥) */
15 #define CHEST_H_SUMMON          0x0200 /*!< 箱のトラップ: 召喚のルーン(強敵)  */
16 #define CHEST_RUNES_OF_EVIL     0x0400 /*!< 箱のトラップ: 邪悪なルーン */
17 #define CHEST_ALARM             0x0800 /*!< 箱のトラップ: 警報装置 */
18
19 /* Types of normal traps */
20 #define NOT_TRAP        -1
21 #define TRAP_TRAPDOOR    0
22 #define TRAP_PIT         1
23 #define TRAP_SPIKED_PIT  2
24 #define TRAP_POISON_PIT  3
25 #define TRAP_TY_CURSE    4
26 #define TRAP_TELEPORT    5
27 #define TRAP_FIRE        6
28 #define TRAP_ACID        7
29 #define TRAP_SLOW        8
30
31 #define TRAP_LOSE_STR    9
32 #define TRAP_LOSE_DEX   10
33 #define TRAP_LOSE_CON   11
34 #define TRAP_BLIND      12
35 #define TRAP_CONFUSE    13
36 #define TRAP_POISON     14
37 #define TRAP_SLEEP      15
38 #define TRAP_TRAPS      16
39 #define TRAP_ALARM      17
40
41 #define MAX_NORMAL_TRAPS 18
42
43 /* Types of special traps */
44 #define TRAP_OPEN       18
45 #define TRAP_ARMAGEDDON 19
46 #define TRAP_PIRANHA    20
47
48 extern const int chest_traps[64];
49
50 void init_normal_traps(void);
51 FEAT_IDX choose_random_trap(player_type *trapped_ptr);
52 void disclose_grid(player_type *trapped_ptr, POSITION y, POSITION x);
53 void place_trap(player_type *trapped_ptr, POSITION y, POSITION x);
54 void hit_trap(player_type *trapped_ptr, bool break_trap);