//====================================
// Formatted and Cleaned by Ru5tK1ng
//------------------------------------
//====================================

//+++++++++++++++++++
// Buster Weapon
//-------------------
//+++++++++++++++++++

  Actor GrabBusterBoss : BaseMM8BDMWep_CBM
  {
    Tag "$TAGC_VB"
    DropItem "GrabBusterWepCDropped"
    Weapon.AmmoUse 0
    Obituary "$OB_MERCURYGRAB"
    Weapon.AmmoType "MercuryClassAmmo"
	Weapon.ReadySound "Weapon/PirateBubble"
    States
    {
        Spawn:
        C_0V B 1
        Loop
 
        Ready:
		//TNT1 A 0 A_TakeInventory("MercuryBlobFormWeakness",999)
		//TNT1 A 0 A_TakeInventory("GuardDownFlag",1)
        MRCH A 0 ACS_ExecuteAlways(998,0,DYE_MERCURY, 1)
        MRCH A 0 A_GunFlash
		MRCH A 0 ACS_NamedExecuteAlways("Blob_Initial")
        Goto ReadyNoReload
		
		Select:
		MRCH H 1 Offset(-4,51)
		Select2:
		MRCH HFEB 1 A_Raise
		Loop		
		
		Deselect:
		MRCH B 1
		MRCH EFGH 1 A_Lower
		Deselect2:
		MRCH H 1 A_Lower
		Loop
		
        Ready1:
		MRCH A 0 A_JumpIfInventory("MercuryBlobFormAmmo", 280, "Ready2")
		MRCH AA 1 A_WeaponReady(WRF_ALLOWRELOAD)
		MRCH A 0 A_GiveInventory("MercuryBlobFormAmmo",2)
		Loop
		
		ReadyNoReload:
		MRCH AA 1 A_WeaponReady(WRF_NOFIRE)
		ReadyNoReload2:
		MRCH A 0 A_JumpIfInventory("MercuryBlobFormAmmo", 280, "Ready2")
		MRCH AA 1 A_WeaponReady
		MRCH A 0 A_GiveInventory("MercuryBlobFormAmmo",2)
		Goto Ready1
		
		Ready2:
		MRCH A 2 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
         
        Fire:
        //MRCH B 0 A_PlaySoundEx("Weapon/grabbuster","Weapon")
        MRCH B 0 A_GiveInventory("MercuryMainInv_CI",1)
		MRCH B 1
		MRCH B 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOFIRE)
		MRCH CCBAAA 3
        MRCH A 2
        MRCH A 1 A_GiveInventory("MercuryBlobFormAmmo",8)
        Goto Ready1
 
        Altfire:
        MRCH A 0 A_PlaySoundEx("Weapon/SlashClaw","Weapon")
        MRCH A 0 A_GiveInventory("MercurySnatchDamager_P",1)
        MRCH I 0 A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH I 1 A_SpawnItemEx("MercurySnatchFX",cos(pitch)*38,15,36-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,9)
		MRCH I 0 A_WeaponReady(WRF_NOSWITCH|WRF_NOFIRE)
        MRCH I 0 A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH I 1 Offset(-19,27)A_SpawnItemEx("MercurySnatchFX",cos(pitch)*38,10,35-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,9)
        MRCH I 0 A_WeaponReady(WRF_NOSWITCH|WRF_NOFIRE)
        MRCH J 0 A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH J 1 Offset(1,31)A_SpawnItemEx("MercurySnatchFX",cos(pitch)*38,8,34-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,9)
        MRCH J 0 A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH J 1 Offset(-19,34)A_SpawnItemEx("MercurySnatchFX",cos(pitch)*38,3,33-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,9)
        MRCH K 0 A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH K 1 Offset(1,31)A_SpawnItemEx("MercurySnatchFX",cos(pitch)*38,-5,32-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,9)
        MRCH K 0 A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH K 1 Offset(-46,37)A_SpawnItemEx("MercurySnatchFX",cos(pitch)*38,-12,31-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,9)
        MRCH L 0 A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH L 1 Offset(1,31)
        MRCH M 1 Offset(1,31)A_SpawnItemEx("MercurySnatch",cos(pitch)*38,0,14-(sin(pitch)*32),cos(pitch)*velx,vely,0,0,8)
        MRCH M 1 Offset(-11,53)
        MRCH M 1 Offset(-23,76)
        TNT1 A 10
        MRCH B 2 Offset(-2,57)
        MRCH B 4 A_WeaponReady(WRF_NOSWITCH|WRF_NOFIRE)
        MRCH A 2
        Goto Ready1
        
		Reload:
		"----" "#" 1 ACS_NamedExecuteAlways("Mercury_BlobChange")
		Goto ReadyNoReload
       
        Flash:
        TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
        TNT1 A 1 //A_GiveInventory("MercuryFlashClimb_P",1)
        Loop
    }
  }


