the latter summon_general_creature().
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5511 c06c8d41-db1a-0410-9941-cceddc491573
KLCR26P7MSX4ZWIHQHRK7BZH7M2QGCITN46FCFVHNX7U7WQWYDAQC CGYHG44SVDDUHZEOTYYIE6LMAOC2NFEH3N7VSYY7TLRNDD4KXMWQC SX3MNDBNCNGQUOTUAZ52OT47O2PYHSJZBERP4UJUOUPMTWW5CZHAC Q33I2KIQNJQ7SS6XE7GPOOGESXOPMIHRF4PZLW6XCDZ5CTC73J3AC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 3XL4DKV7PSWAU3ZBJSKZFJ2VUYABC47I7KKWGIRCJYXULQD453MQC UHOAWBSBZBPHWMNXZCVB4SBJM4DTZAG3YRNNJNIKJN4CE2DP27JQC SJXOZ6J66G3S5VYGIZ3YHEUCKUF5554YEFUYLVBH7X4ALYSXKTGQC KVW54IFH4ZGUGFISE42UUJCACJRVV3ITFCCUYO3OVPHMQFHIHG7QC 64534WL35FKYVCX53LHIWA6GLZPK6BLDYKQ2SNQCP7DIIVHV6RKAC MHHBLKFDEKM5CJ55ZCCFJEI4QH3WVLX673FWNJMXAKBG4FHXG4DAC TXF4NRVICF3RMD3VQARDJKGOGBGIJNO6FKOV5POTF73XQHNB6WVAC UABPE6GY5LDGEUPJVH6K7DNWQRAEQ4DXPB2NNM45SI47QYFV2XOQC GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC J4F3IKATRP5DPK25BEXCPKC4JME3DJHEIGYHJOYXGHYXUEY633AAC RDXVYNDERZPFQYVM6TAPCKWLDM7SB4JLYX6PYDVEQBX4SEVQOAHQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 5XSXMOBGXFLTIQE6WDXWWFVDOTUPZSIQ2FWT3YI5QMVU6D76IUYQC WQIEW3O4MANA2KKYRUWEZP44KHVJ4RRHEZTDXSF4EDELX66LO26QC QL5YCGGNXVNGD5WACTFKXQOUCCXOKMUQGRHDJAUEIW25LQUSTD2QC summon_ice_beast_etc(powc, MONS_ICE_BEAST, BEH_FRIENDLY, false);
case SPELL_SUMMON_UGLY_THING:case SPELL_SUMMON_GUARDIAN:case SPELL_SUMMON_DAEVA:{monster_type mon = MONS_PROGRAM_BUG;switch (spell){case SPELL_CALL_IMP:mon = (one_chance_in(3)) ? MONS_WHITE_IMP :(one_chance_in(7)) ? MONS_SHADOW_IMP: MONS_IMP;break;case SPELL_SUMMON_ICE_BEAST:mon = MONS_ICE_BEAST;break;case SPELL_SUMMON_UGLY_THING:{const int chance = std::max(6 - (powc / 12), 1);mon = (one_chance_in(chance)) ? MONS_VERY_UGLY_THING: MONS_UGLY_THING;break;}case SPELL_SUMMON_GUARDIAN:mon = MONS_ANGEL;break;case SPELL_SUMMON_DAEVA:mon = MONS_DAEVA;break;default:break;}summon_general_creature(powc, mon, BEH_FRIENDLY, false);
case SPELL_CALL_IMP:{monster_type mon = (one_chance_in(3)) ? MONS_WHITE_IMP :(one_chance_in(7)) ? MONS_SHADOW_IMP: MONS_IMP;summon_ice_beast_etc(powc, mon, BEH_FRIENDLY, false);break;}
int chance = std::max(6 - (pow / 12), 1);monster_type ugly = (one_chance_in(chance)) ?MONS_VERY_UGLY_THING : MONS_UGLY_THING;
bool friendly = (random2(pow) > 3);if (create_monster(mgen_data(ugly,friendly ? BEH_FRIENDLY : BEH_HOSTILE,numsc, you.pos(),friendly ? you.pet_target : MHITYOU)) != -1){const char *prefix = (ugly == MONS_VERY_UGLY_THING) ? " very" : "n";mprf("A%s ugly thing appears.%s", prefix,friendly ? "" : " It doesn't look very happy.");}} // end summon_ugly_thing()bool summon_ice_beast_etc(int pow, monster_type mon, beh_type beha,bool god_gift){int numsc = std::min(2 + (random2(pow) / 4), 6);
break;case MONS_UGLY_THING:case MONS_VERY_UGLY_THING:{bool friendly = (random2(pow) > 3);const char *prefix = (mon == MONS_VERY_UGLY_THING) ? " very" : "n";mprf("A%s ugly thing appears.%s", prefix,friendly ? "" : " It doesn't look very happy.");if (!friendly){beha = BEH_HOSTILE;hitting = MHITYOU;}
summon_ice_beast_etc(20 + you.skills[SK_INVOCATIONS] * 3,static_cast<monster_type>(MONS_NEQOXEC + random2(5)),BEH_FRIENDLY, true);
summon_general_creature(20 + you.skills[SK_INVOCATIONS] * 3,static_cast<monster_type>(MONS_NEQOXEC + random2(5)),BEH_FRIENDLY, true);
summon_ice_beast_etc(20 + you.skills[SK_INVOCATIONS] * 3,static_cast<monster_type>(MONS_EXECUTIONER + random2(5)),BEH_FRIENDLY, true);
summon_general_creature(20 + you.skills[SK_INVOCATIONS] * 3,static_cast<monster_type>(MONS_EXECUTIONER + random2(5)),BEH_FRIENDLY, true);