OSDN Git Service

Merge pull request #716 from sikabane-works/release/3.0.0Alpha16
[hengbandforosx/hengbandosx.git] / src / mspell / mspell-mask-definitions.h
1 #pragma once
2
3 /* "summon" spells currently "summon" spells are included in "intelligent" and "indirect" */
4 #define RF4_SUMMON_MASK 0UL
5
6 #define RF5_SUMMON_MASK 0UL
7
8 #define RF6_SUMMON_MASK                                                                                                                                        \
9     (RF6_S_KIN | RF6_S_CYBER | RF6_S_MONSTER | RF6_S_MONSTERS | RF6_S_ANT | RF6_S_SPIDER | RF6_S_HOUND | RF6_S_HYDRA | RF6_S_ANGEL | RF6_S_DEMON               \
10         | RF6_S_UNDEAD | RF6_S_DRAGON | RF6_S_HI_UNDEAD | RF6_S_HI_DRAGON | RF6_S_AMBERITES | RF6_S_UNIQUE)
11
12 /* Choose "intelligent" spells when desperate Including "summon" spells */
13 #define RF4_INT_MASK (RF4_SUMMON_MASK | RF4_DISPEL)
14
15 #define RF5_INT_MASK (RF5_SUMMON_MASK | RF5_HOLD | RF5_SLOW | RF5_CONF | RF5_BLIND | RF5_SCARE)
16
17 #define RF6_INT_MASK (RF6_SUMMON_MASK | RF6_BLINK | RF6_TPORT | RF6_TELE_LEVEL | RF6_TELE_AWAY | RF6_HEAL | RF6_INVULNER | RF6_HASTE | RF6_TRAPS)
18
19 /* Spells that cannot be used while player riding on the monster */
20 #define RF4_RIDING_MASK (RF4_SHRIEK)
21
22 #define RF5_RIDING_MASK 0UL
23
24 #define RF6_RIDING_MASK (RF6_BLINK | RF6_TPORT | RF6_TRAPS | RF6_DARKNESS | RF6_SPECIAL)
25
26 /*
27  * "bolt" spells that may hurt fellow monsters
28  * Currently "bolt" spells are included in "attack"
29  */
30 #define RF4_BOLT_MASK (RF4_ROCKET | RF4_SHOOT)
31
32 #define RF5_BOLT_MASK                                                                                                                                          \
33     (RF5_BO_ACID | RF5_BO_ELEC | RF5_BO_FIRE | RF5_BO_COLD | RF5_BO_NETH | RF5_BO_WATE | RF5_BO_MANA | RF5_BO_PLAS | RF5_BO_ICEE | RF5_MISSILE)
34
35 #define RF6_BOLT_MASK 0UL
36
37 /*
38  * "beam" spells that may hurt fellow monsters
39  * Currently "beam" spells are included in "attack"
40  */
41 #define RF4_BEAM_MASK 0UL
42
43 #define RF5_BEAM_MASK 0UL
44
45 #define RF6_BEAM_MASK (RF6_PSY_SPEAR)
46
47 /*
48  * "ball" spells with radius 4 that may hurt friends
49  * Currently "radius 4 ball" spells are included in "ball"
50  */
51 #define RF4_BIG_BALL_MASK (RF4_BA_CHAO)
52
53 #define RF5_BIG_BALL_MASK (RF5_BA_LITE | RF5_BA_DARK | RF5_BA_WATE | RF5_BA_MANA)
54
55 #define RF6_BIG_BALL_MASK 0UL
56
57 /*
58  * "ball" spells that may hurt friends
59  * Including "radius 4 ball" and "breath" spells
60  * Currently "ball" spells are included in "attack"
61  */
62 #define RF4_BALL_MASK (RF4_BIG_BALL_MASK | RF4_BREATH_MASK | RF4_ROCKET | RF4_BA_NUKE)
63
64 #define RF5_BALL_MASK (RF5_BIG_BALL_MASK | RF5_BREATH_MASK | RF5_BA_ACID | RF5_BA_ELEC | RF5_BA_FIRE | RF5_BA_COLD | RF5_BA_POIS | RF5_BA_NETH)
65
66 #define RF6_BALL_MASK (RF6_BIG_BALL_MASK | RF6_BREATH_MASK)
67
68 /*
69  * "breath" spells that may hurt friends
70  * Currently "breath" spells are included in "ball" and "non-magic"
71  */
72 #define RF4_BREATH_MASK                                                                                                                                        \
73     (RF4_BR_ACID | RF4_BR_ELEC | RF4_BR_FIRE | RF4_BR_COLD | RF4_BR_POIS | RF4_BR_NETH | RF4_BR_LITE | RF4_BR_DARK | RF4_BR_CONF | RF4_BR_SOUN | RF4_BR_CHAO   \
74         | RF4_BR_DISE | RF4_BR_NEXU | RF4_BR_SHAR | RF4_BR_TIME | RF4_BR_INER | RF4_BR_GRAV | RF4_BR_PLAS | RF4_BR_WALL | RF4_BR_MANA | RF4_BR_NUKE            \
75         | RF4_BR_DISI)
76
77 #define RF5_BREATH_MASK 0UL
78
79 #define RF6_BREATH_MASK 0UL
80
81 /* "attack" spells including "bolt", "beam" and "ball" spells */
82 #define RF4_ATTACK_MASK (RF4_BOLT_MASK | RF4_BEAM_MASK | RF4_BALL_MASK | RF4_DISPEL)
83
84 #define RF5_ATTACK_MASK                                                                                                                                        \
85     (RF5_BOLT_MASK | RF5_BEAM_MASK | RF5_BALL_MASK | RF5_DRAIN_MANA | RF5_MIND_BLAST | RF5_BRAIN_SMASH | RF5_CAUSE_1 | RF5_CAUSE_2 | RF5_CAUSE_3 | RF5_CAUSE_4 \
86         | RF5_SCARE | RF5_BLIND | RF5_CONF | RF5_SLOW | RF5_HOLD)
87
88 #define RF6_ATTACK_MASK                                                                                                                                        \
89     (RF6_BOLT_MASK | RF6_BEAM_MASK | RF6_BALL_MASK | RF6_HAND_DOOM | RF6_TELE_TO | RF6_TELE_AWAY | RF6_TELE_LEVEL | RF6_DARKNESS | RF6_TRAPS | RF6_FORGET)
90
91 /* "indirect" spells Including "summon" spells */
92 #define RF4_INDIRECT_MASK (RF4_SUMMON_MASK | RF4_SHRIEK)
93
94 #define RF5_INDIRECT_MASK (RF5_SUMMON_MASK)
95
96 #define RF6_INDIRECT_MASK (RF6_SUMMON_MASK | RF6_HASTE | RF6_HEAL | RF6_INVULNER | RF6_BLINK | RF6_WORLD | RF6_TPORT | RF6_RAISE_DEAD)
97
98 /* "non-magic" spells including "breath" spells */
99 #define RF4_NOMAGIC_MASK (RF4_BREATH_MASK | RF4_SHRIEK | RF4_ROCKET | RF4_SHOOT)
100
101 #define RF5_NOMAGIC_MASK (RF5_BREATH_MASK)
102
103 #define RF6_NOMAGIC_MASK (RF6_BREATH_MASK | RF6_SPECIAL)