"A dump of #874 on Sun Dec 17 14:06:35 1995 PST @create #82 named unlicensed particle accelerator:unlicensed,particle,accelerat or,unlicenced,weapon ;;#874.("oswing") = "pokes" ;;#874.("swing") = "poke" ;;#874.("slowness") = 15 ;;#874.("length") = 25 ;;#874.("parry") = -20 ;;#874.("attack") = -15 ;;#874.("pen") = 30 ;;#874.("dam") = 20 ;;#874.("skill") = #7096 ;;#874.("hands") = 2 ;;#874.("encumbrance") = 10 ;;#874.("condition") = 100 ;;#874.("odrop_failed_msg") = "% to drop %t but fails!" ;;#874.("odrop_succeeded_msg") = "% %t." ;;#874.("otake_succeeded_msg") = "% up %t." ;;#874.("key") = 0 ;;#874.("aliases") = {"unlicensed", "particle", "accelerator", "unlicenced", "weapon"} ;;#874.("description") = "A large black box with straps to allow it to be fitted to someone's back, and a long nozzle that can be pointed at things." ;;#874.("object_size") = {3204, 819192647} @verb #874:"zap" any with this rxd @program #874:zap doll = #46:get_doll(player); if (doll == #-1) player:tell("Sorry, you're not qualified to operate this device. The Bovine Illuminati may be able to help."); return; endif if (!(this in doll.wielding)) player:tell("You'll have to wield it first."); return; endif ghost = dobj; if ((ghost == $failed_match) || (ghost == $nothing)) player:tell("What do you want to zap?"); return; elseif (ghost == $ambiguous_match) player:tell("Which ", dobjstr, " do you want to zap?"); return; endif mods = (-doll.inj) - doll.ins; attack = #46:resolve(player, "ecacc", mods); player:tell("You aim your ", this.name, " at ", ghost.name, "."); player.location:announce(player.name, " aims ", player.pp, " ", this.name, " at ", ghost.name, "."); if ((!$object_utils:isa(ghost, #474)) || (!valid(gdoll = #46:get_doll(ghost)))) player.location:announce_all(player.name, "'s ", this.name, " fails to work, in accordance with the strategic arms limitation treaty."); doll:invite(15 + doll.slowness, {1, player, ghost}); return; endif player.location:announce_all("A wavering stream of light comes out of the nozzle of ", player.name, "'s ", this.name, ", giving off sparks in all directions and making a lot of noise."); if (attack < 0) player:tell("You miss."); player.location:announce(player.name, " misses."); doll:invite(15 + doll.slowness, {1, player, ghost}); return; endif mods = ((4 * gdoll.wil) - gdoll.ins) - attack; evade = #46:resolve(ghost, "wil", mods); if (evade > 0) ghost.location:announce_all("The ", ghost.name, " seems unworried by the attack."); else ghost.location:announce_all("The ", ghost.name, " is temporarily frozen in place by the beam."); gdoll.paralyzed = 1; gdoll.ins = gdoll.ins + random(10); endif doll:invite(15 + doll.slowness, {1, player, ghost}); "Profane 13-APR-95 12:30EST - moved getting gdoll in with :isa check, and added validity test for it."; . "***finished***