inherit "/std/object";
inherit "/cmd/std/command_driver.c";
#include "../mag.h"
#include "czary.h"

#define A "czaszka magow"

int zalozony;
int wear();
int remove();
string *material();
string wykonana();


int mana=2000;

void
laduj()
{
mana+=50;

    if ( mana > 2000 )
	mana=2000;

set_alarm(300.0,0.0,"laduj");
}


int
mdotknij( string str )
{
int i;
int m=0;
    if (!str)
	{
	    if (mana==0)
		{
		write("Dotykasz czaszki, lecz nic sie nie dzieje.\n");
		return 1;
		}
	if (TP->query_mana()==TP->query_max_mana())
	    {
	    write("Nie zdolasz przyjac tak duzej ilosci many.\n");
	    return 1;
	    }
	    
	for ( i = 0; i < (TP->query_max_mana()-TP->query_mana()); i++ )
	    {
	    if (mana>0)
	    {
	    m++;
	    mana--;
	    }
	    }
	    write("Dotykasz czaszki, czujac jak wdziera sie w ciebie "+
		"energia.\n");
	tell_room(environment(TP),"Oczodoly czaszki trzymanej przez "+
	    ""+QIMIE(TP,PL_BIE)+" przez moment jarzyly sie "+
	    "czerwonym blaskiem, po czym przygasly.\n",({TP}));
		TP->set_mana(TP->query_mana()+m);
		return 1;
		
	}


write("Mdotknij?\n");
return 1;
}

void
create_object()
{
   ustaw_nazwe(({"czaszka","czaszki","czaszce","czaszke","czaszka","czaszce"}),
               ({"czaszki","czaszek","czaszkom","czaszki","czaszkami","czaszkach"}),
               PL_ZENSKI);

   dodaj_przym(({material()[0]}),({material()[1]}));

   add_prop("item_nekro",1);
    add_name("item_nekro");   
   set_long("Czaszka jest twoim symbolem przynaleznosci do magow.\n");

   add_prop(OBJ_I_WEIGHT,   2000);
   add_prop(OBJ_I_VOLUME,    500);
   add_prop(OBJ_I_VALUE,   24000);
   set_alarm(0.5,0.0,"laduj");
   
}

dodaj_propy()
{
    add_prop(OBJ_M_NO_SELL, "Nikt nie kupi od ciebie czachy!\n");
    add_prop(OBJ_M_NO_DROP, "Nie mozesz wyrzucic swojej czachy!\n");
    add_prop(OBJ_M_NO_GIVE, "Nie mozesz nikomu dac czachy\n");
    add_prop(OBJ_M_NO_STEAL, 1);
    add_prop(OBJ_M_NO_GET,"Nie jestes w stanie podniesc czachy.\n");


}

usun_propy()
{
    remove_prop(OBJ_M_NO_SELL);
    remove_prop(OBJ_M_NO_DROP);
    remove_prop(OBJ_M_NO_GIVE);
    remove_prop(OBJ_M_NO_STEAL);
    remove_prop(OBJ_M_NO_GET);
}


int
wear()
{
    if (this_player()->query_subloc_obj(A))
        { remove_object(); return 1;}
    this_player()->add_subloc(A, this_object());
    move(TP, A);
    zalozony=1;
    
    if (this_player()->query_real_name()=="skun");
	this_player()->add_prop("szef_nekro",1);
    this_player()->add_prop("nekro",1);
    this_player()->add_prop(MAGIC_I_RES_DEATH,100);
    this_player()->add_prop(LIVE_I_UNDEAD,100);
      this_player()->add_prop(LIVE_I_SEE_INVIS, 1);
      this_player()->add_prop(LIVE_I_NO_CORPSE,1);

    if (this_player()->query_stat(7) > 85 )
	{   
        this_player()->add_prop(LIVE_I_SEE_DARK, 100);
	this_player()->ustaw_odmiane_rasy(({"licz","licza","liczowi","licza",
		"liczem","liczu"}),({"licze","liczy","liczom","licze",
		"liczami","liczach"}),PL_MESKI_OS);
	}
	
	
    return 1;
}

int
remove()
{
    this_player()->remove_subloc(A);
    zalozony=0;
    move(TP);
    return 1;
}

void
enter_env(object ob, object from)
{
    ::enter_env(ob, from);
    dodaj_propy();
    wear();
}

string
show_subloc(string subloc, object on_obj, object for_obj)
{
    if (on_obj == for_obj)
        return "Twoja "+short()+" symbolizuje wieczna sluzbe Nagashowi.\n";
    return "Jego "+short(PL_MIA)+" symbolizuje wieczna sluzbe Nagashowi.\n";
}

string
query_auto_load ()
{
        return MASTER_OB(this_object());
}

int no_way(string what)
{
   if (what=="laske")
       {
             write("Chyba nie chcesz zniszczyc znaku przynaleznosci do "+
                    "magow?\n");
             say(QCIMIE(this_player(),PL_MIA)+" spoglada na "+
	         "czaszke.\n");
             return 1;
       }
  return 0;
}


void init()
{
   ::init();
   add_action(no_way, "zdejmij");
   add_action("usun", "usun");
   add_action("mdotknij","mdotknij");
   CZARY
}


string *material()
{
   int i;
   i = this_player()->query_stat(SS_OCCUP);
   switch(i)
   {
     case 0..20 : return ({"pozolkly","pozolkli"});
     case 21..35 : return ({"bialy","biali"});
     case 36..45 : return ({"srebrny", "srebrni"});
     case 46..80 : return ({"zloty","zloci"});
     default : return  ({"rogaty", "rogaci"});
   }
}

string wykonana()
{
   int i;
   i = this_player()->query_stat(SS_RACE);
   switch(i)
   {
         case 0..20 : return "z";
     case 21..35 : return "z";
     case 36..45 :  return "z";
     case 46..80 : return "z";
     default : return "z";
   }
}

int
wywal(object kto)
{
kto->remove_autoshadow(OBJ+"shadow:0");
this_object()->remove_object();
kto->command("zakoncz");
return 1;
}


int
usun(string str)
{
    object *kogo;
    if (!TP->query_prop("szef_nekro")) return 0;
    if (!str)
        return notify_fail("Kogo wyrzucic?\n");
    kogo=parse_this(str, "%l:"+PL_BIE);
    if (!sizeof(kogo))
        return notify_fail("Kogo usunac z gildii?\n");

    if (sizeof(kogo)>1)
        return notify_fail("Usuwac mozesz tylko pojedynczo.\n");

    if (kogo[0]->query_guild_name_race()!=GUILD_NAME)
        return notify_fail(QCIMIE(kogo[0], PL_MIA) +" nie jest Magiem.\n");
    if (!interactive(kogo[0]))
       return notify_fail("Nie mozesz go usunac!\n");
    wywal(kogo[0]);
    return 1;
}

