inherit "/cmd/std/command_driver";

#include <macros.h>
#include <stdproperties.h>

#define TP this_player()
#define SOULDESC(x) (TP->add_prop(LIVE_S_SOULEXTRA, x))

#define GRACZ_I_SPIEWA_PIESN  "_gracz_i_spiewa_piesn_lasu_"

int ciemnosc;
object gracz;

string
get_soul_id()
{
   return "Lesny Krag";	/* Krotka nazwa gildii. */
}

int
query_cmd_soul()
{
    return 1;
}


         
int
spojrz(string str)
{
    object *oblist;
    string *jak;
    
    jak = parse_adverb(str, "", 0);
    
//    SOULDESC("spoglada " + jak[1] + " w niebo");
    
    if (!strlen(jak[0]))
    {
        if(jak[1]!="") jak[1] += " ";
        write("Spogladasz " + jak[1] + "przed siebie, myslac o przyszlosci Lasu.\n");
        all("spoglada " + jak[1] + "przed siebie, a w jego oczach maluje sie zaduma.\n");
        
        return 1;
    }
    
    oblist = parse_this(jak[0], "[na] %l:" + PL_BIE);
    oblist -= ({ TP });
    
    if (!sizeof(oblist))
    {
        notify_fail("Na kogo chcesz spojrzec?\n");
        return 0;
    }
    
    actor("Spogladasz " + jak[1] + " na ", oblist, PL_BIE, ", a w twoich oczach widac pradawna madrosc Lasu.");
    target(jak[1] + " spoglada na ciebie, a w " + TP->koncowka("jego","jej") +
          " oczach widac pradawna madrosc Lasu.", oblist);
    all2actbb(jak[1] + " spoglada na ", oblist, PL_BIE, ", a w "+TP->koncowka("jego","jej") +
          " oczach widac pradawna madrosc Lasu.");
        
    return 1;
   
    
return 1;
}

int
pozdrow(string str)
{
    object *oblist;
    
    
    //SOULDESC("pozdrawia wszystkich slowami: Darz Bor!\n");
    
    oblist = parse_this(str, "[na] %l:" + PL_BIE);
    oblist -= ({ TP });
    
    if (!sizeof(oblist))
    {
        notify_fail("Kogo chcesz pozdrowic?\n");
        return 0;
    }
    
    actor("Pozdrawiasz", oblist, PL_BIE, " slowami: Darz Bor!");
    target("pozdrawia cie slowami: Darz Bor!",oblist);
    all2actbb("pozdrawia", oblist, PL_BIE, " slowami: Darz Bor!");
        
//    return 1;
   
    
return 1;
}


