/*
 *		Bialy plaszcz... na szczescie bez krzyza
 *		Dla Rycerzy Zakonnych
 *
 *		Napisal : Mithandir ... 1998
 *
 */
 
inherit "/std/object.c";

#include <cmdparse.h>
#include <macros.h>


#include <stdproperties.h>
#include <wa_types.h>

#include "mith.h"
#include "ryc_zak.h"

#pragma no_inherit
int zalozony;
int wear(string co);
int remove(string co);

create_object()
{
	ustaw_nazwe (({"plaszcz","plaszcza","plaszczowi","plaszcz","plaszczem","plaszczu"}),
		({"plaszcze","plaszczy","plaszczom","plaszcze","plaszczami","plaszczach"}),
		PL_MESKI_NZYW);

	dodaj_przym ("bialy","bialy");
	
	set_long (" Jest to dlugi plaszcz, stanowiacy symbol przynaleznosci do Zakonu Rycerskiego Sigmara Mlotodzierzcy. Plaszcz jest bialy, jak sumienia rycerzy.\n");
		
	add_prop (OBJ_I_WEIGHT, 300);
	add_prop (OBJ_I_VALUE, 100);
	set_alarm(0.3,0.0,"dodaj_propy");
}
void
init()
{
    ::init ();
//    if (this_player()->query_guild_name_occ()==GUILD_NAME && this_player()
    zalozony ? add_action ("remove","zdejmij") : add_action("wear","zaloz");
	add_action("przypnij","przypnij");    
}

dodaj_propy()
{
	add_prop(OBJ_M_NO_SELL, "Nikt nie kupi od ciebie plaszcza zakonnego, "
		+"wiedzac, ze sciagnelo by to na was obu gniew Sigmara.\n");
    add_prop(OBJ_M_NO_DROP, "Nie mozesz wyrzucic plaszcza zakonnego. Jesli chcesz opuscic Zakon, uzyj odpowiedniej komendy.\n");
    add_prop(OBJ_M_NO_GIVE, "Nie mozesz nikomu dac plaszcza swiadczacego o "
		+"przynaleznosci do Zakonu.\n");
    add_prop(OBJ_M_NO_STEAL, 1);
	add_prop(OBJ_M_NO_GET,"Nie jestes w stanie podniesc plaszcza... Cos poteznego powstrzymuje twoja wole.\n");
}

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)
{
    notify_fail("Co chcesz zalozyc?\n");
    if (!(co=="plaszcz")) return 0;
    this_player()->add_subloc(PLASZCZ_SUBLOC, this_object());
    write("Zakladasz bialy plaszcz Rycerzy Zakonnych.\n");
    say(QCIMIE(TP,PL_MIA)+" zaklada bialy plaszcz Rycerzy Zakonnych.\n");
	move(TP, PLASZCZ_SUBLOC);
	zalozony=1;
	update_actions();
    return 1;
}

int
remove(string co)
{
    notify_fail("Co chcesz zdjac?\n");
    if (!(co=="plaszcz")) return 0;
    this_player()->remove_subloc(PLASZCZ_SUBLOC);
    write("Zdejmujesz bialy plaszcz.\n");
    say(QCIMIE(TP,PL_MIA)+" zdejmuje bialy plaszcz.\n");
	zalozony=0;
	move(TP);
	update_actions();
    return 1;
}

void
leave_env(object from, object to)
{

    this_player()->remove_subloc(PLASZCZ_SUBLOC);
    ::leave_env(from, to);
}

string
show_subloc(string subloc, object on_obj, object for_obj)
{
    if (on_obj == for_obj)
        return "Plaszcz zakonny symbolizuje twoja przynaleznosc do Zakonu Rycerskiego Sigmara Mlotodzierzcy.\n";
    return "Ma na sobie bialy plaszcz, noszony przez czlonkow Zakonu Rycerskiego Sigmara Mlotodzierzcy.\n";
}

string 
query_auto_load ()
{
        return MASTER_OB(this_object());
}

int
przypnij(string str)
{
	object komu,co;
	if (!(environment(TP)==find_object(ZAKON+"kaplica/kaplica.c"))) return 0;
	notify_fail("Co chcesz przypiac komu?\n");
	if (!str) return 0;
	parse_command(str,environment(TP),"%o:"+PL_BIE+" %o:"+PL_CEL,co, komu);
	if (!(co==this_object())) return 0;
	zalozony=0;
	if (!komu || !PRAWA->sprawdz_prawa(PRAWA_RYCERZA, komu)) return notify_fail("Przypiac plaszcz mozesz tylko innemu rycerzowi.\n");
	if (member_array(PLASZCZ_SUBLOC, komu->query_sublocs())!=-1) return notify_fail(QCIMIE(komu,PL_MIA)+" juz ma zalozony plaszcz.\n");
	usun_propy();
	komu->add_subloc(PLASZCZ_SUBLOC, this_object());
	move(komu, PLASZCZ_SUBLOC);
	dodaj_propy();
	komu->catch_msg("Czujesz delikatne uklucie w plecy, kiedy "+QCIMIE(TP,PL_MIA)+" przypina ci bialy plaszcz zakonny.\n");
	write("Przypinasz "+capitalize(komu->query_real_name(PL_CEL))+" bialy plaszcz zakonny.\n");
	tell_room(environment(TP), QCIMIE(TP,PL_MIA) + " przypina " +QCIMIE(komu,PL_CEL)+" bialy plaszcz zakonny.\n",({komu,TP}));
	return 1;
}
