
/* 
 * Plik:        stryszek.c
 * Autor:       Kylo
 * Data:        08.11.97
 * Last Update: 7.10.98
 * Opis:        Stryszek w zajezdzie		
 */

// Dziedziczenie standartowego pokoju w Imperium
// Narazie zostawiam ten
inherit "/d/Imperium/std/room.c";

// Dolaczenie pliku naglowkowego 
#include "stryszek.h"

// Klucz do magazynka
object klucz;


/*
 * Nazwa funkcji: ustaw_dlugi_opis()
 * Opis:	  Ustawi dlugi opis stryszka zajazdu (VBFC)       
 * Argumenty:	  brak
 * Zwraca:	  dlugi opis balkonu
 */

string
ustaw_dlugi_opis() 
{
    string opis="";
    opis+="Znalazles sie na niewielkim stryszku ponad stajnia, " +
        "podloga z desek ugiela sie lekko pod twoim ciezarem. " +
        "Obok siebie widzisz otwor przez ktory mozna zejsc na dol, do stajni, " +
	"a w nim stoi drabina. Rozgladasz sie dookola i stwierdzasz, ze " + 
	"to tutaj wlasnie przechowywana jest pasza " +
	"i wysciolka dla " +
	"zwierzat. Po jednej stronie pomieszczenia lezy sloma, " +
	"po drugiej siano, " +
	"zas po srodku stoi jakas dziwna maszyna. " +
	"\n";
return opis;
} 
// koniec funkcji ustaw_dlugi_opis()
    
 	
void
create_imperium_room()
{
    // Ustalenie natezenia swiatla w tym pomieszczeniu - 0 ciemnosc.       
    // ( domyslnie 1 )
    add_prop(ROOM_I_LIGHT, 1);

    // Ustalenie czy pokoj jest 'na zewnatrz' - 1 pomieszczenie.    
    // ( domyslnie 0 )
    add_prop(ROOM_I_INSIDE, 1);

    // Ustalenie 'krotkiego opisu' pomieszczenia,"
    // Na koncu _NIE_MA_KROPKI_. 
    set_short("Stryszek zajazdu");

    // Ustawienie dlugiego opisu
    set_long("@@ustaw_dlugi_opis");

    // Dodanie wyjsc z pomieszczenia
    add_exit(LOKACJE_PATH + "stajnia.c","dol");

    // Ustawienie opisow przedmiotow 'widzianych' 
    // przez gracza w danym pomieszczeniu.
    add_item("siano",
	"Duza sterta siana pod sciana wydziela mily zapach. Dobre jedzonko " +
	"dla koni, ale nie dla Ciebie. " +
	"\n");
    add_item("slome",
	"Pod sciana jest jej cala sterta, sluzy jako wysciolka dla zwierzat " +
	"w stajni. " +
	"\n");
    add_item("maszyne",
	"Dziwne urzadzenie, jakies duze metalowe kolo z kilkoma nozami, " +
	"prowadzaca do niego drewniana rynna i kilka innych tajemniczych " +
	"elementow. Ciekawe do czego moze sluzyc." +
    	"\n");	
    add_item("drabine",
	"Drewniana drabina wykonana z dwoch dragow, a szczeble z desek, " +
	"jednego zreszta brakuje. " +
	"\n");
    add_item("otwor",
	"Kwadratowy otwor w podlodze, widac przez niego stajnie. " +
	"\n");
    add_item("podloge",
        "Mimo ze ugina sie lekko pod twoim ciezarem, nie powinna sie " +
        "pod toba zalamac. " +
        "\n");	
    // Pozwalenie graczowi wykonac komendy 
    // add_cmd_item(({objekt}),({komenda}),funkcja);

    // Zainicjowanie tzw. events, czyli losowych komunikatow pojawiajacych
    // sie w danym pomieszczeniu. ( pierwszy pojawi sie po 10 sekundach,
    // nastepne co 100 sekund )
    
    set_event_time(50.0, 300.0); 
    // Lista eventow. 
       
    add_event("Zdaje ci sie ze sterta slomy poruszyla sie lekko. " +
	"\n"); 
    add_event("Mala myszka przemknela kolo twoich nog i zniknela w sianie. " +
        "\n");
    add_event("Kon na dole wydal ciche rzenie." +
	"\n");
    
    // Wlaczenie eventow.
    set_events_on(1);
}
// koniec funkcji create_imperium_room()

