#include "morley.h"

inherit "/d/Imperium/std/monster";
inherit "/lib/trade";

void
create_monster()
{
    ustaw_imie (({"borin","borina","borinowi","borina","borinem","borinie"}),
		PL_MESKI_OS);

    dodaj_nazwy(({"zlotnik","zlotnika","zlotnikowi","zlotnika","zlotnikiem",
		      "zlotniku"}),({"zlotnicy","zlotnikow","zlotnikom",
			   "zlotnikow","zlotnikami","zlotnikach"}), PL_MESKI_OS);
    
    set_long("Widzisz wysokiego, brodatego krasnoluda. Jest on niepodobny "+
	     "do reszty swych braci, bowiem na oczach szklany binokl i jest "+
	     "wyjatkowo chudy. Garbi sie przy tym niemilosiernie, co nadaje mu "+
	     "wyglad slaby i cherlawy.\n");
    
    ustaw_odmiane_rasy (PL_KRASNOLUD);
    
    dodaj_przym ("chudy","chudzi");
    dodaj_przym ("wysoki","wysocy");

    set_living_name("_zlotnik_");
    
    set_gender(G_MALE);
 
    add_prop(CONT_I_WEIGHT, 57000);
    add_prop(CONT_I_HEIGHT, 165);

    set_skill(SS_DEFENCE, 70);
    set_skill(SS_UNARM_COMBAT, 70);

    set_stats(({ 51, 58, 50, 44, 40, 44}));

    set_act_time(15);
    add_act("emote drapie sie po brodzie.");
    add_act("emote zanosi sie suchym, plytkim kaszlem.");
    add_act("emote zamysle sie, zapominajac o wszystkim dokola.");
    add_act("emote mruga znaczaco okiem.");
    add_act("powiedz Moge ci jakos pomoc?");
    add_act("emote szlifuje jakis kamien.");

    dodaj_srebro(10+random(20));
    dodaj_zloto(random(3));
    
    config_default_trade();
}

string
query_presentation()
{
    return "Borin z Karak Varn, Zlotnik, krasnolud";
}

void
add_introduced (string imie)
{
    set_alarm(2.0,0.0,"return_introduce", imie);
}

void
return_introduce(string kto) 
{
    command("przedstaw sie " + OB_NAME(find_living(kto, 0)));
}

void
wracaj(object room, object komu)
{
    object what;
    move(room);
	
    tell_room(room, QCIMIE(this_object(),PL_MIA)+" wraca trzymajac w reku " +
	      "pieknie wykonany naszyjnik.\n");

    if (environment(komu)!=room)
    {
	command("powiedz Ech, gdzie on polazl? Coz, jego strata.");
	command("emote wraca na chwile do pracowni, i wychodzi z niej z pustymi rekoma.");
	what->remove_object();
	return;
    }
	  
    (what=clone_object(NASZYJNIK))->move(komu);
    command("powiedz do "+komu->query_real_name(PL_DOP)+" Prosze, oto twoj naszyjnik.\n");
    komu->catch_msg("Zlotnik wrecza ci pieknie wykonany "+what->short(PL_BIE)+".\n");	
}

void
idz(object room, object komu, object ob)
{
    ob->remove_object();
    set_alarm(30.0, 0.0, &wracaj(room, komu));
    command("powiedz Za chwile przyniose ci twoj naszyjnik.\n");
    tell_room(room, QCIMIE(this_object(),PL_MIA)+" znika za drzwiami swojej " +
	      "pracowni. Po chwili dobiegaja stamtad odglosy delikatnego kucia...\n");
    move(VOID);
}

void
zwrot(object ob, object komu, string tekst)
{
    command(tekst);
    komu->catch_msg("Zlotnik oddaje ci "+ob->short(PL_MIA)+".\n");
    ob->move(komu);
}

void
oddaj(object co, object komu, string tekst)
{
	set_alarm(1.0, 0.0, &zwrot(co, komu, tekst));
}

public void
enter_inv(object ob, object from)
{
    mapping tmp;
    object naszyjnik;
    if (!(from->query_login_from()))
	return ::enter_inv(ob, from);
    if (!(ob->query_prop(ZEBY)))
    {
	oddaj(ob, from, "emote mowi: Co ja mam niby z tym zrobic?");
	return;
    }

	
    if (!(from->query_prop(ZABOJCY_ZABIL)))
    {
	oddaj(ob, from, "emote mowi: Chyba sam nie zabiles tego przeciwnika...");
	return;
    }

    from->remove_prop(ZABOJCY_ZABIL);
		
    if (sizeof(pay(PRICE,from, 0,0,0,0,0))==1)
    {
	oddaj(ob, from, "emote mowi: Nie masz wystarczajaco pieniedzy, zeby "+
	      "zaplacic za naszyjnik!\n");
	return ;
    }

    ::enter_inv(ob, from);

    setuid();
    seteuid(getuid());

    ADMIN_OB->ustaw_zabojce(from, ob->query_typ());

    set_alarm(1.0, 0.0, &idz(environment(this_object()), TP, ob));
}

