#include "tanis.h"

inherit "/d/Imperium/std/monster";

int identyfikator_alarmu;
int stan_sklepu=0;

void
czy_wyrzucic();

void
create_monster()
{
    ustaw_imie( ({"andreas","andreasa","andreasowi","andreasa","andreasem","andreasie"}),
    		 PL_MESKI_OS);
    
    ustaw_odmiane_rasy (PL_CZLOWIEK);
    
    dodaj_przym ("sympatyczny","sympatyczni");
    dodaj_przym ("gruby","gruby");
               
    dodaj_nazwy(({"piwowar", "piwowara", "piwowarowi", "piwowara", 
    		  "piwowarem", "piwowarze"}), 
    		({"piwowarzy", "piwowarow", "piwowarom", "piwowarow", 
    		  "piwowarami", "piwowarach"}),PL_MESKI_OS);
    	
    set_long ("Piwowar jest raczej niski. Wyglada na wytrawnego smakosza, i jak na takowego "
        + "przystalo ma ogromny brzuch. Wyglada na pogodnego i zadowolonego z zycia "
        + "czlowieka. Sprawia sympatyczne wrazenie, lecz wydaje sie byc wystarzczajaco "
        + "silny, aby uspokoic agresywnych klientow.\n");
                      
    set_gender(G_MALE);

    add_prop(CONT_I_WEIGHT, 100000);
    add_prop(CONT_I_HEIGHT, 175);

    set_skill(SS_DEFENCE, 25 + random(5));
    set_skill(SS_WEP_SWORD, 25 + random(10));
    set_skill(SS_UNARM_COMBAT, 15 + random(5));
    set_skill(SS_PARRY, 15 + random(10));

    set_stats(({ 48, 52, 41, 49, 45, 40}));

    set_act_time(10);

    add_act("emote klepie sie po wielkim brzuchu.");
    add_act("emote przeciera lade.");
    add_act("popatrz uwaznie");
    add_act("powiedz Czym moge sluzyc ?");
    add_act("powiedz Mam wspaniale, jasne piwo wlasnej produkcji !");

    set_cact_time(10);
     
    add_cact("powiedz Co ja ci takiego zrobilem ?!");
    add_cact("krzyknij Pomocy ! Morduja !");
    add_cact("powiedz Jesli mnie zabijesz, to kto bedzie robil piwo ?!");

    identyfikator_alarmu = set_alarm(50.0, 50.0, czy_wyrzucic);
}

void
add_introduced(string imie)
{
    set_alarm(2.0, 0.0, "return_introduce", imie);
}

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 smieje sie glosno."); break;
      case 2 : command("powiedz Moj browar cie tak smieszy ?"); break;
      default:
        command("hmm");
    }
}

void
zly(object kto)
{
    command("powiedz Nie bedziesz mnie obrazal !!");

    tell_room(find_object(SKLPATH + "browar.c"), "Piwowar wyrzuca "
	      + QCIMIE(kto,PL_BIE) + " na zewnatrz.\n",kto);

    write("Piwowar wyrzuca cie brutalnie na ulice.\n");

    kto->move_living("M", NPATH + "ulica7.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 nerwowo zaczyna szukac czegos pod lada."); break;
          case 1 : command("emote czerwieni sie."); break;
          case 2 : command("emote mowi: Eeee ... Nie chcesz moze odrobiny piwa ?"); break;
          case 3 : zly(kto);
        }
      }
}

string
query_presentation()
{
    return "Andreas Saufer, Piwowar, czlowiek";
}

void
return_introduce(string kto) 
{
    if (!kto) return;
    command("przedstaw sie " + OB_NAME(find_living(kto, 0)));
}

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 ! Musze zamykac i isc spac. Prosze przyjsc jutro !");
          stan_sklepu=2;
          set_alarm(10.0, 0.0, czy_wyrzucic);
          return;          
     }
   if(stan_sklepu==2)
     {
          command("powiedz Prosze juz wyjsc, jesli ktos sie bedzie opieral, to go po prostu wyrzuce !");
          stan_sklepu=3;
          set_alarm(7.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 + "sklep0"))-({this_object()}));
          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("Piwowar wyrzucil cie na ulice.\n");
                        kto_w_sklepie[ktora_osoba]->move_living("M", NPATH + "ulica23.c", 1, 0);
                   }
             }
          return;
     }
}