generic natural weapon #50181

Parent #82Owner Flags Source rpg_march_2006/natweap.txt

Aliases: generic natural weapon, natweap, generic, natural, weapon

9 verbs · 25 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
damthis none this#5018110
usedthis none this#5018111
attack pen piercethis none this#501813
notify_parry notify_clangthis none this#501813
announce_parrythis none thisrx#501816
is_woodenthis none thisrx#501811
announce_swingthis none thisrx#5018112
gluedthis none this#501812
may_wieldthis none this#501812

Properties

PropertyDefinerFlagsOwnerValue
dodgable#50181not readable (E_PERM)
parryable#50181not readable (E_PERM)
slowness#50181not readable (E_PERM)
parry#50181not readable (E_PERM)
attack#50181not readable (E_PERM)
pen#50181not readable (E_PERM)
dam#50181not readable (E_PERM)
skill#50181not readable (E_PERM)
hands#501810
pierce#501810
max_str_bonus#50181not readable (E_PERM)
disarmable#501810
natural#501811
can_degrade#50181not readable (E_PERM)
track_usage#50181not readable (E_PERM)
worth#50181-1
keep_at_death#501811
condition#50181E_NONE
odrop_failed_msg#50181"%<tries> to drop %t but fails!"
odrop_succeeded_msg#50181"%<drops> %t."
otake_succeeded_msg#50181"%<picks> up %t."
key#50181not readable (E_PERM)
aliases#50181{"generic natural weapon", "natweap", "generic", "natural", "weapon"}
description#50181"A generic implement of destruction."
object_size#50181{6766, 1141286561}

Ancestry

Ancestors (nearest first): #82 generic weapon#517 Generic LRPG Thing

Children: none

Call graph

calls n50181_1 #50181:used n82_4 #82:used n50181_1->n82_4

Source

dam

Spec this none thisDefiner #50181

Referenced by

none

Source

1":dam(by,targ) => Damage adjusted for wielder's size.";
2if (valid(doll = $local.rpg:get_doll(by = args[1])))
3  size = (doll.size > 0) ? doll.size | 1;
4  dam = (this.dam > 0) ? this.dam | 1;
5  "Still fooling with equations here.  Whatcha like?";
6  return (size > 10) ? dam + random((size / 10) * dam) | (dam / (10 / size));
7else
8  "if the doll isn't valid, who cares?";
9  return 0;
10endif

used

Spec this none thisDefiner #50181

Referenced by

none

Source

1"Remove this later if we make natural weapons designed for players to wield, but right now they shouldn't even have them.";
2{by, targ} = args;
3if (is_player(by) && (!(this in `$local.rpg:get_doll(by).natural_weapons ! E_INVIND => {}')))
4  by:tell("You suddenly become acutely aware that ", this.name, " was not meant to be wielded by your kind.  The appendage digs painfully into your flesh.");
5  by:room_announce(by:title(), " screams, \"OH MY GOD get this ", this.name, " off of me!!!\"");
6  return E_PERM;
7else
8  return pass(by, targ);
9endif
10"Quinn 10-AUG-93 0227-ET: Added.";
11"Profane 8-DEC-96 1119PST -- put this verb back in action and put in exception for those damn razor claws";

attack pen pierce

Spec this none thisDefiner #50181

Referenced by

none

Source

1"Modified verb for natural weapon to disregard .condition of weapon, since natural weapons shouldn't degrade anyway. Saves ticks too, woo-woo!";
2return this.(verb);
3"Profane 2-17-95 23:21EST - Added.";

notify_parry notify_clang

Spec this none thisDefiner #50181

Referenced by

none

Source

1"Since natural weapons shouldn't degrade, put in this tick-saving return over the one on #82.";
2return;
3"Profane 2-18-95 00:50EST - Added.";

announce_parry

Spec this none thisFlags rxDefiner #50181

Referenced by

none

Source

1":announce_parry(attacker, defender, location-string, weapon)";
2"Announce that `defender' has used this weapon to parry an attack by `attacker' with `weapon' aimed at `location-string'.";
3who = args[2];
4who:tell(("You parry with your " + this.name) + ".");
5who.location:announce_all_but({who}, ((((who.name + " parries with ") + who.pp) + " ") + this.name) + ".");
6"Profane 2-18-95 00:55EST Added (removed degrade check from #82)";

is_wooden

Spec this none thisFlags rxDefiner #50181

Referenced by

none

Source

1return 0;

announce_swing

Spec this none thisFlags rxDefiner #50181

Referenced by

none

Source

1"Swiped from naginata (79903):announce_swing by THX1138 (105941) Sat Mar  8 14:25:48 1997 PST";
2"modified, bent, and spindled by Bartlebooth 3/8/97";
3":announce_swing(attacker, target)";
4"Announce that `attacker' has swung at `target' with this weapon.";
5{who, target} = args;
6swing = this.swing_list ? this.swing_list[x = random($)] | this.swing;
7oswing = this.oswing_list ? this.oswing_list[x] | this.oswing;
8who:tell("You ", swing, " your ", weapon = this.name, " at ", tname = target.name, ".");
9target:tell(string = tostr(who.name, " ", oswing, " ", who.pp, " ", weapon, " at "), "you.");
10$local.rpg:rpg_announce_all_but(who.location, {who, target}, string, tname, ".");
11"Originaly used .swing and .oswing for lists, but that broke code on monsters";
12"that expect these to be strings, not lists. So much for trying to be clever.";

glued

Spec this none thisDefiner #50181

Referenced by

none

Source

1{who} = args;
2return !(valid(who) && (who.owner in $local.rpg.gms));

may_wield

Spec this none thisDefiner #50181

Referenced by

none

Source

1{who} = args;
2return who.owner in $local.rpg.gms;