
int konc=0;
int konc2=0;
object summon;


void
eat_mana( int ile )
{
TP->set_mana(TP->query_mana()-ile);
}


void
hurt_all( int dem, string str)
{
int i;
object *livs = all_inventory(environment(TP));
livs = FILTER_LIVE(livs);
    if (!str)
	str="";

    for ( i = 0; i < sizeof(livs); i++ )
	{
	if (livs[i] != TP)
	    {
	    if (!livs[i]->query_prop("mag"))
	    livs[i]->reduce_hit_point(dem);	
	    livs[i]->catch_msg(""+str+"");
	    if (livs[i]->query_hp()<1)
               livs[i]->do_die(TP);
	    }
	}

}


int
query_chance( int spell )
{
if (TP->query_prop("szef_magow") && spell > 2 )
    return 80;

    if (TP->query_stat(7) > 135 && spell > 3 )
	return 70;
    
	
    switch(spell)
	{
	
	case 0:
	return 100;
	break;	
	    case 1:
	    return 90;
	    break;
		case 2:
		return 80;
		break;
		    case 3:
		    return 70;
		    break;
		         case 4:
			 return 60;
			 break;
			     case 5:
			     return 50;
			     break;
			case 6:
			return 40;
			break;
		    case 7:
		    return 30;
		    break;
		case 8:
		return 20;
		break;
	case 9:
	return 10;
	break;
default:
return 5;
break;	
}
}


void
think()
{
write("Koncentrujesz sie.\n");
konc=0;
}

void
think2()
{
write("Koncentrujesz sie.\n");
konc2=0;
}

void
hurt_player( object ob, int dem )
{
ob->reduce_hit_point(dem+TP->query_stat(3));
    if (ob->query_hp()<1)
	ob->do_die(TP);
}

void
apar( object ob )
{
ob->remove_stun();
think();
}







int
mctell( string str )
{

  string who, what;
  object ob;
   if (!stringp(str))
   {
   notify_fail("Mctell who what?\n");
   return 0;
   }
   if (sscanf(str, "%s to %s", who, what) != 2 &&
   sscanf(str, "%s %s", who, what) != 2)
   {
   notify_fail("Mctell kto co?\n");
  return 0;
								   
 }
  ob = find_living(who);
     if (!objectp(ob))
     {
         notify_fail("Nie ma takiej osoby jak:" + who + ".\n");
             return 0;
    }

    if (ob->query_wiz_level())
	{
	write("Za cos takiego mozna dostac wpierdol, wiec kurwa wara!\n");
	return 1;
	}

	TP->catch_msg("Mowisz do "+QIMIE(ob,PL_DOP)+": "+what+"\n");	
	ob->catch_msg("Plomienie, zlo i demony tancuja po twej glowce, "+
        "w ktorej rozlega sie glos mowiacy: "+what+"\n");

		return 1;
				
}
int
mcciemnosc (string str )
{

   setuid();
   seteuid(getuid());
   
   write("Z mrocznej magi stwarzasz kule ciemnosci.\n");
   say(QCIMIE(this_player(),PL_MIA)+" koncetruje sie przez chwile. Nagle robi sie tu "
       + "jakos ciemno.\n");
   
   clone_object("/d/Imperium/plomien/Wampiry/kula.c")->move(this_player());
   this_player()->set_mana(this_player()->query_mana()-70);

}


