// Nathniel 1999
// kaplica tzneentha


inherit "/cmd/std/command_driver";


#define SOULDESC(x) (TP->add_prop(LIVE_S_SOULEXTRA, x))
#include "silvy.h"
inherit "/d/Imperium/std/room.c";
#include <stdproperties.h>
#include <ss_types.h>
#include <macros.h>
#include "local.h"
#include <wa_types.h>
#include <filter_funs.h>
#define SOUL_TZEENTH "/d/Imperium/nathaniel/klub/tzeenth_soul"
#define PIERSCIEN "/d/Imperium/nathaniel/klub/pierscien"

int czy_podoba_mi_sie_ten_gracz_w_mojej_gildii(object gracz);
int czy_podobaja_mi_sie_inne_gildie_w_ktorych_jest_gracz(object gracz);

create_imperium_room()
{
add_prop(ROOM_I_INSIDE, 1);
        set_short("Kaplica.");
        set_long("Dupa.\n");

        add_exit("/d/Imperium/nathaniel/snoty/chatka3.c","gora",0,1,0);
        
}
set_alarm(0.3,0.0,"dodaj_dusze");

void
init_living()
{
    ::init_living();
    add_action("join", "poklon");
    add_action("leave", "zbeszczesc");
}

int
join(string str)
{

    if (!str || str != "sie")
    {
	 notify_fail("Co chcesz zrobic ?\n");
	 return 0;
    }

    if (!czy_podoba_mi_sie_ten_gracz_w_mojej_gildii(this_player()))
	return 0;

    if (!czy_podobaja_mi_sie_inne_gildie_w_ktorych_jest_gracz(this_player()))
	return 0;
	
    // KLUB  
  if(this_player()->test_bit("imperium",1,0))
  {
    notify_fail("Nie mozesz przylaczyc sie do tego klubu, jestes juz bowiem "+
      "w innym.\n");
    return 0;
  }


    write("Od tej chwili jestes jedn"+this_player()->koncowka("ym","a")+
	  " z niewielu, ktorza moga sie szczyscic laska Tzeentha."+
	  " \n Teraz juz na zawsze bedziesz z nim zwiazany, chyba ze bedziesz "+
	  "mial tyle odwagi i czelnosci by zbeszczescic te kaplice.\n");
    
    clone_object(PIERSCIEN)->move(this_player());
    
    seteuid("silvy");

    write_file("/d/Imperium//nathaniel/klub/zapisani.log",
    ctime(time()) + ": " + this_player()->query_name()+"\n");

	this_player()->set_bit(1,0);

    return 1;
}

int
leave(string str)
{
    object *rzeczy = ({});
    int i = 0;

    if (!str || str != "kaplice")
    {
	 notify_fail("Co chcesz zbeszczescic ?\n");
	 return 0;
    }
   
    if (member_array(SOUL_TZEENTH,this_player()->query_cmdsoul_list()) == -1)
    {
	notify_fail("Nie odwazysz sie na to !\n");
	return 0;
    }
    else
    {
	this_player()->remove_cmdsoul(SOUL_TZEENTH);
	this_player()->update_hooks();
	write("Teraz juz pozostaje ci czekac na smiersc z rak Tzeentha !\n");

        rzeczy = all_inventory(this_player());
	
	for (i = 0; i < sizeof(rzeczy); i++)
	{
	    if(rzeczy[i]->id("pierscien_tzeentha")) rzeczy[i]->remove_object();
	}    

    seteuid("silvy");

    write_file("/d/Imperium/Lesnykrag/wypisani.log",
    ctime(time()) + ": " + this_player()->query_name()+"\n");
      
    this_player()->clear_bit(1,0);
        
    return 1;
    }
    
    return 1;
}

void
enter_inv(object co, object skad)
{
    if ((!objectp(skad)) || (!objectp(co)))
        return;
    if (co->query_nazwa(PL_BIE)=="pierscien")
        co->remove_object();
    else
        {
            command("poloz " + co->query_nazwa(PL_BIE));
            command("powiedz Nie chce tego.");
        }
       
}

