git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5572 c06c8d41-db1a-0410-9941-cceddc491573
7KBQYZSNXBMQGEEOAZI6YU34XZ5ECFGTJA32QIJDZP2NYS3SF3IQC UW6UG6U4J27IFH2472MBAU6BT7AUKO5YW7YOTYZ5KX4JRHUNORUAC ARUYZ6FYS52BELXCRNAU3EREQHTFTIGZWHZPL4OLKQRL6MFNMCHAC MED2SJP7F7BIPCRUXOJRTELR3EOKRN5PFOO2LLMQOEIJLID3LTOAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC N3NXT75G2JYKVON7ZTE3TG34BBWITCL2HHVQ6H7QREYCDTVQFSGAC L5J2VB34AN7QGOSP5SVJ5FTXDVYCY34VHN3M6VLRGPBMPUHBNZQQC NFJKJYTT6CBLOKLGT6HIVIDEPWXMGXJV5AAL37SBZTG2HSFMJMKQC M3CHZA76JC34OROJ2A3HD5KBAFYMU3D7HYZPXT6UOD5DUNIDWT7QC QFHC4VZHHDG5PKLY7A263OJFT2OQ3MF2HX423AKINPRNR5UUT7LQC WVIVA3M3ABBQTBYTCFE2W53IE4IZ223FBSQ6P7BACWKIJPYA66ZQC SO6OPFUUGKUK24KOXKAPNXR334J7NG76F3Y7ZGC6H3XYSGWTWXWAC I67F2U3V27EIFFIEOTQN3G3NFT7PW2J7EHUMDEUC4BVNBMSJAPUQC HHKRUVC6WMVKQRUQRYB5VAEDXUS6TMAKO7BSTBGVVL2AUOEBFUJAC 4TQTAIRCCA3BRVOUIQUIX3QIAXT3ZDAEQ7QV3SYOY76XINSSNWYAC KLCR26P7MSX4ZWIHQHRK7BZH7M2QGCITN46FCFVHNX7U7WQWYDAQC O6OHDRHPEF6S5B36LHMW36OMST3B3MJURDR6WVLUXAEMGR6YUD6QC bool summon_minor_demon(int pow, bool god_gift = false);bool summon_common_demon(int pow, bool god_gift = false);
static bool _summon_demon_wrapper(int pow, bool god_gift, demon_class_type dct,int dur, bool friendly, bool charmed,int how_many)
static bool _summon_demon_class_wrapper(int pow, bool god_gift,demon_class_type dct, int dur,bool friendly, bool charmed)
for (int i = 0; i < how_many; ++i)
monster_type mon = summon_any_demon(dct);if (create_monster(mgen_data(mon,friendly ? BEH_FRIENDLY :charmed ? BEH_CHARMED : BEH_HOSTILE,dur, you.pos(),friendly ? you.pet_target : MHITYOU,god_gift ? MF_GOD_GIFT : 0)) != -1)
if (create_monster(mgen_data(mon,friendly ? BEH_FRIENDLY :charmed ? BEH_CHARMED : BEH_HOSTILE,dur, you.pos(),friendly ? you.pet_target : MHITYOU,god_gift ? MF_GOD_GIFT : 0)) != -1){success = true;
mprf("A demon appears!%s",friendly ? "" :charmed ? " You don't feel so good about this...": " It doesn't look very happy.");}return (success);}
mprf("A demon appears!%s",friendly ? "" :charmed ? " You don't feel so good about this...": " It doesn't look very happy.");}}
bool summon_lesser_demon(int pow, bool god_gift){return _summon_demon_class_wrapper(pow, god_gift, DEMON_LESSER,std::min(2 + (random2(pow) / 4), 6),random2(pow) > 3, false);}
if (!success)canned_msg(MSG_NOTHING_HAPPENS);
bool summon_common_demon(int pow, bool god_gift){return _summon_demon_class_wrapper(pow, god_gift, DEMON_COMMON,std::min(2 + (random2(pow) / 4), 6),random2(pow) > 3, false);}
return _summon_demon_wrapper(pow, god_gift, DEMON_LESSER,std::min(2 + (random2(pow) / 4), 6),random2(pow) > 3, false, how_many);
for (int i = 0; i < how_many; ++i){if (summon_lesser_demon(pow, god_gift))success = true;}if (!success)canned_msg(MSG_NOTHING_HAPPENS);return (success);
return _summon_demon_wrapper(pow, god_gift, DEMON_LESSER,std::min(2 + (random2(pow) / 4), 6),random2(pow) > 3, false, 1);}bool summon_common_demon(int pow, bool god_gift){return _summon_demon_wrapper(pow, god_gift, DEMON_COMMON,std::min(2 + (random2(pow) / 4), 6),random2(pow) > 3, false, 1);}// One of the demon-associated gods sends a demon for a follower.bool summon_demon(monster_type mon, int pow, bool god_gift){
summon_demon(static_cast<monster_type>(MONS_NEQOXEC + random2(5)),20 + you.skills[SK_INVOCATIONS] * 3, true);
summon_demon_type(static_cast<monster_type>(MONS_NEQOXEC + random2(5)),20 + you.skills[SK_INVOCATIONS] * 3, true);
summon_demon(static_cast<monster_type>(MONS_EXECUTIONER + random2(5)),20 + you.skills[SK_INVOCATIONS] * 3, true);
summon_demon_type(static_cast<monster_type>(MONS_EXECUTIONER + random2(5)),20 + you.skills[SK_INVOCATIONS] * 3, true);