/*
 * Zielarz z Loren
 * by Tanis - luty 1998
 */

#define GPATH "/d/Imperium/"


#include "ogolne.h"

inherit PATH + "npc/npcathel.c";
inherit "/d/Imperium/std/ziola.c";

void
powiedz_nie(string co)
{
  command("powiedz " + co);
}

string
oferta_zielarza()
{
  if(this_player()->query_prop(PLAYER_I_ZABIL_ZWIERZE_Z_LOREN))
    {
      set_alarm(2.0, 0.0, "powiedz_nie","O nie ! Mordercom lesnych zwierzat nie sprzedam niczego !");
      return "";
    }
  if(this_player()->query_prop(LESNY_ELF_ZABIL_ZWIERZE_Z_LOREN))
    {
      set_alarm(2.0, 0.0, "powiedz_nie","Ci, ktorzy pogwalcili zasady Lesnych Elfow nie maja czego u mnie szukac !");
      return "";
    }    
         command("powiedz O tak ! mam wiele ziol !");
         command("powiedz Jesli chcesz, mozesz przejrzec ziola, ktore mam do zaoferowania !");
         command("powiedz Znam sie tez na nich swietnie i jesli chcesz, mozesz zidentyfikowac "
            + "u mnie nieznane ci ziola.");
         return "";
} 

void
create_lesne_zwierze()
{
 // Las nie wypuszcza obiektow, ktore maja funkcje create_lesne_zwierze(). Nie chcem, aby nasz zielarz poszedl zwiedzac swiat ! :)
}

void
create_monster()
{
    if (!IS_CLONE)
         return;
    
    ustaw_imie (({"Nelan", "Nelana",
    		  "Nelanowi", "Nelana",
    		  "Nelanem", "Nelanie"}));
    dodaj_nazwy (({"nelan", "nelana",
    		  "nelanowi", "nelana",
    		  "nelanem", "nelanie"}),
    		 ({"nelan", "nelana",
    		  "nelanowi", "nelana",
    		  "nelanem", "nelanie"}),PL_MESKI_OS);

    dodaj_nazwy(({"zielarz","zielarza","zielarzowi","zielarza","zielarzem",
    		  "zielarzu"}),({"zielarze","zielarzy","zielarzom","zielarzy",
    		  "zielarzami","zielarzach"}), PL_MESKI_OS);
    
    set_long ("Wysoki, spokojny elf. Choc jest przedstawicielem dlugowiecznej rasy, wyglada staro nawet jak "
        + "na elfa. Jego ubranie wyglada rowniez na stare, jednak jest solidne i w dobrym stanie. Na sobie ma "
        + "skorzana kurtke i spodnie. Na ramiona ma zarzucony plaszcz z kieszeniami, w ktorych trzyma "
        + "liczne ziola i korzenie. Wokol niego czuc drazniaca nos won dziwnych ziol.\n");

    ustaw_odmiane_rasy (PL_ELF);
    
    dodaj_przym("siwy","siwi");
    dodaj_przym("stary","starzy");

    set_gender(G_MALE);
 
    add_prop(CONT_I_WEIGHT, 50000);
    add_prop(CONT_I_HEIGHT, 174);

    set_skill(SS_DEFENCE, random(5));
    set_skill(SS_UNARM_COMBAT, random(5));
    set_skill(SS_PARRY,  random(10));
    set_skill(SS_HERBALISM, random(10)+50);

    set_stats(({ 35, 40, 35, 65, 65, 40}));

    set_act_time(30);
    add_act("emote mamrocze jakies dziwne slowa.");
    add_act("emote zanosi sie suchym, plytkim kaszlem.");
    add_act("emote mowi: Czy chcesz cos kupic ?");
    add_act("emote patrzy na ciebie przenikliwie.");
    add_act("emote szuka czegos w zakamarkach swego plaszcza.");

    set_cact_time(20);
    add_cact("emote blaga: Prosze ... Nie rob mi krzywdy ...");
    add_cact("emote jeczy cicho.");
    add_cact("emote mruczy szybko jakies tajemnicze slowa.");
    add_cact("emote krzyczy: Nie jestem jeszcze taki slaby na jaka wygladam !");
    add_cact("emote Przestan natychmiast !");
    add_cact("emote krzyczy: Poznasz sile elfiej zemsty !");
    add_cact("krzyknij Pomocy !!");
    add_cact("emote mowi: Przestan, dam ci za to jakies ziola !");

    add_ask( ({"ziola","oferte"}),  VBFC_ME("oferta_zielarza"));

   set_alarm(0.5, 0.0, "zaladuj_zielarza");
}

