1 /** 2 * @file 3 * @brief Passive god effects. 4 **/ 5 6 #pragma once 7 8 #include "enum.h" 9 #include "wu-jian-attack-type.h" 10 #include "player.h" 11 12 class monster; 13 class dist; 14 15 // Passive god abilities. 16 enum class passive_t 17 { 18 /// Placeholder for absence of a passive ability. 19 none = 0, 20 21 /// The god prefers that items be cursed: acquirement grants cursed items, 22 /// enchant scrolls and miscasts preserve curse status, and identify 23 /// allows selecting a subset of items to uncurse. 24 want_curses, 25 26 /// You detect the presence of portals. 27 detect_portals, 28 29 /// You identity items on sight, including monster equipment. 30 identify_items, 31 32 /// You have (improved) automatic mapping. 33 auto_map, 34 35 /// You detect the threat level of monsters. 36 detect_montier, 37 38 /// You detect the presence of items. 39 detect_items, 40 41 /// You avoid explore-based traps. 42 avoid_traps, 43 44 /// You have innate see invisible. 45 sinv, 46 47 /// You have innate clarity. 48 clarity, 49 50 /// You have astral sight. 51 xray_vision, 52 53 /// You get a boost to skills from cursed slots. 54 bondage_skill_boost, 55 56 /// You convert orcs into followers. 57 convert_orcs, 58 59 /// You can walk on water. 60 water_walk, 61 62 /// You share experience with followers. 63 share_exp, 64 65 /// Your god blesses your followers. 66 bless_followers, 67 68 /// Your god blesses your followers when they kill evil things. 69 bless_followers_vs_evil, 70 71 /// You cannot be hasted. 72 no_haste, 73 74 /// You move slowly. 75 slowed, 76 77 /// Fewer creatures spawn on the orb run. 78 slow_orb_run, 79 80 /// Fewer creatures spawn in the Abyss, and it morphs less quickly. 81 slow_abyss, 82 83 /// The Zot clock runs more slowly. 84 slow_zot, 85 86 /// Your attributes are boosted. 87 stat_boost, 88 89 /// Poison affects you more slowly. 90 slow_poison, 91 92 /// You have an umbra. 93 umbra, 94 95 /// You emit clouds when hit. 96 hit_smoke, 97 98 /// Your shadow attacks alongside you. 99 shadow_attacks, 100 101 /// Your shadow casts attack spells alongside you. 102 shadow_spells, 103 104 /// No accuracy penalty in umbra. Gain stealth in umbra. 105 nightvision, 106 107 /// No distortion unwield effects. 108 safe_distortion, 109 110 /// Less map rot in the abyss. 111 map_rot_res_abyss, 112 113 /// Higher chance for spawning the abyssal rune. 114 attract_abyssal_rune, 115 116 /// Potentially save allies from death. Holy or natural, in LOS. 117 protect_ally, 118 119 /// Chance to nullify a deadly blow, dependent on piety. 120 protect_from_harm, 121 122 /// Divine halo around the player, size increases with piety. 123 halo, 124 125 /// Protect allies from abjuration by decreasing the power to half. 126 abjuration_protection, 127 128 /// Protect allies from abjuration by decreasing the power. Higher HD means 129 /// better protection. 130 abjuration_protection_hd, 131 132 /// Gain HP when killing monsters. 133 restore_hp, 134 135 /// Gain HP and MP when killing evil monsters. 136 restore_hp_mp_vs_evil, 137 138 /// Mutation resistance increasing with piety. 139 resist_mutation, 140 141 /// Polymorph resistance increasing with piety. 142 resist_polymorph, 143 144 /// Chance of avoiding hell effects, increasing with piety. 145 resist_hell_effects, 146 147 /// Warning about shapeshifters when they come to view. 148 warn_shapeshifter, 149 150 /// Cleanse mutation potions (they only delete mutations). 151 cleanse_mut_potions, 152 153 /// Torment resistance, piety dependent. 154 resist_torment, 155 156 /// Protection against necromancy miscasts and mummy death curses. 157 miscast_protection_necromancy, 158 159 /// Chance to extend berserk duration and avoid paralysis, piety dependent. 160 extend_berserk, 161 162 /// Gold aura that distracts enemies. 163 gold_aura, 164 165 /// Corpses turn to gold. 166 goldify_corpses, 167 168 /// You detect the presence of gold. Gold is moved on top in stacks. 169 detect_gold, 170 171 /// Allied plants are friendly towards you 172 friendly_plants, 173 174 /// You can walk through plants 175 pass_through_plants, 176 177 /// You can fire through allied plants 178 shoot_through_plants, 179 180 /// Slimes and eye monsters are neutral towards you 181 neutral_slimes, 182 183 /// Items consumed by your fellow slimes feed you 184 slime_feed, 185 186 /// You are immune to slime covered walls 187 slime_wall_immune, 188 189 /// Jiyva protects you from corrosion 190 resist_corrosion, 191 192 /// Items consumed by your fellow slimes restores your mana reserve 193 slime_mp, 194 195 /// Items consumed by your fellow slimes restores your health 196 slime_hp, 197 198 /// Jiyva summons jellies to protect you 199 jellies_army, 200 201 /// Jiyva allows jellies to eats off-level and seen items. 202 jelly_eating, 203 204 /// Jiyva adjusts your stats as needed. 205 fluid_stats, 206 207 // You have a chance to spawn slimes when hit hard 208 spawn_slimes_on_hit, 209 210 /// Jiyva grants you access to the hidden treasures of the Slime Pits 211 unlock_slime_vaults, 212 213 /// You have a chance to gain mana when you kill 214 mp_on_kill, 215 216 /// You are less likely to miscat destructive spells 217 spells_success, 218 219 /// You can cast destructive spells farther 220 spells_range, 221 222 /// Clouds don't harm you 223 cloud_immunity, 224 225 /// You generate elemental clouds to protect you 226 storm_shield, 227 228 /// Chances to be struck by projectiles are reduced 229 upgraded_storm_shield, 230 231 /// Elemental attacks leaves you somewhat more resistant to them 232 elemental_adaptation, 233 234 /// Your enemies will sometime fail their attack or even hit themselves 235 aura_of_power, 236 237 /// Enemies that inflict damage upon you will sometime receive a detrimental status effect 238 upgraded_aura_of_power, 239 240 /// Pakellas prevents you from regenerating your mana reserve 241 no_mp_regen, 242 243 /// Pakellas identifies wands and rods 244 identify_devices, 245 246 /// Pakellas collects and distills extra MP from your kills 247 bottle_mp, 248 249 /// Hep's transfer drains enemies adjacent to the effect's target 250 transfer_drain, 251 252 /// Hep reduces your max HP 253 frail, 254 255 // TSO prevents you from stabbing 256 no_stabbing, 257 258 /// Martial attacks 259 wu_jian_lunge, 260 wu_jian_whirlwind, 261 wu_jian_wall_jump, 262 }; 263 264 enum ru_interference 265 { 266 DO_NOTHING, 267 DO_BLOCK_ATTACK, 268 DO_REDIRECT_ATTACK 269 }; 270 271 bool god_gives_passive(god_type god, passive_t passive); 272 bool have_passive(passive_t passive); 273 bool will_have_passive(passive_t passive); 274 int rank_for_passive(passive_t passive); 275 int chei_stat_boost(int piety = you.piety); 276 void jiyva_eat_offlevel_items(); 277 int ash_scry_radius(); 278 void ash_check_bondage(); 279 bool god_id_item(item_def& item, bool silent = true); 280 int ash_detect_portals(bool all); 281 monster_type ash_monster_tier(const monster *mon); 282 unsigned int ash_skill_point_boost(skill_type sk, int scaled_skill); 283 int ash_skill_boost(skill_type sk, int scale); 284 bool ash_has_skill_boost(skill_type sk); 285 int gozag_gold_in_los(actor* whom); 286 void gozag_detect_level_gold(bool count); 287 int qazlal_sh_boost(int piety = you.piety); 288 int tso_sh_boost(); 289 void qazlal_storm_clouds(); 290 void qazlal_element_adapt(beam_type flavour, int strength); 291 bool does_ru_wanna_redirect(monster* mon); 292 ru_interference get_ru_attack_interference_level(); 293 monster* shadow_monster(bool equip = true); 294 void shadow_monster_reset(monster *mon); 295 void dithmenos_shadow_melee(actor* target); 296 void dithmenos_shadow_throw(const dist &d, const item_def &item); 297 void dithmenos_shadow_spell(bolt* orig_beam, spell_type spell); 298 void uskayaw_prepares_audience(); 299 void uskayaw_bonds_audience(); 300 301 void wu_jian_heaven_tick(); 302 void wu_jian_decrement_heavenly_storm(); 303 void wu_jian_end_heavenly_storm(); 304 void wu_jian_wall_jump_effects(); 305 bool wu_jian_has_momentum(wu_jian_attack_type); 306 bool wu_jian_post_move_effects(bool did_wall_jump, 307 const coord_def& initial_position); 308