int
czy_podoba_mi_sie_ten_gracz_w_mojej_gildii(object gracz)
{
    string rasa;
    
    rasa = gracz->query_race_name();
    
    if ( (rasa == "ogr") || (rasa == "ogrzyca") ||
	 (rasa == "krasnolud") || (rasa == "krasnoludka") )
    {
	notify_fail("Ogry i Krasnoludy nie szanuja Lasu, wiec nie moga przylaczyc sie do Kregu.\n");
	return 0;
    }

    if (!(member_array(SOUL_TZEENTH,gracz->query_cmdsoul_list()) == -1))
    {
	notify_fail("Alez juz jestes jedn" + gracz->koncowka("ym", "a") +
	    " z nas.\n");
	return 0;
    }

/* Tu mozesz sprawdzic czy gracz rozwiazal questa wejsciowego, lub 
    czy spelnia jakiekolwiek inne wymagania... */
    
    return 1;
}

int
czy_podobaja_mi_sie_inne_gildie_w_ktorych_jest_gracz(object gracz)
{
    if (gracz->query_guild_member("Lesne Bractwo"))
    {
	notify_fail("Jako czlonek gildi nie bedacej do sedna zlej nie morzesz zostac wyznawca Tzeentha.\n"); 
	return 0;
    }

    return 1;
}


dodaj_dusze()
{
    setuid();
    seteuid(getuid());
    
    
    add_cmdsoul(SOUL_TZEENTH);
    update_hooks();

}



/*
varargs string
krag_hint(int faza)
{
    gracz = this_player();
    if (!present(gracz, environment(this_object())))
    {
        command("emote marszczy brwi.");
        return "";
    }
    switch(faza)
    {
        case 0:
            command("powiedz Ah, wiec jestes ciekaw"+ gracz->koncowka("y","a") +
                    " co to jest Lesny Krag? Krag to organizacja zrzeszajaca tych"+
                    " ktorym los kniei nie jest obojetny, tych, ktorzy chca"+
                    " chronic go przed ludzka zachlannoscia, jak i przed intruzjami"+
                    " Chaosu.");
            command("splun");
            set_alarm(10.0, 0.0, "krag_hint", (faza + 1));
            break;
        case 1:
            command("powiedz Dawno temu, kiedy odnioslem smiertelna rane, objawil mi sie"+
                    " Taal i dal mi misje. Mialem chronic las i zwierzeta go zamieszkujace.");
            command("powiedz W ciagu lat, jakie minely od zalozenia Kregu przylaczyli sie do"+
                    " mnie inni, myslacy podobnie jak ja.");
            command("emote zwiesza glowe i ze smutkiem wzdycha.");
            set_alarm(12.0, 0.0, "krag_hint", (faza + 1));
            break;
        case 2:
            command("powiedz Wiekszosc z nich juz nie zyje...");
            command("powiedz To straszne, przezyc swoich uczniow, swoje dzieci...");
            set_alarm(12.0, 0.0, "krag_hint", (faza + 1));
            break;
        case 3:
            command("powiedz Wola Taala bylo zachowanie mojego zycia, mam kontynuowac swoja"+
                    " misje, i na wszystkich bogow przysiegam: Nie przerwe jej, poki choc"+
                    " slad zycia we mnie pozostanie!");
            command("emote zgina sie w poteznym ataku kaszlu.");
            set_alarm(12.0, 0.0, "krag_hint", (faza +1));
            break;
        case 4:
            command("powiedz Nie pozostalo mi juz wiele czasu na tym padole, ale nie spoczne...!"+
                    " Jezeli chcesz przylaczyc sie do mojej sprawy, 'zapisz' sie.");
            command("lkspojrz niecierpliwie na "+ gracz->query_real_name(PL_BIE));
            break;
    }
    return "";
}
    
void
add_introduced(string imie)
{
    set_alarm(2.0, 0.0, "return_intro", lower_case(imie));
}

varargs void
return_intro(string kto)
{
        if(!find_player(kto)) return;
        command("przedstaw sie "+ OB_NAME(find_player(kto)));
        command("lkpozdrow "+ find_player(kto)->query_real_name(PL_DOP));
}
*/
