/*
 *		skora z wilka dla wyznawcow Ulryka
 *		
 *
 *		Dhor'99/Yvin
 *
 */
 
inherit "/std/object.c";

#include <cmdparse.h>
#include <macros.h>


#include <stdproperties.h>
#include <wa_types.h>

#define TP this_player()

#include "dhor.h"; 
#include "emoty_ulryk.h";

#pragma no_inherit
#define ULRYK_SUBLOC "_skora_z_wilka_dla_ulrykowca_"


int zalozony;
int wear(string co);
int remove(string co);

create_object()
{
	ustaw_nazwe (({"skora","skory","skorze","skore","skora","skorze"}),
		({"skory","skor","skorom","skory","skorami","skorach"}),
		PL_ZENSKI);

	dodaj_przym ("szary","szarzy");
	dodaj_przym ("wilczy","wilczy");
	
	set_long ("Szara wilcza skora, noszona na plecach przez wszystkich Synow Ulryka. "+
	 "Cos podpowiada ci, ze powinie"+TP->koncowka("nes","nas")+" uzyc "+
	"'ukomendy' oraz 'uhistoria' by dowiedziec sie nieco wiecej.\n");
		
	add_prop (OBJ_I_WEIGHT, 150);
	add_prop (OBJ_I_VALUE, 0);
	set_alarm(0.3,0.0,"dodaj_propy");
}
void
init()
{
    ::init ();
	add_action("remove","zdejmij");
	add_action("wear","zarzuc");
	add_action("zniszcz","zniszcz");
	init_emoty();
}

wyrzuc(object kogo)
{
   kogo->catch_msg("Stracil" + kogo->koncowka("es","as") + 
   	" blogoslawienstwo Ulryka ! Twoja wilcza skora rozsypadla sie w proch.\n");
   kogo->clear_bit(1,0);
   remove_object();
}

dodaj_propy()
{
	add_prop(OBJ_M_NO_SELL, "Czujesz ze sprzedawanie symbolu twojej wiary nie jest madrym pomyslem..\n");
    add_prop(OBJ_M_NO_DROP, "Nie mozesz wyrzucic skory.\n");
    add_prop(OBJ_M_NO_GIVE, "Nie mozesz nikomu dac skory.\n");
    add_prop(OBJ_M_NO_STEAL, 1);
	add_prop(OBJ_M_NO_GET,"Nie jestes w stanie podniesc skory... Cos poteznego powstrzymuje twoja wole.\n");
   
   if (!ADMIN->query_czlonek(environment(this_object())->query_real_name())&&
       !environment(this_object())->query_wiz_level())
      wyrzuc(environment(this_object())); 
   else
      environment(this_object())->set_bit(1,0);

}

usun_propy()
{
	remove_prop(OBJ_M_NO_SELL);
    remove_prop(OBJ_M_NO_DROP);
    remove_prop(OBJ_M_NO_GIVE);
    remove_prop(OBJ_M_NO_STEAL);
	remove_prop(OBJ_M_NO_GET);
}


