#include <stdproperties.h>
#include <ss_types.h>
#include <macros.h>

#include "woz.h"

inherit "/d/Imperium/std/monster.c";
inherit "/cmd/std/command_driver.c";
inherit "/lib/trade.c";

int zaplac(string str);
void nuln_seq(int i);

void
create_monster()
{
    ustaw_odmiane_rasy(PL_CZLOWIEK);
    
    dodaj_nazwy(PL_MEZCZYZNA);

    set_gender(G_MALE);

    dodaj_przym("lysawy", "lysawi");
    dodaj_przym("gruby", "grubi");

    add_prop(LIVE_I_NEVERKNOWN, 1);
    add_prop(OBJ_M_NO_ATTACK, 1);

    add_notify_meet_interactive("inicjuj");
    config_default_trade();
}

void
inicjuj()
{
    add_action(zaplac, "zaplac");
}

int
zaplac(string str)
{
    int cena = 60 - (40 * this_player()->query_skill(SS_TRADING) ) / 100;
    object *ob;

    notify_fail("Zaplac komu?\n");
    if (!stringp(str))
	return 0;

    ob = parse_this(str, "%l:" + PL_CEL);
    if (sizeof(ob) != 1)
	return 0;

    if (ob[0] != this_object())
	return 0;

    if (this_player()->query_prop(ZAPLACILEM_ZA_WOZ))
    {
	command("' do " + OB_NAME(this_player()) + " Juz zaplacil" + 
		this_player()->koncowka("es", "as") + " przeciez. Wsiadaj na woz " +
		"i nie zawracaj mi glowy!");
	return 1;
    }

    if (sizeof(pay(cena, this_player(), 0, 0, 0, 0, 0)) == 1 )
    {
	write("Niestety nie masz przy sobie wystarczajaco duzo pieniedzy.\n");
	return 1;
    }

    say(QCIMIE(this_player(), PL_MIA) + " placi " + QIMIE(this_object(), PL_CEL) + 
	" za podroz.\n");
    write("Placisz " + this_object()->query_imie(this_player(), PL_CEL) + " za podroz.\n");
    this_player()->add_prop(ZAPLACILEM_ZA_WOZ, 1);
    return 1;
}

void
init_nuln_emotes()
{
    set_alarm(1.0, 0.0, &nuln_seq(0));
}

void
nuln_seq(int i)
{
    if (environment() == find_object(SRODEK_WOZU) )
	return;

    set_this_player(this_object());

    switch(i)
    {
    case 0:
	say(QCIMIE(this_object(), PL_MIA) + " wraz z kilkoma pomocnikami zaczyna " +
	    "zdejmowac towary z wozu.\n");
	tell_room(SRODEK_WOZU, QCIMIE(this_object(), PL_MIA) + " wraz z kilkoma " +
		  "pomocnikami zaczyna zdejmowac towary z wozu.\n");
	set_alarm(10.0, 0.0, &nuln_seq(1));
	break;
    case 1:
	command("krzyknij Jak kto chce sie ze mna zabrac do odleglych krain, az po same " +
		"Pustkowia Chaosu, niechaj sypnie troche grosza i na woz sie laduje! " +
		"Ino zywo bo ruszamy lada chwila!");
	set_alarm(7.0, 0.0, &nuln_seq(2));
	break;
    case 2:
	say("Pomocnicy " + QIMIE(this_object(), PL_DOP) + " koncza rozladowywac woz " +
	    "i zabieraja sie teraz do pakowania nan ladunku ze sklepu.\n");
	tell_room(SRODEK_WOZU, "Pomocnicy " + QIMIE(this_object(), PL_DOP) + 
		  " koncza rozladowywac woz i zabieraja sie teraz do pakowania " +
		  "nan ladunku ze sklepu.\n");
	set_alarm(10.0, 0.0, &nuln_seq(3));
	break;
    case 3:
	command("krzyknij Ku Pustkowiom Chaosu zdazam! Chetnie na woz zabiore, jak " +
		"kto gotow zaplacic!");
	set_alarm(10.0, 0.0, &nuln_seq(4));
	break;
    case 4:
	say(QCIMIE(this_object(), PL_MIA) + " przeglada jeszcze wnikliwie ladunek na wozie " +
	    "i szykuje sie do odjazdu.\n");
	tell_room(SRODEK_WOZU, QCIMIE(this_object(), PL_MIA) + " przeglada jeszcze " +
		  "wnikliwie ladunek na wozie i szykuje sie do odjazdu.\n");
	set_alarm(1.0, 0.0, &nuln_seq(5));
	break;
    }
}
