ACTOR PenetratorMech
{
  
  //----------------------------COMPLEX DOOM COMPATIBILITY DROPS------------------------
  
  DropItem "WeaponUpgradeBox" 80
  DropItem "BossLifeEssence" 204 25
  DropItem "PerkGlobe", 128
DropItem "BossArmorBonusMax" 204 1
DropItem "Minigun " 255
DropItem "DemonEnergyLarge" 128 200
DropItem "SkullOfPower" 128
DropItem "DemonRune", 60
  
  Health 4000
  Radius 48
  Height 100
  Mass 1000
  Species "MaSSter"	
  Speed 10
  PainChance 20
  PainChance "Gluon", 0
  BloodType "MetalSurface"
  Monster
  +BOSS
  +FLOORCLIP
  +BOSSDEATH
  +NOBLOODDECALS
  +NORADIUSDMG
  +missilemore
  +missileevenmore
  minmissilechance 2
  Translation "128:151=96:111", "13:15=5:8"
  SeeSound "Balabol/See"
  PainSound ""
  DeathSound ""
  ActiveSound "Balabol/Active"
  Obituary "%o was penetrated by Perforator Mech. Oh shit, I am sorry, perforated by Penetrator Mech"
  scale 0.8
  States
  {
  Spawn:	
    JIME A 10 A_Look
    Loop
  See:
    JIME AA 3 A_Chase
	TNT1 A 0 A_PlaySound ("Step2")
	JIME BB 3 A_Chase
	JIME CC 3 A_Chase
	TNT1 A 0 A_PlaySound ("Step2")
	JIME DD 3 A_Chase
    Loop
  Missile:
    TNT1 A 0 A_JumpIfTargetInLos ("Suppress", 30, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP, 0, 1250)
	TNT1 A 0 A_JumpIfCloser (800, "FlakShells") 
    //JIME E 0 a_jump(192,"WalkAttack")
    JIME E 8 A_FaceTarget
    JIME E 0 a_playsound("JIGSAROT")
    JIME E 8 A_FaceTarget
    MissileLoop:
    JIME HI 1 A_FaceTarget   
    JIME F 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIME FG 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )        
    JIME E 1 A_SpidRefire   
    Goto MissileLoop
  WalkAttack:
    TNT1 A 0 A_Jump (50, "See") 
    JIG4 A 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 A 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIG4 ABA 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )   
    JIG4 CD 1 a_facetarget
    JIG4 A 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 A 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIG4 ABA 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )   
    JIG4 CD 1 a_facetarget 
    
	TNT1 A 0 A_Jump (50, "See") 
    JIG4 E 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 E 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -10, random (-4,4) )
    JIG4 EFE 4 bright A_CustomMissile ("ACTracer", 48, 10, random (-4,4) )   
    JIG4 GH 1 a_facetarget
    JIG4 E 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 E 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIG4 EFE 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )   
    JIG4 GH 1 a_facetarget
	
    TNT1 A 0 A_Jump (50, "See") 
    JIG4 I 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 I 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIG4 IJI 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )   
    JIG4 KL 1 a_facetarget
    JIG4 I 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 I 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIG4 IJI 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )   
    JIG4 KL 1 a_facetarget 
    
	TNT1 A 0 A_Jump (50, "See") 
    JIG4 M 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 M 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIG4 MNM 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )   
    JIG4 OP 1 a_facetarget
    JIG4 M 0 a_chase("","")
	TNT1 A 0 A_FaceTarget
    JIG4 M 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-4,4) )
    JIG4 MNM 4 bright A_CustomMissile ("ACTracer", 48, 45, random (-4,4) )   
    JIG4 OP 1 a_facetarget 
    Loop
  Suppress:
    JIME HI 10 A_FaceTarget
  SuppressLoop:
	JIME HI 5 A_FaceTarget	
    JIME F 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACTracer", 48, -45, random (-7,7) )
    JIME FG 2 bright A_CustomMissile ("ACTracer", 48, 45, random (-7,7) )        
    JIME E 1 A_SpidRefire
	Loop
  FlakShells:
    JIME HI 10 A_FaceTarget
  FlakShellsLoop:
	JIME HI 7 A_FaceTarget
    JIME F 0 bright A_PlaySound ("ACANO1", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ACFlakTracer", 48, -45, random (-10,0))
    JIME FG 1 bright A_CustomMissile ("ACFlakTracer", 48, 45, random (0,10))        
    JIME E 1 A_SpidRefire
	Loop
  Pain:
    JIME C 2
    JIME C 2 A_Pain
    Goto See
  Death:
    JIME J 5 
    JIME K 5 A_Scream
    JIME LM 5
	TNT1 A 0 A_SpawnItemEx ("BigTinCanExplosion", 0, 0, 0, 0, 0, 0)
	TNT1 AAAA 0 A_CustomMissile ("CrapMetal", random (-4,4), random (-4,4), random (-360,360), CMF_OffSetPitch | CMF_AIMDIRECTION, random (30,90))
    JIME N 0 A_SpawnItemEx("JigsawMechArm", 0, 0, 45,random(-3,3),random(-3,3), 5 + random(1,3))
    JIME N 5 BRIGHT
    JIME O 0 A_SpawnItemEx("JigsawMechLeg", 0, 0, 45,random(-3,3),random(-3,3), 5 + random(1,3))
    JIME O 5 BRIGHT A_NoBlocking    
    JIME PQ 5 BRIGHT
	JIME R 690 
    JIME R -1 A_BossDeath  
    Stop
  
  }
}


