A dump of #2521 (hand-and-a-half weapon) @create #82 named generic hand-and-a-half weapon:generic hand-and-a-half weapon,half,hand,weapon "#2521.("dodgable") => E_PERM (Permission denied) "#2521.("parryable") => E_PERM (Permission denied) "#2521.("slowness") => E_PERM (Permission denied) "#2521.("parry") => E_PERM (Permission denied) "#2521.("attack") => E_PERM (Permission denied) "#2521.("pen") => E_PERM (Permission denied) "#2521.("dam") => E_PERM (Permission denied) "#2521.("skill") => E_PERM (Permission denied) ;;#2521.("pierce") = 0 "#2521.("max_str_bonus") => E_PERM (Permission denied) "#2521.("can_degrade") => E_PERM (Permission denied) "#2521.("track_usage") => E_PERM (Permission denied) ;;#2521.("worth") = -1 ;;#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") => E_PERM (Permission denied) ;;#2521.("aliases") = {"generic hand-and-a-half weapon", "half", "hand", "weapon"} ;;#2521.("description") = "A generic implement of destruction." ;;#2521.("object_size") = {4534, 1141286558} @verb #2521:"wield weild" any any any rxd @program #2521:wield if (!$local.rpg:trust($nothing, player)) return E_PERM; elseif (this.location != player) player:tell("You don't have ", this.name, "."); return; elseif (!valid(doll = $local.rpg: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."); elseif (p = doll.paralyzed) return player:tell((typeof(p) == STR) ? p | "You're paralyzed. Wielding this weapon would be out of the question."); elseif (!this:may_wield(player)) 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 wielding = doll.wielding = setremove(doll.wielding, this); this:do_unwield(player); if ((handsreq = this.hands) > doll.hands) player:tell("You don't have enough appendages to wield ", this.name, "."); return; elseif ((handsfree = doll:hands_free()) < handsreq) player:tell("Your hands are full."); while (wielding && (handsfree < handsreq)) thing = wielding[1]; if (thing:may_unwield(player)) thing:do_unwield(player); player:tell("You ", thing.sheathe, " your ", thing.name, "."); handsfree = handsfree + thing.hands; endif wielding = listdelete(wielding, 1); endwhile endif if (handsfree >= handsreq) doll.wielding = setadd(wielding, this); this:do_wield(player); player:tell("You ", this.wield, " your ", this.name, " ", handstr, "."); player.location:announce($string_utils:pronoun_sub(((("%n %<" + this.owield) + "> %p %t ") + handstr) + ".")); endif "Profane 27-MAY-96 1734EST -- s/2/doll.hands/25"; "Irin Sat Sep 28 12:45:54 1996 PDT -- Major rewrite. Updated to look more like #82:wield."; . @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***