/////////////////
//  MET DADDY  //						& Son
/////////////////

actor MetCatcherBody
{
Radius 78
Height 128
-SOLID
+SHOOTABLE
+NOBLOOD
+FORCEYBILLBOARD
//+CANPASS
+INVULNERABLE
+SLIDESONWALLS
Health 1000
scale 2.5
damagefactor "Met", 0.0
damagefactor "Misc", 0.0
damagefactor "Buster", 0.16
damagefactor "DustCrusher", 0.7
damagefactor "ThunderClaw", 0.6
damagefactor "DustCrusherBit", 0.7
damagefactor "ScrewCrusher", 0.8
damagetype "Met"
species "Met"
Obituary "%o was caught by the \cgMet Catcher\c-."
+THRUSPECIES
mass 99999
gravity 1.0
+FLOAT
floatspeed 0
speed 0
//+NOGRAVITY
states
{
	Spawn:
	MCAT A 0 A_Jump(256, "Look")
	SpawnWait:
	MCAT A 1 A_JumpIf(z==0, "IntroLand")
	loop
	IntroLand:
	MCAT I 0 A_PlaySoundEx("misc/bigstomp", "Voice",0,1)
	MCAT I 0 A_Quake(6, 5, 0, 2500)
	MCAT IIIIIIIIIIIIIIIII 0 A_SpawnItemEx("CatcherJunkBigFX", random(32,100), 0, 0, random(5,20), 0, random(5,15), random(0,360)) 
	MCAT A -1
	loop
	Intro:
	MCAT A 20 ACS_ExecuteAlways(5, 0, 46, 2)
	MCAT BC 4
	MCAT D 50
	MCAT EDEDEDEDEDEDEDDEDEDE 1
	MCAT D 10
	MCAT FGHIJ 2
	MCAT K -1
	Look:
	MCAT L 0 A_ChangeFlag("INVULNERABLE", 0)
	MCAT LM 6 A_LookEx(0,0,0,0,360, "See")
	See:
	MCAT LM 6
	MCAT L 0 A_JumpIf(z < 256, "Rise")
	loop
	Rise:
	MCAT I 0 A_PlaySoundEx("misc/catchermove", "SoundSlot6",1,1)
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 4)
	MCAT L 0 A_SetGravity(0.0)
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(0.0,0.0,4.0,CVF_REPLACE)
	MCAT LLLLLMMMMMM 1 A_JumpIf(z >= 280, "ChaseSeek")
	loop
	ChaseSeek:
	MCAT L 1 A_LookEx(0,0,0,0,360, "ChaseStart")
	loop
	ChaseStart:
	MCAT L 0 A_JumpIfInventory("MetalBladeAmmo",3,"Phase2Chase")
	MCAT L 0 A_StopSoundEx("SoundSlot6")
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 0)
	MCAT L 0 A_Stop
	Chase:
	MCAT L 0 A_JumpIfInventory("MetalBladeAmmo",1,"FetchDad")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 0 A_JumpIf(ACS_ExecuteWithResult(5, 44)==1, "Catch")
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_GiveInventory("AtomicFireAmmo",1)
	MCAT L 0 A_JumpIfInventory("AtomicFireAmmo",7,"PickMove")
	loop
	PickMove:
	MCAT K 0 A_Jump(180, "Bullets","WhamoJammo")
	Charge:
	MCAT L 0 A_JumpIfInventory("MetalBladeAmmo",1,"FetchDad")
	MCAT K 0 A_Stop
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 1)
	MCAT KKKIHI 4
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 2)
	MCAT I 0 A_PlaySoundEx("misc/gutsgboost", "SoundSlot6",0,1)
	Charging:
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(18.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLMMM 1 A_JumpIf(ACS_ExecuteWithResult(5, 44)==1, "Catch")
	loop
	Bullets:
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_PlaySoundEx("misc/devilfire", "Voice", 0, 1)
	MCAT L 1 A_CustomMissile("MetCatcherShot", 32, 64, -25, 0, 0)
	MCAT L 1 A_CustomMissile("MetCatcherShot", 32, 64, -32, 0, 0)
	MCAT L 0 A_PlaySoundEx("misc/devilfire", "Voice", 0, 1)
	MCAT L 1 A_CustomMissile("MetCatcherShot", 32, 64, -37, 0, 0)
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 0 A_JumpIf(ACS_ExecuteWithResult(5, 44)==1, "Catch")
	MCAT LLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_PlaySoundEx("misc/devilfire", "Voice", 0, 1)
	MCAT L 1 A_CustomMissile("MetCatcherShot", 32, -64, 25, 0, 0)
	MCAT L 1 A_CustomMissile("MetCatcherShot", 32, -64, 32, 0, 0)
	MCAT L 0 A_PlaySoundEx("misc/devilfire", "Voice", 0, 1)
	MCAT L 1 A_CustomMissile("MetCatcherShot", 32, -64, 37, 0, 0)
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 0 A_JumpIf(ACS_ExecuteWithResult(5, 44)==1, "Catch")
	MCAT LLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_TakeInventory("AtomicFireAmmo",2)
	MCAT L 0 A_JumpIfInventory("AtomicFireAmmo",1,"Bullets")
	MCAT L 0 A_TakeInventory("AtomicFireAmmo",2)
	Goto Charge
	WhamoJammo:
	MCAT K 0 A_Stop
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 1)
	MCAT KKKIHI 4
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 0)
	WhamoFall:
	MCAT I 0 A_StopSoundEx("SoundSlot6")
	MCAT L 0 A_JumpIfInventory("MetalBladeAmmo",1,"FetchDad")
	MCAT A 0 A_PlaySoundEx("misc/catcherdrop", "Voice", 0, 1)
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(8.0,0.0,velz,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 0 A_SetGravity(1.0)
	WhamoFalling:
	MCAT I 1 A_JumpIf(z < 10, "WhamoLand")
	loop
	WhamoLand:
	MCAT I 0 A_PlaySoundEx("misc/bigstomp", "Voice",0,1)
	MCAT I 0 A_Quake(6, 5, 0, 2500)
	MCAT IIIIIIIIIIIIIIIII 0 A_SpawnItemEx("CatcherJunkBigFX", random(32,100), 0, 0, random(5,20), 0, random(5,15), random(0,360)) 
	MCAT I 0 A_FaceTarget
	MCAT I 0 A_GiveInventory("AirShooterAmmo",1)
	MCAT I 0 A_JumpIfInventory("AirShooterAmmo",4,"TryCatch")
	MCAT I 0 A_Stop
	MCAT L 0 A_Explode(10,170,XF_NOTMISSILE,0,10)
	WhamoRise:
	MCAT I 0 A_PlaySoundEx("misc/catchermove", "SoundSlot6",1,1)
	MCAT L 0 A_SetGravity(0.0)
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_JumpIf(z >= 280, "WhamoFall")
	MCAT M 1 A_ChangeVelocity(13.0,0.0,8.0,CVF_REPLACE|CVF_RELATIVE)
	loop
	Catch:
	MCAT A 0 A_PlaySoundEx("misc/catcherdrop", "Voice", 0, 1)
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 2)
	MCAT L 0 A_SetGravity(1.5)
	CatchLoop:
	MCAT I 1 A_JumpIf(z < 40, "TryCatch")
	loop
	TryCatch:
	MCAT I 0 A_TakeInventory("AirShooterAmmo",999)
	MCAT I 0 A_TakeInventory("AtomicFireAmmo",999)
	MCAT L 0 A_SetGravity(0.0)
	MCAT L 0 A_Stop
	MCAT I 0 ACS_ExecuteAlways(5, 0, 45)
	Miss:
	MCAT I 0 A_PlaySoundEx("misc/powerland", "Voice",0,1)
	MCAT I 0 A_Quake(4, 5, 0, 2500)
	MCAT IIIIIIIIIIIIIIIII 0 A_SpawnItemEx("CatcherJunkBigFX", random(32,100), 0, 0, random(5,20), 0, random(5,15), random(0,360)) 
	MCAT I 1 ACS_ExecuteAlways(5, 0, 46, 3)
	MCAT L 0 A_JumpIfInventory("MetalBladeAmmo",1,"CatchSpawn")
	MCAT K 50
	Goto CatchSpawn
	CatchSpawn:
	MCAT K 0 A_GiveInventory("CutterFlag",1)
	MCAT K 0 A_SpawnItemEx("CatcherJunkDragFX")
	MCAT L 0 A_JumpIfInventory("MetalBladeAmmo",3,"Junk")
	MCAT K 0 A_JumpIfInventory("CutterFlag", 3, "MetBlock")
	MCAT K 0 A_JumpIfInventory("CutterFlag", 2, "Junk")
	MCAT K 0 A_JumpIfInventory("CutterFlag", 1, "Met")
	Met:
	MCAT K 0 A_SpawnItemEx("MetCatcherMetGrabbed",0,0,0,0,0,0,0,0)
	Goto Rise
	Junk:
	MCAT K 0 A_SpawnItemEx("JunkBlockGrabbed",0,0,0,0,0,0,0,0)
	Goto Rise
	MetBlock:
	MCAT K 0 A_SpawnItemEx("MetBlockGrabbed",0,0,0,0,0,0,0,0)
	MCAT K 0 A_TakeInventory("CutterFlag",2)
	Goto Rise
	CatchPlayer:
	MCAT I 0 A_PlaySoundEx("misc/powerland", "Voice",0,1)
	MCAT I 0 A_PlaySoundEx("misc/catchermove", "SoundSlot6",1,1)
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 3)
	CatchingPlaer:
	MCAT L 0 A_ChangeFlag("INVULNERABLE",1)
	MCAT L 0 A_Explode(4,500,XF_NOTMISSILE,0,4)
	MCAT L 0 A_SetGravity(0.0)
	MCAT L 0 A_ChangeVelocity(0.0,0.0,4.0,CVF_REPLACE)
	MCAT LLLLLMMMMMM 1 A_JumpIf(z >= 280, "CatchPlayerEnd")
	loop
	CatchPlayerEnd:
	MCAT L 0 A_ChangeFlag("INVULNERABLE",0)
	MCAT L 0 A_StopSoundEx("SoundSlot6")
	MCAT L 0 A_Stop
	MCAT LMLMLMLM 6
	Goto ChaseStart
	
	FetchDad:
	MCAT A 0 A_Stop
	MCAT L 0 A_GiveInventory("MetalBladeAmmo",1)
	FetchingDad:
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	loop
	DadGrab:
	MCAT A 0 A_Stop
	MCAT A 0 A_PlaySoundEx("misc/catcherdrop", "Voice", 0, 1)
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 2)
	MCAT L 0 A_SetGravity(1.5)
	GrabDadLoop:
	MCAT I 1 A_JumpIf(z < 40, "GrabbedDad")
	loop
	GrabbedDad:
	MCAT I 0 A_PlaySoundEx("misc/powerland", "Voice",0,1)
	MCAT I 0 A_Quake(4, 5, 0, 2500)
	MCAT IIIIIIIIIIIIIIIII 0 A_SpawnItemEx("CatcherJunkBigFX", random(32,100), 0, 0, random(5,20), 0, random(5,15), random(0,360)) 
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 2)
	MCAT K 70
	MCAT K 0 A_FaceTarget
	MDAD A 0 A_PlaySoundEx("misc/hugequake2", "SoundSlot7",0,1)
	MCAT I 0 A_Quake(4, 25, 0, 2500)
	MCAT M 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT M 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT K 70 A_Stop
	MDAD A 0 A_PlaySoundEx("misc/hugequake2", "SoundSlot7",0,1)
	MCAT I 0 A_Quake(6, 25, 0, 2500)
	MCAT K 0 A_FaceTarget
	MCAT L 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT L 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT K 70 A_Stop
	MDAD A 0 A_PlaySoundEx("misc/hugequake2", "SoundSlot7",0,1)
	MCAT I 0 A_Quake(9, 25, 0, 2500)
	MCAT K 0 A_FaceTarget
	MCAT I 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 2 A_ChangeVelocity(-3.0,0,0,CVF_REPLACE|CVF_RELATIVE)
	MCAT I 0 A_Stop
	MCAT I 0 A_SetGravity(0.0)
	MCAT N 0 A_SpawnItemEx("MetDaddyWarper")
	MCAT I 0 A_Quake(9, 25, 0, 2500)
	MCAT N 0 A_SpawnItemEx("MetDaddyRiseFX")
	MDAD A 0 A_PlaySoundEx("weapon/junkend", "SoundSlot7",0,1)
	TNT1 A 0 A_SpawnItemEx("SmallHealth", 0, 0, 32, 0, 0, 15, 0) 
