// Shadow -- by Vader

ACTOR Shadow 3126
{
  //$Title "Shadow"
  //$Category XV117Monsters
	Tag "Shadow"
	Health 80
	Radius 20
	Height 56
	Mass 100
	RenderStyle "Translucent"
	Alpha 0.7
	Speed 8
	PainChance 200
	DamageFactor "Fire", 3.0
	DamageFactor "Use", 0.0
	DamageFactor "Stealth", 0.0
	Monster
	+FLOORCLIP
	PainChance "Acid", 255
	PainChance "BEARTRAP", 255
	Painchance "Shock", 256
	Painchance "fire", 256
	Bloodtype "PlasmaSmoke"
	PainSound "Shadow/DEATH"
	DeathSound "Shadow/PAIN"
	ActiveSound "Shadow/active"
	Obituary "%o was assassinated by a shadow."
	MissileType ShadowBall
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteWithResult("RADARSIGNAL",0)
	See:
		SHDW A 15
		SHDW AAA 1 A_Chase
		SHDW A 0 A_SpawnItemEx("ShadowGhostA", 0, 0, 0, 0, 0, 0, 0, 128)
		SHDW BBB 1 A_Chase
		SHDW B 0 A_SpawnItemEx("ShadowGhostB", 0, 0, 0, 0, 0, 0, 0, 128)
		SHDW CCC 1 A_Chase
		SHDW C 0 A_SpawnItemEx("ShadowGhostC", 0, 0, 0, 0, 0, 0, 0, 128)
		SHDW DDD 1 A_Chase
		SHDW D 0 A_SpawnItemEx("ShadowGhostD", 0, 0, 0, 0, 0, 0, 0, 128)
		SHDW AAA 1 A_Chase
		SHDW A 0 A_SpawnItemEx("ShadowGhostA", 0, 0, 0, 0, 0, 0, 0, 128)
		SHDW BBB 1 A_Chase
		SHDW B 0 A_SpawnItemEx("ShadowGhostB", 0, 0, 0, 0, 0, 0, 0, 128)
		SHDW CCC 1 A_Chase
		SHDW C 0 A_SpawnItemEx("ShadowGhostC", 0, 0, 0, 0, 0, 0, 0, 128)
		SHDW DDD 1 A_Chase
		SHDW D 0 A_SpawnItemEx("ShadowGhostD", 0, 0, 0, 0, 0, 0, 0, 128)
		Goto See+1
	Missile:
		SHDW E 30 A_FaceTarget
		SHDW F 5 
		TNT1 A 0 a_checkproximity("Parried","Axeparry",80.0,1,CPXF_NOZ)
		SHDW G 5 BRIGHT A_MissileAttack
		SHDW F 5
		SHDW E 20
		TNT1 A 0 a_jump(50,"Hide")
		SHDW E 1 A_SpidRefire
		Goto Missile+1      
	
	Hide:
		SHDW AAAAAAAAAAA 1 A_Fadeout(0.05)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
		SHDW AAAAAAAAAAA 1 A_FadeIN(0.05)
		goto See
	
	Pain.Beartrap:
		TNT1 A 0 A_giveinventory("istrapped",1)
		TNT1 A 0 a_changeflag("NOPAIN",1)
		TNT1 A 0 a_changeflag("DONTHRUST",1)
		TNT1 A 0 a_spawnitem("beartraptriggered",0,0)
		SHDW H 3 a_scream
		TNT1 A 0 
	Trapped:
		SHDW A 35 
		TNT1 A 0 a_jump(160,2)
		SHDW H 3 a_scream
		TNT1 A 0 a_checkproximity("Trapped", "beartraptriggered", 50,1)
		TNT1 A 0 A_takeinventory("istrapped",1)
		TNT1 A 0 a_changeflag("NOPAIN",0)
		TNT1 A 0 a_changeflag("DONTHRUST",0)
		goto SEE
	
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,200,XF_NOTMISSILE | XF_EXPLICITDAMAGETYPE,0,200,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 givebody(100)
	goto pain.acid
	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)
		goto pain
	
	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",10)
		TNT1 A 0 A_givetotarget("usedstamina",30)
		TNT1 A 0 A_CustomMissile("KnockAttack",10,0,0,0)
		goto See
	Parry2:
		TNT1 A 0 A_CHANGEFLAG("NOPAIN",1)
		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)
		SHDW H 15
		SHDW H 15 A_Pain
	pain.fire:	
	PAIN.ACID:
		SHDW H 15
		SHDW H 15 A_Pain
	Pain:
		SHDW H 4
		SHDW H 4 A_Pain
		TNT1 A 0 A_JumpIfInventory ("shockcharge", 1, "Shocked")
		TNT1 A 0 A_CHANGEFLAG("NOPAIN",0)
		Goto Hide
	
	Shocked:
	TNT1 A 0 A_takeinventory("shockcharge",1)
	TNT1 A 0 A_spawnitem("plasmashock",0,20)
	TNT1 A 0 A_DamageSelf(2,"plasma")
	goto Pain
	
	
	 Death.Beartrap:
		TNT1 A 0 A_checkproximity("Death","beartrapTriggered",40,1)
		TNT1 A 0 a_spawnitem("beartrap",0,0)	
		GOTO DEATH