int
wear(string co)
{
	mixed pom;
	object komu;
	
//        if (TP->query_race()!="czlowiek") return notify_fail("Synami Ulryka moga zostac tylko potomkowie ludzkiego rodu. \n");
	if (zalozony) return notify_fail("Ta skora jest juz zarzucona.\n");
    if (!co || !wildmatch("skore*",co)) return notify_fail("Co chcesz zarzucic ?\n");
    if (wildmatch("skore ??*",co)) 
    {
    	parse_command(co, environment(TP),"'skore' %l:"+PL_CEL,pom);
    	pom=NORMAL_ACCESS(pom,0,0);
    	if (!sizeof(pom)||sizeof(pom)>1) return notify_fail("Komu chcesz zarzucic skore?\n");
    	komu=pom[0];
    	if (!ADMIN->query_s_lub_k(TP->query_real_name()))
    	   return notify_fail("Nie masz przychylnosci Ulryka, by blogoslawic innych w jego " +
    	   	"imie.\n");
//	if (komu->query_race()!="czlowiek") return notify_fail("Synami Ulryka moga zostac tylko potomkowie ludzkiego rodu. \n");
    	if (ADMIN->query_niewierni(komu->query_real_name())) return notify_fail("Probujesz zarzucic wilcza skore "+komu->short(PL_CEL)+" jednak w twoim umysle rozlega sie ostrzegawcze wycie wilka. Widocznie "+komu->short(PL_MIA)+" wyrzekl sie wiary w Ulryka. \n");
	if (!interactive(komu)) return notify_fail("Nie mozesz zarzucic wilczej skory " +komu->short(PL_CEL) + "!\n");
    	if (komu==TP) return notify_fail("Aby zarzucic sobie skore uzyj komendy 'zarzuc skore'.\n");
    	if (komu->query_subloc_obj(ULRYK_SUBLOC)) 
    	{
    		write(komu->short()+" juz ma skore.\n");
    		return 1;
    	}

   // KLUB  

		usun_propy();
		setuid();
		seteuid(getuid());
    	komu->add_subloc(ULRYK_SUBLOC,this_object());
        move(komu,ULRYK_SUBLOC);
        clone_object(MASTER_OB(this_object()))->move(TP);
        ADMIN->add_member(komu->query_real_name());
        dodaj_propy();

    	write("Uroczyscie zakladasz skore szarego wilka "+ komu->short(PL_CEL)+" na plecy, symbol "+
	"przynaleznosci do Synow Ulryka. \n");

	komu->catch_msg(QCIMIE(TP,PL_MIA)+" uroczyscie zaklada ci skore szarego wilka na plecy, symbol "+
	"przynaleznosci do Synow Ulryka. Przez moment wydaje ci sie, ze slyszysz wycie tysiaca wilkow w okolicy, "+
	"a przed twoimi oczami jawi sie na moment potezny bialy wilk, wpatrujacy sie w ciebie zimnym, przejmujacym "+
	"spojrzeniem, jak gdyby probowal sprawdzic sile twej woli. Po chwili wszystko cichnie i obraz znika. \n"); 

    	tell_room(environment(TP),QCIMIE(TP,PL_MIA)+" uroczyscie zaklada "+ komu->short(PL_CEL)+" skore szarego wilka na plecy, symbol "+
	"przynaleznosci do Synow Ulryka. Przez moment "+ komu->short(PL_MIA)+" wpatruje sie przez siebie szeroko otworzonymi ze zdziwienia oczami. \n",({TP,komu}));

	  komu->set_bit(1,0);

    	return 1;
    }	
    this_player()->add_subloc(ULRYK_SUBLOC, this_object());
    write("Energicznym ruchem zarzucasz sobie na plecy wilcza skore, symbol przynaleznosci do Synow Ulryka.\n");
    say(QCIMIE(TP,PL_MIA)+" energicznym ruchem zarzuca sobie na plecy wilcza skore, symbol przynaleznosci do Synow Ulryka.\n");
    move(TP, ULRYK_SUBLOC);
    zalozony=1;
//	update_actions();
    return 1;
}


int
remove(string co)
{
    notify_fail("Co chcesz zdjac?\n");
    if (!(co=="skore")) return 0;
    if (!zalozony) return notify_fail("Ta skora nie jest zalozona.\n");
    this_player()->remove_subloc(ULRYK_SUBLOC);
    move(TP);
    zalozony=0;
    write("Zdejmujesz z plecow wilcza skore.\n");
    say(QCIMIE(TP,PL_MIA)+" zdejmuje z plecow wilcza skore.\n") ;
    
//	update_actions();
    return 1;
}

void
leave_env(object from, object to)
{

    this_player()->remove_subloc(ULRYK_SUBLOC);
    ::leave_env(from, to);
}

string
show_subloc(string subloc, object on_obj, object for_obj)
{
    if (on_obj == for_obj)
        return "Na plecy masz zarzucona wilcza skore spieta srebrna zapinka, symbol przynaleznosci do Synow Ulryka. \n";
        return "Na plecy ma zarzucona wilcza skore spieta srebrna zapinka, symbol przynaleznosci do Synow Ulryka. \n";
}

string 
query_auto_load ()
{
        return MASTER_OB(this_object());
}

int
zniszcz(string str)
{
	if (str!="skore") return notify_fail("Co chcesz zniszczyc?\n");
	write("Zdzierasz z plecow wilcza skore i odrzucasz ja od siebie na znak wyrzekniecia sie "+
	"wiary w Ulryka. Na moment ogarnia cie lodowate zimno paralizujac cie calkowicie, lecz "+
	"po kilku chwilach niknie, a ty z trudem lapiesz powietrze. Nie mozesz wyzbyc sie uczucia "+
	"iz za zdrade wiary nie minie cie kara Wladcy Zimy. \n");

	say(QCIMIE(TP, PL_MIA)+" zdziera z plecow wilcza skore i odrzuca ja od siebie na znak wyrzekniecia sie "+
	"wiary w Ulryka. Na moment "+TP->koncowka("jego","jej")+" postac kuli sie jak, a "+QIMIE(TP,PL_MIA)+" trwozliwie "+
	"rozglada sie na bok, jak gdyby oczekujac kary od Ulryka za swoja zdrade. \n");
	(ADMIN->remove_member(TP->query_real_name()));
	this_player()->clear_bit(1,0);
	remove_object();
	return 1;
}