//+++++++++++++++++++
// Blob Weapon
//-------------------
//+++++++++++++++++++

  Actor GrabBusterBoss2: GrabBusterBoss
  {
    Tag "$TAGC_VB2"
    States
	{	
		Select:
        MRCH AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
        MRCH A 1 A_Raise
        Loop
		
		Deselect:
        MRCH AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
        MRCH A 1 A_Lower
        Loop
		
		Ready:
		//TNT1 A 0 A_GiveInventory("MercuryBlobFormWeakness",1)
		//TNT1 A 0 A_GiveInventory("GuardDownFlag",1)
        MRCH P 0 ACS_ExecuteAlways(998,0,DYE_MERCURY, 1)
        MRCH P 0 A_GunFlash
		MRCH P 0 A_TakeInventory("GrabBusterBoss", 99)
        Goto BlobReadyNoReload//ReadyBlob
		
		BlobReadyNoReload:
		MRCH P 2 A_WeaponReady(WRF_NOFIRE)
		BlobReadyNoReload2:		
		MRCH P 1 A_WeaponReady
        MRCH P 0 A_TakeInventory("MercuryBlobFormAmmo",2)
		MRCH P 0 A_JumpIfInventory("MercuryBlobFormAmmo",1,"ReadyBlob")
		Goto Reload
		
		ReadyBlob:
        MRCH P 0 A_JumpIfInventory("MercuryClassAmmo",7,"ReadyBlob2")
        MRCH PP 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
        MRCH P 0 A_TakeInventory("MercuryBlobFormAmmo",2)
        MRCH P 0 A_JumpIfInventory("MercuryBlobFormAmmo",2,"ReadyBlob")
		MRCH P 1
        Goto Reload
		
        ReadyBlob2:
		MRCH P 0 A_TakeInventory("MercuryBlobFormAmmo",2)
        MRCH PP 1 A_WeaponReady(WRF_ALLOWRELOAD)
        MRCH P 0 A_JumpIfInventory("MercuryBlobFormAmmo",1,"ReadyBlob2")
		MRCH P 1
        Goto Reload
		
		Fire:
		MRCH P 0 A_JumpIfInventory("MercuryBlobFormAmmo",1,"FireCheck")
		Goto Reload
		FireCheck:
		MRCH PP 1 A_JumpIfInventory("MercuryClassAmmo", 7, "FireGo")
		Goto ReadyBlob
		
		FireGo:
        MRCH G 0 A_PlaySoundEx("Weapon/BlobShot","Weapon")
		MRCH F 1
		MRCH F 2 
		MRCH E 0 A_TakeInventory("MercuryClassAmmo",7)
        MRCH E 0 A_GiveInventory("MercuryMain2_CI",1)
        MRCH EQQEFGG 2 A_TakeInventory("MercuryBlobFormAmmo",2)
        MRCH P 0 A_JumpIfInventory("MercuryBlobFormAmmo",1,"ReadyBlob")
        Goto Reload
		
		AltFire:
		MRCH P 0 A_JumpIfInventory("MercuryBlobFormAmmo",1,"AltfireCheck")
		Goto Reload
		AltfireCheck:
		MRCH PP 1 A_JumpIfInventory("MercuryClassAmmo", 14, "AltFireGo")
		Goto ReadyBlob
		
		AltFireGo:	
        MRCH R 0 A_PlaySoundEx("Weapon/WoodLeap","Weapon")
        MRCH R 0 A_ChangeVelocity(cos(pitch)*36,0,-sin(pitch)*20+4,3)
        MRCH R 0 A_GiveInventory("MercuryAltBlobSync_P",1)
        MRCH R 0 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 1 //A_JumpIfInventory("Merc_BlobOff_F",1,"BlobAltXX")
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltEnd")
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 0 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
		MRCH R 1 // A_JumpIfInventory("Merc_BlobOff_F",1,"BlobAltX")
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltEnd1")
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 1 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltEnd1")
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 1 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltEnd2")
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 1 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltEnd2")
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 1 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltEnd3")
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 1 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltEnd3")
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 1 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        //TNT1 A 0 A_GiveInventory("SnakeClimbing")
        //TNT1 A 0 A_JumpIf(momz==0,"BlobAltEnd4")
        Goto BlobAltLoop
       
        BlobAltLoop:
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltH")
        MRCH R 0 A_JumpIf(momz==0,"BlobAltLoopZ")
		MRCH R 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 0 A_JumpIfInventory("SnakeOnWall",1,"BlobAltEnd4")
        MRCH R 0 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
        Loop
       
        BlobAltLoopZ:
        MRCH R 0 A_JumpIfInventory("MercuryLanded",1,"BlobAltH")
        MRCH R 0 A_JumpIfInventory("SnakeOnWall",1,"BlobAltEnd4")
        MRCH R 0 A_SpawnItemEX("MercuryCollider",0,0,-8,momx,momy,momz,0,8,0)
        MRCH R 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
        MRCH R 0 A_JumpIf(z-floorz==0,"BlobAltH")
        MRCH R 0 A_JumpIf(momz==0,"BlobAltH")
        Goto BlobAltLoop+3
 
        BlobAltH:
        MRCH S 0 A_PlaySoundEx("classes/burstpop","Weapon")
		MRCH S 0 A_GiveInventory("MercuryAlt_CI",1)
        MRCH S 2 A_ScaleVelocity(0.5)//AAA 1 0.25
        Goto BlotAltEnd2
	   
        BlobAltEnd1:
		MRCH S 1
        Goto BlobAltEnd+1
       
        BlobAltEnd2:
		MRCH S 0
        Goto BlobAltEnd+2
       
        BlobAltEnd3:
		MRCH S 0
        Goto BlobAltEnd+3
       
        BlobAltEnd4:
		MRCH S 0
        Goto BlobAltEnd+4
       
        BlobAltEnd:
        TNT1 SSHP 2
		BlotAltEnd2:
        MRCH T 15 //A_GiveInventory("SnakeClimbing") 
        MRCH H 0 Offset(4,38) A_JumpIfInventory("MercuryBlobFormAmmo",1,"BlobReadyNoReload2")
        Goto Reload
		
		Reload:
		"----" "#" 1 ACS_NamedExecuteAlways("Mercury_BlobChange")
		Goto BlobReadyNoReload
	}
  }