Death.ChainCut:
Death.ChainSaw:
		TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 20, random (-1, 1), random (-1, 1), 8)	
	Death:
	XDeath:
	death.RailgunBig:
		TNT1 AA 0 A_CustomMissile ("BigNeoSmoke", 10, 0, random (0, 360), 2, random (0, 360))
        TNT1 AA 0 A_CustomMissile ("ExplosionSmoke", 22, 0, random (0, 360), 2, random (0, 360))
		SHDX A 4 A_CustomMissile ("ExplosionSmokeFast22", 22, 0, random (0, 360), 2, random (0, 360))
		SHDX B 4 A_Scream
		SHDX C 3 A_CustomMissile ("ExplosionSmokeFast22", 16, 0, random (0, 360), 2, random (0, 360))
		SHDX D 3 A_Fall
 		SHDX E 3 A_CustomMissile ("ExplosionSmokeFast22", 8, 0, random (0, 360), 2, random (0, 360))
 		SHDX F 3 A_CustomMissile ("ExplosionSmokeFast22", 4, 0, random (0, 360), 2, random (0, 360))
		SHDX GGGGG 1 A_FadeOut(0.2)
		Stop
	Raise:
		SHDW M 8
		SHDW KLJI 8
		Goto See
	Burn:
		BURN A 3 Bright A_PlaySound("misc/burn", CHAN_AUTO)
		BURN B 3 Bright A_Scream
		BURN C 3 Bright A_PlaySound("misc/flame", CHAN_AUTO)
		BURN D 3 Bright A_NoBlocking
		BURN EFGHIJKLMNOP 3 Bright 
		BURN Q 3 Bright A_PlaySound("misc/bodyhit", CHAN_VOICE)
		BURN RSTU 3 Bright 		
		BURN V -1
		Stop
	}
}

ACTOR ShadowBall
{
	Radius 6
	Height 8
	Speed 12
	Damage 3
	Projectile
	+RANDOMIZE
	RenderStyle Add
	Alpha 0.75
	SeeSound "Shadow/attack"
	DeathSound "imp/shotx"
	Decal DoomImpScorch
	Damagetype "Plasma"
	States
	{
	Spawn: 
		SBAL ABC 4 BRIGHT A_SpawnItemEx("ShadowTrail", 0, 0, 0, 0, 0, 0, 0, 128)
		Loop
	Death:
		SBAL C 5 Bright
		SBAL DEFGH 4 BRIGHT
		Stop
	}
}

ACTOR ShadowGhostA
{
	Radius 4
	Height 8
	Speed 0
	Damage 0
	Mass 75
	RenderStyle "Translucent"
	Alpha 0.3
	PROJECTILE
	States
	{
	Spawn:
		TROX A 10
		Stop
	}
}

ACTOR ShadowGhostB : ShadowGhostA
{
	States
	{
	Spawn:
		SHDX B 10
		Stop
	}
}

ACTOR ShadowGhostC : ShadowGhostA
{
	States
	{
	Spawn:
		SHDX C 10
		Stop
	}
}

ACTOR ShadowGhostD : ShadowGhostA
{
	States
	{
	Spawn:
		SHDX D 10
		Stop
	}
}

ACTOR Shadowtorso
{
	Radius 12
	Height 15
	Speed 1
	Mass 5000
	RenderStyle "Translucent"
	alpha 0.7
	+Doombounce
      States
	{
	Spawn:
         SHDW QRS 5
         SHDW T 5 A_Fall
         SHDW U 5
         SHDW V -1
         Stop
	}
}

actor ShadowTrail
{
    Radius 1
    Height 1
    Speed 0
    PROJECTILE
    RENDERSTYLE ADD
    ALPHA 0.6
    +NOCLIP
    States
    {
    Spawn:
     SHTR ABCDEF 4 Bright
        Stop       
    }
}