/*
 * Plik  : pokprzyjec.c
 * Autor : Drwal
 * Opis  : Pokoj do przyjmowania nowych i pobierania pasow
 * Data  : 16 sierpnia 2002
 *
 * Copyright (C)
 */

inherit "/d/Imperium/std/room";
inherit "/cmd/std/command_driver";

#include "defs.h"

#define POPARCIE "_poparty_przez_wyznawce_solkana_"

int nie_przejdziesz();
int wstap(string str);
int poprzyj(string str);

void
create_imperium_room()
{
	set_short("Pokoj przyjec");
	set_long("Pokoj przyjec. <poswiec> <ulaskaw> <pobierz>\n");
	add_exit(SOLK_LOK + "sw_1", "polnoc", nie_przejdziesz, 0);
    add_exit("/d/Imperium/Kraina/RATUSZ/lokacje/b21.c", "poludnie", 0, 0);	
}
void
init()
{
	::init();
	add_action("wstap", "poswiec");
	add_action("poprzyj", "ulaskaw");
	add_action("pobierz", "pobierz");
}

int
pobierz(string str)
{
    object *pas;
    int i;
	notify_fail("Solkan Cie nie blogoslawil!\n");
	if(!SOLKAN->query_czlonek(TP)) return 0;
	notify_fail("Co chcesz pobrac?\n");
	if(str!="pas") return 0;
	notify_fail("Branie drugiego pasa nie stawialo by Cie w dobrym swietle.\n");
    pas = deep_inventory(TP);
	for (i= 0; i < sizeof(pas); i++)
      if (pas[i]->czy_pas_solkana()) return 0;
    TP->catch_msg("Od jednego z kaplanow pobral" + TP->koncowka("es", "as")
    	+ " ciemny pas. Chron go, gdyz swiadczy o tym ze Solkan jest "
    	+ "z toba.\n");
    say(QCIMIE(this_player(), PL_MIA) + " pod"
    	+ TP->koncowka("szedl", "deszla") + " do jednego z kaplanow, ktory "
    	+ "z namaszczeniem wreczyl " + TP->koncowka("mu","jej") + " ciemny "
    	+ "pas.\n");
    clone_object(SOLK_OBJ + "pas")->move(TP);      
    return 1;	
}
int
nie_przejdziesz()
{
	if (SOLKAN->query_czlonek(TP)) return 0;
	write("Smialo ruszasz w strone swiatyni, lecz w swym umysle "
		+ "slyszysz glos:\n"
		+ "Odejdz niewierniku i nie wracaj jesli Ci zycie mile.\n");
	return 1;
}
int
wstap(string str)
{
	object shadow;
	int result;
	notify_fail("Chcesz poswiecic swe zycie sluzbie Solkanowi?\n");
	if (str != "swe zycie sluzbie solkanowi")
	return 0;
	notify_fail("Solkan juz obdarzyl cie sila!\n");
	if (SOLKAN->query_czlonek(TP)) return 0;
	notify_fail("Juz jestes czlonkiem innej gildii zawodowej!\n");
	if (this_player()->query_guild_member(GUILD_TYPE))
	return 0;
	if (TP->query_prop(POPARCIE))
	{
		    notify_fail("Cos nie dziala. Napisz list do Drwala z opisem sytuacji!\n");
		    shadow = clone_object(SOLKAN_SH);
		    if ((result = shadow->shadow_me(this_player(), GUILD_TYPE,
				GUILD_STYLE, GUILD_NAME)) != 1)
		    {
    		    /* result = -1 (no name), -2 (wrong type), -3 (no style set),
    			-4 (the guild the player already joined don't want this guild.)
				-5 (couldn't shadow the player, security problems. )
				Probably they have set the notify_fail() appropriate.
				0 (already member or player wasn't set properly) */
		        /* This is one of the few times you destruct is OK to use... */
		    	shadow->destruct();
		    	return 0;
            }
            SOLKAN->nowy_czlonek(TP);
            SOLKAN_SH->dodaj_soula(TP);
            write("Otwierasz oczy i czujesz jak sila Solkana krazy w twych "
            	+ "zylach.\nNie pozostaje ci nic innego jak <pobrac pas> i "
            	+ "ruszyc w droge pod opieka Boga.\n");
            say(QCIMIE(this_player(), PL_MIA) + " otwiera oczy i usmiecha "
            	+ "sie dumnie wiedzac iz Solkan jest przy nim.\n");
            return 1;
    }
    else
    {
		notify_fail("Aby wstapic w szeregi Wyznawcow Solkana, poprzec cie "
			+ "musi Najwyzszy Kaplan!\n");
		return 0;
	}
}
int
poprzyj( string str )
{
  object *cel = parse_this(str,"%l:"+PL_BIE);
  notify_fail("Tylko Najwyzszy Kaplan Solkana moze popierac nowych "
  	+ "czlonkow.\n");
  if (!SOLKAN->query_szef(TP)) return 0;
  notify_fail("Kogo chcesz ulaskawic w imie Solkana??\n");
  if (!sizeof(cel)) return 0;
  if (cel[0]->query_prop(POPARCIE))
   { TP->catch_msg(QCIMIE(cel[0],PL_MIA)+" ma juz twoje ulaskawienie.\n");return 1; }
  this_player()->catch_msg("Wzosisz rece ku niebiosom i prosisz Solkana "
		+ "o sile, ktora momentalnie splywa przez ciebie na "+QCIMIE(cel[0],PL_BIE)+".\n");
  cel[0]->catch_msg("Przez chwile blask pozbawil Cie wzroku, lecz zaraz "
		+ "po tym splynela na Ciebie Laska Solkana. Teraz mozesz <wstapic "
		+ "do gildii>Zostales poparty przez Kapitana Najemnikow.\n");
  cel[0]->add_prop(POPARCIE, 1);
  return 1;
}
