inherit "/d/Imperium/std/zwierze";

#include <macros.h>
#include <filter_funs.h>
#include "darkmts.h"

#define A_BITE  0
#define A_LCLAW 1
#define A_RCLAW 2
#define H_HEAD 0
#define H_BODY 1
#define TP this_player()
#define TO this_object()

int breath =0;

void
create_zwierze()
{

    set_long("Z przerazeniem spogladasz na jedna z najzadziej spotykanych "+
	"istot w Starym Swiecie - Smoka. Wielka, uzebiona paszcza "+
	"spoczywa wysoko nad toba, a czerwone slepia zdaja sie "+
	"bez przerwy obserwowac otoczenie. Po ogromie tej istoty "+
	"jak i po twardych niczym skala luskach wnosisz, iz "+
	"gad ma ponad dwa tysiace lat. Niewatpliwie ta starozytna "+
	"bestia posiada niepojeta sile i wigor, ktoremu doruwnuja "+
	"tylko demony.\n");

    ustaw_odmiane_rasy(({"smok","smoka","smokowi","smoka","smokiem","smoku"}),
	({"smoki","smokow","smokom","smokach","smokami","smokach"}),
	    PL_MESKI_OS);

    dodaj_przym("olbrzymi","olbrzymi");
    dodaj_przym("starozytny","starozytni");

    set_gender(G_MALE);
    set_stats(({ 750, 750, 750, 500, 500, 500}));

    set_alignment(-1000);

    add_prop(LIVE_I_NEVERKNOWN, 1);
    add_prop(OBJ_I_WEIGHT, 4000000);
    add_prop(OBJ_I_VOLUME, 2000000);
    add_prop(ENCHANT_MONSTER,1);
    add_prop(MAGIC_I_RES_DEATH,80);
    add_prop(MAGIC_I_RES_FIRE,100);
    add_prop(MAGIC_I_RES_AIR,80);
    add_prop(MAGIC_I_RES_WATER,80);
    add_prop(MAGIC_I_RES_EARTH,80);

    set_skill(SS_DEFENCE, 100);
    set_skill(SS_PARRY,100);
    set_skill(SS_UNARM_COMBAT,100);

    set_attack_unarmed(A_BITE,  70, 70, W_IMPALE, 100, "ogromnymi szponami");

    set_hitloc_unarmed(H_HEAD, ({ 45,44,45 }), 20, "paszcze");
    set_hitloc_unarmed(H_BODY, ({ 75,76,73 }), 80, "korpus");    

    set_act_time(10);
    add_act("emote sapie ciezko.");
    add_act("emote spoglada na ciebie z gory...");

    setuid();
    seteuid(getuid());
    clone_object("/d/Imperium/vic/ug/toporb")->move(TO);        
    
    add_leftover("/d/Imperium/Czarne/npc/skorad.c",({"skora","skory","skorze",
	    "skore","skora","skorze"}),({"skory","skor","skorom","skory",
		"skorami","skorach"}),PL_ZENSKI,1,0,1,1);
    
}



void
special_attack( object wrog )
{
int i;
object *liv = all_inventory(environment(this_object()));
liv = FILTER_LIVE(liv);

if ( breath >= 2 )
{
    tell_room(environment(TP), "Nagle olbrzymia paszcza "+QIMIE(TO,PL_DOP)+" "+
	"otwiera sie, a z niej wylewaja sie plomienie, ktore "+
    	"spowijaj okolice w ogniu!\n");
	    breath=0;		
	for ( i = 0; i < sizeof(liv); i++ )
	    {
	    
	    TO->heal_hp(100);
	    if ( liv[i]!=TO )
	    {
	    liv[i]->reduce_hit_point(1000);
	    if (liv[i]->query_hp() < 1 )
		liv[i]->do_die(TO);
	    }}

}

breath++;

}


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();
    
        if (environment(this_object()))
	    {
    exit = environment(this_object())->query_exit_cmds();
            size = sizeof(exit);
	    while (--size >= 0)
	    {
	    add_action(block_exit, exit[size]);
}
}

}
			      
						      