ACTOR Fleshspawn 10558
{
  //$Title "Flesh Spawn"
  //$Category XV117Monsters
	Tag "Flesh Spawn"
	Obituary "%o was burned by a FleshSpawn." 
	HitObituary "%o was devoured by a FleshSpawn."
	health 30 // [XA] changed from 50.
	radius 14
	height 30
	mass 80
	speed 12 // [XA] changed from 10.
	damage 2
	painchance 224
	Painchance "Shock", 256
	PainChance "Acid", 255
	missiletype "Fleshspawnball"
	bloodcolor "00 50 ff"
	attacksound "flesh/melee"
	seesound "flesh/sight"
	painsound "flesh/pain"
	deathsound "flesh/death"
	activesound "flesh/active"
	dropitem "healthplusfatalitybonus", 40
	bloodtype "Blue_Blood", "BlueSawBlood", "BlueSawBlood"
	bloodcolor "Blue"
	DamageFactor "Use", 0.0
	DamageFactor "Stealth", 0.0
	MONSTER
	+FLOAT
	+NOGRAVITY
	+DONTHURTSPECIES
	+NOINFIGHTING
	+NOTARGET
	States
	{
	
	ReplaceVanilla:
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
		TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
		TNT1 A 0 A_SpawnItemEx ("TehLostSoul",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0, tid)
		Stop
	
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteWithResult("RADARSIGNAL",0)
		TNT1 A 0 A_JUMPIF(GETCVAR("monsterspawns")==4, "ReplaceVanilla")
		
		Look:
		FLSP AB 8 A_Look
		loop
	See:
		FLSP AABB 2 A_Chase
		TNT1 A 0 A_JumpIfintargetInventory("predatormode", 1, "Look")
		loop
	Missile:
		FLSP C 0 A_Jump(128,"Charge")
		FLSP C 8 A_FaceTarget
		FLSP G 4 A_FaceTarget    
		TNT1 A 0 a_checkproximity("Parried","Axeparry",80.0,1,CPXF_NOZ)
		FLSP H 4 Bright A_CustomMissile("Fleshspawnball", 12, 0, 0) 
		goto See
	Charge:
		FLSP C 0 A_Jump(96, 6)
		FLSP C 8 A_FaceTarget
		FLSP D 4 A_FaceTarget 
		TNT1 A 0 a_checkproximity("Parried","Axeparry",80.0,1,CPXF_NOZ)
		FLSP E 4 A_SkullAttack
		FLSP FE 4
		Goto Charge+4
		FLSP C 8 A_FaceTarget
		FLSP D 4 A_FaceTarget   
		TNT1 A 0 a_checkproximity("Parried","Axeparry",80.0,1,CPXF_NOZ)
		FLSP E 4 A_SkullAttack
		FLSP FEFE 4
		FLSP C 6 A_FaceTarget
		FLSP D 4 A_FaceTarget   
		TNT1 A 0 a_checkproximity("Parried","Axeparry",80.0,1,CPXF_NOZ)
		FLSP E 4 A_SkullAttack
		FLSP FE 4
		Goto Charge+4

	Parried:
		TNT1 A 0 A_JumpIfintargetInventory("isdoomguy", 1, "Parry2")
		TNT1 A 0 A_JumpIfintargetInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpifintargetInventory("UsedStamina",95,"CounterParry")
		TNT1 A 0 A_JumpifintargetInventory("UsedStamina",1995,"CounterParry")
		goto Parry2
	CounterParry:
		TNT1 A 0 A_startsound("KICKWALL",800)
		TNT1 A 0 A_givetotarget("triptoken",1)
		TNT1 A 0 A_takefromtarget("axedurability",2)
		TNT1 A 0 A_givetotarget("usedstamina",10)
		TNT1 A 0 A_CustomMissile("KnockAttack",10,0,0,0)
		goto See
	Parry2:
		TNT1 A 0 A_startsound("PARRIED",801)
		TNT1 A 0 A_givetotarget("usedstamina",5)
		TNT1 A 0 A_givetotarget("parrytoken",1)
		TNT1 A 0 A_takefromtarget("axedurability",1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_SpawnItemex ("parryeffect", 6, 0,30,0,0,0,0, SXF_SETMASTER)
		goto Death
	
PAIN.SYRINGE2:
	TNT1 A 0 A_CHANGEFLAG("FORCEINFIGHTING",1)
	TNT1 A 0 A_CHANGEFLAG("DOHARMSPECIES",1)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMCLASS",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTING",0)
	TNT1 A 0 A_CLEARTARGET
	TNT1 A 0 A_EXPLODE(1,270,XF_NOTMISSILE | XF_EXPLICITDAMAGETYPE,0,270,0,0,"bulletpuff","frenzytrigger")
	goto see
PAIN.FRENZYTRIGGER:
	TNT1 A 0 Healthing(1)
	TNT1 A 0 A_CHANGEFLAG("FORCEINFIGHTING",1)
	TNT1 A 0 A_CHANGEFLAG("DOHARMSPECIES",1)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMCLASS",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTING",0)
  goto See
	
	PAIN.SYRINGE1:
	TNT1 A 0 A_CHANGEFLAG("FRIENDLY",1)
	tnt1 a 0 a_giveinventory("health",100)
	goto pain
	Pain.Shock:
		TNT1 A 0 A_spawnitem("plasmaexplosion",0,30)
		TNT1 A 0 A_giveinventory("shockcharge",10)	
		TNT1 A 0 A_playsound("Sparks/Spawn", CHAN_7)
	Pain:
		FLSP I 3 
		FLSP I 3 A_Pain
		TNT1 A 0 A_JumpIfInventory ("shockcharge", 1, "Shocked")
		Goto See
	Death:
		TNT1 AA 0 A_CustomMissile ("Blue_FlyingBlood", 0, 0, random (0, 360), 2, random (30, 150))
		FLSP I 5
		FLSP J 5 A_Scream
		FLSP K 5
		FLSP L 5 A_NoBlocking
		FLSP MN 5 A_SetFloorClip
		FLSP O -1 
		Stop
	
	Shocked:
	TNT1 A 0 A_takeinventory("shockcharge",1)
	TNT1 A 0 A_spawnitem("plasmashocksmol",0,1)
	TNT1 A 0 A_DamageSelf(2,"plasma")
	goto Pain
	
Death.ChainCut:
Death.ChainSaw:
		TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 20, random (-1, 1), random (-1, 1), 8)
	XDeath:
		FLSP P 3 
		TNT1 AAAAA 0 A_CustomMissile ("Blue_FlyingBlood", 0, 0, random (0, 360), 2, random (30, 150))
		FLSP Q 0 A_FaceTarget
		FLSP Q 0 A_SpawnItemEx("FleshSpawnGibs", 0, 0, 0, 0, 0, 0, 0, 128)
		FLSP Q 0 A_CustomMissile("Fleshspawngib1", 14, 0, random(-180,180), 2, random(10,40))
		FLSP Q 0 A_CustomMissile("Fleshspawngib2", 6, 2, random(-180,180), 2, random(0,25))
		FLSP Q 0 A_CustomMissile("Fleshspawngib2B", 10, -2, random(-180,180), 2, random(0,25))
		FLSP Q 0 A_CustomMissile("Fleshspawngib3", 8, 0, random(-180,180), 2, random(0,35))
		FLSP Q 0 A_CustomMissile("Fleshspawngib4", 12, 5, random(-180,180), 2, random(-5,40))
		FLSP Q 0 A_CustomMissile("Fleshspawngib4B", 5, -5, random(-180,180), 2, random(0,30))
		FLSP Q 0 A_CustomMissile("Fleshspawngib5", 6, 3, random(-180,180), 2, random(10,60))
		FLSP Q 0 A_CustomMissile("Fleshspawngib5", 8, 0, random(-180,180), 2, random(-10,55))
		FLSP Q 0 A_CustomMissile("Fleshspawngib6", 12, 0, 0, 2, 0)
		FLSP Q 3 A_XScream
		FLSP R 3 A_NoBlocking  
		FLSP STU 3
		Stop
	Raise:
		FLSP O 5 A_UnSetFloorClip
		FLSP NMLKJI 5
		Goto See
	}
}
ACTOR FleshSpawnSummoned : FleshSpawn
{	
	var int user_summoned;
	States
	{
	Spawn:
		FLSP A 0 A_JumpIf(user_summoned == 1, "Idle")
		FLSP A 0 A_SetUserVar("user_summoned", 1)
		Goto Charge
	Idle:
		FLSP AB 8 A_Look
		loop
	}
}