/*
 * Nazwa funkcji: search_fun()
 * Opis:	  Pozwoli na znalezienie klucza w sianie 
 * Argumenty:	  str string - (szukany/przeszukiwany objekt)
 *		  int trail 0 - gdy szukaj, 1 - gdy przeszukaj
 * Zwraca:	  komunikat wyswietlany graczowi (lub 0)
 *		  zalecane zamiast zwracac 0 wywolac orginal
 */
 
string
search_fun(string str, int trail)
{
    // sprawdzamy czy wywolanie to przeszukaj siano (stog siana)
    if ((str == "siano") || (str == "stog siana") && trail)
    {
        // Sprawdzenie czy klucz juz ktos znalazl
        if (
               (!klucz) && 
               (
                   (
                        TP->resolve_task(TASK_FORMIDABLE,({TS_DEX, SS_AWARENESS }))
                        >0
                   )
               ||
                   (   
                       (
                           TP->resolve_task(TASK_DIFFICULT,({TS_DEX, SS_AWARENESS }))
                           >0
                       ) 
                   &&
                       (TP->query_prop("_kylo_i_pytal_dziewke_o_sol"))
                   ) 
               ||
                   (
                       (
                           TP->resolve_task(TASK_ROUTINE,({TS_DEX, SS_AWARENESS }))
                           >0
                       ) 
                   &&
                       (TP->query_prop("_kylo_i_pytal_stajennego_o_siano"))
                   &&
                       (TP->query_prop("_kylo_i_pytal_dziewke_o_sol"))
                    )
                )
            )
        {
            klucz = clone_object(DRZWI_PATH + "szynkwas_magazynek.k.c");
            // czy gracz zdola go uniesc
            TP->add_prop("_kylo_i_wzial_klucz",1);
            if (klucz->move(TP))
            {
                // Jesli nie to klucz do pomieszczenia
                klucz->move(TO);
                say(QCIMIE(TP, PL_MIA) + " dlugo grzebal" +TP->koncowka("","a")+ 
                    " w stogu siana, " +
                    "az wrescie cos z niego wyciagn" +TP->koncowka("al","ela") + 
                    ", cos metalowego. " +
                    "Moze to IGLA???? Przedmiot wysliznal sie z reki, " +
                    "upadl na podloge i okazalo sie, ze to tylko klucz." +
                    "\n");
                return "Dlugo grzebal" + TP->koncowka("es","as") + 
                    " w stogu siana, az wrescie czujesz " +
                    "ze masz w palcach jakis przedmiot. IGLA?????? " +
                    "Wyciagasz ostroznie swoje znalezisko i " +
                    "chcesz je schowac, " +
                    "ale wyslizguje ci sie ono z reki i upada na podloge. " +
                    "Okazuje sie ze to tyklo klucz." +
                    "\n";
            }
            // Gracz moze to schowac
            say(QCIMIE(TP, PL_MIA) + " dlugo grzebal" + TP->koncowka("","a") +
                 " w stogu siana, az " +
                "wrescie cos z niego wyciagn" + TP->koncowka("al","ela") + 
                " i schowal" + TP->koncowka("","a") + ". Z pewnoscia nie jest " +
                "to igla." +
                "\n");
            return "Dlugo grzebal" + TP->koncowka("es","as")+ 
                " w stogu siana, az wrescie czujesz " +
                "ze masz w palcach jakis przedmiot. IGLA????? " +
                "Nie to tylko klucz, ktory szybko chowasz." +
                "\n";
        }
        // Gracz nic nie znalazl
        return "Nic nie znalazl" + TP->koncowka("es","as") + 
            ", moze poza pewnoscia, ze nie ma tu zadnych " +
            "igiel." +
            "\n";
    }
}
// koniec funkcji search_fun()
