git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5539 c06c8d41-db1a-0410-9941-cceddc491573
HHKRUVC6WMVKQRUQRYB5VAEDXUS6TMAKO7BSTBGVVL2AUOEBFUJAC LPYSYKZRHXUQUI3WQRTHWUXRDUAKSOHV7LRMRY3JKZYSZIHJMI7AC WN23ASQC225ARDXLCVN64V7Q42IWWLZXWBGZQLMYV2WSCKBQE34QC KLCR26P7MSX4ZWIHQHRK7BZH7M2QGCITN46FCFVHNX7U7WQWYDAQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC O6OHDRHPEF6S5B36LHMW36OMST3B3MJURDR6WVLUXAEMGR6YUD6QC 6EMXRBTQJU5JJP77EBZMYM5Z2CTCW22YRESUTVBQ2HJAS36QDVTQC Q72IOCEGVWNC34LLHA4SEVNMCVKWHEIY5HA4FYGFFNC3WNRQDQ2QC 5T56ZXHVBN4LBEOHZPRV65UNS2HJ7RX6AMU7GHNAJRAQ7QKECP5AC PACHJJO52BZM5BCXAWPQGJKLIRFSKAY6SIXZQFTHJ2HQWFQS2MCAC VBQODM6G5B35WWYGNT36EQDJFVTHMZB6CJWAFP3UQVD6NRUSKJAQC QZUSP5WXCHQKOZ6TO574PITHBAJHPDBSVJJ6YUGFMJNGVN6A427AC LX2YKPU73XMOVRWVEYQ4QRCVXLBYLVVGTEYGKA6WO5IORK27RMGAC CY3IZ6EIDAWLHWKULZ4LVNUJ5GQ4W2ZGPZMW6ZM2DC4EU36WHAPQC 4Z7USHJ5ISQRNQ2W7T32UXN4VAZL5JLOXHXTNINOGN5ARKNVZBKAC SJXOZ6J66G3S5VYGIZ3YHEUCKUF5554YEFUYLVBH7X4ALYSXKTGQC {bool quiet =(spell == SPELL_SUMMON_BUTTERFLIES|| spell == SPELL_CALL_CANINE_FAMILIAR);monster_type mon = MONS_PROGRAM_BUG;beh_type beha =(spell == SPELL_SUMMON_GREATER_DEMON) ? BEH_CHARMED: BEH_FRIENDLY;int hostile =(spell == SPELL_SUMMON_SCORPIONS|| spell == SPELL_SUMMON_DEMON|| spell == SPELL_DEMONIC_HORDE|| spell == SPELL_CALL_CANINE_FAMILIAR|| spell == SPELL_SUMMON_UGLY_THING) ? 3 :(spell == SPELL_SUMMON_GREATER_DEMON|| spell == SPELL_SUMMON_WRAITHS|| spell == SPELL_SUMMON_DRAGON) ? 5: -1;int numsc =(spell == SPELL_SUMMON_BUTTERFLIES|| spell == SPELL_SUMMON_SCORPIONS) ? 3 :(spell == SPELL_SUMMON_GREATER_DEMON|| spell == SPELL_SUMMON_WRAITHS) ? 5: -1;int how_many =(spell == SPELL_SUMMON_BUTTERFLIES) ? std::max(15, 4 + random2(3) + random2(powc) / 10) :(spell == SPELL_SUMMON_SCORPIONS) ? stepdown_value(1 + random2(powc) / 10 + random2(powc) / 10, 2, 2, 6, 8) :(spell == SPELL_DEMONIC_HORDE) ? 7 + random2(5) :(spell == SPELL_SUMMON_WRAITHS) ? stepdown_value(1 + random2(powc) / 30 + random2(powc) / 30, 2, 2, 6, 8): 1;for (int i = 0; i < how_many; ++i){switch (spell){case SPELL_SUMMON_BUTTERFLIES:mon = MONS_BUTTERFLY;break;case SPELL_SUMMON_SCORPIONS:mon = MONS_SCORPION;break;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_DEMON:case SPELL_DEMONIC_HORDE:case SPELL_SUMMON_GREATER_DEMON:mon = summon_any_demon((spell == SPELL_SUMMON_GREATER_DEMON) ? DEMON_GREATER :(spell == SPELL_SUMMON_DEMON) ? DEMON_COMMON: DEMON_LESSER);break;case SPELL_CALL_CANINE_FAMILIAR:{const int chance = random2(powc);if (chance < 10)mon = MONS_JACKAL;else if (chance < 15)mon = MONS_HOUND;else{switch (chance % 7){case 0:if (one_chance_in(you.species == SP_HILL_ORC ? 3 : 6))mon = MONS_WARG;elsemon = MONS_WOLF;break;case 1:case 2:mon = MONS_WAR_DOG;break;case 3:case 4:mon = MONS_HOUND;break;default:mon = MONS_JACKAL;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_WRAITHS:{const int chance = random2(25);mon = ((chance > 8) ? MONS_WRAITH : // 64%(chance > 3) ? MONS_FREEZING_WRAITH // 20%: MONS_SPECTRAL_WARRIOR); // 16%break;}case SPELL_SUMMON_GUARDIAN:mon = MONS_ANGEL;break;case SPELL_SUMMON_DAEVA:mon = MONS_DAEVA;break;case SPELL_SUMMON_DRAGON:mon = MONS_DRAGON;break;default:break;}if (i == 0 && (spell == SPELL_SUMMON_DEMON|| spell == SPELL_DEMONIC_HORDE|| spell == SPELL_SUMMON_GREATER_DEMON)){mpr("You open a gate to Pandemonium!");}summon_general_creature(powc, quiet, mon, beha,hostile, numsc, false);}
summon_general_creature_spell(spell, powc);
beh_type beha =(spell == SPELL_SUMMON_GREATER_DEMON) ? BEH_CHARMED: BEH_FRIENDLY;int hostile = (spell == SPELL_SUMMON_SCORPIONS|| spell == SPELL_SUMMON_DEMON|| spell == SPELL_DEMONIC_HORDE|| spell == SPELL_CALL_CANINE_FAMILIAR|| spell == SPELL_SUMMON_UGLY_THING) ? 3 :(spell == SPELL_SUMMON_GREATER_DEMON|| spell == SPELL_SUMMON_WRAITHS|| spell == SPELL_SUMMON_DRAGON) ? 5: -1;int numsc = (spell == SPELL_SUMMON_BUTTERFLIES|| spell == SPELL_SUMMON_SCORPIONS) ? 3 :(spell == SPELL_SUMMON_GREATER_DEMON|| spell == SPELL_SUMMON_WRAITHS) ? 5: -1;int how_many = (spell == SPELL_SUMMON_BUTTERFLIES) ?std::max(15, 4 + random2(3) + random2(pow) / 10) :(spell == SPELL_SUMMON_SCORPIONS) ?stepdown_value(1 + random2(pow) / 10 + random2(pow) / 10, 2, 2, 6, 8) :(spell == SPELL_DEMONIC_HORDE) ?7 + random2(5) :(spell == SPELL_SUMMON_WRAITHS) ?stepdown_value(1 + random2(pow) / 30 + random2(pow) / 30, 2, 2, 6, 8): 1;for (int i = 0; i < how_many; ++i){switch (spell){case SPELL_SUMMON_BUTTERFLIES:mon = MONS_BUTTERFLY;break;case SPELL_SUMMON_SCORPIONS:mon = MONS_SCORPION;break;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_DEMON:case SPELL_DEMONIC_HORDE:case SPELL_SUMMON_GREATER_DEMON:mon = summon_any_demon((spell == SPELL_SUMMON_GREATER_DEMON) ? DEMON_GREATER :(spell == SPELL_SUMMON_DEMON) ? DEMON_COMMON: DEMON_LESSER);break;case SPELL_CALL_CANINE_FAMILIAR:{const int chance = random2(pow);if (chance < 10)mon = MONS_JACKAL;else if (chance < 15)mon = MONS_HOUND;else{switch (chance % 7){case 0:if (one_chance_in(you.species == SP_HILL_ORC ? 3 : 6))mon = MONS_WARG;elsemon = MONS_WOLF;break;case 1:case 2:mon = MONS_WAR_DOG;break;case 3:case 4:mon = MONS_HOUND;break;default:mon = MONS_JACKAL;break;}}}case SPELL_SUMMON_ICE_BEAST:mon = MONS_ICE_BEAST;break;case SPELL_SUMMON_UGLY_THING:{const int chance = std::max(6 - (pow / 12), 1);mon = (one_chance_in(chance)) ? MONS_VERY_UGLY_THING: MONS_UGLY_THING;break;}case SPELL_SUMMON_WRAITHS:{const int chance = random2(25);mon = ((chance > 8) ? MONS_WRAITH : // 64%(chance > 3) ? MONS_FREEZING_WRAITH // 20%: MONS_SPECTRAL_WARRIOR); // 16%break;}case SPELL_SUMMON_GUARDIAN:mon = MONS_ANGEL;break;case SPELL_SUMMON_DAEVA:mon = MONS_DAEVA;break;case SPELL_SUMMON_DRAGON:mon = MONS_DRAGON;break;default:break;}if (i == 0 && (spell == SPELL_SUMMON_DEMON|| spell == SPELL_DEMONIC_HORDE|| spell == SPELL_SUMMON_GREATER_DEMON)){mpr("You open a gate to Pandemonium!");}if (summon_general_creature(pow, quiet, mon, beha,hostile, numsc, false)){success = true;}}return success;}