actor BallRunBase
{
	Health 3
	Radius 6
	Height 40
	Mass 100
	Speed 5
	PainChance 255
	Damage 3
	DeathSound "imp/shotx"
	BounceSound "runball/footstep"
	WallBounceSound "runball/jump"
	MONSTER
	+NOBLOOD
	+DONTGIB
	+NOICEDEATH
	-COUNTKILL
	+LOOKALLAROUND
	+THRUSPECIES
	var int user_freeze;
	var int user_clearTarget;
	var int user_expired;
	states
	{
		Spawn:
		Jump:
			"####" QR 4 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" ST 4 Bright A_CheckFloor("Land")
			loop
		Land:
			"####" A 0 ACS_NamedExecuteAlways("PlayRunBallLandingSound", 0)
			"####" UVW 4 Bright
			"####" A 0 A_Jump(256, "See")
		Idle:
			"####" A 0 A_Look
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			loop
		See:
			"####" "#" 0 A_JumpIf(user_clearTarget, "ClearTarget")
			"####" "#" 0 A_Jump(256, "SeeNoClearTarget")
			stop
		ClearTarget:
			"####" "#" 0 A_ClearTarget
			"####" "#" 0 A_SetUserVar("user_clearTarget", 0)
			"####" "#" 0 A_Jump(256, "See")
			stop
		SeeNoClearTarget:
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			stop
		Pain:
			"####" X 8 Bright
			"####" A 0 A_Jump(256, "See")
			stop
		Freeze:
			"####" "#" 0 A_SetUserVar("user_freeze", 1)
			"####" "#" random(1, 4) Bright A_JumpIf(!user_freeze, "See")
			wait
		Melee:
			"####" A 0 A_CustomMeleeAttack(random(health, health * 8))
		Die:
			"####" A 0 A_Die
			stop
	}
}

actor SmallBallRunBase : BallRunBase
{
	BounceSound "runball/smallfootstep"
	WallBounceSound "runball/smalljump"
}

actor RunBallSpawnSmoke : BallExplodeSmoke
{
	Scale 0.15
	Alpha 0.3
}

actor RunBallProjectileBase
{
	Health 1
	BounceType "Doom"
	Projectile
	+RANDOMIZE
	+CANBOUNCEWATER
	+USEBOUNCESTATE
	+THRUSPECIES
	+SHOOTABLE
	+NOBLOOD
	-NOBLOCKMAP
	+NOTARGETSWITCH
	states
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("InitializeRunBall")
			TNT1 A 0 A_Jump(256, "Idle")
			stop
		Bounce:
			TNT1 A 0 A_Stop
		Transform:
			TNT1 A 0 A_ChangeFlag("MISSILE", 0)
			TNT1 A 2 ACS_NamedExecuteWithResult("SpawnRunBall")
			stop
	}
}

