#include <mudlib.h>
object sword;
object armour;
inherit MONSTER;
void make_items();
void reset(status arg) {
string *races;
::reset(arg);
if(arg) make_items();
else {
set_name("guard");
set_plural("guards");
set_short("A city guard");
set_long(
"This is a simple city guard from Ille Coronos. \n"+
"He is weary from spending long hours at his post.\n"+
"Although he seems about to fall asleep, you're \n"+
"sure he knows you're here, and is ready to attack\n"+
"if need be! He has the look of experience about him.\n");
set_gender(1);
set_level(10 + random(3)); /* add a little variation */
set_max_hp(200);
set_hp(200);
races = ({ "half elf", "halfling", "human", "dwarf", });
set_race(races[random(sizeof(races))]);
add_money(300 + random(100));
add_class("mage");
add_class("cleric");
add_class("thief");
load_spells(10,({ "magic missile",
"cure serious wounds", "chill touch",
"acid arrow", "cure light wounds",
"curse", "bless", "shield",
}));
load_chat(5, ({ "Guard says: Ok, move along, no loitering thankyou.\n",
"Guard wipes the blade of his weapon.\n",
"Guard looks about himself.\n",
"Guard looks at you.\n",
"Guard smiles happily.\n",
"Guard says: No trouble from you I hope.\n",
}));
load_a_chat(6, ({ "Guard exclaims: Hey! That's not allowed!\n",
"Guard says: You'll never get away with this!\n",
"Guard shouts: Help!! Help me!! Bandits!!\n",
"Guard exclaims: I'll report you to Curzon\n",
"Guard exclaims: Thief! Bandit! Curzon will hear about this!\n",
}));
make_items();
set_heart_ob(this_object());
}
}
void monster_heart_beat() {
object *env, attack;
int i;
env = all_inventory(environment());
for(i=0; i<sizeof(env); i++) {
if(env[i]->id("guard") &&
env[i] != this_object() &&
!query_attack()) {
if(attack=(env[i]->query_attack())) {
write("Guard comes to the aid of his friend.\n");
tell_object(attack, "Guard starts to attack you!\n");
attack->hit_player(random(query_wc()));
}
}
}
}
void make_items() {
mixed *weapon_things;
int weapon_number;
weapon_things = ({
({ "broadsword", 42, 12, "slash", 870, }),
({ "longsword", 42, 13, "slash", 1500, }),
({ "twohandedsword", 72, 14, "cleave", 2000, }),
({ "shortsword", 24, 10, "slash", 420, }),
({ "scimitar", 36, 10, "slash", 420, }),
({ "claymore", 72, 14, "cleave", 2000, }),
({ "khopesh", 42, 11, "slash", 620, }),
({ "rapier", 48, 12, "pierce", 870, }),
});
weapon_number = random(sizeof(weapon_things));
if(!present("sword")) {
sword = clone_object(WEAPON);
sword -> set_alias("sword");
sword -> set_name(weapon_things[weapon_number][0]);
sword -> set_short("An iron "+weapon_things[weapon_number][0]);
sword -> set_long(
"This fine weapon bears the insignia of the city guard \n"+
"of Ille Coronos. Although well used it is in reasonable "+
"condition.\n");
sword -> set_length(weapon_things[weapon_number][1]);
sword -> set_weight(6);
sword -> set_wc(weapon_things[weapon_number][2]);
sword -> set_type(weapon_things[weapon_number][3]);
sword -> set_value(weapon_things[weapon_number][4]);
move_object(sword, this_object());
init_command("wield sword");
}
if(!present("armour")) {
armour = clone_object(ARMOUR);
armour -> set_name("chainmail");
armour -> set_ac(3);
armour -> set_type("armour");
armour -> set_weight(4);
armour -> set_value(1200);
armour -> set_short("A suit of chainmail");
armour -> set_long(
"A suit of chainmail armour that bears the crest of the \n"+
"guards of the city of Ille Coronos. It smells of sweat.\n"+
"Obviously it has been well used.\n");
move_object(armour, this_object());
init_command("wear armour");
}
this_object()->set_ac(9 + random(3)); /* just to make sure */
this_object()->set_wc(14 + random(3));
}