/*
 * Piekarz
 */

inherit "/d/Imperium/std/monster";

#include "tanis.h"

int identyfikator_alarmu;
int stan_sklepu=0;

void
czy_wyrzucic();

void
create_monster()
{
    ustaw_imie(({"armand","armanda","armandowi","armanda","armandem","armandzie"}),
        PL_MESKI_OS);
    		  
    ustaw_odmiane_rasy (PL_CZLOWIEK);

    dodaj_nazwy(({"piekarz", "piekarza", "piekarzowi", "piekarza", 
    		  "piekarzem", "piekarzu"}), 
    		({"piekarze", "piekarzy", "piekarzom", "piekarzy", 
    		  "piekarzami", "piekarzach"}), PL_MESKI_OS);

    set_long("Piekarz jest wysokim czlowiekiem kolo czterdziestki. Nosi "+
	     "typowy stroj piekarza, czyli biale spodnie, koszule i "+
	     "piekarska czapke. Mimo stroju sprawia wrazenie kogos "+
	     "doswiadczonego w walce.\n");

    set_race_name("czlowiek");

    dodaj_przym ("przystojny","przystojni");
    dodaj_przym ("szczuply","szczupli");

    set_living_name("piekarz");
    set_gender(G_MALE);
    
    add_prop(CONT_I_WEIGHT, 80000);
    add_prop(CONT_I_HEIGHT, 180);
    
    set_skill(SS_DEFENCE, 40 + random(10));
    set_skill(SS_UNARM_COMBAT, 30 + random(10));
    set_skill(SS_PARRY, 20 + random(10));
    
    set_stats(({45, 45, 70, 45, 35, 60}));
    
    set_chat_time(12);
    add_chat("Polecam swieze bulki!");
    add_chat("Gwarantuje swiezosc moich wyrobow!");
    add_chat("Nigdzie na swiecie nie ma tak dobrego pieczywa jak u mnie!");
    add_chat("Kiedys bylem najemnikiem... To byly czasy...");
    add_chat("Skonczylem z zyciem najemnika, bo poczulem, ze praca piekarza, jest mi przeznaczona!");
    add_chat("Wypiekanie, jest jak sztuka...");
     
    set_cchat_time(7);
    add_cchat("Przekonamy sie kto jest lepszy zoltodziobie!");
    add_cchat("Na szczescie pamietam jeszcze to i owo z czasow mlodosci!");
    add_cchat("Juz jestes martwy!");
    add_cchat("zabije cie, za naruszanie spokoju mojej piekarni!");
    
    set_act_time(15);
    add_act("emote zjada sobie ciastko.");
    add_act("emote pedantycznie poprawia sobie czapke.");
    add_act("emote rozglada sie po piekarni.");
    add_act("emote wzdycha z uwielbieniem na mysl o pieczywie.");
    add_act("emote czysci sobie paznokcie o koszule.");
    add_act("emote przyglad sie wszystkim kientom.");
    add_act("emote oblizuje sie na mysl o swoim chlebie.");
    add_act("emote klania sie wszystkim wchodzacym.");
    add_act("emote wzdryga sie na mysl o konkurencyjnym pieczywie.");

   identyfikator_alarmu = set_alarm(50.0, 50.0, czy_wyrzucic);
}

void
emote_hook(string emote, object wykonujacy, string przyslowek)
{
    switch (emote)
    {
        case "kopnij": 
        case "spoliczkuj" :
        case "szturchnij":
        case "opluj" : set_alarm(2.0, 0.0, "zly", wykonujacy);
        	    break;
        	    
        case "zasmiej": set_alarm(2.0, 0.0, "return_laugh", wykonujacy);
        	      break;
        case "pocaluj":
        case "przytul": set_alarm(2.0, 0.0, "dobry", wykonujacy);
    }
}

void
return_laugh(object kto) 
{
    switch (random(5)) 
    {
      case 0 : command("zasmiej"); break;
      case 1 : command("emote rowniez sie smieje."); break;
      case 2 : command("emote mowi: Nie smiej sie tak glosno, bo mi ludzi wystraszysz..."); break;
      default:
        command("hmm");
    }
}

void
zly(object kto)
{
    command("powiedz Co to ma znaczyc?! Won z mojej piekarni!");

    tell_room(find_object(SKLPATH + "piekarnia.c"), "Piekarz wyrzuca "
	      + QCIMIE(kto,PL_BIE) + " z piekarni.\n",kto);

    write("Piekarz wyrzuca cie na ulice.\n");

    kto->move_living("M", NPATH + "ulica34.c", 1, 0);
}

void
dobry(object kto) 
{
    int los;
    
    if(kto->koncowka("chlop","baba")=="chlop") zly(kto);
    else
      {
        los = random(4);
    
        switch (los) 
        {
          case 0 : command("emote mowi: Uh... Nie wiem czym sobie zasluzylem..."); break;
          case 1 : command("emote jest szczerze zdziwiony."); break;
          case 2 : command("emote mowi: Niech pani za nma zostanie! Na zawsze!"); break;
          case 3 : zly(kto);
        }
      }
}

int
dzien_noc()
{
   return find_object(NPATH + "ulica.c")->dzien_noc();
}

void
czy_wyrzucic()
{
   object *kto_w_sklepie;  
   int ktora_osoba;

   if(dzien_noc()==0) stan_sklepu=0;   

   if(stan_sklepu==0)
     {
          if(dzien_noc()==1) stan_sklepu=1;
     }

   if(stan_sklepu==1)
     {
          command("powiedz No ! Juz pozno ! Zamykamy ! Prosze przyjsc jutro !");
          stan_sklepu=2;
          set_alarm(20.0, 0.0, czy_wyrzucic);
          return;          
     }
   if(stan_sklepu==2)
     {
          command("powiedz Prosze juz wyjsc !");
          stan_sklepu=3;
          set_alarm(10.0, 0.0, czy_wyrzucic);
          return;
     }
   if(stan_sklepu==3)
     {
          command("powiedz Dosyc tego !");
          stan_sklepu=0;
    // wszystkich z pokoju 
         
          kto_w_sklepie=all_inventory(find_object(SKLPATH + "piekarnia"));
          for(ktora_osoba=0; ktora_osoba< sizeof(kto_w_sklepie); ktora_osoba++)
             {
                 if (kto_w_sklepie[ktora_osoba]->query_real_name()!=query_real_name())
                   {
                        kto_w_sklepie[ktora_osoba]->catch_msg("Piekarz wyrzucil cie na ulice.\n");
                        kto_w_sklepie[ktora_osoba]->move_living("M", NPATH + "ulica34.c", 1, 0);
                   }
             }
          return;
     }
}

void
add_introduced(string imie)
{
    set_alarm(2.0, 0.0, "return_introduce", imie);
}

string
query_presentation()
{
    return "Armand Boulangier, Piekarz, czlowiek";
}

void
return_introduce(string kto) 
{
    command("przedstaw sie " + OB_NAME(find_living(kto, 0)));
}