#include "mith_zabojcy.h"

inherit "/d/Imperium/std/monster";
inherit "/lib/trade";

void
create_monster()
{
    ustaw_nazwe (({"borin","borina","borinowi","borina","borinem","borinie"}),
      allocate(6), 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 na oczach szlany 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));
    
    add_prop(NPC_M_NO_ACCEPT_GIVE, 0);
    remove_prop(NPC_M_NO_ACCEPT_GIVE);
    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)));
}

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");	
}


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);
}


zwrot(object ob, object komu, string tekst)
{
	command(tekst);
	komu->catch_msg("Zlotnik oddaje ci "+ob->short(PL_MIA)+".\n");
	ob->move(komu);
}

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());
	tmp=restore_map(MAP);
	tmp[from->query_real_name()]=ob->query_typ();
	save_map(tmp, MAP);
	set_alarm(1.0, 0.0, &idz(environment(this_object()), TP, ob));
}
	
