00001 #ifndef SPL_SUMMONING
00002 #define SPL_SUMMONING
00003
00004 #include "enum.h"
00005 #include "itemprop-enum.h"
00006 #include "terrain.h"
00007
00008
00009 #define DEAD_ARE_WALKING 1
00010 #define DEAD_ARE_SWIMMING 2
00011 #define DEAD_ARE_FLYING 4
00012 #define DEAD_ARE_SLITHERING 8
00013 #define DEAD_ARE_HOPPING 16
00014 #define DEAD_ARE_FLOATING 32
00015
00016 bool summon_animals(int pow);
00017 bool cast_summon_butterflies(int pow, god_type god = GOD_NO_GOD);
00018 bool cast_summon_small_mammals(int pow, god_type god = GOD_NO_GOD);
00019
00020 bool item_is_snakable(const item_def& item);
00021 bool cast_sticks_to_snakes(int pow, god_type god = GOD_NO_GOD);
00022
00023 bool cast_summon_scorpions(int pow, god_type god = GOD_NO_GOD);
00024 bool cast_summon_swarm(int pow, god_type god = GOD_NO_GOD);
00025 bool cast_call_canine_familiar(int pow, god_type god = GOD_NO_GOD);
00026 bool cast_summon_elemental(int pow, god_type god = GOD_NO_GOD,
00027 monster_type restricted_type = MONS_NO_MONSTER,
00028 int unfriendly = 2, int horde_penalty = 0);
00029 bool cast_summon_ice_beast(int pow, god_type god = GOD_NO_GOD);
00030 bool cast_summon_ugly_thing(int pow, god_type god = GOD_NO_GOD);
00031 bool cast_summon_dragon(int pow, god_type god = GOD_NO_GOD);
00032 bool summon_berserker(int pow, actor *caster,
00033 monster_type override_mons = MONS_PROGRAM_BUG);
00034 bool summon_holy_warrior(int pow, god_type god = GOD_NO_GOD, int spell = 0,
00035 bool force_hostile = false, bool permanent = false,
00036 bool quiet = false);
00037 bool cast_tukimas_dance(int pow, god_type god = GOD_NO_GOD,
00038 bool force_hostile = false);
00039 bool cast_conjure_ball_lightning(int pow, god_type god = GOD_NO_GOD);
00040
00041 bool cast_call_imp(int pow, god_type god = GOD_NO_GOD);
00042 bool summon_lesser_demon(int pow, god_type god = GOD_NO_GOD, int spell = 0,
00043 bool quiet = false);
00044 bool summon_common_demon(int pow, god_type god = GOD_NO_GOD, int spell = 0,
00045 bool quiet = false);
00046 bool summon_greater_demon(int pow, god_type god = GOD_NO_GOD, int spell = 0,
00047 bool quiet = false);
00048 bool summon_demon_type(monster_type mon, int pow, god_type god = GOD_NO_GOD,
00049 int spell = 0);
00050 bool cast_summon_demon(int pow, god_type god = GOD_NO_GOD);
00051 bool cast_demonic_horde(int pow, god_type god = GOD_NO_GOD);
00052 bool cast_summon_greater_demon(int pow, god_type god = GOD_NO_GOD);
00053 bool cast_shadow_creatures(god_type god = GOD_NO_GOD);
00054 bool cast_summon_horrible_things(int pow, god_type god = GOD_NO_GOD);
00055 bool can_cast_malign_gateway();
00056 bool cast_malign_gateway(actor* caster, int pow, god_type god = GOD_NO_GOD);
00057 coord_def find_gateway_location (actor* caster, bool (
00058 *environment_checker)(dungeon_feature_type) = feat_is_malign_gateway_suitable);
00059
00060 void equip_undead(const coord_def &a, int corps, int monster, int monnum);
00061 int animate_remains(const coord_def &a, corpse_type class_allowed,
00062 beh_type beha, unsigned short hitting,
00063 actor *as = NULL, std::string nas = "",
00064 god_type god = GOD_NO_GOD, bool actual = true,
00065 bool quiet = false, bool force_beh = false,
00066 int* mon_index = NULL, int* motions = NULL);
00067
00068 int animate_dead(actor *caster, int pow, beh_type beha, unsigned short hitting,
00069 actor *as = NULL, std::string nas = "",
00070 god_type god = GOD_NO_GOD, bool actual = true);
00071
00072 bool cast_simulacrum(int pow, god_type god = GOD_NO_GOD);
00073 bool cast_twisted_resurrection(int pow, god_type god = GOD_NO_GOD);
00074 bool cast_haunt(int pow, const coord_def& where, god_type god = GOD_NO_GOD);
00075
00076 void abjuration(int pow);
00077
00078 #endif