A dump of #50181 (Generic Natural Weapon) @create #82 named generic natural weapon:generic natural weapon,natweap,generic,natural,weapon "#50181.("dodgable") => E_PERM (Permission denied) "#50181.("parryable") => E_PERM (Permission denied) "#50181.("slowness") => E_PERM (Permission denied) "#50181.("parry") => E_PERM (Permission denied) "#50181.("attack") => E_PERM (Permission denied) "#50181.("pen") => E_PERM (Permission denied) "#50181.("dam") => E_PERM (Permission denied) "#50181.("skill") => E_PERM (Permission denied) ;;#50181.("hands") = 0 ;;#50181.("pierce") = 0 "#50181.("max_str_bonus") => E_PERM (Permission denied) ;;#50181.("disarmable") = 0 ;;#50181.("natural") = 1 "#50181.("can_degrade") => E_PERM (Permission denied) "#50181.("track_usage") => E_PERM (Permission denied) ;;#50181.("worth") = -1 ;;#50181.("keep_at_death") = 1 ;;#50181.("condition") = E_NONE ;;#50181.("odrop_failed_msg") = "% to drop %t but fails!" ;;#50181.("odrop_succeeded_msg") = "% %t." ;;#50181.("otake_succeeded_msg") = "% up %t." "#50181.("key") => E_PERM (Permission denied) ;;#50181.("aliases") = {"generic natural weapon", "natweap", "generic", "natural", "weapon"} ;;#50181.("description") = "A generic implement of destruction." ;;#50181.("object_size") = {6766, 1141286561} @verb #50181:"dam" this none this @program #50181:dam ":dam(by,targ) => Damage adjusted for wielder's size."; if (valid(doll = $local.rpg:get_doll(by = args[1]))) size = (doll.size > 0) ? doll.size | 1; dam = (this.dam > 0) ? this.dam | 1; "Still fooling with equations here. Whatcha like?"; return (size > 10) ? dam + random((size / 10) * dam) | (dam / (10 / size)); else "if the doll isn't valid, who cares?"; return 0; endif . @verb #50181:"used" this none this @program #50181:used "Remove this later if we make natural weapons designed for players to wield, but right now they shouldn't even have them."; {by, targ} = args; if (is_player(by) && (!(this in `$local.rpg:get_doll(by).natural_weapons ! E_INVIND => {}'))) 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."); by:room_announce(by:title(), " screams, \"OH MY GOD get this ", this.name, " off of me!!!\""); return E_PERM; else return pass(by, targ); endif "Quinn 10-AUG-93 0227-ET: Added."; "Profane 8-DEC-96 1119PST -- put this verb back in action and put in exception for those damn razor claws"; . @verb #50181:"attack pen pierce" this none this @program #50181:attack "Modified verb for natural weapon to disregard .condition of weapon, since natural weapons shouldn't degrade anyway. Saves ticks too, woo-woo!"; return this.(verb); "Profane 2-17-95 23:21EST - Added."; . @verb #50181:"notify_parry notify_clang" this none this @program #50181:notify_parry "Since natural weapons shouldn't degrade, put in this tick-saving return over the one on #82."; return; "Profane 2-18-95 00:50EST - Added."; . @verb #50181:"announce_parry" this none this rx @program #50181:announce_parry ":announce_parry(attacker, defender, location-string, weapon)"; "Announce that `defender' has used this weapon to parry an attack by `attacker' with `weapon' aimed at `location-string'."; who = args[2]; who:tell(("You parry with your " + this.name) + "."); who.location:announce_all_but({who}, ((((who.name + " parries with ") + who.pp) + " ") + this.name) + "."); "Profane 2-18-95 00:55EST Added (removed degrade check from #82)"; . @verb #50181:"is_wooden" this none this rx @program #50181:is_wooden return 0; . @verb #50181:"announce_swing" this none this rx @program #50181:announce_swing "Swiped from naginata (79903):announce_swing by THX1138 (105941) Sat Mar 8 14:25:48 1997 PST"; "modified, bent, and spindled by Bartlebooth 3/8/97"; ":announce_swing(attacker, target)"; "Announce that `attacker' has swung at `target' with this weapon."; {who, target} = args; swing = this.swing_list ? this.swing_list[x = random($)] | this.swing; oswing = this.oswing_list ? this.oswing_list[x] | this.oswing; who:tell("You ", swing, " your ", weapon = this.name, " at ", tname = target.name, "."); target:tell(string = tostr(who.name, " ", oswing, " ", who.pp, " ", weapon, " at "), "you."); $local.rpg:rpg_announce_all_but(who.location, {who, target}, string, tname, "."); "Originaly used .swing and .oswing for lists, but that broke code on monsters"; "that expect these to be strings, not lists. So much for trying to be clever."; . @verb #50181:"glued" this none this @program #50181:glued {who} = args; return !(valid(who) && (who.owner in $local.rpg.gms)); . @verb #50181:"may_wield" this none this @program #50181:may_wield {who} = args; return who.owner in $local.rpg.gms; . "***finished***