   Actor BlackOpsExplosiveChaingunner : GenericHumanScum 
       {
  
  //----------------------------COMPLEX DOOM COMPATIBILITY DROPS------------------------
  
  DropItem "WeaponUpgradeBox" 10
  DropItem "Minigun" 79
  	   
  scale 1.0
  obituary "%o was shot down and blown up high at the same time by the Black Ops Explosive Chaingunner"
  health 255
  radius 15
  height 54
  mass 100
  +BOSSDEATH
  speed 11
  Species "ARAC"
  +DONTHARMSPECIES 
  painchance 69
  SeeSound "HeavyGangstaAR/See"
  PainSound "GTS/pain"
  DeathSound "GTS/Death"
  ActiveSound "HeavyGangstaAR/Active"	
  Tag "Black ops Explosive Chaingunner"
  MONSTER
  +FLOORCLIP
  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.08,0.08))
	TNT1 A 0 A_SpawnItemEx ("HumanTrails", 0, 0, 0)
  Spawn2:
    BCHB A 10 A_Look
    loop
  STFU:
     TNT1 A 0
	 TNT1 A 0 ACS_NamedExecute ("STFUHeavyGangstaAR")
	 Goto Spawn+2	
  See:
    "####" A random(1,4)
    TNT1 A 0 A_Jump (70, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB")
	TNT1 A 0 A_Jump (180, "MissileCheck")
  SeeLoop:
	TNT1 A 0 A_Jump (199, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB")
    BCHB AABBCCDD 3 A_Chase 
    loop
  VanJump:
	 TNT1 A 0
	 TNT1 A 0  NODELAY ACS_NamedExecuteAlways ("VanillaHeights")
	Goto Spawn+3	
  DodgeLeft:
        TNT1 A 0 A_FaceTarget
	    BCHB 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))
	    BCHB 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))
	    BCHB 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
	    BCHB 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)) 
	    BCHB 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)) 
	    BCHB AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
  Evade:
	    TNT1 A 0
	    TNT1 A 0 A_StopSound (1)
 	    BCHB AABBCCDD 2 A_Wander
		TNT1 A 0 A_Jump (5, "MissileCheck")
		BCHB AABBCCDD 2 A_Wander
		TNT1 A 0 A_Jump (5, "MissileCheck")
		BCHB AABBCCDD 2 A_Wander
		TNT1 A 0 A_Jump (5, "MissileCheck")
		BCHB AABBCCDD 2 A_Wander
		TNT1 A 0 A_Jump (5, "MissileCheck")
		BCHB AABBCCDD 2 A_Wander
	   Goto MissileCheck
  AlphaBravo:
    TNT1 A 0 A_JumpIfInventory ("ShotCounter", 70, "Reload")
    BCHB A 2 A_FaceTarget
	TNT1 A 0 A_Chase ("", "MissileAmbush", CHF_DONTMOVE)
	BCHB A 2 A_FaceTarget
	TNT1 A 0 A_Chase ("", "MissileAmbush", CHF_DONTMOVE)
	BCHB A 2 A_FaceTarget
	TNT1 A 0 A_Chase ("", "MissileAmbush", CHF_DONTMOVE)
	TNT1 A 0 A_Jump (1, "SeeLoop")
   Loop
  MissileAmbush:
    BCHB EE 4 A_FaceTarget	   
  MissileCheck:
    TNT1 A 0 A_JumpIfTargetInLos ("Missile", 0, JLOSF_DEADNOJUMP)
	Goto SeeLoop
  Missile:
	TNT1 A 0 A_StopSound (4)
	TNT1 A 0 A_TakeInventory ("DodgeShotCounter", 30)
	TNT1 A 0 A_TakeInventory ("LongShotCounter", 15)
    BCHB E 15 A_FaceTarget
	TNT1 A 0 A_PlaySound ("CHNGNU1A", 1)
	TNT1 A 0 A_JumpIfTargetInLos ("CloseQuarters", 0, JLOSF_DEADNOJUMP, 500)
	TNT1 A 0 A_JumpIfTargetInLos ("LongRange", 0, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP, 0, 1000)
   MissileLoop:
	BCHB E 1 A_FaceTarget
	TNT1 A 0 A_Playsound ("PUMGUNF3", CHAN_WEAPON, 1.0)
	TNT1 A 0 A_PlaySound ("MNGFF", 6, 0.5, 0)
	TNT1 A 0 A_CustomMissile ("HFE_ExplMinigunTracer",32,11,random (-3,3), CMF_OFFSETPITCH, random (-4,4))
	BCHB F 1 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotCounter", 70, "Reload")
	TNT1 A 0 A_MonsterRefire (30, "MissileStop")
	Loop
  CloseQuarters:
	BCHB E 1 A_FaceTarget
	TNT1 A 0 A_Playsound ("PUMGUNF3", CHAN_WEAPON, 1.0)
	TNT1 A 0 A_PlaySound ("MNGFF", 6, 0.5, 0)
	TNT1 A 0 A_CustomMissile ("HFE_ExplMinigunTracer",32,11,random (-3,3), CMF_OFFSETPITCH, random (-4,4))
	BCHB F 1 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotCounter", 1)
	TNT1 A 0 A_GiveInventory ("DodgeShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("DodgeShotCounter", 30, "MissileEvasive")
	TNT1 A 0 A_JumpIfInventory ("ShotCounter", 70, "Reload")
	TNT1 A 0 A_MonsterRefire (30, "MissileStop")
   Loop
  MissileEvasive:
	BCHB E 1 A_FaceTarget
	TNT1 A 0 A_Playsound ("PUMGUNF3", CHAN_WEAPON, 1.0)
	TNT1 A 0 A_PlaySound ("MNGFF", 6, 0.5, 0)
	TNT1 A 0 A_CustomMissile ("HFE_ExplMinigunTracer",32,11,random (-3,3), CMF_OFFSETPITCH, random (-4,4))
	BCHB F 1 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotCounter", 70, "Reload")
    
	TNT1 A 0 A_JumpIfInTargetLos ("MissileStopEvade", 2, JLOSF_DEADNOJUMP, 1000)
	TNT1 A 0 A_MonsterRefire (30, "MissileStopEvade")
	Loop 
  MissileStop:
	TNT1 A 0
	TNT1 A 0 A_StopSound (1)
	TNT1 A 0 A_Playsound ("CHNGND1A")
	BCHB E 3
	Goto Seeloop
  MissileStopEvade:
	TNT1 A 0
	TNT1 A 0 A_StopSound (1)
	TNT1 A 0 A_Playsound ("CHNGND1A")
	BCHB E 3
	Goto Evade
   LongRange:
    BCHB E 30 A_FaceTarget
  LongRangeLoop:	
	TNT1 A 0 A_PlaySound ("PUMGUNF3", 1)
	TNT1 A 0 A_PlaySound ("MNGFF", 6, 0.5, 0)
	TNT1 A 0 A_CustomMissile ("HFE_ExplMinigunTracer",31,9,random (-1,1), CMF_OFFSETPITCH, random (-2,2))
	BCHB F 1 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotCounter", 1)
	TNT1 A 0 A_GiveInventory ("LongShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("LongShotCounter", 15, "PauseReAim")
	TNT1 A 0 A_JumpIfInventory ("ShotCounter", 70, "Reload")
    BCHB E 1 A_FaceTarget
	TNT1 A 0 A_MonsterRefire (20, "AlphaBravo")
	Loop
  PauseReAim:
    TNT1 A 0 A_TakeInventory ("LongShotCounter", 15)
    BCHB E 35 A_FaceTarget
	Goto MissileCheck
  Reload:
	TNT1 A 0 A_StopSound (1)
	BCHB C 12 
	TNT1 A 0 A_Playsound ("CHNGND1A")
    BCHB D 25 A_Playsound ("M60Open") 
	BCHB B 17 A_Playsound ("M60Load")
    TNT1 A 0 A_TakeInventory ("ShotCounter", 70)
	BCHB C 25 A_Playsound ("M60Clos")
	Goto SeeLoop+1
  Pain:
	TNT1 A 0
	TNT1 A 0 A_StopSound (1)
    BCHB H 3
    BCHB H 3 A_Pain
    goto SeeLoop+1
  Death:
  	//TNT1 A 0 A_Jump(20, "Suren")
	TNT1 A 0 A_StopSound (1)
    BCHB H 5 A_Scream
    BCHB I 5 A_NoBlocking
    BCHB JK 3 
    BCHB L 3 A_Playsound ("FallingBodyGear", CHAN_BODY)
	BCHB MN 3 
    BCHB O -1
    stop
  XDeath:
    TNT1 A 0 A_StopSound (1)
    TNT1 A 0 A_SpawnItemEx ("VgavnonahCore", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    BCHB P 1
    BCHB Q 1 A_XScream
    BCHB R 5 A_NoBlocking
    BCHB ST 5
    BCHB U -1
    Stop
  Raise:
    TNT1 A 0 
    TNT1 A 0 A_SpawnItemEx ("NanoResEffect", 0, 0, 15, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	BCHB ONMLKJiH 5
   Goto See	
  Idle:
    BCHB AA 4 A_Wander
    BCHB A 0 A_Look
    BCHB BB 4 A_Wander
    BCHB A 0 A_Look
    BCHB CC 4 A_Wander
    BCHB A 0 A_Look
    BCHB DD 4 A_Wander
    BCHB A 0 A_Look
    loop
	}
	      
  }
  
  
	
	
	Actor HFE_ExplMinigunTracer 
{
Projectile
Damage (6)
+FORCEXYBILLBOARD
+DONTSPLASH
+BLOODSPLATTER
+DOHARMSPECIES 
+NOEXTREMEDEATH
radius 2
height 2
speed 23
renderstyle Add
alpha 0.9
scale .27
 States
     {
	  Spawn:
	    TRAC A 1 Bright A_PlaySound ("Bullet/Fly", 0, 1.0, true)
		Loop
	  Death:
	    TNT1 A 0 A_PlaySound("MINIEX",0)
        TNT1 A 0 A_PlaySound("misc/distanceboom",6,0.5,0,0)
        TNT1 A 0 A_Explode((8),50,0 ,0,40)
        TNT1 AAAAA 0 A_CustomMissile ("ShotgunExplosionFlame", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItemEx ("IncShotgunSparxExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
        TNT1 A 0 A_CustomMissile ("ShotgunBoomSmoke", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 A 0 A_SpawnItemEx("ShotgunShockwave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
        TNT1 A 1 Radius_Quake (2,4,0,7,0)
        TNT1 A 20
		Stop		
	 }
}