//	TNT1 A 0 A_SpawnItemEx("SmallHealth", 0, 0, 32, 0, -10, 15, 0) 
	MCAT N 10 ThrustThingZ(0, 40, 0, 1)
	MCAT N 30 A_Stop
	MCAT I 0 A_Quake(9, 25, 0, 2500)
	MCAT N 0 A_SpawnItemEx("MetDaddyRiseFX")
	MDAD A 0 A_PlaySoundEx("weapon/junkend", "SoundSlot7",0,1)
	MCAT N 10 ThrustThingZ(0, 40, 0, 1)
	MCAT N 30 A_Stop
	MCAT I 0 A_Quake(9, 25, 0, 2500)
	MCAT N 0 A_SpawnItemEx("MetDaddyRiseFX")
	MDAD A 0 A_PlaySoundEx("weapon/junkend", "SoundSlot7",0,1)
	MCAT N 15 ThrustThingZ(0, 40, 0, 1)
	MCAT N 30 A_Stop
	MCAT N 0 A_GiveInventory("MetalBladeAmmo", 1)
	MCAT H -1
	loop
	
	Phase2Chase:
	MCAT N 0 A_ChangeFlag("INVULNERABLE",0)
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 0)
	MCAT L 0 A_StopSoundEx("SoundSlot6")
	Phase2Chasing:
	MCAT L 0 A_JumpIfInventory("CrashBombAmmo",1,"Stunned")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_JumpIfInventory("CrashBombAmmo",1,"Stunned")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_JumpIfInventory("CrashBombAmmo",1,"Stunned")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_JumpIfInventory("CrashBombAmmo",1,"Stunned")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_JumpIfInventory("CrashBombAmmo",1,"Stunned")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_JumpIfInventory("CrashBombAmmo",1,"Stunned")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	Phase2Loop:
	MCAT L 0 A_JumpIfInventory("CrashBombAmmo",1,"Stunned")
	MCAT L 0 A_FaceTarget
	MCAT L 0 A_ChangeVelocity(6.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)
	MCAT LLLLLMMMMMM 1 A_Chase("","",0)
	MCAT L 0 A_JumpIf(ACS_ExecuteWithResult(5, 44)==1, "Catch")
	MCAT L 0 A_JumpIfInventory("MetalBladeAmmo",1,"Phase2Loop")
	Goto Chase
	Stunned:
	MCAT N 0 A_Stop
	MCAT N 0 A_ChangeFlag("INVULNERABLE",1)
	MCAT N 4 A_SpawnItemEx("SparkleFX", random(-70,70), random(-70,70), random(-65,-75))
	loop
	Death:
	MCAT U 0 A_FaceTarget
	MCAT U 0 Thing_ChangeTID(0,1101)
	MDAD A 0 A_PlaySoundEx("misc/devildeath", "Body",0,1)
	MDAD A 0 A_SpawnItemEx("FakeDeathFX",0,0,128)
	MCAT U 0 A_Stop
	MCAT U 0 A_SetGravity(0.0)
	MCAT U 0 A_SpawnItemEx("MetCatcherPilot",0,0,148,20,0,0,15)
	MCAT UUUUUUUUUUU 0 A_SpawnItemEx("GlassShardFX",0,0,148,random(10,20),0,random(-10,10), random(0,360))
	DeathRise:
	MCAT L 0 A_ChangeVelocity(0.0,0.0,4.0,CVF_REPLACE)
	MCAT U 1 A_JumpIf(z >= 280, "Dead")
	loop
	Dead:
	MCAT L 0 ACS_ExecuteAlways(5, 0, 46, 5)
	MCAT U 0 //Thing_ChangeTID(1101,0)
	MCAT L 0 A_StopSoundEx("SoundSlot6")
	MCAT U -1 A_Stop
	stop
}
}

