generic hand-and-a-half weapon #2521
Aliases: generic hand-and-a-half weapon, half, hand, weapon
3 verbs · 21 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
wield weild | any any any | rxd | #2521 | 49 |
one two | none none none | rxd | #2521 | 8 |
dodgable parryable slowness length parry attack pen dam skill | this none this | rx | #2521 | 15 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
dodgable | #2521 | | — | not readable (E_PERM) |
parryable | #2521 | | — | not readable (E_PERM) |
slowness | #2521 | | — | not readable (E_PERM) |
parry | #2521 | | — | not readable (E_PERM) |
attack | #2521 | | — | not readable (E_PERM) |
pen | #2521 | | — | not readable (E_PERM) |
dam | #2521 | | — | not readable (E_PERM) |
skill | #2521 | | — | not readable (E_PERM) |
pierce | #2521 | | — | 0 |
max_str_bonus | #2521 | | — | not readable (E_PERM) |
can_degrade | #2521 | | — | not readable (E_PERM) |
track_usage | #2521 | | — | not readable (E_PERM) |
worth | #2521 | | — | -1 |
condition | #2521 | | — | 100 |
odrop_failed_msg | #2521 | | — | "%<tries> to drop %t but fails!" |
odrop_succeeded_msg | #2521 | | — | "%<drops> %t." |
otake_succeeded_msg | #2521 | | — | "%<picks> up %t." |
key | #2521 | | — | not readable (E_PERM) |
aliases | #2521 | | — | {"generic hand-and-a-half weapon", "half", "hand", "weapon"} |
description | #2521 | | — | "A generic implement of destruction." |
object_size | #2521 | | — | {4534, 1141286558} |
Ancestry
Ancestors (nearest first): #82 generic weapon → #517 Generic LRPG Thing
Children: none
Call graph
Source
wield weild
Referenced by
none
Source
1if (!$local.rpg:trust($nothing, player)) 2 return E_PERM; 3elseif (this.location != player) 4 player:tell("You don't have ", this.name, "."); 5 return; 6elseif (!valid(doll = $local.rpg:get_doll(player))) 7 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."); 8elseif (p = doll.paralyzed) 9 return player:tell((typeof(p) == STR) ? p | "You're paralyzed. Wielding this weapon would be out of the question."); 10elseif (!this:may_wield(player)) 11 return; 12endif 13if (iobjstr == "") 14 first = "two"; 15else 16 first = $string_utils:explode(iobjstr)[1]; 17endif 18if (first in {"one", "1"}) 19 this:one(); 20 handstr = "one-handed"; 21else 22 this:two(); 23 handstr = "two-handed"; 24endif 25wielding = doll.wielding = setremove(doll.wielding, this); 26this:do_unwield(player); 27if ((handsreq = this.hands) > doll.hands) 28 player:tell("You don't have enough appendages to wield ", this.name, "."); 29 return; 30elseif ((handsfree = doll:hands_free()) < handsreq) 31 player:tell("Your hands are full."); 32 while (wielding && (handsfree < handsreq)) 33 thing = wielding[1]; 34 if (thing:may_unwield(player)) 35 thing:do_unwield(player); 36 player:tell("You ", thing.sheathe, " your ", thing.name, "."); 37 handsfree = handsfree + thing.hands; 38 endif 39 wielding = listdelete(wielding, 1); 40 endwhile 41endif 42if (handsfree >= handsreq) 43 doll.wielding = setadd(wielding, this); 44 this:do_wield(player); 45 player:tell("You ", this.wield, " your ", this.name, " ", handstr, "."); 46 player.location:announce($string_utils:pronoun_sub(((("%n %<" + this.owield) + "> %p %t ") + handstr) + ".")); 47endif 48"Profane 27-MAY-96 1734EST -- s/2/doll.hands/25"; 49"Irin Sat Sep 28 12:45:54 1996 PDT -- Major rewrite. Updated to look more like #82:wield.";
one two
Referenced by
- #2521:wield line 19:
this:one - #2521:wield line 22:
this:two
Source
1"Set the mode of the weapon; one hand or two."; 2if (!$local.rpg:trusted(caller_perms())) 3 return E_PERM; 4endif 5this.hands = verb in {"one", "two"}; 6this.skill = this.(tostr("skill", this.hands)); 7return this.hands; 8"Ogwul:Sun Apr 10 20:31:05 MDT 1994:Modified to set this.skill to either this.skill1 or this.skill2 as necessary.";
dodgable parryable slowness length parry attack pen dam skill
Referenced by
none
Source
1"Stats are dependant on how the weapon is wielded."; 2"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."; 3if ((temp = this.(tostr(verb, this.hands))) != E_PROPNF) 4 old = this.(verb); 5 this.(verb) = temp; 6 value = pass(@args); 7 if (old == parent(this).(verb)) 8 clear_property(this, verb); 9 else 10 this.(verb) = old; 11 endif 12 return value; 13else 14 return pass(@args); 15endif