CLASS GoreShotguy : shotgunguy replaces shotgunguy
{	

	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);
		SPOS ab 10 a_look;
		goto spawn+2;
		
	See:
		TNT1 a 0 a_jumpifinventory("scream",1,"ScreamSee");
		SPOS AABBCCDD 3 A_Chase;
		loop;
		
	//"spotted the player" state. only plays once		
	ScreamSee:
		SPOC AABBCCDD 3 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");
		
		SPOS H 5;
		SPOS I 5 A_Scream;
		SPOS J 5 A_NoBlocking;
		SPOS K 5;
		SPOS L random(10,20);
		
		TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt");	
		TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt");

		SPOS L -1;
		Stop;
		
	Death2:
		SPDE a 8;
		SPDE b 6 A_Scream;
		SPDE c 6 A_NoBlocking;
		SPDE d 6;
		SPDE e random(10,20);
		
		TNT1 A 0 a_jumpif(callACS("NukeCheck")==1, "NukeMelt2");	
		TNT1 A 0 a_jumpif(callACS("LavaCheck")==1, "LavaMelt2");

		SPDE e -1;
		Stop;
		
	//death by chainsaw
	Death.Saw:
		SPSD a 3 a_playsound("shotguy/death");
		SPSD b 3 A_XScream;
		SPSD c 2 A_Noblocking;
		TNT1 A 0 A_SpawnItemEx ("ShotguyTorso", 0, 0, 32, random(-5,-10),random(-4,4),random(4,8),1);
		SPSD defg 5;
		SPSD h -1;
		stop;
			
	//gib death	
	xDeath: 
		SPOS M 5;
			TNT1 a 0 a_spawnitemex("gibcontroller")	;		
		SPOS N 5 A_xScream;
		SPOS O 5 A_NoBlocking;
		SPOS PQRST 5;
		SPOS U -1;
		Stop;

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