//=======================
// Ammo & Items
//-----------------------
//=======================

  Actor MercuryClassAmmo : Ammo
  {
    Inventory.Amount 1
	Inventory.MaxAmount 56
	+INVENTORY.IGNORESKILL
  }


  Actor MercuryBlobFormAmmo : Ammo
  {
    Inventory.Amount 1
	Inventory.MaxAmount 280
	+INVENTORY.IGNORESKILL
  }


  Actor Merc_BlobOn_F : OnceC{}
  Actor Merc_BlobOff_F : OnceC{}


  Actor MercuryLanded : Powerup {  PowerUp.Duration 5 }

  Actor PowerMercurySlowSpeed : PowerSpeed
  {
    PowerUp.Duration 3
	Speed 0.75
	+POWERSPEED.NOTRAIL
  }


  Actor MercuryFlashClimb_P : CustomInventory
  {
    States
	{
		Pickup:
		TNT1 A 0 A_JumpIfInventory("SnakeClimbing",1,"PickupStart")
		Goto PickupClimb
		
		PickupStart:
		TNT1 A 0 A_SpawnItemEx("MercuryClimbCheck",0,0,16,0,0,34)
		Goto PickupClimb
		
		PickupClimb:
		TNT1 A 0 A_JumpIfInventory("SnakeOnWall",1,"PickupClimbYes")
		TNT1 A 0 SetPlayerProperty(0,0,3)
		TNT1 A 0 A_TakeInventory("PowerMercurySlowSpeed",1)
		Stop
		
		PickupClimbYes:
		TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,2)
		TNT1 A 0 SetPlayerProperty(0,1,3)
		TNT1 A 0 A_GiveInventory("PowerMercurySlowSpeed",1)
		Stop
	}
  }
  

  Actor MercuryAmmoSync_P0 : CustomInventory
  {
    States
	{
		Pickup:
		TNT1 A 0 A_GiveInventory("MercuryBlobFormAmmo",1)
		TNT1 A 0 A_TakeInventory("MercuryBlobFormAmmo",1)
		Stop
	}
  }


  Actor MercuryAltBlobSync_P : CustomInventory
  {
    States
	{
		Pickup:
		TNT1 A 0 A_TakeInventory("MercuryClassAmmo",14)
		TNT1 A 0 A_TakeInventory("SnakeClimbing",99)
		TNT1 A 0 A_SpawnItemEx("MercuryBlob1X",0,0,0,0,0,0,0,1)
		Stop
	}
  }

actor MercBlobProtect : PowerProtection
{
damagefactor "MercSploosh",0.5
powerup.duration 15	
}

  Actor MercuryClimbCheck : SnakeClimbCheck
  {
    States
	{
		Death:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("SnakeOnWall",1)
		TNT1 A 1
		Stop
	}
  }


  Actor MercuryCollider
  {
    Projectile
	Damagetype "MercSploosh"
	Obituary "$OB_MERCURYSLAM"
	+NOGRAVITY
	+SKYEXPLODE
	+DONTSPLASH
	+DONTBLAST
	+THRUGHOST
	+DONTREFLECT
	Damage (0)
	Radius 62
	Height 72
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0
		Stop
		
		XDeath:
		TNT1 A 0 A_GiveToTarget("MercuryLanded",1)
		TNT1 A 0
		Stop
		
		Death:
		TNT1 A 1
		Stop
	}
  }


//=======================
// Melee Snatch Attack
//-----------------------
//=======================

  Actor MercurySnatchDamager
  {
    Projectile
	DamageType "Mercury_Swipe"
	Obituary "$OB_MERCURYSWIPE"
	+THRUSPECIES
	+DONTREFLECT
	+DONTBLAST
	Species "Mercury"
	Damage (5)
	Radius 14
	Height 14
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 AAAAAAA 1 A_Warp(2,28,0,16,0,72)
		Stop
	}
  }


  //no memes allowed
  Actor MercurySnatchDamager256 : MercurySnatchDamager
  {
    Obituary "$OB_MERCURYSWIPEX"
	Damage (6969)
  }


  Actor MercurySnatchFX
  {
    Projectile
	+CLIENTSIDEONLY
	+NOINTERACTION
	+FORCEXYBILLBOARD
	Height 2
	Radius 2
	Scale 1.0
	States
	{
		Spawn:
		MRCR TSR 1 A_FadeOut(0.25)
		Stop
	}
  }


  Actor MercurySnatch
  {
    var int user_USER;
	-SOLID
	+NOGRAVITY
	+DONTDRAIN
	Species "Mercury"
	Health 1
	Radius 28
	Height 32
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_USER",ACS_ExecuteWithResult(257,0))
		TNT1 A 0 A_ChangeFlag("SHOOTABLE",1)
		TNT1 A 0 A_ChangeFlag("DONTRIP",1)
		TNT1 A 1
		TNT1 A 1
		Stop
		
		Death:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(213,0,3,user_USER,ACS_ExecuteWithResult(147,0))
		TNT1 A 1 A_SpawnItemEx("MercurySnatchBlockD",0,0,0,0,0,0,0,32)
		Stop
	}
  }


  Actor MercurySnatchBlockD
  {
    Projectile
	DamageType "Mercury_Swipe"
	Obituary "$OB_MERCURYSWIPE"
	+DONTBLAST
	+DONTREFLECT
	+DONTDRAIN
	+NOGRAVITY
	-NOBLOCKMAP
	+SHOOTABLE
	+INVULNERABLE
	+NORADIUSDMG
	+DONTRIP
	+NOBLOOD
	+THRUSPECIES
	Species "Mercury"
	Damage (0)
	Radius 28
	Height 32
	Speed 0
	States
	{
		Spawn:
		TNT1 A 1
		Stop
	}
  }


  Actor MercurySnatch22
  {
    var int user_pTID;
	var int user_eTID;
	Projectile
	DamageType "Mercury_Swipe"
	Obituary "$OB_MERCURYSWIPE"
	-NOBLOCKMAP
	-SOLID
	-SHOOTABLE
	+DONTRIP
	+DONTBLAST
	+DONTDRAIN
	+NORADIUSDMG
	+DONTREFLECT
	+THRUSPECIES
	+QUICKTORETALIATE
	PainChance 256
	Species "Mercury"
	RenderStyle "None"
	Health 9999
	Mass 999999999
	Damage (0)
	Height 32
	Radius 28
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 1 A_SetUserVar("user_pTID",ACS_ExecuteWithResult(143,0))
		TNT1 A 0 //A_LogInt(1000+user_pTID)
		TNT1 A 0 A_RearrangePointers(AAPTR_NULL,0,AAPTR_TARGET)
		TNT1 A 2 A_ChangeFlag("SHOOTABLE",1)
		Stop
		
		Pain:
		TNT1 A 1 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_SetUserVar("user_eTID",ACS_ExecuteWithResult(143,0))
		TNT1 A 0 //A_LogInt(2000+user_eTID)
		TNT1 A 0 A_RearrangePointers(AAPTR_TRACER,0,AAPTR_TARGET)
		TNT1 A 0 A_JumpIf(user_eTID==-1,"Give")
		TNT1 A 0 A_JumpIf(user_pTID!=user_eTID,"Give")
		Stop
		
		Give:
		TNT1 A 1 //A_SpawnItemEx("MercurySnatchGiver")
		TNT1 A 1 A_GiveInventory("MercurySnatchPickup",1,AAPTR_TARGET)
		Stop
	}
  }


  Actor MercurySnatchSuccess : Powerup { PowerUp.Duration 15 }


  Actor MercurySnatchPickup : CustomInventory
  {
    States
	{
		Pickup:
		TNT1 A 0 A_JumpIfInventory("MercurySnatchSuccess",1,"No")
		TNT1 A 0 A_GiveInventory("MercurySnatchSuccess",1)
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Body")
		TNT1 A 0 A_GiveInventory("MercuryClassAmmo",10)
		Stop
		
		No:
		TNT1 A 0
		Stop
	}
  }


