inherit "/d/Imperium/std/monster";
inherit "/cmd/std/command_driver";
#include "wampiry.h"
#include "wamp_npc.h"
static int alarm_id;
#define SOUL "/d/Imperium/plomien/Wampiry/obj/shadow.c"
create_monster()
{
  ustaw_odmiane_rasy(PL_CZLOWIEK);
  ustaw_imie(({"gabriel","gabriela","gabrielowi","gabriela","gabrielem",
             "gabrielu"}),PL_MESKI_OS);
  dodaj_przym(({"tajemniczy"}),({"tajemniczy"}));
  dodaj_przym(({"arystokratyczny"}),({"arystokratyczni"}));
  set_long("Tajemniczy jegomosc.\n");
  set_living_name("straznik_gildii_wampirow");
  set_gender(G_MALE);
  add_prop(CONT_I_HEIGHT, 240);
  add_prop(CONT_I_WEIGHT, 200000);
  add_prop(NPC_M_NO_ACCEPT_GIVE, 1);
  add_prop(LIVE_I_QUICKNESS, 150);
  
  set_skill(SS_UNARM_COMBAT, 300);
  set_skill(SS_DEFENCE, 300);
  set_skill(SS_BLIND_COMBAT, 100);
  
  arm_me();
  set_stats(({400, 400, 420, 400, 400, 400, 80, 80, 80}));
  
}
void
arm_me()
{
	setuid();
	seteuid(getuid());
	add_armour(OBJ + "szata");	
}
void
do_die(object killer)
{
	killer->add_exp(3000, 0);
	killer->catch_msg("Czujesz iz ten wyczyn dodal ci sil.. Podbijaj Twierdze puki czas!\n");	
	::do_die(killer);
}
void
specjal()
{
	int i;
	object *wampy;
	
	if(query_attack())
	{
      command("wtnij");
   	  wampy = users();
    	for(i=0; i<sizeof(wampy); i++)
    	{
    	 if(wampy[i]->query_prop("wampir")) wampy[i]->catch_msg("Slyszac potworny krzyk Gabriela, zdajesz sobie sprawe iz "+
    	   "ktos wlasnie atakuje Zamek Wampirow!, Ruszaj na pomoc!\n");
        }
    }
	else remove_alarm(alarm_id);
}
void
attacked_by(object ob)
{
    ::attacked_by(ob);
    alarm_id = set_alarm(0.0, 10.5, &specjal());
}
void
add_introduced(string name)
{
   set_alarm(2.0,0.0,"return_info", name);
}
varargs void
return_info(string kto)
{
  command("przedstaw sie "+find_player(kto)->query_real_name(PL_CEL));
}
string
query_presentation()
{
  return "Gabriel, Szambelan Zamku von Carnsteinow";
}
int
wstap( string str )
{
object sh;
if ( str == "do gildii" )
{
if (!TP->query_prop("poparcie_wampirow") )
{
   write("Jakis glos dudni: Odejdz smiertelniku...\n");
   return 1;
}
if ( TP->query_prop("wampir") )
    {
    write("Jestes juz w gildii!\n");
    return 1;
    }
write( "Ksiaze Krwi podchodzi do ciebie z tajemniczym usmiechem na ustach. Po chwili " 
     + "odgarnia czesc szaty z klatki piersiowej i roscina skore zwym pazurem."
     + "Pij, mowi. "
     + "Ty podchodzisz i zaczynasz pic jego krew... Twe cialo zaczyna drzec w ekstazie! " 
     + "Nagle tracisz przytomnosc... "
     + "Gdy sie budzisz Ksiaze mowi : Witaj w niesmiertelnej familii. Nie przynies "
     + "nam wstydu.\n");
    
    setuid();
    seteuid(getuid());
    
    sh = clone_object(OBJ+"shadow.c");
    sh->shadow_me(TP, GUILD_TYPE, GUILD_NAME, GUILD_STYLE);
    clone_object(OBJ+"szata.c")->move(TP);
    clone_object(OBJ+"szatao.c")->move(TP);
}
write("Wstap gdzie?\n");
return 1;
}
int
uszlachetnij( string str )
{
object *cel = parse_this(str,"%l:"+PL_BIE);
if (!sizeof(cel))
{
    write("Uszlachetnij kogo?\n");
    return 1;
}
  if ( cel[0]->query_prop("hrabia_wampirow") )
    {
    this_player()->catch_msg(""+QCIMIE(cel[0],PL_MIA)+" jest juz hrabia.\n");
    return 1;
    } 
      
   if (!TP->query_prop("szef_wampirow"))
        {
        write("Twoje poparcie nic nie znaczy.\n");
        return 1; 
        }
    
    this_player()->catch_msg("Mianujesz "+QCIMIE(cel[0],PL_BIE)+" na hrabiego rodu.\n");
    
    setuid();
    seteuid(getuid());
    
    clone_object(OBJ+"pierscien.c")->move(this_player());
    clone_object(OBJ+"pierscien.c")->move(cel[0]);
    cel[0]->add_prop("hrabia_wampirow",1);
    return 1;
}
int
poprzyj( string str )
{
object *cel = parse_this(str,"%l:"+PL_BIE);
if (!sizeof(cel))
{
    write("Poprzyj kogo?\n");
    return 1;
}
if ( cel[0]->query_prop("poparcie_wampirow") )
    {
    this_player()->catch_msg(""+QCIMIE(cel[0],PL_MIA)+" ma juz poparcie.\n");
    return 1;
    }
    
    if (!TP->query_prop("hrabia_wampirow"))
        {
        write("Twoje poparcie nic nie znaczy.\n");
        return 1; 
        }
    
    this_player()->catch_msg("Popierasz "+QCIMIE(cel[0],PL_BIE)+".\n");
    cel[0]->add_prop("poparcie_wampirow",1);
    return 1;
}
int
set( string str )
{
object sh;
object *cel = parse_this(str,"%l:"+PL_BIE);
    
    if ( !sizeof(cel))
        {
        write("set kogo?\n");
        return 1;
        }
    if ( cel[0]->query_prop("wampir") )
        {
        write("To jest Wampir!\n");
        return 1;
        }
                
   setuid();
   seteuid(getuid());
        
    sh=clone_object(OBJ+"shadow");
    sh->shadow_me(cel[0], GUILD_TYPE, GUILD_NAME, GUILD_STYLE);
    clone_object(OBJ+"szata")->move(cel[0]);    
}
public int
block_exit()
{
  string  action = query_verb();
      if (!sizeof(({ this_player() }) & query_enemy(-1)))
          {
           return 0; // this_player() isnt fignting us
          }
 TP->catch_msg(""+QCIMIE(TO,PL_MIA)+" blokuje ci droge ucieczki.\n");
         tell_room(environment(TO),""+QCIMIE(TO,PL_MIA)+" blokuje "+
                 ""+QIMIE(TP,PL_CEL)+" droge ucieczki.\n",({TP}));
  return 1;
}
public void
init_living()
{
  string *exit;
  int size;
  ::init_living();
   add_action("wstap","wstap");
   add_action("uszlachetnij","uszlachetnij");
   add_action("poprzyj","poprzyj");
   add_action("set","set");
  if (environment(this_object()))
  {
     exit = environment(this_object())->query_exit_cmds();
     size = sizeof(exit);
     while (--size >= 0)
     {
       add_action(block_exit, exit[size]);
     }
  }
}
int
special_attack(object wrog)
{
	//if(wrog->query_prop(LIVE_I_INVIS)) wrog->add_prop(LIVE_I_INVIS, 0);
	if(!alarm_id) alarm_id = set_alarm(0.0, 10.5, &specjal());
	return 0;	
}
