//Get ready for some ridiculously long names!

ACTOR MidasPawnchPuff : PawnchPuff
{ 
   DamageType MidasCloseCombat
}

ACTOR MidasPawnchPuff2 : MidasPawnchPuff //Uppercut
{ 
   Decal PunchStamp2
}

ACTOR MidasPawnchPuffLeft : MidasPawnchPuff //Standard Punch
{ 
   Decal PunchStampLeft
}

ACTOR MidasPawnchPuffLeft2 : MidasPawnchPuff //Uppercut
{ 
   Decal PunchStampLeft2
}

ACTOR MidasScratchPuffLeft : ScratchPuffLeft
{ 
   DamageType MidasCloseCombat
}

ACTOR MidasScratchPuffRight : MidasScratchPuffLeft
{
   Decal ClawStampRight
} 

//Kickin'
ACTOR MidasKickProjectile : KickProjectile
{
	DamageType MidasShoelaces
}

ACTOR MidasKickProjectileLeft : KickProjectileLeft
{
	DamageType MidasShoelaces
}

ACTOR MidasKickProjectileRight : KickProjectileRight
{
	DamageType MidasShoelaces
}


//Melee - Berserk edition

ACTOR SuperMidasPawnchPuff : SuperPawnchPuff
{ 
   DamageType SuperMidasCloseCombat
   Decal SuperMidasPunchStamp
   States
   {
  Spawn:
    TNT1 A 0 NoDelay A_AlertMonsters(256)
    TNT1 A 0 A_Jump(128,"AltSound")
    TNT1 A 0 A_PlaySound("SuperPunch/Hit",5,0.8)
    Goto YESH
  AltSound:
    TNT1 A 0 A_PlaySound("SuperPunch/Hit",0,0.8)
  YESH:
	TNT1 A 0 A_SpawnItemEx("SuperMidasPunchPuff_Shock",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("SuperMidasPunchPuff_Impact",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("SuperMidasPunchPuff_Wave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TNT1 A 0 A_Explode(20,48,0)
	TNT1 A 15 A_Quake(3,10,0,384,"none")
    stop
  Crash:
    TNT1 A 0
	Goto Spawn
  XDeath:
    TNT1 A 0
	Goto Spawn
   }
}

ACTOR SuperMidasPawnchPuff2 : SuperMidasPawnchPuff //Uppercut
{ 
   Decal SuperMidasPunchStamp2
}

ACTOR SuperMidasPawnchPuffLeft : SuperMidasPawnchPuff //Standard punch
{ 
   Decal SuperMidasPunchStampLeft
}

ACTOR SuperMidasPawnchPuffLeft2 : SuperMidasPawnchPuff //Uppercut
{ 
   Decal SuperMidasPunchStampLeft2
}

Actor SuperMidasPunchPuff_Shock : SuperPunchPuff_Shock
{
	States
	{
		Spawn:
			SHCK C 0 NoDelay A_SetScale(ScaleX + FRandom(0.01, 0.02))
			SHCK C 1 Bright A_FadeOut(0.1)
			Loop
	}
}

Actor SuperMidasPunchPuff_Impact : SuperPunchPuff_Shock
{
	Scale 0.025
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_Jump(256,"SpriteA","SpriteB","SpriteC","SpriteD")
		SpriteA:
			MDST A 0
			Goto Looplet
		SpriteB:
			MDST B 0
			Goto Looplet
		SpriteC:
			MDST C 0
			Goto Looplet
		SpriteD:
			MDST D 0
		Looplet:
			"####" "#" 0 A_SetScale(ScaleX + FRandom(0.01, 0.015))
			"####" "#" 1 Bright A_FadeOut(0.125)
			Loop
	}
}

Actor SuperMidasPunchPuff_Wave : SuperPunchPuff_Shock
{
	Scale 0.05
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_Jump(256,"SpriteA","SpriteB","SpriteC","SpriteD")
		SpriteA:
			MDWV A 0
			Goto Looplet
		SpriteB:
			MDWV B 0
			Goto Looplet
		SpriteC:
			MDWV C 0
			Goto Looplet
		SpriteD:
			MDWV D 0
			Goto Looplet
		Looplet:
			"####" "#" 0 A_SetScale(ScaleX + FRandom(0.01, 0.015))
			"####" "#" 1 Bright A_FadeOut(0.1)
			Loop
		}
}

ACTOR SuperMidasScratchPuffLeft : SuperScratchPuffLeft
{ 
   DamageType SuperMidasCloseCombat
   Decal SuperMidasClawStampLeft
   
}

ACTOR SuperMidasScratchPuffRight : SuperMidasScratchPuffLeft
{ 
   Decal SuperMidasClawStampRight
}

//Berserk Kickin'

ACTOR SuperMidasKickProjectile : SuperKickProjectile
{
	DamageType SuperMidasShoelaces
	Decal SuperMidasBootStamp
	States
	{
	Spawn:
	TNT1 A 1 
	Stop
	Death:
	TNT1 A 0 A_GiveToTarget("KickethThyHappend",1)
    TNT1 A 0 A_AlertMonsters(768)
	TNT1 A 0 A_PlaySound("SuperKick/Hit",0.9)
	TNT1 A 0 A_Explode((40*random(1,3)),128,0)
	TNT1 A 0 A_SpawnItemEx("SuperMidasKick_Shock",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("SuperMidasKick_Impact",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("SuperMidasKick_Wave",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("SuperMidasKick_Gldef",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
    TNT1 A 25 A_Quake(4,25,0,512,"none")
	Stop
	}
}

ACTOR SuperMidasKickProjectileLeft : SuperMidasKickProjectile
{
	Decal SuperMidasLeftBootStamp
}

ACTOR SuperMidasKickProjectileRight : SuperMidasKickProjectile
{
	Decal SuperMidasRightBootStamp
}

Actor SuperMidasKick_Shock :  SuperKick_Shock
{
	States
	{
		Spawn:
			SHCK C 0 NoDelay A_SetScale(ScaleX + FRandom(0.025, 0.035))
			SHCK C 1 Bright A_FadeOut(0.05)
			Loop
	}
}

Actor SuperMidasKick_Impact : SuperKick_Impact
{
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_Jump(256,"SpriteA","SpriteB","SpriteC","SpriteD")
		SpriteA:
			MDST A 0
			Goto Looplet
		SpriteB:
			MDST B 0
			Goto Looplet
		SpriteC:
			MDST C 0
			Goto Looplet
		SpriteD:
			MDST D 0
		Looplet:
			"####" "#" 0 A_SetScale(ScaleX + FRandom(0.03, 0.04))
			"####" "#" 1 Bright A_FadeOut(0.075)
			Loop
	}
}

Actor SuperMidasKick_Wave : SuperKick_Wave
{
	States
	{
		Spawn:
			TNT1 A 0 NoDelay A_Jump(256,"SpriteA","SpriteB","SpriteC","SpriteD")
		SpriteA:
			MDWV A 0
			Goto Looplet
		SpriteB:
			MDWV B 0
			Goto Looplet
		SpriteC:
			MDWV C 0
			Goto Looplet
		SpriteD:
			MDWV D 0
			Goto Looplet
		Looplet:
			"####" "#" 0 A_SetScale(ScaleX + FRandom(0.015, 0.025))
			"####" "#" 1 Bright A_FadeOut(0.05)
			Loop
	}
}

ACTOR SuperMidasKick_Gldef
{
	+NOINTERACTION
	States
	{
	Spawn:
	TNT1 A 35
	Stop
	}
}