int
piesn(mixed faza)
{
    if (!intp(faza)) return 0;
    if (!objectp(gracz)&&faza) return 0;
    switch(faza)
    {
        case 0:
            
            gracz=TP;
    
            if(gracz->query_prop(GRACZ_I_SPIEWA_PIESN))
            {
                notify_fail("Nie mozesz spiewac dwoch piesni na raz.\n");
                return 0;
            }    
            gracz->add_prop(GRACZ_I_SPIEWA_PIESN,1);
            write("Bierzesz gleboki oddech i intonujesz piesn lasu.\n");
            allbb("bierze gleboki oddech i rozpoczyna stara piesn o Lesie.\n");
            set_alarm(4.0, 0.0, "piesn", (faza+1));
            break;
        case 1:
            write("Slowa twojej piesni staja sie glebokie i smutne jak szum wiekowej puszczy.\n");
            say("Slowa tej piesni, potezne i smutne jak szum wiekowej kniei poruszaja cie do glebi.\n");
            set_alarm(5.0, 0.0, "piesn", (faza+1));
            break;
        case 2:
            write("Spiewajac swoja piesn wyobrazasz sobie lesna polane, skapana w wiosennych"+
                  " promieniach slonca.\n");
            say("Podczas, gdy "+QIMIE(gracz, PL_MIA)+" spiewa,"+
                " wydaje ci sie, ze czujesz delikatny, zywiczny zapach swiezego"+
                " igliwia, a twoja twarz muskaja promienie slonca saczace sie przez"+
                " liscie sedziwych debow.\n");
            set_alarm(3.0, 0.0, "piesn", (faza+1));
            break;
        case 3:
            write("W twojej piesni slychac inkantacje druidow odzianych w snieznobiale"+
                  " szaty, wznoszacych swe modly do Matki Ziemi na dlugo przed powstaniem Imperium.\n");
            say("W spiewie "+QIMIE(gracz, PL_DOP)+" wyczuwasz slad piesni starszej niz"+
                " Imperium, inkantacji ku czci Matki Ziemi, wznoszonej ku niebu przez bialo odzianych druidow.\n");
            set_alarm(4.0, 0.0, "piesn", (faza+1));
            break;
        case 4:
            write("Przymykasz oczy, a twoj glos staje sie glebszy i bardziej uroczysty.\n");
            allbb("przymyka oczy, a "+gracz->koncowka("jego","jej") + " glos"+
                  " staje sie glebszy i bardziej uroczysty.\nW "+gracz->koncowka("jego","jej") +
                  " piesni slyszysz glos pradawnego, starszego niz ludzie i elfy boru.\n");
//           ciemnosc=gracz->query_prop(LIVE_I_SEE_DARK);
//           gracz->add_prop(LIVE_I_SEE_DARK, ciemnosc-100);
            set_alarm(6.0, 0.0, "piesn", (faza+1));
            break;
        case 5:
            if(!gracz) return 0;
            write("Konczysz piesn, a kiedy otwierasz oczy, sa one jasne od lez.\n");
            allbb("powoli konczy piesn, a kiedy otwiera oczy, dostrzegasz, ze sa jasne od lez.\n");
//            gracz->add_prop(LIVE_I_SEE_DARK, ciemnosc);
              gracz->remove_prop(GRACZ_I_SPIEWA_PIESN);
            break;
        }
    return 1;
}
    
int 
tropy()
{
    write("Przyklekasz na prawe kolano, szukajac tropow zwierzat.\n");
    allbb("przykleka na prawe kolano, szukajac tropow zwierzat.");
    return 1;
}

int 
usmiech()
{
    write("Usmiechasz sie do siebie, majac w pamieci piekno i potege Matki Natury.\n");
    allbb("usmiecha sie lekko sam" + TP->koncowka("","a") + " do siebie.");
    return 1;
}


int 
modlitwa()
{
    write("Pograzasz sie w cichej modlitwie do Taala.\n");
    allbb("pograza sie w cichej modlitwie do Taala.");
    return 1;
}

int 
deklaracja()
{
    write("Zdecydowanie deklarujesz swa nienawisc do Chaosu.\n");
    allbb("zdecydowanie deklaruje swa nienawisc do Chaosu.");
    return 1;
}

int 
zlorzecz()
{
    write("Zlorzeczysz mordercom i klusownikom.\n");
    allbb("zlorzeczy mordercom i klusownikom.");
    return 1;
}

mapping
query_cmdlist()
{
    return ([
    		"lktropy":"tropy",
    		"lkpomoc":"pomoc",
    		"lkusmiech":"usmiech",
		"lkpozdrow":"pozdrow",
		"lkmodlitwa":"modlitwa",
		"lkdeklaruj":"deklaracja",
		"lkzlorzecz":"zlorzecz",
		"lkspojrz":"spojrz",		
		"lkpiesn":"piesn"
            ]);
}

int
pomoc(string str)
{
        write("Dodatkowe komendy dostepne dla czlonkow Lesnego Kregu:\n"+
            "\n o lktropy"+
            "\n o lkzlorzecz"+
            "\n o lkpozdrow [kogo]" +
            "\n o lkdeklaruj"+
            "\n o lkspojrz [jak] [na kogo]"+
            "\n o lkpiesn"+
            "\n o lkusmiech"+
            "\n o lkmodlitwa"+

            "\n\n o lkpomoc"+
            "\n\n");
        
        return 1;
}
