A dump of #3451 (Generic Shield)

@create #82 named generic shield:generic shield,weapon
"#3451.("dodgable") => E_PERM (Permission denied)
"#3451.("parryable") => E_PERM (Permission denied)
;;#3451.("oswing") = "thrusts"
;;#3451.("swing") = "thrust"
;;#3451.("owield") = "raises"
;;#3451.("wield") = "raise"
;;#3451.("osheathe") = "lowers"
;;#3451.("sheathe") = "lower"
"#3451.("slowness") => E_PERM (Permission denied)
;;#3451.("length") = 25
"#3451.("parry") => E_PERM (Permission denied)
"#3451.("attack") => E_PERM (Permission denied)
"#3451.("pen") => E_PERM (Permission denied)
"#3451.("dam") => E_PERM (Permission denied)
"#3451.("skill") => E_PERM (Permission denied)
;;#3451.("wooden") = 1
;;#3451.("blunt") = 1
;;#3451.("pierce") = 0
"#3451.("max_str_bonus") => E_PERM (Permission denied)
;;#3451.("disarmable") = 0
"#3451.("can_degrade") => E_PERM (Permission denied)
"#3451.("track_usage") => E_PERM (Permission denied)
;;#3451.("encumbrance") = 10
;;#3451.("worth") = -1
;;#3451.("condition") = 100
;;#3451.("odrop_failed_msg") = "%<tries> to drop %t but fails!"
;;#3451.("odrop_succeeded_msg") = "%<drops> %t."
;;#3451.("otake_succeeded_msg") = "%<picks> up %t."
"#3451.("key") => E_PERM (Permission denied)
;;#3451.("aliases") = {"generic shield", "weapon"}
;;#3451.("description") = "A largish wooden shield tapering to a point at the bottom."
;;#3451.("object_size") = {5328, 1141286558}

@verb #3451:"emblazon(old)" this with any rxd
@program #3451:emblazon(old)
if (this.location == player)
  this.crest = iobjstr;
  this:set_aliases(setadd(setadd({@parent(this).aliases, @`{this.crest} ! ANY => {}'}, this.title = iobjstr), this.name));
  player:tell("You emblazon ", this.name, " with ", this.crest, ".");
  player.location:announce(player.name, " emblazons ", player.pp, " crest on ", player.pp, " ", this.name, ".");
else
  player:tell("you don't have the ", this.name, ".");
endif
.

@verb #3451:"description" this none this
@program #3451:description
if (typeof(this.crest) == STR)
  return ((pass(@args) + " It bears ") + this.crest) + ".";
else
  return pass(@args);
endif
.

@verb #3451:"look_gear_msg" this none this
@program #3451:look_gear_msg
":look_gear_msg(doll)";
who = args[1].character;
crest = this.crest;
"return tostr(who.psc, \" is armed with \", this:title(), crest ? (\" which bears \\\"\" + crest) + \"\\\"\" | \"\", \".\");";
return tostr(who.psc, " is armed with ", this:title(), crest ? (", which bears " + crest) + "" | "", ".");
.

@verb #3451:"hide_from_look_gear" this none this
@program #3451:hide_from_look_gear
"look_gear_msg takes care of everything";
return 1;
.

@verb #3451:"parry" this none this
@program #3451:parry
{by, me, weapon} = args;
pass = pass(by, me, weapon) + (((this:condition(by, me) || 100) - 100) / 5);
rpg = $local.rpg;
if (parent(weapon) == rpg.magic_db.waterwhip)
  pass = pass + this.ww_parry_bonus;
elseif (rpg.object_db:is_missile_ammo(weapon))
  pass = pass + this.miss_parry_bonus;
endif
return pass;
.

@verb #3451:"emb*lazon" this with any
@program #3451:emblazon
"Usage: `emblazon <shield> with <crest>', where <crest> is the description of what you'd like pictured on the shield.  If you'd like text written, instead of a picture, to avoid odd messaging type something along the lines of, `emblazon <shield> with \\\"yduJ is a fink\\\"'.  Got it?";
if (this.location == player)
  if (iobjstr)
    "this:set_aliases(setadd({this.name, @parent(this).aliases, this.title}, this.crest = iobjstr));";
    this.crest = iobjstr;
    player:tell("You emblazon ", this.name, " with ", this.crest, ".");
    player.location:announce(player.name, " emblazons ", player.pp, " crest on ", player.pp, " ", this.name, ".");
  else
    this:set_aliases(setremove(this.aliases, this.crest));
    this.crest = 0;
    player:tell("You sand down the emblazoned crest on ", this.name, " to nothing.");
    player.location:announce(player.name, " sands the emblazoned crest on ", player.pp, " ", this.name, " down to nothing.");
  endif
else
  player:tell("You need to be holding ", this.name, " to emblazon your crest on it.");
endif
"Hydros (#106189) - Thu Apr 7, 2005 - Crests are no longer added as aliases.  It looks silly and it's quota consuming.";
"                                   - Left in the removal of aliases, for any remaining shields that might have used the old system.";
.

"***finished***