ACTOR FleshSpawnGibs
{
	+NoClip
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile("Fleshspawngib1", 14, 0, random(-180,180), 2, random(10,40))
		TNT1 A 0 A_CustomMissile("Fleshspawngib2", 6, 2, random(-180,180), 2, random(0,25))
		TNT1 A 0 A_CustomMissile("Fleshspawngib2B", 10, -2, random(-180,180), 2, random(0,25))
		TNT1 A 0 A_CustomMissile("Fleshspawngib3", 8, 0, random(-180,180), 2, random(0,35))
		TNT1 A 0 A_CustomMissile("Fleshspawngib4", 12, 5, random(-180,180), 2, random(-5,40))
		TNT1 A 0 A_CustomMissile("Fleshspawngib4B", 5, -5, random(-180,180), 2, random(0,30))
		TNT1 A 0 A_CustomMissile("Fleshspawngib5", 6, 3, random(-180,180), 2, random(10,60))
		TNT1 A 0 A_CustomMissile("Fleshspawngib5", 8, 0, random(-180,180), 2, random(-10,55))
		TNT1 A 0 A_CustomMissile("Fleshspawngib6", 12, 0, 0, 2, 0)
		Stop
	}
}

ACTOR Fleshspawnball
{
	Damage 2
	Speed 10
	Radius 3
	Height 5
	SeeSound "caco/attack"
	DeathSound "caco/shotx"
	RenderStyle Add
	Alpha 0.9
	Projectile
	states
	{
	Spawn:
		FLBL ABCBABCBABCBABCBIJKLM 4 Bright
		Stop
	Death:
		FLBL DEFGH 4 Bright
		Stop
	}
}

