"A dump of #2521 on Sun Dec 17 13:43:09 1995 PST @create #82 named generic hand-and-a-half weapon:generic hand-and-a-half weapon,half,hand,weapon @prop #2521."slowness2" 0 "" @prop #2521."slowness1" 0 "" @prop #2521."skill2" 0 "" @prop #2521."skill1" 0 "" @prop #2521."pen2" 0 "" @prop #2521."pen1" 0 "" @prop #2521."attack2" 0 "" @prop #2521."attack1" 0 "" @prop #2521."dam2" 0 "" @prop #2521."dam1" 0 "" @prop #2521."parry2" 0 "" @prop #2521."parry1" 0 "" ;;#2521.("skill") = #19804 ;;#2521.("condition") = 100 ;;#2521.("odrop_failed_msg") = "% to drop %t but fails!" ;;#2521.("odrop_succeeded_msg") = "% %t." ;;#2521.("otake_succeeded_msg") = "% up %t." ;;#2521.("key") = 0 ;;#2521.("aliases") = {"generic hand-and-a-half weapon", "half", "hand", "weapon"} ;;#2521.("description") = "A generic implement of destruction." ;;#2521.("object_size") = {4151, 819192278} @verb #2521:"wield" any any any rxd @program #2521:wield wobj = {}; if (this.location != player) player:tell("Pick it up first."); else if (!valid(doll = #46:get_doll(player))) player:tell("It wouldn't do you much good, you don't know how to use it. Check out the Bovine Illuminati for some instruction."); return; endif if (iobjstr == "") first = "two"; else first = $string_utils:explode(iobjstr)[1]; endif if (first in {"one", "1"}) this:one(); handstr = "one-handed"; else this:two(); handstr = "two-handed"; endif if (this in doll.wielding) player:tell("You're already wielding it."); return; endif handsfree = 2; for thing in (doll.wielding) handsfree = handsfree - thing.hands; endfor if (handsfree >= this.hands) doll.wielding = listappend(doll.wielding, this); else player:tell("Your hands are full."); for thing in (doll.wielding) player:tell("You ", thing.sheathe, " your ", thing.name, "."); endfor doll.wielding = {this}; endif player:tell("You ", this.wield, " your ", this.name, " ", handstr, "."); player.location:announce(player.name, " ", this.owield, " ", player.pp, " ", this.name, " ", handstr, "."); return; wlist = {}; for k in [1..length(doll.wielding)] name = doll.wielding[k].name; if (k == 1) name = name + " (in primary hand)"; elseif (k == 2) name = name + " (in secondary hand)"; endif wlist = listappend(wlist, name); endfor text = $string_utils:english_list(wlist); player:tell("You are now wielding ", text); endif return; . @verb #2521:"one two" none none none rxd @program #2521:one "Set the mode of the weapon; one hand or two."; if (!$local.rpg:trusted(caller_perms())) return E_PERM; endif this.hands = verb in {"one", "two"}; this.skill = this.(tostr("skill", this.hands)); return this.hands; "Ogwul:Sun Apr 10 20:31:05 MDT 1994:Modified to set this.skill to either this.skill1 or this.skill2 as necessary."; . @verb #2521:"dodgable parryable slowness length parry attack pen dam skill" this none this rx @program #2521:dodgable "Stats are dependant on how the weapon is wielded."; "If a property matching the verb (with the value of this.hands appended) is found, set the stat to that value, restoring it after passing args."; if ((temp = this.(tostr(verb, this.hands))) != E_PROPNF) old = this.(verb); this.(verb) = temp; value = pass(@args); if (old == parent(this).(verb)) clear_property(this, verb); else this.(verb) = old; endif return value; else return pass(@args); endif . "***finished***