Apply the new ground_level method.
[crawl.git] / crawl-ref / source / spl-summoning.h
blob3207af379a2943ef13eea475e0933cc3617e2366
1 #ifndef SPL_SUMMONING
2 #define SPL_SUMMONING
4 #include "enum.h"
5 #include "itemprop-enum.h"
6 #include "terrain.h"
8 //Bitfield for animate dead messages
9 #define DEAD_ARE_WALKING 1
10 #define DEAD_ARE_SWIMMING 2
11 #define DEAD_ARE_FLYING 4
12 #define DEAD_ARE_SLITHERING 8
13 #define DEAD_ARE_HOPPING 16
14 #define DEAD_ARE_FLOATING 32
16 bool summon_animals(int pow);
17 bool cast_summon_butterflies(int pow, god_type god = GOD_NO_GOD);
18 bool cast_summon_small_mammals(int pow, god_type god = GOD_NO_GOD);
20 bool item_is_snakable(const item_def& item);
21 bool cast_sticks_to_snakes(int pow, god_type god = GOD_NO_GOD);
23 bool cast_summon_scorpions(int pow, god_type god = GOD_NO_GOD);
24 bool cast_summon_swarm(int pow, god_type god = GOD_NO_GOD);
25 bool cast_call_canine_familiar(int pow, god_type god = GOD_NO_GOD);
26 bool cast_summon_elemental(int pow, god_type god = GOD_NO_GOD,
27 monster_type restricted_type = MONS_NO_MONSTER,
28 int unfriendly = 2, int horde_penalty = 0);
29 bool cast_summon_ice_beast(int pow, god_type god = GOD_NO_GOD);
30 bool cast_summon_ugly_thing(int pow, god_type god = GOD_NO_GOD);
31 bool cast_summon_dragon(actor *caster, int pow, god_type god = GOD_NO_GOD);
32 bool cast_summon_hydra(actor *caster, int pow, god_type god = GOD_NO_GOD);
33 bool summon_berserker(int pow, actor *caster,
34 monster_type override_mons = MONS_PROGRAM_BUG);
35 bool summon_holy_warrior(int pow, god_type god = GOD_NO_GOD, int spell = 0,
36 bool force_hostile = false, bool permanent = false,
37 bool quiet = false);
39 bool cast_tukimas_dance_party(actor *caster, int pow, god_type god = GOD_NO_GOD,
40 bool force_hostile = false);
41 bool cast_tukimas_dance(int pow, god_type god = GOD_NO_GOD,
42 bool force_hostile = false);
43 bool cast_conjure_ball_lightning(int pow, god_type god = GOD_NO_GOD);
45 bool cast_call_imp(int pow, god_type god = GOD_NO_GOD);
46 bool summon_lesser_demon(int pow, god_type god = GOD_NO_GOD, int spell = 0,
47 bool quiet = false);
48 bool summon_common_demon(int pow, god_type god = GOD_NO_GOD, int spell = 0,
49 bool quiet = false);
50 bool summon_greater_demon(int pow, god_type god = GOD_NO_GOD, int spell = 0,
51 bool quiet = false);
52 bool summon_demon_type(monster_type mon, int pow, god_type god = GOD_NO_GOD,
53 int spell = 0);
54 bool cast_summon_demon(int pow, god_type god = GOD_NO_GOD);
55 bool cast_demonic_horde(int pow, god_type god = GOD_NO_GOD);
56 bool cast_summon_greater_demon(int pow, god_type god = GOD_NO_GOD);
57 bool cast_shadow_creatures(god_type god = GOD_NO_GOD);
58 bool cast_summon_horrible_things(int pow, god_type god = GOD_NO_GOD);
59 bool can_cast_malign_gateway();
60 bool cast_malign_gateway(actor* caster, int pow, god_type god = GOD_NO_GOD);
61 coord_def find_gateway_location (actor* caster, bool (
62 *environment_checker)(dungeon_feature_type) = feat_is_malign_gateway_suitable);
64 void equip_undead(const coord_def &a, int corps, int monster, int monnum);
65 int animate_remains(const coord_def &a, corpse_type class_allowed,
66 beh_type beha, unsigned short hitting,
67 actor *as = NULL, std::string nas = "",
68 god_type god = GOD_NO_GOD, bool actual = true,
69 bool quiet = false, bool force_beh = false,
70 int* mon_index = NULL, int* motions = NULL);
72 int animate_dead(actor *caster, int pow, beh_type beha, unsigned short hitting,
73 actor *as = NULL, std::string nas = "",
74 god_type god = GOD_NO_GOD, bool actual = true);
76 bool cast_simulacrum(int pow, god_type god = GOD_NO_GOD);
77 bool cast_twisted_resurrection(int pow, god_type god = GOD_NO_GOD);
78 bool cast_haunt(int pow, const coord_def& where, god_type god = GOD_NO_GOD);
80 void abjuration(int pow);
82 #endif