mess in the meantime.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5545 c06c8d41-db1a-0410-9941-cceddc491573
NFJKJYTT6CBLOKLGT6HIVIDEPWXMGXJV5AAL37SBZTG2HSFMJMKQC 77G2A767EQKROYP7WEHAITU4T6V6PU6QO33CRSA3QWDYFD45SNSAC SZJGHYGJ5AAZDOAQ53LXGP2WKEMIZABCVVGDJMOOMHA7M5ZDT3YQC S6FRUNPFE3PD2DAMVJGWX7TX262KVATIMQ4ON67BPRNVTOOO2XVQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 4HHCHQD26LSGYC5TSQV25D2KIWLRJDB4BJQHJPSIB3MWNSSE4TGAC 3XL4DKV7PSWAU3ZBJSKZFJ2VUYABC47I7KKWGIRCJYXULQD453MQC KLCR26P7MSX4ZWIHQHRK7BZH7M2QGCITN46FCFVHNX7U7WQWYDAQC VBQODM6G5B35WWYGNT36EQDJFVTHMZB6CJWAFP3UQVD6NRUSKJAQC JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC Q4S2HEQNQZUN6Q2LIX36URDANVAYBMRWUTEDANKXFICOBGMCEGDAC 5XSXMOBGXFLTIQE6WDXWWFVDOTUPZSIQ2FWT3YI5QMVU6D76IUYQC KBH6DZPJCNMT3OMEMHKLASTWQZ24FIVNVANBCVI3SEVAMMPSWRWQC KOAFIKAEALY4VZ6VILEKAUY7RVLI222KHUV4J2DXMTTIQ6FP2NRQC LUNOTEIMYZJ7JL5P55GEHUVSDEZMYX3TWYUB2ABRHAYJEWQSSXIAC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC 4LNIHTHZTCOEZEHZ4GW6WCZH4UCDWKK5UVUKEDODEBBS4YH2KONQC VRSBPOOVRUXKIP6HQPVZ3ZY2N2TFRUF2GOZM2CA6PXUM5IJTCY2QC GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC UHL7ECQOTO3SHFAPV4T6ODJ2HLSMUKVHQJQF3CXM3IUNICR7LACAC KHHAE5ZK7ITEZVMMUKYROKECLE2RU5ZU5OQ4Z4XSRQXE2R65O67AC NS62TYCMR2U6B3DTJRAJ2OSYTZQY7OZSEQGPPPZOBLNTS3TANPHQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 5HBRQ2QZTFBQE2Z2CFADUI2D52LO5Z5CNHXHA7BJP3LGO7FJPUCQC SWOYPTHJAWFEDBMB3ROT33VQZIXGZD5UOXEV456DDUENW2HGA66QC UURAYLSSITZLQR56MCWFPIWMECU7F3USMA2UPJAO4IPIY5WVKP5QC HHKRUVC6WMVKQRUQRYB5VAEDXUS6TMAKO7BSTBGVVL2AUOEBFUJAC SJXOZ6J66G3S5VYGIZ3YHEUCKUF5554YEFUYLVBH7X4ALYSXKTGQC U3KGUJJQWQORJIIFH3ADVNIEEX5HOX6KEOXO7DJSL7L3Z6GG3PAQC TS7X6ZTTQRB2I53VV4LXZPXZWM3DIKYI3T5PPHZANSEW4Q7QZBOAC 5MGUZD2UACJCSG74TEZHI3Z4YL5KL6ZVUCQ3XVZKDOLKM7EMGWJAC 2E4RV454MTTCKYLKMSHEEAFPNAFVUXXPBZV3XP6V7QMF4BBWE7TAC DH3YTI6VVI727SQXO4CXSDCSBG2UN3UAWLFULBGRLBVH22ACRXIAC MSMWAL6JZAWNGZXCNXPATUMAU6TVXBWWFY666P7UBSZ5LPYJYUCQC C7EEMEI6FU6L2VWZBTDCZO5ZTB2N5TCNGSMIBZTN6NZRE7BUBFPQC TXF4NRVICF3RMD3VQARDJKGOGBGIJNO6FKOV5POTF73XQHNB6WVAC IE3INS4WUXZOBVXB5VWRBYPVPXADD2U2W5H3TBTOYNWJ3EGRSGQQC LEGFIEUGVU2LZELGQH4TZTIJGKEVUHFTRGQ4Y2KGLSK7KNDI7BFQC JOE4G4IU6O64WRW4CYDALGFCN6XHDI57MGLBBDHS4KHFLAH473PAC KQNMFSLV62B4ANDKTUZ7LQH2MD2NDGNCP55MKM5YAATQ4T52H2PQC SZ6PLJPQC2RGWBLXPWV76LVCUKIV7VJGU5WKDH7ZMW6XUBEB2ZHQC CA6ZG6P2CE5EPAOQSB3P7NBDKTNFFHQP4CPOUFZL32ON6N32GSSQC mgen_data(MONS_DANCING_WEAPON, beha, numsc,you.pos(), hitting));if (summs == -1)failed = true;
mgen_data(MONS_DANCING_WEAPON,friendly ? BEH_FRIENDLY : BEH_HOSTILE,dur, you.pos(),friendly ? you.pet_target : MHITYOU));if (monster == -1)success = false;
bool cast_summon_butterflies(int pow, bool god_gift){bool success = false;const int how_many = std::max(15, 4 + random2(3) + random2(pow) / 10);for (int i = 0; i < how_many; ++i){if (create_monster(mgen_data(MONS_BUTTERFLY, BEH_FRIENDLY, 3,you.pos(), you.pet_target,god_gift ? MF_GOD_GIFT : 0)) != -1){success = true;}}if (!success)canned_msg(MSG_NOTHING_HAPPENS);return (success);}bool cast_summon_scorpions(int pow, bool god_gift){bool success = false;const int how_many = stepdown_value(1 + random2(pow)/10 + random2(pow)/10,2, 2, 6, 8);for (int i = 0; i < how_many; ++i){bool friendly = (random2(pow) > 3);if (create_monster(mgen_data(MONS_SCORPION,friendly ? BEH_FRIENDLY : BEH_HOSTILE,3, you.pos(),friendly ? you.pet_target : MHITYOU,god_gift ? MF_GOD_GIFT : 0)) != -1){success = true;mprf("A scorpion appears.%s",friendly ? "" : " It doesn't look very happy.");}}if (!success)canned_msg(MSG_NOTHING_HAPPENS);return (success);}bool summon_swarm(int pow, bool god_gift, bool force_hostile,bool quiet){bool success = false;monster_type mon = MONS_PROGRAM_BUG;const int dur = std::min(2 + (random2(pow) / 4), 6);const int how_many = stepdown_value(2 + random2(pow)/10 + random2(pow)/25,2, 2, 6, 8);for (int i = 0; i < how_many; ++i){switch (random2(14)){case 0:case 1: // prototypical swarming creature {dlb}mon = MONS_KILLER_BEE;break;case 2: // comment said "larva", code read scorpion {dlb}mon = MONS_SCORPION;break; // think: "The Arrival" {dlb}
case 3: //jmf: technically not insects but still coolmon = MONS_WORM;break; // but worms kinda "swarm" so s'ok {dlb}case 4: // comment read "larva", code was for scorpionmon = MONS_GIANT_MOSQUITO;break; // changed into giant mosquito 12jan2000 {dlb}case 5: // think: scarabs in "The Mummy" {dlb}mon = MONS_GIANT_BEETLE;break;case 6: //jmf: blowfly instead of queen beemon = MONS_GIANT_BLOWFLY;break;// queen bee added if more than x bees in swarm? {dlb}// the above would require code rewrite - worth it? {dlb}case 8: //jmf: changed to red wasp; was wolf spidermon = MONS_WOLF_SPIDER; //jmf: spiders aren't insectsbreak; // think: "Kingdom of the Spiders" {dlb}// not just insects!!! - changed back {dlb}case 9:mon = MONS_BUTTERFLY; // comic relief? {dlb}break;case 10: // change into some kind of snake -- {dlb}mon = MONS_YELLOW_WASP; // do wasps swarm? {dlb}break; // think: "Indiana Jones" and snakepit? {dlb}default: // 3 in 14 chance, 12jan2000 {dlb}mon = MONS_GIANT_ANT;break;} // end switchbool friendly = (god_gift) ? !force_hostile: (random2(pow) > 7);if (create_monster(mgen_data(mon,friendly ? BEH_FRIENDLY : BEH_HOSTILE,dur, you.pos(),friendly ? you.pet_target : MHITYOU,god_gift ? MF_GOD_GIFT : 0)) != -1){success = true;if (!god_gift && !quiet){mprf("A swarming creature appears!%s",friendly ? "" : " It doesn't look very happy.");}}}if (!god_gift && !quiet && !success)canned_msg(MSG_NOTHING_HAPPENS);return (success);}
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) ?
int how_many = (spell == SPELL_DEMONIC_HORDE) ?
mgen_data(mon, beha, dur,you.pos(), hitting,god_gift ? MF_GOD_GIFT : 0));
mgen_data(mon,!force_hostile ? BEH_FRIENDLY : BEH_HOSTILE,dur, you.pos(),!force_hostile ? you.pet_target : MHITYOU,MF_GOD_GIFT));
bool summon_swarm(int pow, beh_type beha, bool god_gift){bool success = false;monster_type mon = MONS_PROGRAM_BUG;int dur = std::min(2 + (random2(pow) / 4), 6);unsigned short hitting = (beha == BEH_FRIENDLY) ? you.pet_target : MHITYOU;int how_many = stepdown_value(2 + random2(pow) / 10 + random2(pow) / 25,2, 2, 6, 8);for (int scount = 0; scount < how_many; ++scount){switch (random2(14)){case 0:case 1: // prototypical swarming creature {dlb}mon = MONS_KILLER_BEE;break;case 2: // comment said "larva", code read scorpion {dlb}mon = MONS_SCORPION;break; // think: "The Arrival" {dlb}case 3: //jmf: technically not insects but still coolmon = MONS_WORM;break; // but worms kinda "swarm" so s'ok {dlb}case 4: // comment read "larva", code was for scorpionmon = MONS_GIANT_MOSQUITO;break; // changed into giant mosquito 12jan2000 {dlb}case 5: // think: scarabs in "The Mummy" {dlb}mon = MONS_GIANT_BEETLE;break;case 6: //jmf: blowfly instead of queen beemon = MONS_GIANT_BLOWFLY;break;// queen bee added if more than x bees in swarm? {dlb}// the above would require code rewrite - worth it? {dlb}case 8: //jmf: changed to red wasp; was wolf spidermon = MONS_WOLF_SPIDER; //jmf: spiders aren't insectsbreak; // think: "Kingdom of the Spiders" {dlb}// not just insects!!! - changed back {dlb}case 9:mon = MONS_BUTTERFLY; // comic relief? {dlb}break;case 10: // change into some kind of snake -- {dlb}mon = MONS_YELLOW_WASP; // do wasps swarm? {dlb}break; // think: "Indiana Jones" and snakepit? {dlb}default: // 3 in 14 chance, 12jan2000 {dlb}mon = MONS_GIANT_ANT;break;} // end switch// If it's not a god gift, it's from a spell.if (!god_gift && random2(pow) > 7){beha = BEH_FRIENDLY;hitting = you.pet_target;}if (create_monster(mgen_data(mon, beha, dur,you.pos(), hitting,god_gift ? MF_GOD_GIFT : 0)) != -1){success = true;}}return (success);}