actor WeaponRunBall : Weapon
{
	Health 1
	Height 48
	Speed 20
	+CANPASS
	+FRIGHTENED
	+SHOOTABLE
	+NOBLOOD
	+ACTIVATEMCROSS
	+DONTGIB
	+NOICEDEATH
	+DONTCORPSE
	BounceSound "runball/footstep"
	WallBounceSound "runball/jump"
	Weapon.Kickback 100
	var int user_initialized;
	states
	{
		Initialize:
			"####" A 0 A_JumpIf(user_initialized, "Look")
			"####" A 0 ACS_NamedExecuteWithResult("MantainItemRunBall")
			"####" A 0 A_SetUserVar("user_initialized", 1)
			"####" A 0 A_Jump(256, "Look")
		LookCheck:
			"####" A 0 A_JumpIf(health <= 0, "Look")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetItemRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckItemRunBallUntransformedShootable"))
			"####" A 0 A_ChangeFlag("NONSHOOTABLE", !CallACS("CheckItemRunBallUntransformedShootable"))
			"####" A 0 A_JumpIf(CallACS("CheckItemRunBallCanTransform") == 0, "Spawn")
		LookCheckTransform:
			"####" A 0 A_Jump(128, "Look")
			"####" A 0 A_LookEx(0, 0, 512, 512, 360, "Transform")
			"####" A 0 A_Jump(256, "Look")
			stop
		Look:
			"####" A 36
			goto LookCheck
		Transform:
			"####" A 0 ACS_NamedExecuteWithResult("RBTransformationAndThrustEffect")
			"####" A 0 A_Jump(256, "Jump")
			stop
		Jump:
			"####" Q 6 A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" U 6 A_CheckFloor("Land")
			loop
		Land:
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallLandingSound")
			"####" "YZ[" 4
			"####" A 0 A_Jump(256, "See")
			stop
		Idle:
			"####" A 0 A_JumpIf(!CallACS("CheckItemRunBallCanTransform"), "Spawn")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetItemRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_ChangeFlag("NONSHOOTABLE", !CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_Look
			"####" A 0 A_Jump(256, "IdleFrames")
			stop
		See:
			"####" A 0 A_JumpIf(!CallACS("CheckItemRunBallCanTransform"), "Spawn")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetItemRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_ChangeFlag("NONSHOOTABLE", !CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_JumpIf(CallACS("CheckItemRunBallWander"), "IdleFrames")
			"####" A 0 A_Jump(256, "SeeFrames")
			stop
		SeeFrames:
			"####" A random(0, 1)
			"####" ABCDEFGH 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		IdleFrames:
			"####" A random(0, 1)
			"####" ABCDEFGH 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "Idle")
			stop
		Death:
			"####" A 0 A_UnSetShootable
			"####" A 0 ACS_NamedExecuteWithResult("CalmDownItemRunBall")
			"####" A 0 A_Jump(256, "Spawn")
			stop
	}
}

actor ItemRunBall : CustomInventory
{
	Health 1
	Height 48
	Speed 20
	+CANPASS
	+SHOOTABLE
	+NOBLOOD
	+ACTIVATEMCROSS
	+DONTGIB
	+NOICEDEATH
	+DONTCORPSE
	BounceSound "runball/footstep"
	WallBounceSound "runball/jump"
	var int user_initialized;
	states
	{
		Initialize:
			"####" A 0 A_JumpIf(user_initialized, "Look")
			"####" A 0 ACS_NamedExecuteWithResult("MantainItemRunBall")
			"####" A 0 A_SetUserVar("user_initialized", 1)
			"####" A 0 A_Jump(256, "Look")
		LookCheck:
			"####" A 0 A_JumpIf(health <= 0, "Look")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetItemRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckItemRunBallUntransformedShootable"))
			"####" A 0 A_ChangeFlag("NONSHOOTABLE", !CallACS("CheckItemRunBallUntransformedShootable"))
			"####" A 0 A_JumpIf(CallACS("CheckItemRunBallCanTransform") == 0, "Spawn")
		LookCheckTransform:
			"####" A 0 A_Jump(128, "Look")
			"####" A 0 A_LookEx(0, 0, 512, 512, 360, "Transform")
			"####" A 0 A_Jump(256, "Look")
			stop
		Transform:
			"####" A 0 ACS_NamedExecuteWithResult("RBTransformationAndThrustEffect")
			"####" A 0 A_Jump(256, "Jump")
			stop
		Land:
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallLandingSound")
			"####" "YZ[" 4
			"####" A 0 A_Jump(256, "See")
			stop
		Idle:
			"####" A 0 A_JumpIf(!CallACS("CheckItemRunBallCanTransform"), "Spawn")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetItemRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_ChangeFlag("NONSHOOTABLE", !CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_Look
			"####" A 0 A_Jump(256, "IdleFrames")
			stop
		See:
			"####" A 0 A_JumpIf(!CallACS("CheckItemRunBallCanTransform"), "Spawn")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetItemRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_ChangeFlag("NONSHOOTABLE", !CallACS("CheckItemRunBallTransformedShootable"))
			"####" A 0 A_JumpIf(CallACS("CheckItemRunBallWander"), "IdleFrames")
			"####" A 0 A_Jump(256, "SeeFrames")
			stop
		SeeFrames:
			"####" A random(0, 1)
			"####" ABCDEFGH 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		IdleFrames:
			"####" A random(0, 1)
			"####" ABCDEFGH 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		Death:
			"####" A 0 A_UnSetShootable
			"####" A 0 ACS_NamedExecuteWithResult("CalmDownItemRunBall")
			"####" A 0 A_Jump(256, "Spawn")
			stop
	}
}

actor ItemRunBallBright : ItemRunBall
{
	states
	{
		IdleFrames:
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			stop
		SeeFrames:
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		Land:
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallLandingSound")
			"####" "YZ[" 4 Bright
			"####" A 0 A_Jump(256, "See")
			stop
	}
}

actor ItemRunBallSixFrame : ItemRunBall
{
	states
	{
		Look:
			"####" ABCDCB 6
			goto LookCheck
		Jump:
			"####" QRSTSR 6 A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UVWXWV 6 A_CheckFloor("Land")
			loop
	}
}

actor ItemRunBallSixFrameBright : ItemRunBallBright
{
	states
	{
		Look:
			"####" ABCDCB 6 Bright
			goto LookCheck
		Jump:
			"####" QRSTSR 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UVWXWV 6 Bright A_CheckFloor("Land")
			loop
	}
}

actor ItemRunBallFourFrameBright : ItemRunBallBright
{
	states
	{
		Look:
			"####" ABCD 6 Bright
			goto LookCheck
		Jump:
			"####" QRST 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UVWX 6 Bright A_CheckFloor("Land")
			loop
	}
}

actor ItemRunBallTwoFrameBrightFirst : ItemRunBallBright
{
	states
	{
		Look:
			"####" A 6 Bright
			"####" B 6
			goto LookCheck
		IdleFrames:
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			stop
		SeeFrames:
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		Jump:
			"####" Q 6 Bright A_JumpIf(velz <= 0, "Fall")
			"####" R 6 A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" U 6 Bright A_CheckFloor("Land")
			"####" V 6 A_CheckFloor("Land")
			loop
	}
}

actor ItemRunBallTwoFrameBrightSecond : ItemRunBall
{
	states
	{
		Look:
			"####" A 6
			"####" B 6 Bright
			goto LookCheck
		IdleFrames:
			"####" ABCDEFGH 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			stop
		SeeFrames:
			"####" ABCDEFGH 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		Jump:
			"####" Q 6 A_JumpIf(velz <= 0, "Fall")
			"####" R 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" U 6 A_CheckFloor("Land")
			"####" V 6 Bright A_CheckFloor("Land")
			loop
	}
}

actor ItemRunBallSingleFrame : ItemRunBall
{
	states
	{
		Look:
			"####" A 6
			goto LookCheck
		Jump:
			"####" Q 6 A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" U 6 A_CheckFloor("Land")
			loop
	}
}



Actor DecorationRB
{
	Health 1
	Radius 20
	Height 40
	DeathHeight 40
	Speed 20
	+NOBLOOD
	+ACTIVATEMCROSS
	+DONTGIB
	+NOICEDEATH
	+DONTCORPSE
	BounceSound "runball/footstep"
	WallBounceSound "runball/jump"
	var int user_initialized;
	var int user_solid;
	var int user_hanging;
	var int user_corpse;
	states
	{
		Initialize:
			"####" A 0 A_JumpIf(user_initialized, "Look")
			"####" A 0 ACS_NamedExecuteWithResult("MantainDecorationRunBall")
			"####" A 0 A_SetUserVar("user_initialized", 1)
			"####" A 0 A_Jump(256, "Look")
		LookCheck:
			"####" A 0 A_ChangeFlag("NOGRAVITY", user_hanging)
			"####" A 0 A_JumpIf(health <= 0, "LookCheckDeath")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetDecorationRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckDecorationRunBallUntransformedShootable"))
			"####" A 0 A_JumpIf(CallACS("CheckDecorationRunBallCanTransform") == 0, "Spawn")
		LookCheckTransform:
			"####" A 0 A_Jump(128, "Look")
			"####" A 0 A_LookEx(0, 0, 512, 512, 360, "Transform")
			"####" A 0 A_Jump(256, "Look")
			stop
		LookCheckDeath:
			"####" A 0 A_JumpIf(user_solid == 0, "Look")
			"####" A 0 A_ChangeFlag("SOLID", CallACS("CheckDeadDecorationSolid"))
			"####" A 0 A_Jump(256, "Look")
			stop
		Transform:
			"####" A 0 A_Gravity
			"####" A 0 ACS_NamedExecuteWithResult("RBTransformationAndThrustEffect")
			"####" A 0 A_Jump(256, "Jump")
			stop
		Land:
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallLandingSound")
			"####" "YZ[" 4
			"####" A 0 A_Jump(256, "See")
			stop
		Idle:
			"####" A 0 A_JumpIf(!CallACS("CheckDecorationRunBallCanTransform"), "Spawn")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetDecorationRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckDecorationRunBallTransformedShootable"))
			"####" A 0 A_Look
			"####" A 0 A_Jump(256, "IdleFrames")
			stop
		See:
			"####" A 0 A_JumpIf(!CallACS("CheckDecorationRunBallCanTransform"), "Spawn")
			"####" A 0 A_ChangeFlag("ISMONSTER", CallACS("CheckShouldTargetDecorationRunBalls"))
			"####" A 0 A_ChangeFlag("SHOOTABLE", CallACS("CheckDecorationRunBallTransformedShootable"))
			"####" A 0 A_JumpIf(CallACS("CheckDecorationRunBallWander"), "IdleFrames")
			"####" A 0 A_Jump(256, "SeeFrames")
			stop
		SeeFrames:
			"####" A random(0, 1)
			"####" ABCDEFGH 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		IdleFrames:
			"####" A random(0, 1)
			"####" ABCDEFGH 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		Death:
			"####" A 0 A_ChangeFlag("SHOOTABLE", 0)
			"####" A 0 A_ChangeFlag("NOGRAVITY", user_hanging)
			"####" A 0 ACS_NamedExecuteWithResult("CalmDownDecorationRunBall")
			"####" A 0 A_Jump(256, "Spawn")
			stop
	}
}

Actor DecorationRBBright : DecorationRB
{
	states
	{
		SeeFrames:
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Chase
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		IdleFrames:
			"####" A random(0, 1) Bright
			"####" ABCDEFGH 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" IJKLMNOP 1 Bright A_Wander
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallFootstepSound")
			"####" A 0 A_Jump(256, "See")
			loop
		Land:
			"####" A 0 ACS_NamedExecuteWithResult("PlayRunBallLandingSound")
			"####" "YZ[" 4 Bright
			"####" A 0 A_Jump(256, "See")
	}
}

Actor DecorationRBSingleFrame : DecorationRB
{
	states
	{
		Look:
			"####" A 6
			goto LookCheck
		Jump:
			"####" Q 6 A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" U 6 A_CheckFloor("Land")
			loop
	}
}

Actor DecorationRBSingleFrameBright : DecorationRBBright
{
	states
	{
		Look:
			"####" A 6 Bright
			goto LookCheck
		Jump:
			"####" Q 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" U 6 Bright A_CheckFloor("Land")
			loop
	}
}

Actor DecorationRBTwoFrame : DecorationRB
{
	states
	{
		Look:
			"####" AB 6
			goto LookCheck
		Jump:
			"####" QR 6 A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UV 6 A_CheckFloor("Land")
			loop
	}
}

Actor DecorationRBTwoFrameBright : DecorationRBBright
{
	states
	{
		Look:
			"####" AB 6 Bright
			goto LookCheck
		Jump:
			"####" QR 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UV 6 Bright A_CheckFloor("Land")
			loop
	}
}

Actor DecorationRBThreeFrameBright : DecorationRBBright
{
	states
	{
		Look:
			"####" ABC 6 Bright
			goto LookCheck
		Jump:
			"####" QRS 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UVW 6 Bright A_CheckFloor("Land")
			loop
	}
}

Actor DecorationRBThreeToFourFrameBright : DecorationRBBright
{
	states
	{
		Look:
			"####" ABCB 6 Bright
			goto LookCheck
		Jump:
			"####" QRSR 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UVWV 6 Bright A_CheckFloor("Land")
			loop
	}
}

Actor DecorationRBFourFrame : DecorationRB
{
	states
	{
		Look:
			"####" ABCD 4
			goto LookCheck
		Jump:
			"####" QRST 6 A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UVWX 6 A_CheckFloor("Land")
			loop
	}
}

Actor DecorationRBFourFrameBright : DecorationRBBright
{
	states
	{
		Look:
			"####" ABCD 4 Bright
			goto LookCheck
		Jump:
			"####" QRST 6 Bright A_JumpIf(velz <= 0, "Fall")
			loop
		Fall:
			"####" UVWX 6 Bright A_CheckFloor("Land")
			loop
	}
}



Actor CorpseRB : DecorationRBSingleFrame
{
	Radius 20
	DeathHeight 10
	States
	{
		Initialize:
			"####" A 0 A_SetUserVar("user_corpse", 1)
			goto super::Initialize
	}
}