//============================
// Buster Attacks & Effects
//----------------------------
//============================

  Actor Merc_GrabBuster
  {
    Translation "192:192=104:104","198:198=110:110"
	Projectile
	DamageType "Mercury_Shot"
	Obituary "$OB_MERCURYGRAB"
	+DONTREFLECT
	+HITTRACER
	+FORCEXYBILLBOARD
	+BOUNCEONWALLS
	BounceCount 3
	Damage (10)
	Radius 9
	Height 9
	Speed 44
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		TNT1 A 1
		MRCR AC 1
		MRCR A 0 A_ChangeFlag("BOUNCEONWALLS",0)
		MRCR ABCD 3
		Goto Spawnloop+3
		
		Crash:
		XDeath:
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy"),"Give")
		Goto Death
		
		Give:
		MRCR A 0 A_FaceTarget
		MRCR A 0 A_SpawnItemEx("Merc_GrabBusterChase",0,0,0,30,0,30,random(150,210),1)
		
		Death:
		MRCR AC 1 A_FadeOut(0.1)
		Loop
	}
  }


  Actor Merc_GrabBusterChase
  {
    Projectile
	+SEEKERMISSILE
	+DONTBLAST
	+DONTREFLECT
	+NOINTERACTION
	RenderStyle translucent
	Alpha 0.8
	ReactionTime 135
	Speed 50
	Scale 1.5
	States
	{
		Spawn:
		MRCR U 0
		MRCR U 0 A_RearrangePointers(0,0,AAPTR_TARGET)
		MRCR U 0 A_SetPitch(30)//momz
		Goto SpawnSlow+2
		
		SpawnSlow:
		MRCR U 0 A_JumpIf(Args[4]>=9,"SpawnSpeedStart")
		MRCR U 0 A_JumpIfCloser(64,"Death")
		MRCR U 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"No")
		MRCR U 0 A_SetArg(4,Args[4]+1)
		MRCR U 0 A_SpawnItemEx("Merc_GrabBusterChaseFX",0,0,0,0,0,0,0,1)
		MRCR U 0 A_FaceTracer(5,2)
		MRCR U 1 A_ChangeVelocity(30-3*Args[4],0,sin(pitch)*(30-3*Args[4]),3)//momz*(1-Args[4]*0.05),3)
		MRCR V 0 A_FaceTracer(5,2)
		MRCR V 1 A_ChangeVelocity(30-3*Args[4],0,sin(pitch)*(30-3*Args[4]),3)
		Loop
		
		SpawnSpeedStart:
		MRCR U 0 A_JumpIfCloser(64,"Death")
		MRCR U 0 A_SpawnItemEx("Merc_GrabBusterChaseFX",0,0,0,0,0,0,0,1)
		MRCR U 0 A_FaceTracer(6,3)
		MRCR U 1 A_ChangeVelocity(6,0,sin(pitch)*6,3)
		MRCR V 0 A_FaceTracer(6,3)
		MRCR V 1 A_ChangeVelocity(6,0,sin(pitch)*6,3)
		Goto SpawnSpeed
		
		SpawnSpeed:
		MRCR U 0 A_JumpIf(Args[3]>=16,"SpawnL")
		MRCR U 0 A_JumpIfCloser(64,"Death")
		MRCR U 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"No")
		MRCR U 0 A_SetArg(3,Args[3]+1)
		MRCR U 0 A_SpawnItemEx("Merc_GrabBusterChaseFX",0,0,0,0,0,0,0,1)
		MRCR U 0 A_FaceTracer(6,3)
		MRCR U 1 A_ChangeVelocity(3+3*Args[3],0,sin(pitch)*(3+3*Args[3]),3)
		MRCR V 0 A_JumpIfCloser(64,"Death")
		MRCR V 0 A_FaceTracer(6,3)
		MRCR V 1 A_ChangeVelocity(3+3*Args[3],0,sin(pitch)*(3+3*Args[3]),3)
		Loop

		SpawnL:
		MRCR U 0 A_JumpIfCloser(64,"Death")
		MRCR U 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"No")
		MRCR U 0 A_CountDown
		//A_SeekerMissile(90,90,2)
		MRCR U 0 A_SpawnItemEx("Merc_GrabBusterChaseFX",0,0,0,0,0,0,0,1)
		MRCR U 0 A_FaceTracer(90,90)
		MRCR U 1 A_ChangeVelocity(50,0,sin(pitch)*50,3)
		MRCR V 0 A_JumpIfCloser(64,"Death")
		MRCR V 0 A_FaceTracer(90,90)
		MRCR V 1 A_ChangeVelocity(50,0,sin(pitch)*50,3)
		Loop
		
		Death:
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Weapon")
		TNT1 A 3 A_GiveToTarget("MercuryClassAmmo",4)
		Stop
		
		No:
		TNT1 A 0
		Stop
	}
  }


  Actor Merc_GrabBusterChaseFX : BasicClientside
  {
    RenderStyle translucent
	Alpha 0.8
	Scale 1.5
	+FORCEXYBILLBOARD
	States
	{
		Spawn:
		MRCR UV 1 A_FadeOut(0.05)
		Loop
	}
  }


  Actor Merc_GrabBuster_L : Merc_GrabBuster
  {
    States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		TNT1 A 1
		MRCR AC 1
		MRCR A 0 A_ChangeFlag("BOUNCEONWALLS",0)
		MRCR ABCD 3 A_ChangeVelocity(0,8,0,CVF_RELATIVE)
		Goto Spawnloop+3
	}
  }


  Actor Merc_GrabBuster_R : Merc_GrabBuster
  {
    States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		TNT1 A 1
		MRCR AC 1
		MRCR A 0 A_ChangeFlag("BOUNCEONWALLS",0)
		MRCR ABCD 3 A_ChangeVelocity(0,-8,0,CVF_RELATIVE)
		Goto Spawnloop+3
	}
  }


  Actor Merc_GrabBusterB : Merc_GrabBuster{translation "192:192=205:205","198:198=74:74"}
  Actor Merc_GrabBusterR : Merc_GrabBuster{translation "192:192=171:171","198:198=41:41"}
  Actor Merc_GrabBusterO : Merc_GrabBuster{translation "192:192=104:104","198:198=128:128"}
  Actor Merc_GrabBusterP : Merc_GrabBuster{translation "192:192=229:229","198:198=232:232"}

  Actor Merc_GrabBuster_LB : Merc_GrabBuster_L{translation "192:192=205:205","198:198=74:74"}
  Actor Merc_GrabBuster_LR : Merc_GrabBuster_L{translation "192:192=171:171","198:198=41:41"}
  Actor Merc_GrabBuster_LO : Merc_GrabBuster_L{translation "192:192=104:104","198:198=128:128"}
  Actor Merc_GrabBuster_LP : Merc_GrabBuster_L{translation "192:192=229:229","198:198=232:232"}

  Actor Merc_GrabBuster_RB : Merc_GrabBuster_R{translation "192:192=205:205","198:198=74:74"}
  Actor Merc_GrabBuster_RR : Merc_GrabBuster_R{translation "192:192=171:171","198:198=41:41"}
  Actor Merc_GrabBuster_RO : Merc_GrabBuster_R{translation "192:192=104:104","198:198=128:128"}
  Actor Merc_GrabBuster_RP : Merc_GrabBuster_R{translation "192:192=229:229","198:198=232:232"}


