#include "tanis.h"

inherit "/d/Imperium/std/monster";

int identyfikator_alarmu;
int stan_sklepu=0;

void
czy_wyrzucic();

void
create_monster()
{
    ustaw_odmiane_rasy (PL_CZLOWIEK);
    
    dodaj_przym ("sympatyczny","sympatyczni");
    dodaj_przym ("pogodny","pogodni");
               
    dodaj_nazwy( ({"sklepikarz","sklepikarza","sklepikarzowi","sklepikarza",
    		   "sklepikarzem","sklepikarzu"}),
    		 ({"sklepikarze","sklepikarzy","sklepikarzom","sklepikarzy",
    		   "sklepikarzami","sklepikarzach"}),
    		 PL_MESKI_OS);
    dodaj_nazwy( ({"sprzedawca","sprzedawcy","sprzedawcy","sprzedawce",
    		   "sprzedawca","sprzedawcy"}),
    		 ({"sprzedawcy","sprzedawcow","sprzedawcom","sprzedawcow",
    		   "sprzedawcami","sprzedawcach"}),
    		 PL_MESKI_OS);
    ustaw_imie( ({"helmut","helmuta","helmutowi","helmuta","helmutem","helmucie"}),
    		 PL_MESKI_OS);
    	
    set_long ("Stojacy za lada sklepikarz jest juz nieco podstarzaly. "
             + "Jest dosc poteznie zbudowany. Jego blond wlosy sa krotkie i przerzedzone "
             + "na czubku glowy. Widac, ze jest zadowolony z zycia, bo usmiecha sie "
             + "wesolo i sprawia wrazenie pogodnego czlowieka.\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(({ 47, 48, 51, 54, 44, 40}));

    set_act_time(10);

    add_act("emote gladzi brode.");
    add_act("emote przeciera lade.");
    add_act("popatrz uwaznie");
    add_act("powiedz Czym moge sluzyc ?");
    add_act("powiedz Kupie lub sprzedam towary !");

    set_cact_time(10);
     
    add_cact("powiedz Co ja ci takiego zrobilem ?!");
    add_cact("krzyknij Pomocy ! Morduja !");
    add_cact("powiedz Jesli mnie zabijesz, to ten sklep podupadnie !");

    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);
    }
}

string
query_presentation()
{
    return "Helmut Diesedorff, Sklepikarz, czlowiek";
}

void
return_introduce(string kto) 
{
    if(!kto) return;
    command("przedstaw sie " + find_player(kto)->query_real_name(PL_CEL));
}

void
return_laugh(object kto) 
{
    switch (random(5)) 
    {
      case 0 : command("zasmiej"); break;
      case 1 : command("emote rechocze rubasznie."); break;
      case 2 : command ("powiedz Jest tu cos smiesznego?");
      default:
        command("hmm");
    }
}


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(25.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(12.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("Sklepikarz wyrzucil cie na ulice.\n");
                        kto_w_sklepie[ktora_osoba]->move_living("M", NPATH + "ulica23.c", 1, 0);
                   }
             }
          return;
     }
}



void
zly(object kto)
{

    command("powiedz Nie bedziesz mnie obrazac w moim wlasnym sklepie !!");

    tell_room(find_object(SKLPATH + "sklep0.c"), "Sklepikarz wyrzuca "
	      + QCIMIE(kto,PL_BIE) + " ze sklepu.\n",kto);

    write("Sklepikarz wyrzuca cie brutalnie ze sklepu.\n");

    kto->move_living("M", NPATH + "ulica23.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 czerwieni sie az po same uszy."); break;
          case 1 : command("emote usmiecha sie radosnie."); break;
          case 2 : command("emote mowi: A wiec jeszcze moge sie podobac !"); break;
          case 3 : zly(kto);
        }
     }
}