inherit "/std/object";

#include <macros.h>
#include <wa_types.h>
#include <stdproperties.h>

object dr;
int rodzaj;

int
ile_wazy(int i)
{
  rodzaj = i;
  switch(rodzaj)
  {
    case 0: //malutkie
    dodaj_przym("lekki","leccy");
    return random(9000)+1000;
    break;
    case 1:
    dodaj_przym("ciezki","ciezcy");
    return random(20000)+10000;
    break;
    case 2:
    dodaj_przym("dorodny","dorodni");
    return random(30000)+30000;
    break;
    case 3:
    dodaj_przym("dlugi","dludzy");
    return random(40000)+60000;
    break;
    case 4:
    dodaj_przym("wielki","wielcy");
    return random(150000)+100000;
    break;
    case 5:
    dodaj_przym("ogromny","ogromni");
    return random(750000)+250000;
    break;
    }
}    
        
void
create_object()
{
  ustaw_nazwe(({"drzewo","drzewa","drzewu","drzewo","drzewem","drzewie"}),
    ({"drzewa","drzew","drzewom","drzewa","drzewami","drzewach"}),PL_NIJAKI_NOS);

  add_name("_bal_");

  dodaj_przym("obciosany","obciosani");
 
  set_long("Masz przed soba efekt pracy drwala - sciete drzewo, inaczej zwane "+
    "balem drzewnym. Jest ono starannie obciosane z galezi i czesciowo kory.\n");    

  add_prop(OBJ_M_NO_SELL, 1);

  set_alarm(1800.0, 0.0, "pruchno");

  set_alarm(1.0, 0.0, "jaka_objetosc");

//  enable_commands();
}

void
jaka_objetosc()
{
  add_prop(OBJ_I_VOLUME, query_prop(OBJ_I_WEIGHT)/5);
}    

void
init()
{
    add_action("ociosaj","ociosaj");
    add_action("ociosaj","porab");
    add_action("ociosaj","obciosaj");
}    
    
int
ociosaj(string str)
{
  int i;
  object czym=0;
  object kto;
    
  notify_fail("Co chcesz obciosac?\n");
  if(!str) return 0;
  if(str != "drzewo") return 0;
    
  notify_fail("Musisz miec odpowiednie narzedzie by obciosywac drzewa.\n");
  if(!(this_player()->query_weapon(-1))) return 0;
  for(i = 0; i < sizeof(this_player()->query_weapon(-1)); i++)
  {
    if(this_player()->query_weapon(-1)[i]->query_wt() == W_AXE) 
      czym = this_player()->query_weapon(-1)[i];
  }
  if(czym == 0) return 0;
  
  notify_fail("Jestes zbyt "+this_player()->koncowka("zmeczony","zmeczona")+
    " by obciosywac drzewa.\n");
  if(this_player()->query_fatigue() < 20) return 0;  

  notify_fail("Nie mozesz juz bardziej obciosac tego drzewa.\n");
  if(rodzaj == 0) return 0;

  // No to scinamy
  
  write("Uzywajac "+czym->koncowka("swego","swej")+" "+czym->short(PL_DOP)+" udaje ci "+
    "sie obciosac drzewo.\n");
  say(QCIMIE(this_player(), PL_MIA) + " obciosywuje drzewo " + czym->koncowka("swym","swa")+
    " " + czym->short(PL_NAR) + ".\n");
  
  kto = this_player();
  
  seteuid(getuid());
  
  dr = clone_object("/d/Imperium/std/drzewoo.c");
  dr -> move(environment(this_player()));    
  dr -> change_prop(OBJ_I_WEIGHT, dr -> ile_wazy(rodzaj-1));
  dr -> usun_shorty();
  
  set_this_player(kto);
  
  this_player()->add_fatigue(-10);
  if(!random(2)) 
  {
    write("Zauwazasz, ze "+czym->koncowka("twoj","twoja")+" "+czym->short(PL_MIA)+
      " wyraznie sie "+czym->koncowka("stepil","stepila")+".\n");
    czym->set_dull(czym->query_dull()+1);
  }  
  remove_object();
  return 1;
}
    
void
pruchno()
{
  tell_room(environment(this_object()),
    capitalize(short(PL_MIA))+" rozpada sie ze starosci.\n");
  remove_object();
}  

int
query_opal()
{
  return 1;
}