git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5594 c06c8d41-db1a-0410-9941-cceddc491573
KJO5N6UIPKQ6TZNNOWZEHUAWZNUW7CAHLIW2ARX47K4SIE3N5LYAC 3QOEXNBHHP45XQ2EDJR7JAGZY7YIRQIHZSQETQPU3LB62JIWQ45AC QME3SNESM4AEPUDL3QUVQUXGGFY7PJ7GQKFWBCHX257NSQU6O5GAC HRQ7G7GU3R4LAKI2ME7TI5MQSW3J6CCU3ED4OCD55J2WJP6IOZQAC BH2RBXQLAMSL2UYMSB7XGDEDO3WZRTJXKMFKDMYCPKEXNBX3YDXAC M4UE7F2OYLXEV3GZVES4RM4Q3AQSU5BUHKDWHCVYNLT5NU5GFTDAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC UHL7ECQOTO3SHFAPV4T6ODJ2HLSMUKVHQJQF3CXM3IUNICR7LACAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC SO6OPFUUGKUK24KOXKAPNXR334J7NG76F3Y7ZGC6H3XYSGWTWXWAC FVT2J6IVMSQZYKQGUHQVGT4ADYM7AWUQ4U7766GBRRFMSR2WBMLAC Q4S2HEQNQZUN6Q2LIX36URDANVAYBMRWUTEDANKXFICOBGMCEGDAC NFJKJYTT6CBLOKLGT6HIVIDEPWXMGXJV5AAL37SBZTG2HSFMJMKQC LUNOTEIMYZJ7JL5P55GEHUVSDEZMYX3TWYUB2ABRHAYJEWQSSXIAC KBH6DZPJCNMT3OMEMHKLASTWQZ24FIVNVANBCVI3SEVAMMPSWRWQC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC K3WXOHMGLLPL4CHGWRK227FWKCMBA7KHLJXLY6DTKEC5LKFJI62QC 4LNIHTHZTCOEZEHZ4GW6WCZH4UCDWKK5UVUKEDODEBBS4YH2KONQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC KOAFIKAEALY4VZ6VILEKAUY7RVLI222KHUV4J2DXMTTIQ6FP2NRQC VRSBPOOVRUXKIP6HQPVZ3ZY2N2TFRUF2GOZM2CA6PXUM5IJTCY2QC GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC KHHAE5ZK7ITEZVMMUKYROKECLE2RU5ZU5OQ4Z4XSRQXE2R65O67AC NS62TYCMR2U6B3DTJRAJ2OSYTZQY7OZSEQGPPPZOBLNTS3TANPHQC 5HBRQ2QZTFBQE2Z2CFADUI2D52LO5Z5CNHXHA7BJP3LGO7FJPUCQC HHKRUVC6WMVKQRUQRYB5VAEDXUS6TMAKO7BSTBGVVL2AUOEBFUJAC 7KBQYZSNXBMQGEEOAZI6YU34XZ5ECFGTJA32QIJDZP2NYS3SF3IQC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC N3NXT75G2JYKVON7ZTE3TG34BBWITCL2HHVQ6H7QREYCDTVQFSGAC // updated 24may2000 {dlb}/* ************************************************************************ called from: religion - spell* *********************************************************************** */bool dancing_weapon(int pow, bool force_hostile = false,bool quiet_failure = false);
}}bool dancing_weapon(int pow, bool force_hostile,bool quiet_failure){bool success = true;const int dur = std::min(2 + (random2(pow) / 5), 6);const int wpn = you.equip[EQ_WEAPON];// See if wielded item is appropriate:if (wpn == -1|| you.inv[wpn].base_type != OBJ_WEAPONS|| is_range_weapon(you.inv[wpn])|| is_fixed_artefact( you.inv[wpn])){success = false;}// See if we can get an mitm for the dancing weapon:int i = get_item_slot();if (i == NON_ITEM)success = false;int monster;if (success){// Cursed weapons become hostile.bool friendly = (!force_hostile && !item_cursed(you.inv[wpn]));monster =create_monster(mgen_data(MONS_DANCING_WEAPON,friendly ? BEH_FRIENDLY : BEH_HOSTILE,dur, you.pos(),friendly ? you.pet_target : MHITYOU));if (monster == -1)success = false;
if (!success){destroy_item(i);if (!quiet_failure){if (wpn != -1)mpr("Your weapon vibrates crazily for a second.");elsemsg::stream << "Your " << your_hand(true) << " twitch."<< std::endl;}return (false);}// We are successful. Unwield the weapon, removing any wield effects.unwield_item();// Copy the unwielded item.mitm[i] = you.inv[wpn];mitm[i].quantity = 1;mitm[i].x = 0;mitm[i].y = 0;mitm[i].link = NON_ITEM;// Mark the weapon as thrown, so that we'll autograb it when the// tango's done.mitm[i].flags |= ISFLAG_THROWN;mprf("%s dances into the air!", you.inv[wpn].name(DESC_CAP_YOUR).c_str());you.inv[wpn].quantity = 0;menv[monster].inv[MSLOT_WEAPON] = i;menv[monster].colour = mitm[i].colour;burden_change();return (true);
// last updated 24may2000 {dlb}/* ************************************************************************ called from: ability - religion - spell* *********************************************************************** */bool dancing_weapon(int pow, bool god_gift = false, bool force_hostile = false,bool quiet_failure = false);// last updated 24may2000 {dlb}/* ************************************************************************ called from: ability - spell* *********************************************************************** */
bool dancing_weapon(int pow, bool god_gift, bool force_hostile,bool quiet_failure){bool success = true;const int dur = std::min(2 + (random2(pow) / 5), 6);const int wpn = you.equip[EQ_WEAPON];// See if wielded item is appropriate.if (wpn == -1|| you.inv[wpn].base_type != OBJ_WEAPONS|| is_range_weapon(you.inv[wpn])|| is_fixed_artefact(you.inv[wpn])){success = false;}
// See if we can get an mitm for the dancing weapon.const int i = get_item_slot();if (i == NON_ITEM)success = false;int monster;if (success){// Cursed weapons become hostile.const bool friendly = (!force_hostile && !item_cursed(you.inv[wpn]));monster =create_monster(mgen_data(MONS_DANCING_WEAPON,friendly ? BEH_FRIENDLY : BEH_HOSTILE,dur, you.pos(),friendly ? you.pet_target : MHITYOU,god_gift ? MF_GOD_GIFT : 0));if (monster == -1)success = false;}if (!success){destroy_item(i);if (!quiet_failure){if (wpn != -1)mpr("Your weapon vibrates crazily for a second.");elsemsg::stream << "Your " << your_hand(true) << " twitch."<< std::endl;}return (false);}// We are successful. Unwield the weapon, removing any wield effects.unwield_item();// Copy the unwielded item.mitm[i] = you.inv[wpn];mitm[i].quantity = 1;mitm[i].x = 0;mitm[i].y = 0;mitm[i].link = NON_ITEM;// Mark the weapon as thrown, so that we'll autograb it when the// tango's done.mitm[i].flags |= ISFLAG_THROWN;mprf("%s dances into the air!", you.inv[wpn].name(DESC_CAP_YOUR).c_str());you.inv[wpn].quantity = 0;menv[monster].inv[MSLOT_WEAPON] = i;menv[monster].colour = mitm[i].colour;burden_change();return (true);}