int
identyfikacja(string str)
{
   mixed co_identyfikowane;
   object ziolo;

   notify_fail("Hmmm... Co chcesz zidentyfikowac ?\n");

   if(!str) 
     {
        return 0;
     }
     
   if(!parse_command(str,this_player(),"%o:"+PL_BIE,co_identyfikowane))
     {
        return 0;
     }
   
   if(!pointerp(co_identyfikowane))
     {
         if(!function_exists("create_herb",ziolo))
           {
              command("powiedz Przykro mi, zajmuje sie tylko ziolami !");
              return 1;
           }

         ziolo=co_identyfikowane;
         
          tell_room(environment(this_object()),QCIMIE(this_object(),PL_MIA) + " bierze "
             + ziolo->short(this_object(),PL_BIE) + " od " + QIMIE(this_player(),PL_DOP) + ", chwile "
             + "oglada w skupieniu i oddaje wlascicielowi.\n",this_player());
          write(query_Imie(this_player(),PL_MIA) + " bierze od ciebie " + ziolo->short(this_object(),PL_BIE) + ", bada w skupieniu "
             + "i po chwili ci zwraca.\n");
          command("powiedz Chyba wiem, co to za ziolo ....");
          tell_room(environment(this_object()),QCIMIE(this_object(),PL_MIA) + " mowi: " + ziolo->query_id_long());
          
          return 1;
       }
    else write("Musisz okreslic, o ktore ziolo ci chodzi. \n");
    return 1;
}


void
zaladuj_zielarza()
{
  ustaw_nazwe_pliku_ziol(PATH + "npc/ziola");

  if (!odczytaj_ziola())
  {

    dodaj_ziola(GPATH + "ziola/casur",10);
    dodaj_ziola(GPATH + "ziola/deliona",10);
    dodaj_ziola(GPATH + "ziola/drath",10);
    dodaj_ziola(GPATH + "ziola/lulek",10);
    dodaj_ziola(GPATH + "ziola/mieta",10);
    dodaj_ziola(GPATH + "ziola/mniszek",10);
    dodaj_ziola(GPATH + "ziola/rabarbar",10);
    dodaj_ziola(GPATH + "ziola/sercekap",10);
    dodaj_ziola(GPATH + "ziola/stulicha",10);
    dodaj_ziola(GPATH + "ziola/szalwia",10);
    dodaj_ziola(GPATH + "ziola/glog",10);
    dodaj_ziola(GPATH + "ziola/szafran",10);

    dodaj_ziola(GPATH + "ziola/borowik",10);
    dodaj_ziola(GPATH + "ziola/borowikk",10);
    dodaj_ziola(GPATH + "ziola/borowiks",10);
    dodaj_ziola(GPATH + "ziola/kozlarzc",10);
    dodaj_ziola(GPATH + "ziola/maslakz",10);
    dodaj_ziola(GPATH + "ziola/muchomorc",10);
    dodaj_ziola(GPATH + "ziola/muchomors",10);
    dodaj_ziola(GPATH + "ziola/podgrzybekb",10);
  }
}

int
nie_zgrzeszyl()
{
  if(this_player()->query_prop(PLAYER_I_ZABIL_ZWIERZE_Z_LOREN))
    {
      set_alarm(2.0, 0.0, "powiedz_nie","Nigdy nie zrobie niczego dla mordercy zwierzat z Lasu Loren !");
      return 0;
    }
  if(this_player()->query_prop(LESNY_ELF_ZABIL_ZWIERZE_Z_LOREN))
    {
      set_alarm(2.0, 0.0, "powiedz_nie","Przeklete niech beda ci, ktorzy pogwalcili reguly Lesnych Elfow !");
      return 0;
    }
  return 1;
}

void
init_living()
{
  ::init_living();
  if(nie_zgrzeszyl())
    {
      init_ziola();
  
      add_action(identyfikacja,"zidentyfikuj");
      add_action(identyfikacja,"identyfikuj");
    }
}

int
remove_object()
{
  zapisz_ziola();
  return ::remove_object();
}

string
query_presentation()
{
	  return "Nelan, Zielarz z Lasu Loren, elf";
}

void
add_introduced (string imie)
{
     set_alarm(2.0,0.0,"return_introduce", imie);
}

void
return_introduce(string kto) 
{
    command("przedstaw sie " + OB_NAME(find_living(kto, 0)));
}