inherit "/std/object";
#include <stdproperties.h>
#include <macros.h>

#define SUBLOC_HAIR "_arvena_wlosy"

private
int worn;

void
create_object()
{
  worn = 0;
  ustaw_nazwe(({"roza", "rozy", "rozy", "roze", "roza", "rozy"}),
	      ({"roze", "roz", "rozom","roze", "rozami", "rozach"}),
	      PL_ZENSKI);

  dodaj_przym("srebrny", "srebrni");
                  
  set_long("Jest to dlugi, wysmukly kwiat o delikatnie zroszonych, "+
           "srebrzystych platkach. Lekko zielona lodyga pokryta jest "+
           "gdzieniegdzie malymi, ostrymi kolcami, lecz one tylko "+
           "dodaja uroku i tajemniczosci temu cudnemu dziecku natury. "+ 
           "Czujesz roznoszacy sie w okol subtelny, zniewalajacy "+
           "zapach...\n");

  add_prop(OBJ_I_WEIGHT, 10);
  add_prop(OBJ_I_VOLUME, 10);
  add_prop(OBJ_M_NO_BUY, "Nie... no cos Ty !\n");
  add_prop(OBJ_M_NO_INS, "Lepiej tego tam nie wkladaj... Jeszcze sie "
	   + "pogniecie...\n");
  add_prop(OBJ_M_NO_SELL, "CO ? Chcesz TO sprzedac ?!\n");
  add_prop(OBJ_I_NO_STEAL, 1);

  add_item("platki", "Delikatne jak musniecie morskiej bryzy, gladkie jak "
	   + "wieczne sniegi na szczytach prastarych gor, srebrzyste jak "
	   + "tajemnicze gwiazdy odbite w szmaragdowych oczach nieznajomej.\n");

}

void
init()
{
  ::init();

  add_action("do_smell", "powachaj");
  add_action("wepnij","wepnij");
  add_action("wyjmij","wyjmij");
}

int
do_smell(string str)
{

  if(str != "roze")
    {
      notify_fail("Co chcesz powachac ?\n");
      return 0;
    }

  write("\nPrzez moment wydawalo ci sie ze twe zmysly, kolysane "
	+ "delikatna melodia rozbrzmiewajaca w zakamarkach twego "
	+ "umyslu, poddadza sie jej i juz zawsze bedziesz unosic "
	+ "sie w tej slodkiej niewoli, jednak...\n\n...po chwili "
	+ "wszysko ustalo...\n");
  say( QCIMIE(this_player(),0) + " przymknawszy oczy rozkoszuje sie "
       + "przez moment subtelnym zapachem srebrnej rozy.\n",
       this_player());

  return 1;
}

void
leave_env(object from, object to)
{
  this_player()->remove_subloc(SUBLOC_HAIR);
  set_no_show_composite(0);
  unset_no_show();
  worn = 0;
  remove_prop(OBJ_M_NO_DROP);
  remove_prop(OBJ_M_NO_GIVE);

  ::leave_env(from, to);
}

string
show_subloc(string subloc, object on_obj, object for_obj)
{
  if (subloc == SUBLOC_HAIR)
    {
      if (for_obj == on_obj)
	return "Masz wpieta srebrna roze we wlosy.\n";
      return "We wlosy ma wpieta piekna, srebrna roze.\n";
    }
}

int
wepnij(string str)
{
  string *kilka = explode(str," ");
  notify_fail("Co i gdzie chcesz wpiac ?\n");
  if(sizeof(kilka) != 3) return 0;
  if(id(kilka[0], PL_BIE) && (kilka[1] == "we") && (kilka[2] == "wlosy"))
    {
      if(!present(this_object(), this_player()))
	{
	  notify_fail("Musisz trzymac roze, by moc ja wpiac we wlosy.\n");
	  return 0;
	}
      if(worn)
	{
	  write("Masz juz cos we wlosach.");
	  return 1;
	}
      if(member_array(SUBLOC_HAIR, this_player()->query_sublocs()) > -1)
	{
	  write("Masz juz inna roze we wlosach.\n");
	  return 1;
	}
      this_player()->add_subloc(SUBLOC_HAIR, this_object());
      set_no_show_composite(1);
      set_no_show();
      worn = 1;
      write("Zrecznie wpinasz kwiat we wlosy.\n");
      say(QCIMIE(this_player(), PL_MIA) + " zgrabnym ruchem wpina roze we wlosy.\n");
      add_prop(OBJ_M_NO_DROP, "Najpierw wyjmij ja z wlosow.\n");
      add_prop(OBJ_M_NO_GIVE, "Najpierw wyjmij ja z wlosow.\n");
      return 1;
    }
  notify_fail("Co i gdzie chcesz wpiac ?\n");
  return 0;
}

int
wyjmij(string str)
{
  if(id(str,PL_BIE))
    {
      this_player()->remove_subloc(SUBLOC_HAIR);
      set_no_show_composite(0);
      unset_no_show();
      worn = 0;
      remove_prop(OBJ_M_NO_DROP);
      remove_prop(OBJ_M_NO_GIVE);
      write("Wyjmujesz roze z wlosow.\n");
      say(QCIMIE(this_player(), PL_MIA) +
	  " delikatnie wyjmuje roze z wlosow.\n");      
      return 1;
    }
  notify_fail("Wyjmij co ?\n");
  return 0;
}

string
query_auto_load()
{
  return "/d/Ishtar/skali/obj/roza.c:";
}

void
init_arg(string arg)
{
  set_alarm(0.1, 0.0, "wepnij", "roze we wlosy");
}