actor MetCatcherPilot 
{
+MISSILE
+BOUNCEONWALLS
scale 2.5
+THRUACTORS
states
{
	Spawn:
	MCAT V -1
	loop
	Death:
	MMFX B 0 A_Fall
	MMFX B 0 A_PlaySound("misc/metdie")
	MMFX FGHI 3 A_Stop
	stop
}
}

actor MetDaddyRiseFX
{
+NOCLIP
+THRUACTORS
-SOLID
gravity 99.0
renderstyle none
states
{
Spawn:
TNT1 A 1
TNT1 A 0 A_JumpIf(z!=floorz, "Spawn")
MCAT IIIIIIIIIIIIIIIIIIIIIIIIIII 0 A_SpawnItemEx("CatcherJunkBigFX", random(32,300), 0, 0, random(5,20), 0, random(5,15), random(0,360))
stop
}
}

actor MetDaddyWarper
{
-SOLID
+MISSILE
+NOINTERACTION
Height 32
Radius 32
scale 4.5
+INVULNERABLE
states
{
Spawn:
TNT1 A 1 //A_Jump(256, "Look")
Grabbed:
MDAD A 1 A_Warp(AAPTR_TARGET, 0,0, -200, 0 , WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
MDAT A 0 A_JumpIfInTargetInventory("MetalBladeAmmo", 3, "Death")
loop
Death:
TNT1 A 0 A_SpawnItemEx("MetDaddy")
stop
}
}

actor MetDaddy
{
-SOLID
species "Met"
damagetype "Met"
damagefactor "Misc", 0.0
damagefactor "Met", 0.0
damagefactor "Buster", 0.5
damagefactor "DustCrusher", 0.85
damagefactor "DustCrusherBit", 0.85
damagefactor "ThunderClaw", 0.85
damagefactor "ScrewCrusher", 0.65
Health 1000
+SHOOTABLE
+NOBLOOD
+INVULNERABLE
+THRUSPECIES
+SLIDESONWALLS
Obituary "%o was crushed by the \ciMet Daddy\c-."
height 128
radius 128
scale 4.5
mass 9999999
states
{
	Spawn:
	MDAD A 0 A_Jump(256,"Look")
	SpawnLoop:
	MDAD A 0 Thing_ChangeTID(0,1105)
	MDAD A 1 A_JumpIf(floorz==z, "SpawnLand")
	loop
	SpawnLand:
	//MDAD A 0 A_PlaySoundEx("misc/hugequake", "SoundSlot7",0,1)
	MDAD D 0 A_Explode(35, 250, XF_NOTMISSILE, 0, 35)
	MDAD D 0 ACS_ExecuteAlways(5,0,10)
	MDAD D 0 ACS_ExecuteAlways(5,0,50)
	MCAT I 0 A_SpawnItemEx("MetDaddyRiseFX")
	MDAD A -1
	stop
	Look:
	MDAD A 1 A_LookEx(0,0,0,0,360,"See")
	loop
	See:
	MDAD A 35
	MDAD ABCD 4 A_FaceTarget(45)
	MDAD A 0 A_ChangeFlag("INVULNERABLE",0)
	MDAD DDDDDDDD 4 A_FaceTarget(45)
	MDAD D 0 A_JumpIfInventory("AtomicFireAmmo", 2, "HyperJump")
	Jump:
	MDAD D 0 A_FaceTarget
	MDAD D 0 A_StopSoundEx("SoundSlot7")
	MDAD D 0 A_SpawnItemEx("MetDaddyJumpFog")
	MDAD D 0 ThrustThingZ(0,80,0,0)
	MDAD D 10 A_Recoil(-10)
	Falling:
	MDAD E 1 A_JumpIf(floorz-z==0,"Land")
	loop
	Land:
	MCAT I 0 A_SpawnItemEx("MetDaddyRiseFX")
	MDAD D 0 A_Stop
	MDAD D 0 A_Explode(35, 300, XF_NOTMISSILE, 0, 35)
	MDAD D 0 ACS_ExecuteAlways(5,0,10)
	MDAD D 0 A_FaceTarget
	MDAD D 0 A_SpawnItemEx("MetSpawner",256,128,0)
	MDAD D 0 A_SpawnItemEx("MetSpawner",256,-128,0)
	MDAD D 0 A_SpawnItemEx("MetSpawner",128,256,0)
	MDAD D 0 A_SpawnItemEx("MetSpawner",128,-256,0)
	MDAD GFGFGFEFEFE 3 
	Hide:
	MDAD A 0 A_GiveInventory("AtomicFireAmmo",1)
	Hide2:
	MDAD A 0 A_ChangeFlag("INVULNERABLE",1)
	MDAD D 10
	MDAD CB 4 
	MDAD A 120
	Goto Look
	HyperJump:
	MDAD D 0 A_PlaySoundEx("weapon/watershieldburst", "SoundSlot7", 0, 1)
	MDAD D 0 A_SpawnItemEx("MetDaddyJumpFog")
	MDAD D 0 ThrustThingZ(0,100,0,0)
	MDAD D 0 A_FaceTarget
	MDAD EEEEEEEEEEE 2 A_SpawnItemEx("MetDaddyAfterImage",-1)
	MDAD D 0 A_Setgravity(0.0)
	MDAD D 35 A_Stop
	MDAD D 0 ThrustThingZ(0, 300, 1, 1)
	HyperFall:
	MDAD D 0 A_FaceTarget
	MDAD D 0 A_SetGravity(1.0)
	MDAD D 0 A_SpawnItemEx("MetDaddyAfterImage",-1)
	MDAD D 1 A_JumpIf(floorz==z, "HyperLand")
	loop
	HyperLand:
	MCAT I 0 A_JumpIf(CallACS("TC_IsNetworkGame")==1, "HyperLandCoop")
	MCAT I 0 A_SpawnItemEx("MetDaddyRiseFX")
	MDAD D 0 A_Explode(90, 300, XF_NOTMISSILE, 0, 90)
	MDAD D 0 ACS_ExecuteAlways(5,0,10)
	MDAD D 0 ACS_ExecuteAlways(5,0,48)
	MDAD D 0 A_FaceTarget
	MDAD D 0 A_SpawnItemEx("MetDaddyJunkWaveProjectile",0,0,0,4)
	MDAD D 0 A_SpawnItemEx("MetDaddyJunkWave",0,0,0,0,50)
	MDAD D 0 A_SpawnItemEx("MetDaddyJunkWave",0,0,0,0,-50)
	MDAD D 0 A_PlaySoundEx("misc/junkmix", "SoundSlot7", 1, 1)
	MDAD GFGFGFEFEFE 3 
	MDAD D 120
	MDAD D 0 A_GiveInventory("CutterFlag",1)
	MDAD D 0 A_TakeInventory("AtomicFireAmmo",99)
	Goto Hide2
	HyperLandCoop:
	MCAT I 0 A_SpawnItemEx("MetDaddyRiseFX")
	MDAD D 0 A_Explode(90, 300, XF_NOTMISSILE, 0, 90)
	MDAD D 0 ACS_ExecuteAlways(5,0,10)
	MDAD D 0 ACS_ExecuteAlways(5,0,48)
	MDAD D 0 A_FaceTarget
	MDAD D 0 A_SpawnItemEx("MetDaddyJunkWaveProjectileShort",0,0,0,4)
	MDAD D 0 A_SpawnItemEx("MetDaddyJunkWaveShort",0,0,0,0,25)
	MDAD D 0 A_SpawnItemEx("MetDaddyJunkWaveShort",0,0,0,0,-25)
	MDAD D 0 A_PlaySoundEx("misc/junkmix", "SoundSlot7", 1, 1)
	MDAD GFGFGFEFEFE 3 
	MDAD D 120
	MDAD D 0 A_GiveInventory("CutterFlag",1)
	MDAD D 0 A_TakeInventory("AtomicFireAmmo",99)
	Goto Hide2
	Death:
	MDAD D 0 A_SetGravity(1.0)
	MDAD D 0 A_GiveInventory("CutterFlag",1)
	MDAD D 0 A_StopSoundEx("SoundSlot7")
	MDAD C 0 A_PlaySoundEx("misc/mm3explosion", "Body", 1, 1)
	DeathLoop:
	MDAD C 0 A_GiveInventory("LeafShieldAmmo",1)
	MDAD C 0 A_JumpIfInventory("LeafShieldAmmo", 15, "Dead")
	MDAD CCCC 3 A_SpawnItemEx("DrillExplode",random(-156,156),random(-156,156),random(0,256),0,0,0,random(0,360))
	loop
	Dead:
	MDAD A 0 A_FaceTarget
	MDAD A 0 A_PlaySoundEx("misc/devildeath", "Body",0,1)
	MDAD A 0 A_SpawnItemEx("FakeDeathFX",0,0,128)
	stop
}
}

actor MetDaddyJunkWave
{
+MISSILE
-SOLID
+THRUACTORS
+NOINTERACTION
+FLOORHUGGER
Speed 50
reactiontime 18
states
{
Spawn:
TNT1 A 0 A_CountDown
TNT1 A 2 A_SpawnItemEx("MetDaddyJunkWaveProjectile", 0,0,0,4)
loop
}
}


actor MetDaddyJunkWaveProjectile
{
+MISSILE
+NOINTERACTION
-SOLID
damagetype "Misc"
+RIPPER
+FOILINVUL
+FLOORHUGGER
Radius 1
Height 1
reactiontime 25
speed 3
States
{
	Spawn:
	TNT1 A 0 A_Explode(18, 128, 0, 0, 18)
	TNT1 A 0 A_JumpIf(z!=0, "Death")
	PLAY A 0 A_CountDown
	TNT1 AAAAAAAAA 2 A_SpawnItemEx("CatcherJunkBigFX2", random(-28,28), random(-28,28), 0, random(1,8), 0, random(5,15), random(-45,45))
	loop
	Death:
	TNT1 A 0
	stop
}
}

actor MetDaddyJunkWaveShort
{
+MISSILE
-SOLID
+THRUACTORS
+NOINTERACTION
+FLOORHUGGER
Speed 50
reactiontime 18
states
{
Spawn:
TNT1 A 0 A_CountDown
TNT1 A 2 A_SpawnItemEx("MetDaddyJunkWaveProjectileShort", 0,0,0,4)
loop
}
}


actor MetDaddyJunkWaveProjectileShort
{
+MISSILE
+NOINTERACTION
-SOLID
damagetype "Misc"
+RIPPER
+FOILINVUL
+FLOORHUGGER
Radius 1
Height 1
reactiontime 25
speed 3
States
{
	Spawn:
	TNT1 A 0 A_Explode(18, 64, 0, 0, 18)
	TNT1 A 0 A_JumpIf(z!=0, "Death")
	PLAY A 0 A_CountDown
	TNT1 AAAAAAAAA 2 A_SpawnItemEx("CatcherJunkBigFX2", random(-28,28), random(-28,28), 0, random(1,8), 0, random(2,7), random(-45,45))
	loop
	Death:
	TNT1 A 0
	stop
}
}

actor MetDaddyAfterImage
{
+NOINTERACTION
-SOLID
scale 4.5
renderstyle stencil
stencilcolor "yellow"
alpha 0.5
states
{
	Spawn:
	MDAD D 1 A_FadeOut(0.05)
	loop
}
}

actor MetSpawner
{
+THRUACTORS
-SOLID
scale 2.5
states
{
	Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(z==0, "SpawnMet")
	stop
	SpawnMet:
	TNT1 A 0 A_SetAngle(random(0,360))
	TNT1 AAAAAAAAAA 0 A_SpawnItemEx("CatcherJunkSmallFX", random(0,28), 0, 0, random(1,8), 0, random(3,10), random(0,360))
	METT B 2 ThrustThingZ(0, random(50,100),0,0)
	Falling:
	METT ABCB 2 A_JumpIf(z==0, "Land")
	loop
	Land:
	TNT1 A 0 A_SpawnItemEx("MetCatcherMet")
	stop
}
}

actor MetDaddyJumpFog
{
Scale 4.5
+NOINTERACTION
+NOGRAVITY
States
{
Spawn:
MDAD HIJ 6
stop
}
}

actor CatcherJunkDragFX
{
+NOINTERACTION
states
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("CatcherJunkSmallFX", random(0,28), 0, 0, random(1,8), 0, random(3,10), random(0,360)) 
stop
}
}