//==========================
// Blob Attack & Effects
//--------------------------
//==========================

  Actor MercurySplashRadius : BasicExplosion
  {
    Translation "192:192=104:104","198:198=110:110","249:249=130:130"
	DamageType "MercSplooshTackle"
	Obituary "$OB_MERCURYSLAM"
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_Explode(24,128,0,0,64)
		TNT1 AAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,-24,random(2,8),0,random(4,12),random(0,359),1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,0,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,30,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,60,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,90,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,120,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,150,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,180,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,210,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,240,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,270,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,300,1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlobWaveFX",0,0,-28,5,0,0,330,1)
		TNT1 A 4
		Stop
	}
  }


  Actor MercurySplashRadiusB : MercurySplashRadius{Translation"192:192=205:205","198:198=74:74","249:249=[30,54,172]:[30,54,172]"}
  Actor MercurySplashRadiusR : MercurySplashRadius{Translation"192:192=171:171","198:198=41:41","249:249=43:43"}
  Actor MercurySplashRadiusO : MercurySplashRadius{Translation"192:192=104:104","198:198=128:128","249:249=131:131"}
  Actor MercurySplashRadiusP : MercurySplashRadius{Translation"192:192=229:229","198:198=232:232","249:249=223:223"}


  Actor MercuryBlobSplashRadius : MercurySplashRadius
  {
	DamageType "MercSploosh"
    Obituary "$OB_MERCURYBLOB"
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 2 A_Explode(6,128,0,0,64)
		TNT1 AAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,4,random(2,8),0,random(4,12),random(0,359),1)
		TNT1 A 2
		Stop
	}
  }


  Actor MercuryBlobSplashRadiusW : MercuryBlobSplashRadius
  {
    States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 2 A_Explode(3,128,0,0,64)
		TNT1 AAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,4,random(2,8),0,random(4,12),random(0,359),1)
		TNT1 A 2
		Stop
	}
  }


  Actor MercuryContactDamage : BasicExplosion
  {
	DamageType "MercSploosh"
	Obituary "$OB_MERCURYSLAM"
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 2 A_Explode(2,96,0,0,2)
		Stop
	}
  }


  Actor MercuryBlobSplashFX
  {
    +MISSILE
	-NOGRAVITY
	+DONTBLAST
	+THRUACTORS
	+DONTSPLASH
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	Damage (0)
	Height 2
	Radius 2
	Speed 5
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 1
		MRCR AC 2
		Goto Death
		
		Death:
		MRCR A 0 A_SetScale(scaleX-0.15) 
		MRCR A 1 A_FadeOut(0.1)
		MRCR C 0 A_SetScale(scaleX-0.15) 
		MRCR C 1 A_FadeOut(0.1)
		Loop
	}
  }


  Actor MercuryBlobWaveFX : MercuryBlobSplashFX
  {
    +NOGRAVITY
	RenderStyle translucent
	Alpha 0.7
	Speed 15
	Scale 1.5
	States
	{
		Spawn:
		DUOR T 0
		DUOR TTTTTTTTTTTT 1 A_SetScale(1.5,scaleY-0.08) 
		DUOR T 1 A_FadeOut(0.5)
		Wait
		
		Death:
		TNT1 A 0
		Stop
	}
  }

  Actor MercuryBlob1
  {
    Translation "192:192=104:104","198:198=110:110","249:249=130:130"
	Projectile
	DamageType "Mercury_Blob"
	Obituary "$OB_MERCURYBLOB"
	+NOEXPLODEFLOOR
	-NOGRAVITY
	+DONTREFLECT
	+NOTARGETSWITCH
	+THRUSPECIES
	Bouncetype Classic
	-BOUNCEONWALLS
	-BOUNCEONFLOORS
	-BOUNCEONCEILINGS
	-ALLOWBOUNCEONACTORS
	+CANBOUNCEWATER
	+NOEXPLODEFLOOR
	BounceFactor 1.0
	WallBounceFactor 1.0
	BounceCount 5
	ReactionTime 37
	Species "Mercury"
	Damage (12)
	Radius 13
	Height 13
	Speed 1
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		TNT1 A 0
		MRCR EFGF 2
		MRCR E 0 A_CheckFloor("Spawn2")
		
		Fall:
		MRCR EFGF 1 A_CheckFloor("Landing")
		Loop
		
		Landing:
		MRCR E 0 //A_GiveInventory("ResyncPickup",1)
		MRCR E 0 A_PlaySoundEx("classes/burstpop","Weapon")
		MRCR E 0 A_SpawnItemEx("MercurySplashRadius",0,0,28,0,0,0,0,1)
		MRCR EF 1
		Goto Spawn2
		
		Spawn2:
		MRCR E 0 //A_GiveInventory("ResyncPickup",1)
		MRCR EEE 1 A_JumpIfCloser(56,"Give")
		MRCR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		MRCR FFF 1 A_JumpIfCloser(56,"Give")
		MRCR G 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		MRCR GGG 1 A_JumpIfCloser(56,"Give")
		MRCR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		MRCR FFF 1 A_JumpIfCloser(56,"Give")
		MRCR E 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathOOC")
		MRCR E 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		Goto Spawn2+1
		
		Give:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_ChangeFlag("USEBOUNCESTATE",0)
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Body")
		TNT1 A 1 A_GiveToTarget("MercuryClassAmmo",6)
		Stop
		
		Home:
		MRCR E 0 A_ChangeFlag("FLOORHUGGER",1)
		MRCR E 0 A_ChangeFlag("BOUNCEONWALLS",1)
		MRCR E 0 A_FaceTarget
		MRCR E 0 A_ChangeVelocity(40,0,0,3)
		MRCR EEE 1 A_JumpIfCloser(56,"Give")
		MRCR E 0 A_CountDown
		MRCR E 0 A_FaceTarget
		MRCR F 0 A_ChangeVelocity(40,0,0,3)
		MRCR FFF 1 A_JumpIfCloser(56,"Give")
		MRCR E 0 A_CountDown
		MRCR E 0 A_FaceTarget
		MRCR G 0 A_ChangeVelocity(40,0,0,3)
		MRCR GGG 1 A_JumpIfCloser(56,"Give")
		MRCR E 0 A_CountDown
		MRCR E 0 A_FaceTarget
		MRCR F 0 A_ChangeVelocity(40,0,0,3)
		MRCR FFF 1 A_JumpIfCloser(56,"Give")
		MRCR E 0 A_CountDown
		MRCR E 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathOOC")
		Goto Home+2
		
		DeathOOC:
		TNT1 A 1 A_CountdownArg(0)
		Wait
		
		Death:
		TNT1 A 0 A_PlaySoundEx("classes/burstpop","Weapon")
		TNT1 AAAAAAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,4,random(2,8),0,random(4,12),random(0,359),1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlob1ReturnHit",0,0,0,0,0,0,0,1)
		TMFX ABCD 4
		Stop
	}
  }

  Actor MercuryBlob1X
  {
    Translation "192:192=104:104","198:198=110:110","249:249=130:130"
	Projectile
	DamageType "MercSploosh"
	Obituary "$OB_MERCURYBLOB"
	+NOEXPLODEFLOOR
	-NOGRAVITY
	+DONTREFLECT
	+NOTARGETSWITCH
	+THRUSPECIES
	Bouncetype Classic
	-BOUNCEONWALLS
	-BOUNCEONFLOORS
	-BOUNCEONCEILINGS
	-ALLOWBOUNCEONACTORS
	+CANBOUNCEWATER
	+NOEXPLODEFLOOR
	BounceFactor 1.0
	WallBounceFactor 1.0
	BounceCount 5
	ReactionTime 37
	Species "Mercury"
	Damage (15)
	Radius 13
	Height 13
	Speed 1
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		TNT1 A 0
		MECR HIJI 2
		MECR E 0 A_CheckFloor("Spawn2")
		
		Fall:
		MECR HIJI 1 A_CheckFloor("Landing")
		Loop
		
		Landing:
		MECR E 0 //A_GiveInventory("ResyncPickup",1)
		MECR E 0 A_PlaySoundEx("classes/burstpop","Weapon")
		MECR E 0 //A_SpawnItemEx("MercurySplashRadius",0,0,28,0,0,0,0,1)
		MECR HI 1
		Goto Spawn2
		
		Spawn2:
		MECR E 0 //A_GiveInventory("ResyncPickup",1)
		MECR HHH 1 A_JumpIfCloser(56,"Give")
		MECR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		MECR III 1 A_JumpIfCloser(56,"Give")
		MECR G 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		MECR JJJ 1 A_JumpIfCloser(56,"Give")
		MECR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		MECR III 1 A_JumpIfCloser(56,"Give")
		MECR E 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathOOC")
		MECR E 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"Home")
		Goto Spawn2+1
		
		Give:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_ChangeFlag("USEBOUNCESTATE",0)
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Body")
		TNT1 A 1 A_GiveToTarget("MercuryClassAmmo",12)
		Stop
		
		Home:
		MECR E 0 A_ChangeFlag("FLOORHUGGER",1)
		MECR E 0 A_ChangeFlag("BOUNCEONWALLS",1)
		MECR E 0 A_FaceTarget
		MECR E 0 A_ChangeVelocity(40,0,0,3)
		MECR HHH 1 A_JumpIfCloser(56,"Give")
		MECR E 0 A_CountDown
		MECR E 0 A_FaceTarget
		MECR F 0 A_ChangeVelocity(40,0,0,3)
		MECR III 1 A_JumpIfCloser(56,"Give")
		MECR E 0 A_CountDown
		MECR E 0 A_FaceTarget
		MECR G 0 A_ChangeVelocity(40,0,0,3)
		MECR JJJ 1 A_JumpIfCloser(56,"Give")
		MECR E 0 A_CountDown
		MECR E 0 A_FaceTarget
		MECR F 0 A_ChangeVelocity(40,0,0,3)
		MECR III 1 A_JumpIfCloser(56,"Give")
		MECR E 0 A_CountDown
		MECR E 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathOOC")
		Goto Home+2
		
		DeathOOC:
		TNT1 A 1 A_CountdownArg(0)
		Wait
		
		Death:
		TNT1 A 0 A_PlaySoundEx("classes/burstpop","Weapon")
		TNT1 AAAAAAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,4,random(2,8),0,random(4,12),random(0,359),1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlob1XReturnHit",0,0,0,0,0,0,0,1)
		TMFX ABCD 4
		Stop
	}
  }

  Actor MercuryBlob1Return : MercuryBlob1
  {
    States
	{
		Spawn:
		MRCR E 0
		Goto Home
		
		Give:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_ChangeFlag("USEBOUNCESTATE",0)
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Body")
		TNT1 A 1 A_GiveToTarget("MercuryClassAmmo",6)
		Stop
		
	}
  }


  Actor MercuryBlob1ReturnHit : MercuryBlob1
  {
    +THRUACTORS
	+DONTBLAST
	RenderStyle Translucent
	Alpha 0.75
	States
	{
		Spawn:
		MRCR E 0
		Goto Home
		
		Give:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_ChangeFlag("USEBOUNCESTATE",0)
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Body")
		TNT1 A 1 A_GiveToTarget("MercuryClassAmmo",7)
		Stop
		
		Death:
		TNT1 A 0 A_PlaySoundEx("classes/burstpop","Weapon")
		TNT1 AAAAAAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,4,random(2,8),0,random(4,12),random(0,359),1)
		TMFX ABCD 4
		Stop
	}
  }
  
    Actor MercuryBlob1XReturnHit : MercuryBlob1X
  {
    +THRUACTORS
	+DONTBLAST
	RenderStyle Translucent
	Alpha 0.75
	States
	{
		Spawn:
		MRCR E 0
		Goto Home
		
		Give:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_ChangeFlag("USEBOUNCESTATE",0)
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Body")
		TNT1 A 1 A_GiveToTarget("MercuryClassAmmo",12)
		Stop
		
		Death:
		TNT1 A 0 A_PlaySoundEx("classes/burstpop","Weapon")
		TNT1 AAAAAAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,4,random(2,8),0,random(4,12),random(0,359),1)
		TMFX ABCD 4
		Stop
	}
  }


  Actor MercuryBlob2
  {
    Translation "192:192=104:104","198:198=110:110","249:249=130:130"
	Projectile
	DamageType "Mercury_Blob"
	Obituary "$OB_MERCURYBLOB"
	BounceSound "Weapon/BubbleBounce"
	-NOEXPLODEFLOOR
	-NOGRAVITY
	+DONTREFLECT
	+NOTARGETSWITCH
	+THRUSPECIES
	+BOUNCEONWALLS
	+BOUNCEONFLOORS
	+BOUNCEONCEILINGS
	+CANBOUNCEWATER
	+USEBOUNCESTATE
	Species "Mercury"
	BounceCount 5
	ReactionTime 50
	Damage (12)
	Radius 13
	Height 13
	Speed 38
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		MRCR EEE 1
		MRCR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR FFF 1
		MRCR G 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR GGG 1
		MRCR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR FFF 1
		MRCR E 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathOOC")
		MRCR E 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR E 0 A_CountDown
		Loop
		
		SpawnGive:
		MRCR EEE 1 A_JumpIfCloser(56,"Give")
		MRCR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR FFF 1 A_JumpIfCloser(56,"Give")
		MRCR G 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR GGG 1 A_JumpIfCloser(56,"Give")
		MRCR F 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR FFF 1 A_JumpIfCloser(56,"Give")
		MRCR E 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathOOC")
		MRCR E 0 A_JumpIfInTargetInventory("Merc_BlobOff_F",1,"SpawnR")
		MRCR E 0 A_CountDown
		Loop
		
		Bounce:
		MRCR E 0 A_PlaySoundEx("classes/burstpop","Weapon")
		MRCR E 0 A_JumpIfInventory("VivifyDelay8",1,"WeakBounce")
		MRCR E 0 A_GiveInventory("VivifyDelay8",1)
		MRCR E 0 A_SpawnItemEx("MercuryBlobSplashRadius",0,0,8,0,0,0,0,1)
		Goto SpawnGive
		
		WeakBounce:
		MRCR E 0 A_SpawnItemEx("MercuryBlobSplashRadiusW",0,0,8,0,0,0,0,1)
		Goto SpawnGive
		
		SpawnR:
		MRCR E 0 A_SpawnItemEx("MercuryBlob1Return",0,0,0,0,0,0,0,1)
		Stop
		
		Give:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_ChangeFlag("USEBOUNCESTATE",0)
		TNT1 A 0 A_PlaySoundEx("item/JunkPick","Body")
		TNT1 A 1 A_GiveToTarget("MercuryClassAmmo",7)
		Stop
		
		DeathOOC:
		TNT1 A 1 A_CountdownArg(0,"XDeath")
		Wait
		
		Crash:
		XDeath:
		TNT1 A 0 A_PlaySoundEx("classes/burstpop","Weapon")
		TNT1 AAAAAAAA 0 A_SpawnItemEx("MercuryBlobSplashFX",0,0,4,random(2,8),0,random(4,12),random(0,359),1)
		TNT1 A 0 A_SpawnItemEx("MercuryBlob1ReturnHit",0,0,0,0,0,0,0,1)
		TMFX ABCD 4
		Stop
		
		Death:
		TNT1 A 0 A_SpawnItemEx("MercuryBlob1",0,0,0,0,0,0,0,1)
		Stop
	}
  }

  Actor MercuryBlob2B : MercuryBlob2{Translation"192:192=205:205","198:198=74:74","249:249=[30,54,172]:[30,54,172]"}
  Actor MercuryBlob2R : MercuryBlob2{Translation"192:192=171:171","198:198=41:41","249:249=43:43"}
  Actor MercuryBlob2O : MercuryBlob2{Translation"192:192=104:104","198:198=128:128","249:249=131:131"}
  Actor MercuryBlob2P : MercuryBlob2{Translation"192:192=229:229","198:198=232:232","249:249=223:223"}