int
mcnaszpikuj( string str )
{
int szansa;
int kosc;
object *kogo = parse_this(str,"%l:"+PL_BIE);

szansa = query_chance( 3 );

    if (!sizeof(kogo))
	{
	write("Mcnaszpikuj kogo?\n");
	return 1;
	}

	if ( TP->query_mana() < 10 )
	    {
	    write("Jestes zbyt wyczerpany.\n");
	    return 1;
	    }
	if ( konc == 1 )
	    {
	    write("Musisz troche odpoczac.\n");
	    return 1;
	    }
	
    kosc = random(100);
    
    set_alarm(10.0,0.0,"think");
    konc=1;
	if ( kosc > szansa )
	    {
	    write("Koncentrujesz swoje magiczne moce starajac sie "+
		"opanowac zaklecie, jednak nie udaje ci sie to.\n");
		eat_mana(20);
		return 1;
	}
	
	TP->catch_msg("Koncentrujesz sie.\n"+
		    "Wznoszac oczy w gore podnosisz wysoko rece i mamroczac zaklecie pod "+
"nosem wyczarowywujesz ogromna ilosc malych oraz ostrych igiel, ktore "+
"zawisaja przed toba. Opuszczajac rece na wysokosc glowy wyciagasz "+
"je przed siebie, przymykasz oczy krzyczac glosno. Igly zaczynaja sie "+
"trzesc i nagle rozrzazaja sie ogniem po czym opuszczajac rece "+
"wypuszczasz je z ogromna predokoscia w strone swego przeciwnika, "+
"ten probuje sie uchylic, jednakze robi to na tyle niezdarnie iz"+
"wieksza czesc igiel wbija sie w jego cialo, raniac go.\n");
		    
	tell_room(environment(TP),""+QCIMIE(TP,PL_MIA)+" wznosi wysoko w gore rece, spogladaja na "+
"niebo zaczyna mowic cos cicho pod nosem. Przed nim nagle pojawia sie mnostwo malych "+
"oraz ostrych igiel. Opuszczajac rece na wysokosc glowy "+QIMIE(kogo[0],PL_DOP)+", zaczyna glosna "+
"krzyczec a igly, ktore zawisly przed nim w powietrzu trzesac sie rozrzazaja sie ogniem. W "+
"ostatecznej fazie mag opuszcza rece a igly natychmiastowo z ogromna predkoscia leca w strone "
+QIMIE(kogo[0],PL_DOP)+" temu zas nie udaje sie uniknac ich zbyt dobrze i wieksza "+
"czesc wbija sie w jego cialo, raniac go. Twarz ofiary wykrzywia grymas bolu a jego "+
"skora robi sie lekko czerwonawa, jednakze po chwili wszystko ustaje.\n",({TP,kogo[0]}));

	kogo[0]->catch_msg(""+QCIMIE(TP,PL_MIA)+" wznosi wysoko rece, patrzac szeroko otwartymi oczami "+
"w niebo zaczyna mamrotac cos pod nosem a wokol niego pojawia sie "+
"roj malutkich i ostruch igiel ktore zawisaja bez ruchu w powietrzu. "+
"Opuszcza rece na wysokosc glowy i wyprostowuje je, po czym przymyka "+
"oczy i zaczyna glosno krzyczec. Igly zaczynaja nagle sie poruszac "+
"w miejscu po czym rozrzazaja sie ogniem. Mag opuszczajac "+
"rece wysyla ku tobie z ogromna predkoscia igly, nie udaje ci sie "+
"odskoczyc na bok i wieksza ilosc igiel wbija sie w ciebie, czujesz "+
"jakby wnetrznosci zaczely sie palic, po chwili wszystko jednak ustaje.\n");

	hurt_player( kogo[0], 2000 );
	eat_mana(10);
	

    return 1;
}

int
mckula( string str )
{
int szansa;
int kosc;
object *kogo = parse_this(str,"%l:"+PL_BIE);

szansa = query_chance( 3 );

    if (!sizeof(kogo))
	{
	write("Mckula kogo?\n");
	return 1;
	}

	if ( TP->query_mana() < 10 )
	    {
	    write("Jestes zbyt wyczerpany.\n");
	    return 1;
	    }
	if ( konc == 1 )
	    {
	    write("Musisz troche odpoczac.\n");
	    return 1;
	    }
	
    kosc = random(100);
    
    set_alarm(10.0,0.0,"think");
    konc=1;
	if ( kosc > szansa )
	    {
	    write("Koncentrujesz swoje magiczne moce starajac sie "+
		"opanowac zaklecie, jednak nie udaje ci sie to.\n");
		eat_mana(20);
		return 1;
	}
	
	TP->catch_msg("Koncentrujesz sie.\n"+
"Skladasz szybko rece po czym zaczynasz wykonywac nimi szybkie ruchu, szeptajac "+
"przy tym slowa zaklecia. Miedzy twoimi dlonmi tworzy sie mala kula, ktora "+
"w bardzo szybkim tepie rosnie do duzych rozmiarow. Wypychajac rece do przodu, "+
"pchniesz kule wprost w swojego wroga, wraz z zetknieciem sie z jego cialem "+
"kula wybucha.\n");
		    
	tell_room(environment(TP),""+QCIMIE(TP,PL_MIA)+" sklada rece po czym wymachuje "+
"nimi, ruszajac bezdzwiecznie ustami. Miedzy jego dlonmi pojawia sie mala kula, ktora "+
"szybko rosnie do duzych rozmiarow. Pchnieciem dloni wysyla ja "+QIMIE(kogo[0],PL_DOP)+
", ktora dotykajac go wybucha.\n",({TP,kogo[0]}));

	kogo[0]->catch_msg(""+QCIMIE(TP,PL_MIA)+" sklada rece po czym zaczyna "+
"dziwnie nimi ruszac, ruszajac bezdzwiecznie ustami. Miedzy jego dlonmi tworzy "+
"sie mala kula ktora w zastraszajaco szybkim tepie rosnie do duzych rozmiarow. "+
"Pchnieciem dloni wysyla ja w twym kierunku, kiedy kula tylko cie dotyka wybucha z glosnym hukiem.\n");

	hurt_player( kogo[0], 200 );
	eat_mana(10);
	

    return 1;
}