actor CatcherJunkBigFX
{
scale 2.5
+MISSILE
+DOOMBOUNCE
gravity 1.0
height 8
radius 8
reactiontime 50
bouncecount 2
bouncefactor 0.2
states
{
	Spawn:
	MJUN C 0
	MJUN C 0 A_Jump(256, "FX1", "FX2", "FX3")
	FX1:
	MJUN C 1
	TNT1 A 1 A_CountDown
	loop
	FX2:
	MJUN D 1
	TNT1 A 1 A_CountDown
	loop
	FX3:
	MJUN E 1
	TNT1 A 1 A_CountDown
	loop
	Death:
	TNT1 A 0 A_SpawnITemEx("CatcherJunkSmallFX", 0,0,0,random(2,5), 0,random(1,8), random(0,360)) 
	TNT1 A 0 A_SpawnITemEx("CatcherJunkSmallFX", 0,0,0,random(2,5), 0,random(1,8), random(0,360))
	stop
}
}

actor CatcherJunkBigFX2 : CatcherJunkBigFX
{
-DOOMBOUNCE
states
{
	Spawn:
	MJUN C 0
	MJUN C 0 A_Jump(256, "FX1", "FX2", "FX3")
	FX1:
	MJUN C 1
	//TNT1 A 1
	loop
	FX2:
	MJUN D 1
	//TNT1 A 1
	loop
	FX3:
	MJUN E 1
	//TNT1 A 1
	loop
	Death:
	TNT1 A 0
	stop
}
}

