lpmud/mudlib/
lpmud/mudlib/doc/
lpmud/mudlib/doc/LPC/
lpmud/mudlib/log/
lpmud/mudlib/players/
lpmud/mudlib/room/maze1/
lpmud/mudlib/room/sub/
/* Nasty monster that carries the chest. */
#include "living.h"

reset(arg)
{
    if (arg)
	return;
    set_heart_beat(1);
    weapon_class = 12;
    max_hp = 100;
    hit_point = 100;
    level = 8;
    experience = 17000;
    is_npc = 1;
    name = "octopus";
    cap_name = "Octopus";
    alignment = -60;
    enable_commands();
}

short() {
    return "An octopus";
}

long() {
    write("A very big octopus with eight long arms.\n");
    write("It looks very dangerous.\n");
    if (hit_point > max_hp - 20)
	write("It seems to be in a good shape.\n");
}

id(str) { return str == name; }

heart_beat()
{
    object ob;
    age += 1;
    attack();
    if (attacker_ob) {
	int n;
	n = random(30);
	if (n == 0)
	    tell_object(attacker_ob,
			name + " says: I will convert you to a pulp.\n");
	if (n == 1)
	    tell_object(attacker_ob,
			name + " says: Come on, coward!\n");
	if (n == 2)
	    tell_object(attacker_ob,
			name + " says: You fight like a woman!\n");
    }
    if (attacker_ob || random(5))
	return;
    ob = first_inventory(environment(this_object()));
    while(ob) {
	if (ob != this_object() && living(ob)) {
	    attack_object(ob);
	    say(name + " attacks " + call_other(attacker_ob, "query_name", 0) +
		" viciously.\n");
	    return;
	}
	ob = next_inventory(ob);
    }
}

can_put_and_get()
{
    write(name + " says: Over my dead body.\n");
    return 0;
}

catch_tell(str)
{
    string who, extra;

    if (sscanf(str, "%s arrives%s", who, extra) == 2)
	test_if_any_here();
}