git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5574 c06c8d41-db1a-0410-9941-cceddc491573
RQIADBIESWPIW3Y6T7PQ7UH6PBH32ECSM65SM2DFVUEJME6P524AC UW6UG6U4J27IFH2472MBAU6BT7AUKO5YW7YOTYZ5KX4JRHUNORUAC ZGUJWUFJ4NFFJ6PGXLFGQWCWBCZHPWGWI44NJHJEVPRG5L36PADQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC NQ2PC2EO6VIBYU5MR4LNSLV3LDOYABKSKZEVEDTML6BAJAQAWWBAC N3NXT75G2JYKVON7ZTE3TG34BBWITCL2HHVQ6H7QREYCDTVQFSGAC WVIVA3M3ABBQTBYTCFE2W53IE4IZ223FBSQ6P7BACWKIJPYA66ZQC PACHJJO52BZM5BCXAWPQGJKLIRFSKAY6SIXZQFTHJ2HQWFQS2MCAC EFS55XWWSC2ARLHL7KI3SZYQB45IUT33RW7JFDGCLUP4A4MBHDYQC 3HMZIQCJSWUYTWQDWRQYPI5VOSRIAGGBOM7LIMF7362RJ2LRMZAAC CLIEHAE2PP7ZIGLLIMYCWM4FC54KBOAN5AILOLAZJ5S26GTJM4RQC GNJGG33CNP6IWUW4V2JKIFAC5N43TP5MX4PZOTXROBYZVXQEAJLAC LX2YKPU73XMOVRWVEYQ4QRCVXLBYLVVGTEYGKA6WO5IORK27RMGAC GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC C7EEMEI6FU6L2VWZBTDCZO5ZTB2N5TCNGSMIBZTN6NZRE7BUBFPQC IE3INS4WUXZOBVXB5VWRBYPVPXADD2U2W5H3TBTOYNWJ3EGRSGQQC 3XL4DKV7PSWAU3ZBJSKZFJ2VUYABC47I7KKWGIRCJYXULQD453MQC YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC bool 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);}return (false);}
}void summon_things(int pow){int big_things = 0;int numsc = 2 + (random2(pow) / 10) + (random2(pow) / 10);if (one_chance_in(3)&& !lose_stat( STAT_INTELLIGENCE, 1, true,"summoning horrible things" )){mpr("Your call goes unanswered.");}else{numsc = stepdown_value( numsc, 2, 2, 6, -1 );// No more than 2 tentacled monstrosities.while (numsc > 2 && big_things < 2 && one_chance_in(3)){numsc -= 2;++big_things;}if (numsc > 8)numsc = 8;if (big_things > 8)big_things = 8;while (big_things > 0){create_monster(mgen_data(MONS_TENTACLED_MONSTROSITY, BEH_FRIENDLY, 6,you.pos(), you.pet_target));big_things--;}while (numsc > 0){create_monster(mgen_data(MONS_ABOMINATION_LARGE, BEH_FRIENDLY, 6,you.pos(), you.pet_target));numsc--;}mprf("Some Thing%s answered your call!",(numsc + big_things > 1) ? "s" : "");}