actor CatcherJunkSmallFX : CatcherJunkBigFX
{
-DOOMBOUNCE
gravity 1.0
states
{
	Spawn:
	MJUN C 0
	MJUN C 0 A_Jump(256, "FX1", "FX2", "FX3", "FX4", "FX5", "FX5")
	FX1:
	MJUN F 1
	TNT1 A 1 //A_CountDown
	loop
	FX2:
	MJUN G 1
	TNT1 A 1 //A_CountDown
	loop
	FX3:
	MJUN H 1
	TNT1 A 1 //A_CountDown
	loop
	FX4:
	MJUN I 1
	TNT1 A 1 //A_CountDown
	loop
	FX5:
	MJUN J 1
	TNT1 A 1 //A_CountDown
	loop
	Death:
	TNT1 A 0 
	stop
}
}

actor MetShot 
{
PROJECTILE
+DONTBLAST
+FORCEXYBILLBOARD
species "Met"
+THRUSPECIES
obituary "%o was destroyed by a metool."
seesound "misc/devilfire"
Speed 12
damagetype "Met"
Damage (5)
radius 15
height 15
scale 2.5
States
{
Spawn:
TNT1 A 1
BASB A 1
Goto Spawn+1
Death:
BASB A 1
stop
}
}

actor MetCatcherShot : MetShot
{
speed 32
-NOGRAVITY
+THRUSPECIES
gravity 0.5
+DOOMBOUNCE
bouncecount 2
bouncefactor 0.35
seesound ""
species "Met"
}

actor MetCatcherClaw
{
-SOLID
+NOGRAVITY
+SHOOTABLE
+NODAMAGE
+NOBLOOD
+CANPASS
+CANTSEEK
+QUICKTORETALIATE
+THRUSPECIES
+FORCEYBILLBOARD
species "Met"
//+NOINTERACTION
Height 32
Radius 50
painchance 256
scale 2.5
states
{
	Spawn:
	TNT1 O 0 A_TakeInventory("AtomicFireAmmo",999)
	TNT1 OPQR 4 A_ChangeFlag("NOPAIN",0)
	loop
	Frame1:
	TNT1 O 0 A_GiveInventory("AtomicFireAmmo",1)
	TNT1 O -1 A_ChangeFlag("NOPAIN",1)
	Frame2:
	TNT1 O 0 A_GiveInventory("AtomicFireAmmo",1)
	TNT1 P -1 A_ChangeFlag("NOPAIN",1)
	Frame3:
	TNT1 O 0 A_GiveInventory("AtomicFireAmmo",1)
	TNT1 Q -1 A_ChangeFlag("NOPAIN",1)
	Frame4:
	TNT1 O 0 A_GiveInventory("AtomicFireAmmo",1)
	TNT1 R -1 A_ChangeFlag("NOPAIN",1)
	stop
	Frame5:
	TNT1 O 0 A_GiveInventory("AtomicFireAmmo",1)
	TNT1 R 0 A_ChangeFlag("NOPAIN",0)
	TNT1 R 0 A_GiveInventory("CutterFlag",1)
	TNT1 R -1
	stop
	pain.ThunderClaw:
	THOO A 0 A_JumpIfInventory("WireFlag", 1, "TargetClear")
	THOO A 0 //ACS_ExecuteAlways(5,0,49,35)
	THOO A 0 A_GiveToTarget("WireFlag", 1)
	THOO A 0 ACS_NamedExecuteAlways("core_thunderclawpeg",0)
	THOO A 0 A_JumpIfInTargetInventory("CutterFlag", 1, "Frame5")
	Goto Spawn
	TargetClear:
	THOO A 0 
	THOO A 0 A_ClearTarget
	THOO A 0 A_JumpIfInventory("CutterFlag", 1, "Frame5")
	Goto Spawn
}
}

