LPMUD/
LPMUD/BIN/
LPMUD/DOC/
LPMUD/MUDLIB/
LPMUD/MUDLIB/BANISH/
LPMUD/MUDLIB/D/
LPMUD/MUDLIB/DOC/
LPMUD/MUDLIB/DOC/DOMAINS/
LPMUD/MUDLIB/DOC/EFUN/
LPMUD/MUDLIB/DOC/EXAMPLES/
LPMUD/MUDLIB/DOC/EXAMPLES/ARMOUR/
LPMUD/MUDLIB/DOC/EXAMPLES/CONTAIN/
LPMUD/MUDLIB/DOC/EXAMPLES/FOOD/
LPMUD/MUDLIB/DOC/EXAMPLES/MAGIC/
LPMUD/MUDLIB/DOC/EXAMPLES/MONSTER/
LPMUD/MUDLIB/DOC/EXAMPLES/ROOM/
LPMUD/MUDLIB/DOC/EXAMPLES/WEAPONS/
LPMUD/MUDLIB/FUNCTION/
LPMUD/MUDLIB/INCLUDE/
LPMUD/MUDLIB/INCLUDE/FN_SPECS/
LPMUD/MUDLIB/INCLUDE/SKILLS/
LPMUD/MUDLIB/INFO/
LPMUD/MUDLIB/INHERIT/BASE/
LPMUD/MUDLIB/LOG/
LPMUD/MUDLIB/MANUALS/312/
LPMUD/MUDLIB/NEWS/
LPMUD/MUDLIB/OBJ/PARTY/
LPMUD/MUDLIB/OBJ/SHADOWS/
LPMUD/MUDLIB/OBJECTS/COMPONEN/
LPMUD/MUDLIB/OPEN/
LPMUD/MUDLIB/OPEN/LIBRARY/
LPMUD/MUDLIB/OPEN/PARTY/
LPMUD/MUDLIB/PLAYERS/
LPMUD/MUDLIB/PLAYERS/ZIL/
LPMUD/MUDLIB/ROOM/
LPMUD/MUDLIB/ROOM/CITY/ARENA/
LPMUD/MUDLIB/ROOM/CITY/CREATOR/
LPMUD/MUDLIB/ROOM/CITY/GARDEN/MONST/
LPMUD/MUDLIB/ROOM/CITY/OBJ/
LPMUD/MUDLIB/ROOM/CITY/PUB/
LPMUD/MUDLIB/ROOM/CITY/SHOP/
LPMUD/MUDLIB/ROOM/DEATH/
LPMUD/MUDLIB/ROOM/REGISTRY/
LPMUD/MUDLIB/SECURE/
LPMUD/MUDLIB/SECURE/UDP_CMD_/
LPMUD/MUDLIB/SKILLS/
LPMUD/MUDLIB/SKILLS/FIGHTER/
LPMUD/MUDLIB/SKILLS/THIEF/
LPMUD/MUDLIB/USR/
LPMUD/MUDLIB/USR/CREATORS/
LPMUD/MUDLIB/USR/PLAYERS/
#include <mudlib.h>
inherit WEAPON;

void query_info();
void info();
void reset(status arg) {
  if(arg) return;

  set_name("longsword");
  set_alias("sword");
  set_short("A silver longsword");
  set_long(
     "This fair longsword glows with a soft light and bears \n"+
     "elvish runes of power along its fine silver blade.    \n");
  set_wc(16);
  set_type("slash");
  set_length(45);  /* a little longer than normal */
  set_weight(5);
  set_value(4000);
  set_hit_func(this_object());
}

init() {
  ::init();
  add_action("read", "read");
}

read(string str) {
  string tmp1, tmp2;
  if(sscanf(str, "%srunes%s", tmp1, tmp2)) {
    if(this_player()->query_languages("elf"))
      query_info();
    else
      write("They don't make any sense to you.\n");
    return 1;
  }
}

void query_info() {
  write("The runes on the blade glow as you read them...\n"+
     "they say - 'Champion, the slayer of Evil'\n");
}

void info() {
  ::info();
  query_info();
}

int weapon_hit(object target) {
  if(target -> query_alignment() < -100) {
    tell_object(environment(), "Your longsword glows a brilliant white!\n");
    say(environment()->query_name() +"'s longsword glows a "+
    "brilliant white!\n",environment());
    return 16; /* x2 damage vs evils */
  }
  return 0;
}

wield(string str) {
  ::wield(str);
  if(id(str)) {
    if(this_player()->query_alignment() < 100) {
      tell_object(environment(), "The longsword sparks in your hands!\n");
      environment()->hit_player(10 + random(20));
      drop();
    }
  return 1;
  }
}