inherit "/std/object";
inherit "/cmd/std/command_driver";
#include "norska.h"
//#include "special.h"
//#include "spece.h"


#define A "rog"

int zalozony=0;





void
create_object()
{

ustaw_nazwe( ({"rog","rogu","rogowi","rog","rogiem",
	"rogu"}), ({"rogi","rogow","rogom","rogi",
	"rogami","rogach"}),PL_MESKI_NOS_NZYW);


    dodaj_przym("mosiezny","mosiezni");
    dodaj_przym("wojenny","wojenni");
    
    set_long("Mosiezny, wojenny rog zawieszony na twojej szyi stanowi symbol "+
"Berserkerow z Norski. Od wiekow ow wojownicy nosza takie rogi na lowy, "+
"niekoniecznie na zwierzyne.\n");
    add_prop(OBJ_M_NO_GIVE,"Nie chcesz chyba oddac nikomu symbolu Berserkerow z Norski?\n");
    add_prop(OBJ_M_NO_DROP,"Nie chcesz chyba porzucic symbolu Berserkerow z Norski?.\n");
    add_prop(OBJ_M_NO_SELL,"Nie chcesz chyba sprzedac symbolu Berserkerow z Norski?.\n");
    add_prop(OBJ_I_WEIGHT, 500);
    add_prop(OBJ_I_VOLUME, query_prop(OBJ_I_WEIGHT)/5);
    add_prop(OBJ_I_VALUE,   24000);
    set_alarm(0.2,0.0,"cechy",this_object());
}


string
query_recover()
{
    return 0;
}

string
query_auto_load()
{
    return MASTER + ":";
}


void
speed()
{
setuid();
seteuid(getuid());
TP->set_combat_speed(20);
}

void
enter_env( object skad, object gdzie  )
{

setuid();
seteuid(getuid());
if ((PATH+"engine/engine")->czy_jest_na_liscie(TP))
    {
    (PATH+"engine/engine")->usun(TP->query_real_name());
    remove_object();
    }

    if ( zalozony == 0 )
	{
write("Zakladasz rog na szyje.\n");
TP->remove_subloc(A);
TP->add_subloc(A,TO);
TP->add_prop(LIVE_I_QUICKNESS,150);
TP->add_prop(MAGIC_I_RES_LIFE,70);
TP->add_prop(MAGIC_I_RES_DEATH,70);
TP->add_prop(MAGIC_I_RES_AIR,70);
TP->add_prop(MAGIC_I_RES_WATER,70);
TP->add_prop(MAGIC_I_RES_EARTH,70);
TP->add_prop(MAGIC_I_RES_FIRE,70);

TO->move(TP,A);
TP->add_prop("norsman",1);
zalozony=1;
    if ((PATH+"engine/shadow")->query_szef() == TP->query_real_name() )
	TP->add_prop("szef_norski",1);

set_alarm(1.0,0.0,"speed");
	}


}


string
show_subloc( string subloc, object ob, object off )
{
    if ( subloc != A ) return "";
    if ( off == ob )
	return "Na szyi nosisz zawieszony mosiezny, wojenny rog.\n";
	return "Na szyi nosi zawieszony mosiezny, wojenny rog.\n";
return MASTER+":";
}
	    

int
zadmij( string str )
{

    if (!str)
	{
	TP->catch_msg("Nabierasz do pluc powietrza i z calych sil dmiesz "+
		"w mosiezny wojenny rog slyszac jak jego grzmiace brzmienie "+
		"roznosi sie po okolicy echem zwiastujac Twoje nadejscie.\n");
	tell_room(environment(TP),""+QCIMIE(TP,PL_MIA)+" nabiera do pluc "+
	    "powietrza i z calych sil dmie w mosiezny wojenny rog, "+
	    "a jego grzmiace brzmienie roznosi sie po okolicy "+
	    "echem zwiastujac jego przybycie.\n",({TP}));
	return 1;
	}
return 0;
}



int
usun( string kto )
{
object ob;

    if (!kto)
	return 0;


ob = find_player(kto);


if (!TP->query_prop("szef_norski") && TP->query_wiz_rank())
    return 0;

if (!ob)
{
write("Osoba musi byc w grze.\n");
return 1;
}

if (!ob->query_prop("norsman"))
    return 0;

    (PATH+"engine/engine")->dodaj(ob->query_real_name());
    write("Po nastepnym przebudzeniu ow wojownik "+
	    "nie powinien juz nalezec do Berserkerow.\n");
	    ob->remove_autoshadow(PATH+"engine/shadow:0");
	    return 1;
}


int
lista(string str)
{
int i;
string *lista;

        if (str=="r")
	{
	lista=(PATH+"engine/engine")->query_lista();
	if (!sizeof(lista))
	    {
    	    TP->catch_msg("Lista jest pusta.\n");
	    return 1;
	    }
	    
	for ( i = 0; i < sizeof(lista); i++ )
	    TP->catch_msg(""+lista[i]+"\n");	
	return 1;
	}

	if (!str)
	{
	lista=(PATH+"engine/engine")->query_lista_czlonkow();
	if (!sizeof(lista))
	    {
    	    TP->catch_msg("Lista jest pusta.\n");
	    return 1;
	    }
	TP->catch_msg("Oto czlonkowie gildii:\n");	    
	for ( i = 0; i < sizeof(lista); i++ )
	    if (find_player(lista[i]))
	    TP->catch_msg(""+capitalize(lista[i])+" - Aktywny\n");
	    else	
	    TP->catch_msg(""+capitalize(lista[i])+" - Nieaktywny\n");
	return 1;
	}




}


int
dom( string str )
{
    if (!str)
	{
	TP->move("/d/Imperium/Norska/lokacje/plac1.c");
	return 1;
	}

}

void
init()
{
    ::init();
    add_action("zadmij","zadmij");
    add_action("usun","usun");
    add_action("lista","lista");
    add_action("dom","dom");
}