actor MetCatcherVisual : MetCatcherClaw
{
+NOINTERACTION
states
{
	Spawn:
	MCAT O 0 A_TakeInventory("AtomicFireAmmo",999)
	MCAT OPQR 4 A_ChangeFlag("NOPAIN",0)
	loop
	Frame1:
	MCAT O 0 A_GiveInventory("AtomicFireAmmo",1)
	MCAT O -1 A_ChangeFlag("NOPAIN",1)
	Frame2:
	MCAT O 0 A_GiveInventory("AtomicFireAmmo",1)
	MCAT P -1 A_ChangeFlag("NOPAIN",1)
	Frame3:
	MCAT O 0 A_GiveInventory("AtomicFireAmmo",1)
	MCAT Q -1 A_ChangeFlag("NOPAIN",1)
	Frame4:
	MCAT O 0 A_GiveInventory("AtomicFireAmmo",1)
	MCAT R -1 A_ChangeFlag("NOPAIN",1)
	stop
	Frame5:
	MCAT O 0 A_GiveInventory("AtomicFireAmmo",1)
	MCAT R 0 A_ChangeFlag("NOPAIN",0)
	MCAT R 0 A_GiveInventory("CutterFlag",1)
	MCAT R -1
	stop
	pain.ThunderClaw:
	THOO A 0 A_JumpIfInventory("WireFlag", 1, "TargetClear")
	THOO A 0 ACS_ExecuteAlways(5,0,49,35)
	THOO A 0 //A_GiveToTarget("WireFlag", 1)
	THOO A 0 //ACS_NamedExecuteAlways("core_thunderclawpeg",0)
	THOO A 0 A_JumpIfInTargetInventory("CutterFlag", 1, "Frame5")
	Goto Spawn
	TargetClear:
	THOO A 0 
	THOO A 0 A_ClearTarget
	THOO A 0 A_JumpIfInventory("CutterFlag", 1, "Frame5")
	Goto Spawn
}
}

actor MetCatcherLine
{
+NOGRAVITY
+NOINTERACTION
+CANPASS
+FORCEYBILLBOARD
-SOLID
scale 2.5
states
{
	Spawn:
	MCAT S 1 A_Warp(AAPTR_MASTER, 0,0,164,0,WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
	loop
}
}

actor MetCatcherWarper : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_Warp(AAPTR_MASTER, 0,0,-58,0,WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
stop
}
}

actor MetCatcherWarper2 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_Warp(AAPTR_MASTER, 0,0,0,0,WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
stop
}
}

actor MetCatcherMetGrabbed
{
-SOLID
+MISSILE
+NOINTERACTION
Height 32
Radius 32
scale 2.5
+INVULNERABLE
states
{
Spawn:
TNT1 A 1 //A_Jump(256, "Look")
Grabbed:
METT DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 1 A_Warp(AAPTR_TARGET, 0,0, -48, 0 , WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
GrabLoop:
//METT D 1 A_Warp(AAPTR_TARGET, 0,0, -62, 0 , WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
METT D 0 A_ChangeFlag("NOINTERACTION", 0)
METT D 1 //A_JumpIf(z<=0, "Start")
loop
Death:
TNT1 A 0 A_SpawnItemEx("MetCatcherMetEB")
stop
}
}


actor JunkBlockGrabbed
{
-SOLID
+MISSILE
+NOINTERACTION
Height 32
Radius 32
scale 2.5
+INVULNERABLE
+BOUNCEONWALLS
wallbouncefactor 0.2
damage (20)
states
{
Spawn:
TNT1 A 1 //A_Jump(256, "Look")
Grabbed:
MJUN AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Warp(AAPTR_TARGET, 0,0, -95, 0 , WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
MCAT L 0 A_PlaySoundEx("misc/itemthrow", "Voice", 0, 1)
GrabLoop:
//METT D 1 A_Warp(AAPTR_TARGET, 0,0, -62, 0 , WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
MJUN A 0 A_ChangeFlag("NOINTERACTION", 0)
MJUN A 0 //ACS_ExecuteAlways(5,0,47)//A_JumpIf(z<=0, "Start")
MJUN A 0 A_Recoil(-36)
Falling:
MJUN A 1
loop
Crash:
XDeath:
MCAT L 0 A_PlaySoundEx("weapon/junkend", "Voice", 0, 1)
MCAT L 0 A_SpawnItemEx("DrillExplode")
Goto PickDrop
Death:
MCAT L 0 A_PlaySoundEx("weapon/junkend", "Voice", 0, 1)
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, 180)
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, -135) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, -90) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, -45) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, 45)
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, 90) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, 135) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 5, 17, 0, 2, 0) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, 180 + 22)
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, -135 + 22) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, -90 + 22) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, -45 + 22) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, 45 + 22)
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, 90 + 22) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, 135 + 22) 
TNT1 A 0 A_SpawnItemEx("JunkBlockPiece", 0, 0, 35, 17, 0, 2, 0 + 22) 

TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, 180)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, -135) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, -90) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, -45) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, 45)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, 90) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, 135) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 5, 15, 0, 2, 0) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, 180 + 22)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, -135 + 22) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, -90 + 22) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, -45 + 22) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, 45 + 22)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, 90 + 22) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, 135 + 22) 
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 0, 0, 35, 15, 0, 2, 0 + 22) 

TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 32, 32, 8, random(2,10), 0, random(2,10), 180)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 32, -32, 8, random(2,10), 0, random(2,10), 180)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", -32, 32, 8, random(2,10), 0, random(2,10), 180)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", -32, -32, 8, random(2,10), 0, random(2,10), 180)

TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 32, 32, 40, random(2,10), 0, random(2,10), 180)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", 32, -32, 40, random(2,10), 0, random(2,10), 180)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", -32, 32, 40, random(2,10), 0, random(2,10), 180)
TNT1 A 0 A_SpawnItemEx("CatcherJunkBigFX", -32, -32, 40, random(2,10), 0, random(2,10), 180)
PickDrop:
TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(5,47)==1, "Drop1")
TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(5,47)==3, "Drop2")
TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(5,47)==6, "Drop3")
TNT1 A 0 A_SpawnItemEx("SmallHealth", 0, 0, 32, 0, 10, 15, 0) 
TNT1 A 1 A_SpawnItemEx("SmallHealth", 0, 0, 32, 0, -10, 15, 0) 
stop
Drop1:
TNT1 A 1 A_SpawnItemEx("ThunderClawWep", 0, 0, 32, 0, 0, 15, 0) 
stop
Drop2:
TNT1 A 1 A_SpawnItemEx("DustCrusherWep", 0, 0, 32, 0, 0, 15, 0) 
stop
Drop3:
TNT1 A 1 A_SpawnItemEx("RainFlushWep", 0, 0, 32, 0, 0, 15, 0) 
stop
}
}

