generic hand-and-a-half weapon #2521

Parent #82Owner Flags Source rpg_march_2006/handhalf.txt

Aliases: generic hand-and-a-half weapon, half, hand, weapon

3 verbs · 21 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
wield weildany any anyrxd#252149
one twonone none nonerxd#25218
dodgable parryable slowness length parry attack pen dam skillthis none thisrx#252115

Properties

PropertyDefinerFlagsOwnerValue
dodgable#2521not readable (E_PERM)
parryable#2521not readable (E_PERM)
slowness#2521not readable (E_PERM)
parry#2521not readable (E_PERM)
attack#2521not readable (E_PERM)
pen#2521not readable (E_PERM)
dam#2521not readable (E_PERM)
skill#2521not readable (E_PERM)
pierce#25210
max_str_bonus#2521not readable (E_PERM)
can_degrade#2521not readable (E_PERM)
track_usage#2521not readable (E_PERM)
worth#2521-1
condition#2521100
odrop_failed_msg#2521"%<tries> to drop %t but fails!"
odrop_succeeded_msg#2521"%<drops> %t."
otake_succeeded_msg#2521"%<picks> up %t."
key#2521not 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

calls n2521_0 #2521:wield n82_20 #82:may_wield n2521_0->n82_20 n2521_1 #2521:one n2521_0->n2521_1 n82_34 #82:do_unwield n2521_0->n82_34 n82_21 #82:do_wield n2521_0->n82_21 n2521_2 #2521:dodgable n82_6 #82:dodgable n2521_2->n82_6

Source

wield weild

Spec any any anyFlags rxdDefiner #2521

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

Spec none none noneFlags rxdDefiner #2521

Referenced by

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

Spec this none thisFlags rxDefiner #2521

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