      Actor IncendiaryShotgunner       
	  {
 	  
  //----------------------------COMPLEX DOOM COMPATIBILITY DROPS------------------------
  
  DropItem "WeaponUpgradeBox" 7	  
	  
  Health 225
  Radius 20
  Height 56
  Mass 100
  Speed 12
  PainChance 100
  Monster
  MinMissileChance 88
  +NODROPOFF
  MaxDropOffHeight 69
  Species "Knight"
  +DONTHARMSPECIES
  +FLOORCLIP
  SeeSound "IncendiaryShotgunner/See"
  PainSound "IncendiaryShotgunner/pain"
  DeathSound "IncendiaryShotgunner/death"
  ActiveSound "IncendiaryShotgunner/active"
  Tag "Incendiary Shotgunner"
  Obituary "%o didn't like the Incendiary Shotgunner's fireworks"
  DropItem "Shotgun", 4
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("STFUCheck") == 1, "STFU")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult ("VanJumpCheck") == 1, "VanJump")
	TNT1 A 0 A_SetScale (scaleX+frandom(-0.02, 0.02), scaleY+frandom(-0.04,0.04))
	TNT1 A 0 A_SpawnItemEx ("HumanTrails", 0, 0, 0)
  Spawn2:
    INSH A 10 A_Look
    Loop
  STFU:
     TNT1 A 0
	 TNT1 A 0 ACS_NamedExecute ("STFUIncendiaryShotgunner")
	 Goto Spawn+2
  VanJump:
	 TNT1 A 0
	 TNT1 A 0  NODELAY ACS_NamedExecuteAlways ("VanillaHeights")
	Goto Spawn+3	 
  See:
    "####" A random(1,5)
	 TNT1 A 0 A_Jump (70, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB")
	 TNT1 A 0 A_Jump (180, "MissileCheck")	
  SeeLoop:
    TNT1 A 0 A_CheckSight ("CheckReload")
    TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 8, "Reload")
	TNT1 A 0 A_Jump (199, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB")
    INSH AABBCCDD 3 A_Chase
    Loop
  CheckReload:
    TNT1 A 0 A_Jump (150, "CheckReload2")
 	Goto SeeLoop+1
  CheckReload2:
    TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 8, "Reload")
	Goto SeeLoop+1
  DodgeLeft:
        TNT1 A 0 A_FaceTarget
	    INSH AABBCCDD 2 ThrustThing(angle*256/360+192, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		TNT1 A 0 A_Jump (50, "DodgeRight")
		Goto SeeLoop+1
	DodgeLeftF:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil (random (-8,-3))
	    INSH AABBCCDD 2 ThrustThing(angle*256/360+192, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
    DodgeLeftB:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil (random (3,8))
	    INSH AABBCCDD 2 ThrustThing(angle*256/360+192, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
	DodgeRight:
	    TNT1 A 0 A_FaceTarget
	    INSH AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
	DodgeRightF:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil ( random (-8,-3)) 
	    INSH AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
	DodgeRightB:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil ( random (3,8)) 
	    INSH AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
  MissileCheck:
    TNT1 A 0 A_JumpIfTargetInLos ("Missile", 30, JLOSF_DEADNOJUMP)
	Goto SeeLoop	
  Missile:
    TNT1 A 0 A_JumpIfInventory ("ShotgunShoTCounter", 8, "Reload") 
    INSH E 10 A_FaceTarget
	TNT1 A 0 A_JumpIfTargetInLos ("Accuracy", 0, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP, 0, 1200)
	TNT1 A 0 A_PlaySound ("BSHFR")
	TNT1 A 0 A_PlaySound ("BSHFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("IncendiaryShotgunTracer", 32, 4, random (-3,3))
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
    INSH F 7 Bright 
    INSH E 5
    Goto SeeLoop
  Accuracy:
	TNT1 A 0 A_JumpIfInventory ("ShotgunShoTCounter", 8, "Reload") 
    INSH E 12 A_FaceTarget
	TNT1 A 0 A_PlaySound ("BSHFR")
	TNT1 A 0 A_PlaySound ("BSHFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("IncendiaryShotgunTracer", 32, 4, random (-1,1))
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
    INSH F 6 Bright
	TNT1 A 0 A_JumpIfInTargetLos ("SeeLoop", 45, JLOSF_DEADNOJUMP) 
    INSH E 3 A_MonsterRefire (1, "MissileCheck")
   Loop
  Reload:
    INSH DE 5 A_PlaySound ("SHOTLOD")
	INSH DE 5 A_PlaySound ("SHOTLOD")
	INSH DE 5 A_PlaySound ("SHOTLOD")
	INSH DE 5 A_PlaySound ("SHOTLOD")
	TNT1 A 0 A_TakeInventory ("ShotgunShotCounter", 8)
	INSH DE 5 A_PlaySound ("SHOTLOD")
	INSH DE 5 A_PlaySound ("SHOTLOD")
	INSH DE 5 A_PlaySound ("SHOTLOD")
	INSH DE 5 A_PlaySound ("SHOTLOD")
	TNT1 A 0 A_PlaySound ("SHOTPUMP") 
	Goto SeeLoop
  Pain:
    INSH G 3
    INSH G 3 A_Pain
    Goto SeeLoop
  Death:
    INSH H 5
    INSH I 5 A_Scream
    INSH J 5 A_NoBlocking
    INSH K 5 A_Playsound ("FallingBodyGear", CHAN_BODY)
    INSH L -1
    Stop
  XDeath:
    INSH M 2
    INSH N 1 A_SpawnItemEx ("VgavnonahCore", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	INSH O 5 A_XScream
	INSH P 5 A_NoBlocking
	INSH RST 3
	INSH U -1
	Stop
  Raise:
    TNT1 A 0 
	TNT1 A 0 A_SpawnItemEx ("NanoResEffect", 0, 0, 15, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    INSH L 5
    INSH KJIH 5
    Goto See
     }

}




	Actor IncendiaryShotgunTracer 
{
Projectile
Damage (2)
+FORCEXYBILLBOARD
+DONTSPLASH
+BLOODSPLATTER
+DONTHARMSPECIES 
+NOEXTREMEDEATH
DamageType Fire
radius 2
Species "KNIGHT"
height 2
speed 20
renderstyle Add
alpha 0.9
scale .15
 States
     {
	  Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("IncRoundFlare", 5, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunTrail", 0, random (-5,-3), 0, random (-1,1), random (-1,1), random (-2,2), 180, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunSparxBurst", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_Explode ((2), 20)
	    TRAC A 3 Bright A_PlaySound ("Bullet/Fly", 0, 1.0, true)
		Loop
	  Death:
		TNT1 A 0
		TNT1 A 0 A_Playsound ("FWOOSH")
	    TNT1 A 0 A_Playsound ("Bullet/Impact")
		TNT1 A 0 A_Jump (100, "D2")
		TNT1 A 0 A_SpawnItemEx ("IncShotgunExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunFlame", 0, 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunSparxExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		FX57 CDEFGHI 1 BRIGHT
		Stop
	  D2:
		TNT1 A 0	
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("IncShotgunExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunFlame", 0, 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunSparxExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)	
	    FX58 CDEFGHI 1 BRIGHT
		Stop
	  XDeath:
		TNT1 A 0
		TNT1 A 0 A_Playsound ("FWOOSH")
		TNT1 A 0 A_SpawnItemEx ("IncShotgunExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunFlame", 0, 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_SpawnItemEx ("IncShotgunSparxExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 1
		Stop		
	 }
}	


		Actor IncShotgunSparxBurst  
			      {
			   +NOINTERACTION
			   +CLIENTSIDEONLY
			   +THRUACTORS	
			   Scale 0.17
			   Speed 0
			   RenderStyle Add
			      States
				       {
				        Spawn: 
						    SPKS JKL 1 BRIGHT
							SPKS MNO 1 BRIGHT A_FadeOut (0.2)
						  Stop	
					   }
				}


		Actor IncShotgunSparxExplosion  
			      {
			   +NOINTERACTION
			   +CLIENTSIDEONLY
			   +THRUACTORS	
			   Scale 0.21
			   Speed 0
			   RenderStyle Add
			      States
				       {
				        Spawn: 
						    SPKS ABCDEF 1 BRIGHT
							SPKS GHI 1 BRIGHT A_FadeOut (0.2)
						  Stop	
					   }
				}

		Actor IncShotgunExplosion 
				{
			   +NOINTERACTION
			   +CLIENTSIDEONLY
			   +THRUACTORS
				RenderStyle Add	
				Scale 0.3
				 States
					{
					Spawn:	
					    FIR3 ABCDEFGHIJKLMNOP 1 BRIGHT
					   Stop
					}
                }


		Actor IncShotgunTrail 
				{
			   +NOINTERACTION
			   +CLIENTSIDEONLY
			   +THRUACTORS
				Speed 1
				RenderStyle Add	
				Scale 0.05
				 States
					{
					Spawn:	
					    CFIR ABCDEF 1 BRIGHT 
						CFIR GHIJKL 1 BRIGHT A_FadeOut (0.2)
					   Stop
					}
                }


		Actor IncShotgunFlame
			{
				//Projectile
				DamageType Fire
				//Damage (1)
				Radius 1
				Height 1
				RenderStyle Add
				Gravity 1.0
				//+Ripper
				-NOGRAVITY
				+NOBLOCKMAP
				+NOTELEPORT
				+DONTHARMSPECIES
				+NODAMAGETHRUST
				+DONTSPLASH
				+FLOORCLIP
				BounceCount 69
				BounceFactor 0
			    +THRUACTORS
				//+DOOMBOUNCE
				Reactiontime 6
				Speed 2
				States
				  {
				 Spawn:
					 TNT1 A 0	
					 TNT1 A 0 A_Playsound ("FIRESML", 6, 1.0, true)
					 TNT1 A 0 A_CustomMissile ("FlameSmoke", random(5, 10), 0, random (0, 360), CMF_AIMOFFSET, random (75, 175))  	
					 FLME A 1 BRIGHT A_SetScale(0.3)
					 FLME A 1 BRIGHT A_SetScale(0.4)
					 FLME B 1 BRIGHT A_SetScale(0.5)
					 FLME B 1 BRIGHT A_SetScale(0.6)
					 FLME C 1 BRIGHT A_SetScale(0.7)
					 FLME C 1 BRIGHT A_SetScale(0.8)
					 FLME D 1 BRIGHT A_SetScale(0.9)
					 FLME D 1 BRIGHT A_SetScale(1.0)
					 TNT1 A 0 A_Explode((3), 76, 0)
					 TNT1 A 0 A_Jump (100, 1)  	
					 TNT1 A 0 A_SetScale (-1.0, 1.0)
				 Spawn2:
					 TNT1 A 0  
					 TNT1 A 0 A_CustomMissile ("FlameSmoke", random(10, 15), 0, random (0, 360), CMF_AIMOFFSET, random (75, 175))
					 TNT1 A 0 A_Explode((5), 76, 0) 
					 FLME ABCDEFGHIJKLMN 1 Bright
					 TNT1 A 0 A_CountDown
					 //TNT1 A 0 A_GiveInventory ("FireCounter", 1)
					 //TNT1 A 0 A_JumpIfInventory ("FireCounter", 500, "Death")
					 Loop
				Death:
					TNT1 A 0 A_CustomMissile ("FlameSmoke", random(5, 10), 0, random (0, 360), CMF_AIMOFFSET, random (75, 175)) 	 
					FLME ABCDEFGHIJ 2 BRIGHT A_Explode((2), 16, 0)
					FLME K 1 BRIGHT A_SetScale(0.8)
					FLME K 1 BRIGHT A_FadeOut(0.2)
					TNT1 A 0 A_Explode((2), 8, 0)	
					FLME L 1 BRIGHT A_SetScale(0.4)
					FLME L 1 BRIGHT  A_FadeOut(0.3)
					TNT1 A 0 A_Explode((2), 8, 0)	
					FLME M 1 BRIGHT  A_SetScale(0.2)
					FLME M 1 BRIGHT  A_FadeOut(0.4)
					TNT1 A 0 A_Explode((2), 8, 0)	
					FLME N 1 BRIGHT  A_SetScale(0.1)
					FLME N 1 BRIGHT  A_FadeOut(0.5)
					TNT1 A 0 A_StopSound (6)
					Stop
					 }
			}			
			