it's a necromantic spell.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5604 c06c8d41-db1a-0410-9941-cceddc491573
WZWOQZCXUB7QX7PGQMIUCH5JM5YME25GE2GMMT2NIJP5OIZUZLBQC O2XPBLHUM6FOTLUIVPTPHYPMDZDL3STCZX2PHAFDDAL3OIGBO6XQC Q3VABBQ6WGBJVKL2FIX5R4RKB3LJCXHI2LJAKO3WIWT6DRTXXPTAC FZJ24VMFYPMLOHWRQXVEDWDMZKOS2K54KMW44KVD4WRQMIWZO37QC 6DHYNXJ2UAN6YCQCTIBX6PFZQIR435E3TBSPUQ6PBXNJDJTPYS3AC SS6TGQMYUEQEFVKYE77VHVQRKSR3ELRQ5Q6VE5KYXZF226OJUSXAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC QFHC4VZHHDG5PKLY7A263OJFT2OQ3MF2HX423AKINPRNR5UUT7LQC WVIVA3M3ABBQTBYTCFE2W53IE4IZ223FBSQ6P7BACWKIJPYA66ZQC EY6KXNVGJ5OWJQWBE3W5E4T625XZXUNJMXIEQLCZUAJASUK4KHMQC GP7DDCLYNLI6SDXJJ7MH6XHXS5FGFM4SNL2J7J5DGE2EJOETJPHAC BGJ7P65JV2OFVXMGAJDHV5Y36TR7JOFDWJUZJBHUBD7SCQMDRBEAC RA7RDZC5P4OYMR4MKTBO463YCREXENESV2VTMWKIT4G4SBJHFGLQC NFJKJYTT6CBLOKLGT6HIVIDEPWXMGXJV5AAL37SBZTG2HSFMJMKQC HHKRUVC6WMVKQRUQRYB5VAEDXUS6TMAKO7BSTBGVVL2AUOEBFUJAC S6FRUNPFE3PD2DAMVJGWX7TX262KVATIMQ4ON67BPRNVTOOO2XVQC OQYJHB4D7DUXP6EUXH7F5Z5ODNF52TOSIAXAUOICEVD3UAOTXCZQC N3NXT75G2JYKVON7ZTE3TG34BBWITCL2HHVQ6H7QREYCDTVQFSGAC RQIADBIESWPIW3Y6T7PQ7UH6PBH32ECSM65SM2DFVUEJME6P524AC bool simulacrum(int pow, bool god_gift = false);bool summon_horrible_things(int pow, bool god_gift = false);
bool cast_summon_horrible_things(int pow, bool god_gift = false);bool cast_simulacrum(int pow, bool god_gift = false);bool cast_summon_wraiths(int pow, bool god_gift = false);
}bool cast_summon_horrible_things(int pow, bool god_gift){if (one_chance_in(3)&& !lose_stat(STAT_INTELLIGENCE, 1, true, "summoning horrible things")){mpr("Your call goes unanswered.");return (false);}int how_many_small =stepdown_value(2 + (random2(pow) / 10) + (random2(pow) / 10),2, 2, 6, -1);int how_many_big = 0;// No more than 2 tentacled monstrosities.while (how_many_small > 2 && how_many_big < 2 && one_chance_in(3)){how_many_small -= 2;how_many_big++;}// No more than 8 summons.how_many_small = std::min(8, how_many_small);how_many_big = std::min(8, how_many_big);int count = 0;while (how_many_big > 0){if (create_monster(mgen_data(MONS_TENTACLED_MONSTROSITY, BEH_FRIENDLY, 6,you.pos(), you.pet_target,god_gift ? MF_GOD_GIFT : 0)) != -1){count++;}how_many_big--;}while (how_many_small > 0){if (create_monster(mgen_data(MONS_ABOMINATION_LARGE, BEH_FRIENDLY, 6,you.pos(), you.pet_target,god_gift ? MF_GOD_GIFT : 0)) != -1){count++;}how_many_small--;}if (count > 0){mprf("Some Thing%s answered your call!",(count > 1) ? "s" : "");return (true);}mpr("Your call goes unanswered.");return (false);
if (one_chance_in(3)&& !lose_stat(STAT_INTELLIGENCE, 1, true, "summoning horrible things")){mpr("Your call goes unanswered.");return (false);}int how_many_small =stepdown_value(2 + (random2(pow) / 10) + (random2(pow) / 10),2, 2, 6, -1);int how_many_big = 0;// No more than 2 tentacled monstrosities.while (how_many_small > 2 && how_many_big < 2 && one_chance_in(3)){how_many_small -= 2;how_many_big++;}
bool success = false;
// No more than 8 summons.how_many_small = std::min(8, how_many_small);how_many_big = std::min(8, how_many_big);
const int chance = random2(25);monster_type mon = ((chance > 8) ? MONS_WRAITH : // 64%(chance > 3) ? MONS_FREEZING_WRAITH // 20%: MONS_SPECTRAL_WARRIOR); // 16%
bool cast_summon_wraiths(int pow, bool god_gift){bool success = false;const int chance = random2(25);monster_type mon = ((chance > 8) ? MONS_WRAITH : // 64%(chance > 3) ? MONS_FREEZING_WRAITH // 20%: MONS_SPECTRAL_WARRIOR); // 16%const bool friendly = (random2(pow) > 5);if (create_monster(mgen_data(mon,friendly ? BEH_FRIENDLY : BEH_HOSTILE,5, you.pos(),friendly ? you.pet_target : MHITYOU,god_gift ? MF_GOD_GIFT : 0)) != -1){success = true;
mprf("%s",friendly ? "An insubstantial figure forms in the air.": "You sense a hostile presence.");}elsecanned_msg(MSG_NOTHING_HAPPENS);//jmf: Kiku sometimes deflects thisif (!(you.religion == GOD_KIKUBAAQUDGHA&& (!player_under_penance()&& you.piety >= piety_breakpoint(3)&& you.piety > random2(MAX_PIETY)))){disease_player(25 + random2(50));}return (success);}