Actor ACTracer 
{
Projectile
Damage (5)
+FORCEXYBILLBOARD
+DONTSPLASH
+BLOODSPLATTER 
+EXTREMEDEATH
radius 2
height 2
speed 30
renderstyle Add
alpha 0.9
scale .45
 States
     {
	  Spawn:
	    TRAC A 1 Bright
		Loop
	  Death:
        TNT1 A 0
        TNT1 A 0 A_PlaySound("misc/boom",0)
        TNT1 A 0 A_PlaySound("misc/distanceboom",6,1.0,0,0)
        TNT1 A 0 A_Explode((25),115,0 ,0,40)
        TNT1 AAAAA 0 A_CustomMissile ("CSMiniMissileExplosionFlame", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 A 0 A_CustomMissile ("AssSmoke2", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 A 0 A_SpawnItemEx("CSMiniMissileShockwave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
        TNT1 A 1 Radius_Quake (2,4,0,7,0)
        TNT1 A 20
      stop	
	 }
  }



     Actor ACFlakTracer
		{
		Projectile
		Damage (5)
		+FORCEXYBILLBOARD
		+DONTSPLASH
		+BLOODSPLATTER 
		+EXTREMEDEATH
		radius 2
		height 2
		speed 30
		renderstyle Add
		alpha 0.9
		scale .45
		 States
			 {
			  Spawn:
				TRAC A 120 Bright
				Loop
			  Death:
				TNT1 A 0
				TNT1 A 0 A_PlaySound("misc/boom",0)
				TNT1 A 0 A_PlaySound("misc/distanceboom",6,1.0,0,0)
				TNT1 A 0 A_Explode((5),45,0 ,0,40)
	 
				//TNT1 A 0 A_SpawnItemEx ("FlakFragment", random (-4, 4), random (-4, 4), random (1, 4), random (5, 15), random (5, 15), random (5, 15))
				TNT1 AAAAA 0 A_CustomMissile ("CSMiniMissileExplosionFlame", 0, 0, random (0, 360), 2, random (0, 360))
				TNT1 A 0 A_CustomMissile ("AssSmoke2", 0, 0, random (0, 360), 2, random (0, 360))
				TNT1 AAAAAA 0 A_CustomMissile ("FlakFragment", random (0, 5), random (-8,8), random (-360,360), CMF_AIMDIRECTION | CMF_OFFSETPITCH, random (-25, 35))
				TNT1 A 0 A_SpawnItemEx("CSMiniMissileShockwave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
				TNT1 A 1 Radius_Quake (2,4,0,7,0)
				//TNT1 A 1 A_SpawnItemEx ("FlakFragment", random (-4, 4), random (-4, 4), random (1, 5), random (5, 15), random (5, 15), random (5, 15))
				//TNT1 A 1 A_SpawnItemEx ("FlakFragment", random (-4, 4), random (-4, 4), random (1, 5), random (5, 15), random (5, 15), random (5, 15))
				//TNT1 A 1 A_SpawnItemEx ("FlakFragment", random (-4, 4), random (-4, 4), random (1, 5), random (5, 15), random (5, 15), random (5, 15))
				//TNT1 A 1 A_SpawnItemEx ("FlakFragment", random (-4, 4), random (-4, 4), random (1, 5), random (5, 15), random (5, 15), random (5, 15))
				//TNT1 A 2
			  stop	
			 }
		  }
 

			actor FlakFragment
				{
				projectile
				+MISSILE
				+NOGRAVITY
				+BLOODSPLATTER
				+DONTHARMSPECIES
				Species "Master" 
				gravity 0.7
				radius 2
				height 2
				speed 18
				scale 0.69
				damage (1)
				bouncesound ""
				Obituary "%o couldn't see the bloody bombs"
				states
				{
				Spawn:
				TNT1 A 0	
				CLSB C 2 Bright
				TNT1 A 0 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
				CLSB D 2 Bright
				TNT1 A 0 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
				CLSB E 2 Bright
				TNT1 A 0 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
				CLSB F 2 Bright
				TNT1 A 0 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
				CLSB G 2 Bright
				TNT1 A 0 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
				CLSB H 2 Bright
				Death:   
			    TNT1 A 0
				TNT1 A 0 A_Explode((2),45,0 ,0,40)
				TNT1 A 0 A_CustomMissile ("AssSmoke2", 0, 0, random (0, 360), 2, random (0, 360))
				TNT1 A 0 A_SpawnItemEx ("FlakExplosion", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
				TNT1 A 0 A_SpawnItemEx("CSMiniMissileShockwave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
			   Stop
				}
			}
//----------------------------------------------CrapMetal---------------------------------------------
ACTOR JigsawMechArm
{
  +DROPOFF
  +CORPSE
  +NOTELEPORT
  States
  {
  Spawn:
    JIGI K 1 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    JIGI KLM 8    
    JIGI Z 0 A_SpawnItemEx("JigsawMechArmA", 0, 0, 45,random(-3,3),random(-3,3), 5 + random(1,3))
    JIGI Z 8 A_SpawnItemEx("JigsawMechArmB", 0, 0, 45,random(-3,3),random(-3,3), 5 + random(1,3))
    Stop
  }
}

ACTOR JigsawMechArmA
{
  +DROPOFF
  +CORPSE
  +NOTELEPORT
  States
  {
  Spawn:
    JIGI P 1 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    JIGI P 3
    Goto Spawn+3
  Crash:
    JIGI P 4
    JIGI P 4 a_checkfloor("boom")
    loop
    boom:
    JIGI Q 350 a_playsound("AXEFLOOR")
    Stop
  }
}
ACTOR JigsawMechArmB
{
  +DROPOFF
  +CORPSE
  +NOTELEPORT
  States
  {
  Spawn:
    JIGI N 1 A_SpawnItemEx("CSMiniMissileTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    JIGI N 3
    Goto Spawn+3
  Crash:
    JIGI N 4
    JIGI N 4 a_checkfloor("boom")
    loop
    boom:
    JIGI O 350 a_playsound("AXEFLOOR")
    Stop
  }
}



ACTOR JigsawMechLeg
{
  +DROPOFF
  +CORPSE
  +NOTELEPORT
  States
  {
  Spawn:
    JIGI A 1
    JIGI ABCDEFG 3
    Goto Spawn+3
  Crash:
    JIGI G 4
    JIGI G 4 a_checkfloor("boom")
    loop
    boom:
    JIGI HI 8
    JIGI J 350 a_playsound("AXEFLOOR")
    Stop
  }
}