//================
//Attack Items
//----------------
//================

  Actor MercurySnatchDamager_P : CustomInventory
  {
    States
	{
		Pickup:
		TNT1 A 0
		Goto Pickup2
		
		Pickup2:
		TNT1 A 0 A_FireCustomMissile("MercurySnatchDamager",0,0,0,0)
		Stop
	}
  }

actor MercuryMainInv_CI : CustomInventory
{
States
{
Pickup:
//TNT1 A 0 A_JumpIfInventory("MercuryClassAmmo",1,1)
//goto Pickup3
//TNT1 A 0 A_TakeInventory("MercuryClassAmmo",1)
MRCH B 0 A_PlaySoundEx("Weapon/grabbuster","Weapon")
TNT1 A 0 A_GiveInventory("MercuryMain_CI")
stop
//Pickup3:
//MRCH B 0 A_PlaySoundEx("weapon/GrabBusterLegacy","Weapon")
//TNT1 A 0 A_GiveInventory("MercuryMainNoAmmo_CI")
//stop
}
}

  Actor MercuryMain_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_L",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_R",18,0,8,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LB",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterB",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RB",18,0,8,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LR",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterR",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RR",18,0,8,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LO",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterO",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RO",18,0,8,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LP",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterP",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RP",18,0,8,0)
		Goto Done
	}
  }
  
  Actor MercuryMainNoAmmo_CI : TeamColor_CI
  {
    States
	{
		FireX:
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_L",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster",0,1,8,0)
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_R",18,0,8,0)
		Goto Done
		
		FireB:
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LB",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterB",0,1,8,0)
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RB",18,0,8,0)
		Goto Done
		
		FireR:
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LR",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterR",0,1,8,0)
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RR",18,0,8,0)
		Goto Done
		
		FireO:
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LO",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterO",0,1,8,0)
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RO",18,0,8,0)
		Goto Done
		
		FireP:
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_LP",-18,0,8,0)
		TNT1 A 0 A_FireCustomMissile("Merc_GrabBusterP",0,1,8,0)
		//TNT1 A 0 A_FireCustomMissile("Merc_GrabBuster_RP",18,0,8,0)
		Goto Done
	}
  }


  Actor MercuryMain2_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("MercuryBlob2",0,0,0,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("MercuryBlob2B",0,0,0,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("MercuryBlob2R",0,0,0,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("MercuryBlob2O",0,0,0,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("MercuryBlob2P",0,0,0,0)
		Goto Done
	}
  }


  Actor MercuryAlt_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("MercurySplashRadius",0,0,0,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("MercurySplashRadiusB",0,0,0,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("MercurySplashRadiusR",0,0,0,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("MercurySplashRadiusO",0,0,0,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("MercurySplashRadiusP",0,0,0,0)
		Goto Done
	}
  }
  
actor MercuryBlobFormWeakness : BasePowerWeak
{
damagefactor "Normal",1.1
}