ACTOR Fleshspawngib1
{
	Speed 8
	Mass 100
	Radius 1
	Height 1
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB1 ABCD 4 
		loop
	Death:
		FGB1 E -1
		stop        
	}
}

ACTOR Fleshspawngib2
{
	Speed 8
	Mass 100
	Radius 1
	Height 1
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB2 ABCD 4 
		loop
	Death:
		FGB2 I -1
		stop        
	}
}

ACTOR Fleshspawngib2B
{
	Speed 8
	Mass 100
	Radius 1
	Height 1
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB2 EFGH 4 
		loop
	Death:
		FGB2 J -1
		stop        
	}
}

ACTOR Fleshspawngib3
{
	Speed 8
	Mass 100
	Radius 1
	Height 1
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB3 ABCD 4 
		loop
	Death:
		FGB3 E -1
		stop        
	}
}

ACTOR Fleshspawngib4
{
	Speed 8
	Mass 100
	Radius 1
	Height 1
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB4 ABCD 4 
		loop
	Death:
		FGB4 I -1
		stop        
	}
}

ACTOR Fleshspawngib4B
{
	Speed 8
	Mass 100
	Radius 1
	Height 1
	Scale 0.8
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB4 EFGH 4 
		loop
	Death:
		FGB4 J -1
		stop        
	}
}

ACTOR Fleshspawngib5
{
	Speed 8
	Mass 100
	Radius 1
	Height 1
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB5 ABCD 4 
		loop
	Death:
		FGB5 E -1
		stop        
	}
}

ACTOR Fleshspawngib6
{
	Speed 0
	Mass 100
	Radius 1
	Height 1
	PROJECTILE
	-NOGRAVITY
	+DROPOFF
	States
	{
	Spawn:
		FGB6 A 4 
		loop
	Death:
		FGB6 BC 4
		FGB6 D -1
		stop        
	}
}