actor MetBlockGrabbed
{
-SOLID
+MISSILE
+NOINTERACTION
Height 32
Radius 32
scale 2.5
+INVULNERABLE
states
{
Spawn:
TNT1 A 1 //A_Jump(256, "Look")
Grabbed:
MCAT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 1 A_Warp(AAPTR_TARGET, 0,0, -95, 0 , WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
MCAT L 0 A_PlaySoundEx("misc/itemthrow", "Voice", 0, 1)
GrabLoop:
//METT D 1 A_Warp(AAPTR_TARGET, 0,0, -62, 0 , WARPF_COPYINTERPOLATION |WARPF_NOCHECKPOSITION)
MCAT T 0 A_ChangeFlag("NOINTERACTION", 0)
MCAT T 0 //ACS_ExecuteAlways(5,0,47)//A_JumpIf(z<=0, "Start")
MCAT T 0 A_Recoil(-16)
Falling:
MCAT T 1
loop
Death:
MCAT L 0 A_PlaySoundEx("weapon/drillexplode", "Voice", 0, 1)
TNT1 A 0 A_SpawnItemEx("MetCatcherMet", 0, 0, 5, 15, 0, random(10,20), 45)
TNT1 A 0 A_SpawnItemEx("MetCatcherMet", 0, 0, 5, 15, 0, random(10,20), -45) 
TNT1 A 0 A_SpawnItemEx("MetCatcherMet", 0, 0, 5, 15, 0, random(10,20), 180) 
TNT1 A 1 A_SpawnItemEx("DrillExplode", 0,0,32)
stop
}
}

actor JunkBlockPiece
{
PROJECTILE
+THRUSPECIES
species "Met"
-NOGRAVITY
gravity 0.1
scale 2.5
radius 32
height 32
damage (10)
States
{
Spawn:
MJUN B -1
stop
}
}

actor MetCatcherMet
{
dropitem "WeaponEnergy"
-SOLID
+SHOOTABLE
Speed 6
Health 2
Height 32
Radius 32
species "Met"
obituary "%o was shot by a met."
+THRUSPECIES
scale 2.5
+INVULNERABLE
+NOTARGETSWITCH
states
{
Spawn:
METT D 1
METT D 0 Thing_ChangeTID(0,1106)
METT D 1 A_JumpIf(floorz!=z, "Spawn")
METT D 0 A_Stop
METT D 0 A_ChangeFlag("INVULNERABLE",0)
METT D 0 A_GiveInventory("MetCatcherMetInvul",1)
Looking:
METT D 35
METT D 1 A_Jump(128, "Looking")
METT D 1 A_LookEx(0,0,0,0,360,"See")
loop
See:
METT D 45 A_FaceTarget
METT F 0 A_FaceTarget
METT E 5 A_TakeInventory("MetCatcherMetInvul",1)
METT F 0 A_FaceTarget
METT F 0 A_CustomMissile("MetShot",0,0,25,0)
METT F 0 A_CustomMissile("MetShot",0,0,0,0)
METT F 5 A_CustomMissile("MetShot",0,0,-25,0)
METT B 5
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT BE 5
METT D 5 A_GiveInventory("MetCatcherMetInvul",1)
loop
Death:
MMFX B 0 A_ChangeFlag("NOINTERACTION",1)
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor MetCatcherMetInvul : PowerProtection
{
powerup.duration -999
damagefactor "RainFlush", 1.0
damagefactor "Buster", 0.0
damagefactor "DustCrusher", 0.0
damagefactor "ThunderClaw", 0.0
damagefactor "Misc", 0.0
damagefactor "DustCrusherBit", 0.0
}

actor MetCatcherMetEB : MetCatcherMet
{
dropitem "EnergyBalancer"
}

/////////////////////////////
// LEGACY
/////////////////////////////


actor MetDaddyDamager
{
PROJECTILE
obituary "%o crushed by the metool daddy."
Damage 255
Scale 4.0
+RIPPER
damagetype "Instagib"
Radius 224
Height 64
States
{
Spawn:
TNT1 AA 1 A_Explode(35, 500, 0, 0, 35)
stop
}
}


actor ChaseMet
{
MONSTER
+THRUGHOST
obituary "%o was destroyed by a metool."
dropitem "WeaponEnergyDropped", 80
Height 32
Radius 32
Health 2
scale 2.5
damagefactor "Met", 0.0
speed 9
+SHOOTABLE
-ACTIVATEMCROSS
-SOLID
//+NORADIUSDMG
+LOOKALLAROUND
+INVULNERABLE
States
{
Spawn:
METT D 0
METT D 1
METT D 0 A_JumpIf(floorz-z>0,"Spawn")
METT D 1 A_Look
Goto Spawn+3
See:
METT D 25
METT F 0 A_FaceTarget
METT E 5 A_ChangeFlag("INVULNERABLE",0)
METT F 0 A_FaceTarget
METT F 5 A_CustomMissile("MetShot",0,0,0,0)
METT B 5
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT BE 5
METT D 5 A_ChangeFlag("INVULNERABLE",1)
Goto Spawn+3
Melee:
METT A 0 A_SpawnItem("MetoolAttack")
METT AAABBBCCCBBB 1 A_Wander
Goto See+52
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor LazyMet : ChaseMet
{
States
{
Spawn:
METT D 0
METT D 1
METT D 0 A_JumpIf(floorz-z>0,"Spawn")
METT D 1 A_Look
Goto Spawn+3
See:
METT D 20
METT F 0 A_FaceTarget
METT E 5 A_ChangeFlag("INVULNERABLE",0)
METT F 0 A_FaceTarget
METT F 5 A_CustomMissile("MetShot",0,0,0,0)
METT B 5
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT BE 5
METT D 80 A_ChangeFlag("INVULNERABLE",1)
Goto Spawn+3
Melee:
METT A 0 A_SpawnItem("MetoolAttack")
METT AAABBBCCCBBB 1 A_Wander
Goto See+52
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor FranticMet : ChaseMet
{
States
{
Spawn:
METT D 0
METT D 1
METT D 0 A_JumpIf(floorz-z>0,"Spawn")
METT D 1 A_Look
Goto Spawn+3
See:
METT D 20
METT F 0 A_FaceTarget
METT E 5 A_ChangeFlag("INVULNERABLE",0)
METT F 0 A_FaceTarget
METT F 5 A_CustomMissile("MetShot",0,0,0,0)
METT B 5
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
METT AAABBBCCCBBB 1 A_Chase
Goto See+6
Melee:
METT A 0 A_SpawnItem("MetoolAttack")
METT AAABBBCCCBBB 1 A_Wander
Goto See+6
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}


actor MetDance : ChaseMet
{
States
{
Spawn:
METT D 0
METT D 1
METT D 0 A_JumpIf(floorz-z>0,"Spawn")
METT D 1 A_Look
Goto Spawn+3
See:
METT D 20
METT F 0 A_FaceTarget
METT E 5 A_ChangeFlag("INVULNERABLE",0)
METT F 0 A_FaceTarget
METT F 5 
METT B 5
METT G 0 A_CustomMissile("MetShot",32,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
METT G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
METT G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
METT G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
METT G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
//METT //G 0 A_CustomMissile("MetShot",16,0,0,2,0)
METT G 3 ACS_ExecuteAlways(19,0)
METT BE 5
METT D 10 A_ChangeFlag("INVULNERABLE",1)
Goto Spawn+3
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor JumpingMet : ChaseMet
{
States
{
Spawn:
METT D 0
METT D 1
METT D 0 A_JumpIf(floorz-z>0,"Spawn")
METT D 1 A_Look
Goto Spawn+3
See:
METT D 20
METT F 0 A_FaceTarget
METT E 5 A_ChangeFlag("INVULNERABLE",0)
METT F 0 A_FaceTarget
METT F 5 A_CustomMissile("MetShot",0,0,0,0)
METT B 5
METT A 0 A_FaceTarget
METT A 0 ThrustThingZ(0,40,0,0)
METT A 0 A_Recoil(-15)
METT A 0 A_SpawnItem("MetoolAttack")
METT AAABBB 1
METT A 0 A_SpawnItem("MetoolAttack")
METT CCCBBB 1 
METT A 0 A_SpawnItem("MetoolAttack")
METT AAABBB 1
METT A 0 A_SpawnItem("MetoolAttack")
METT CCCBBB 1 
METT A 0 A_SpawnItem("MetoolAttack")
METT AAABBB 1
METT A 0 A_SpawnItem("MetoolAttack")
METT CCCBBB 1 
Goto See+6
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor CockroachDummy
{
+SHOOTABLE
scale 2.5
Health 1
States
{
Spawn:
MDAD KL 5
loop
Death:
MDAD K 0 A_SpawnItemEx("FakeDeathFX")
stop
}
}



/*
actor MetDaddy
{
MONSTER
-COUNTKILL
Radius 200
Height 200
+DONTBLAST
Scale 6.0
Health 2500
obituary "%o crushed by the met daddy."
+GHOST
+INVULNERABLE
damagefactor "Met", 0.0
damagefactor "quake", 0.0
damagefactor "RingBoomerang", 0.7
damagefactor "Buster", 2.0
damagefactor "DrillBomb", 6.0
damagefactor "DustCrusher", 4.0
mass 99999
+NODAMAGETHRUST
States
{
Spawn:
MDAD A 0 A_JumpIf(floorz-z==0,"Land2")
MDAD A 1 A_SpawnItemEx("MetDaddyDamager",0,0,-50,0,0,-10)
loop
Look:
MDAD A 1 A_Look
loop
See:
MDAD A 80
MDAD ABC 4
MDAD A 0 A_ChangeFlag("INVULNERABLE",0)
MDAD D 20
MDAD D 0 A_FaceTarget
MDAD D 0 A_SpawnItemEx("MetDaddyJumpFog")
MDAD D 0 A_JumpIfCloser(500,"Jump1")
MDAD D 0 A_JumpIfCloser(1500,"Jump2")
Goto Jump3
Jump1:
MDAD D 0 ThrustThingZ(0,80,0,0)
MDAD D 10 A_Recoil(-10)
MDAD D 0 //A_Print("Jump1")
MDAD D 0 A_SpawnItemEx("MetDaddyDamager",0,0,-50,0,0,-10)
MDAD D 1 A_JumpIf(floorz-z==0,"Land")
Goto Jump1+2
Jump2:
MDAD D 0 ThrustThingZ(0,85,0,0)
MDAD D 10 A_Recoil(-30)
MDAD D 0 //A_Print("Jump2")
MDAD D 0 A_SpawnItemEx("MetDaddyDamager",0,0,-50,0,0,-10)
MDAD D 1 A_JumpIf(floorz-z==0,"Land")
Goto Jump2+2
Jump3:
MDAD D 0 ThrustThingZ(0,100,0,0)
MDAD D 10 A_Recoil(-50)
MDAD D 0 //A_Print("Jump3")
MDAD D 0 A_SpawnItemEx("MetDaddyDamager",0,0,-50,0,0,-10)
MDAD D 1 A_JumpIf(floorz-z==0,"Land")
Goto Jump3+2
Land:
MDAD D 0 A_Stop
MDAD D 0 A_SpawnItemEx("MetDaddyDamager",0,0,0,0,0,0)
MDAD D 0 ACS_Execute(5,0,10)
MDAD D 0 A_SpawnItemEx("MetSpawner",512,512,500)
MDAD D 0 A_SpawnItemEx("MetSpawner",-512,512,500)
MDAD D 0 A_SpawnItemEx("MetSpawner",-512,-512,500)
MDAD D 0 A_SpawnItemEx("MetSpawner",512,-512,500)
MDAD D 0 A_SpawnItemEx("MetSpawner",512,0,500)
MDAD D 0 //A_SpawnItemEx("MetSpawner",-512,0,500)
MDAD D 0 A_SpawnItemEx("MetSpawner",0,512,500)
MDAD D 0 //A_SpawnItemEx("MetSpawner",0,-512,500)
MDAD GFGFGFEFEFE 3 
MDAD A 0 A_ChangeFlag("INVULNERABLE",1)
MDAD D 10
MDAD CB 4 
Goto See
Land2:
MDAD A 1 ACS_Execute(5,0,11)
MDAD A 1
Goto Land2+1
Death:
MDAD A 0 ACS_Execute(21,0)
MDAD CCCCCCC 10 A_SpawnItemEx("DrillExplode",random(-256,256),random(-256,256),random(0,256),0,0,0,random(0,360))
MDAD CCCCCCCCCCC 5 A_SpawnItemEx("DrillExplode",random(-256,256),random(-256,256),random(0,256),0,0,0,random(0,360))
MDAD CCCCCCCCCCCCCCCC 3 A_SpawnItemEx("DrillExplode",random(-256,256),random(-256,256),random(0,256),0,0,0,random(0,360))
MDAD CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 1 A_SpawnItemEx("DrillExplode",random(-256,256),random(-256,256),random(-0,256),0,0,0,random(0,360))
MDAD A 0 A_SpawnItemEx("FakeDeathFX")
stop
}
}

actor MetSpawner
{
//+SPAWNCEILING
+NOGRAVITY
-SOLID
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Jump(256,"Met1","Met2","Met3","Met4","Met5")
goto Met1
Met1:
TNT1 A 1 A_SpawnItemEx("ChaseMet",0,0,-10)
stop
Met2:
TNT1 A 1 A_SpawnItemEx("LazyMet",0,0,-10)
stop
Met3:
TNT1 A 1 A_SpawnItemEx("FranticMet",0,0,-10)
stop
Met4:
TNT1 A 1 A_SpawnItemEx("MetDance",0,0,-10)
stop
Met5:
TNT1 A 1 A_SpawnItemEx("JumpingMet",0,0,-10)
stop
}
}


*/