CLASS GoreZombie : zombieman replaces Zombieman
{	

	override int DamageMobj(
    Actor inflictor, Actor source, int damage,
    Name mod, int flags = 0, double angle = 0)
	
	{
    if(inflictor is "XtremePlasmaBall")source.A_PlaySound("gore/sizzle",CHAN_AUTO,attenuation:0.8);
    else
	if(inflictor is "XtremeRocket")source.A_PlaySound("gore/snap",CHAN_AUTO,attenuation:0.8);
	else
	if(source is "PlayerPawn")source.A_PlaySound("gore/hitmarker",CHAN_AUTO,attenuation:0.8);

	return super.damagemobj
	(inflictor,source,damage,
    mod,flags,angle);
	}
	
	states
	{
	Spawn:
		TNT1 a 0;
		TNT1 a 0 a_giveinventory("scream",1);
		POSS ab 10 a_look;
		goto spawn+2;
	See:
		TNT1 a 0 a_jumpifinventory("scream",1,"ScreamSee");
		POSS AABBCCDD 4 A_Chase;
		loop;
		
	//"spotted the player" state. only plays once
	ScreamSee:
		POSC AABBCCDD 4 A_Chase;
		TNT1 a 0 a_takeinventory("scream",1);
		goto see;
		
	Death.SSG:
		TNT1 A 0 A_JumpIfCloser(128, "XDeath");
		goto death;
	Death:
		TNT1 a 0 a_spawnitemex("DeathController");
		TNT1 a 0 a_jump(100,"death2");
		
		POSS H 5;
		POSS I 5 A_Scream;
		POSS J 5 A_NoBlocking;
		POSS K 5;
		POSS L random(10,20);
		
		TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt");		
		TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt");
		
		POSS L -1;
		Stop;
		
	//alternate death
	Death2:
		PSDE a 8;
		PSDE b 6 A_Scream;
		PSDE c 6 A_NoBlocking;
		PSDE d 6;
		PSDE e random(10,20);
		
		TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt2");	
		TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt2");

		PSDE e -1;
		Stop;

	//death by chainsaw
	Death.Saw:
		POSD a 3 a_playsound("grunt/death");
		POSD b 3 A_XScream;
		POSD c 2 A_Noblocking;
			TNT1 A 0 A_SpawnItemEx ("ZombieTorso", 0, 0, 32, random(-5,-10),random(-4,4),random(4,8),1);
		POSD defg 5;
		POSD h -1;
		stop;
	
	//gib death
	xDeath:
		POSS M 5;
		
		TNT1 a 0 a_spawnitemex("gibcontroller");

		POSS N 5 A_XScream;
		POSS O 5 A_NoBlocking;
		POSS PQRST 5;
		POSS U -1;
		Stop;
	
	//melting in green slime
	NukeMelt:
		TNT1 a 0 a_playsound("terrain/melties",7);
		ZMEL abcdefghijklmmnopq 3;
		TNT1 a -1;
		stop;
	NukeMelt2:
		TNT1 a 0 a_playsound("terrain/melties",7);
		ZME2 abcdefghijklmnopq 3;
		TNT1 a -1;
		stop;
	//melting in lava
	LavaMelt:
		TNT1 a 0 a_playsound("terrain/melties",7);
		ZLAV abcdefghijklmmnopq 4;
		TNT1 a -1;
		stop;
	LavaMelt2:
		TNT1 a 0 a_playsound("terrain/melties",7);
		ZLV2 abcdefghijklmnopq 4;
		TNT1 a -1;
		stop;
	
	//cleaner console death so the "kill all" command doesn't wreck your framerate 
	Death.massacre:
		POSS M 5;
		POSS N 5 A_XScream;
		POSS O 5 A_NoBlocking;
		POSS PQRST 5;
		POSS U -1;
		Stop;
	}
}