actor SheepMapBlock 11746
{
	//$Category MM8BDM-Interactive Props
	//$Title Holographic Block
	//$NotAngled
	PROJECTILE
	+NOGRAVITY
	+ACTLIKEBRIDGE
	+THRUSPECIES
	species "MovingPlatform"
	renderstyle none
	height 32
	radius 12
	Scale 2.0
	States
	{
	Spawn:
		SBLO A 3
		SBLO A 0 A_Stop
		SBLO A 0 A_ChangeFlag(MISSILE, false)
		SBLO A 0 A_ChangeFlag(NOBLOCKMAP, false)
		SBLO A 0 A_ChangeFlag(SOLID, true)
		SBLO A 0 A_SpawnItemEx("SheepBlockDetect", 0, 0, 32)
	SpawnLoop:
		SBLO A 1 A_JumpIfInventory("SheepBlockFlag", 1, "VanishStart")
		loop
	VanishStart:
		SBLO A 0 ACS_NamedExecuteAlways("10SHE_BlockVanish", 0, tid)
		SBLO A 1
		wait
	Destroy:
		SBLO A 0 A_TakeInventory("SheepBlockFlag", 1)
		SBLO A 0 A_ChangeFlag(SOLID, FALSE)
		SBLO Z 1
		wait
	Death:
		SBLO Z 16
	Replace:
		SBLO Z 1
		SBLO Z 0 A_SpawnItemEx("SheepMapBlock", 0, 0, 0, 0, 0, 0, 0, 0, 0, tid)
		SBLO Z 0 A_SpawnItemEx("SheepBlockDamager", 0, 0, 0)
		stop
	}
}

actor SheepBlockDamager
{
	PROJECTILE
	+FOILINVUL
	+THRUSPECIES
	+SERVERSIDEONLY
	species "MovingPlatform"
	Damage (0x7FFFFFFD)
	damagetype "SheepBlockRespawn"
	SelfObituary "$OB_SHEEPBLOCKRESPAWN"
	height 31
	radius 12
	States
	{
	Spawn:
		TNT1 A 0
		//TNT1 A 0 A_Explode(200, 12, 0, 0, 12)
		TNT1 A 2
		stop
	}
}

actor SheepBlockDetect
{
	PROJECTILE
	+LOOKALLAROUND
	+SKYEXPLODE
	+DONTBLAST
	+DONTREFLECT
	+THRUSPECIES
	+SERVERSIDEONLY
	species "MovingPlatform"
	Speed 0
	Damage (0)
	radius 10
	height 5
	renderstyle "none"
	States
	{
	Spawn:
		PLAY A 1
		PLAY A 0 A_CheckFlag(SOLID, "Spawn", AAPTR_TARGET)
		goto Death
	Death:
		TNT1 A 0 A_GiveToTarget("SheepBlockFlag", 1)
	End:
		TNT1 A 0
		stop
	}
}

actor SheepBlockFlag : Inventory
{
	inventory.amount 1
	inventory.maxamount 1
}

actor Octobulb 11764
{
	//$Category MM8BDM-Props
	//$Arg0 Spawn Babies?
	//$Arg0Enum { 0 = "Yes"; 1 = "No"; }
	//$Arg0Type 11
	-SOLID
	+LOOKALLAROUND
	+AMBUSH
	+QUICKTORETALIATE
	+FORCEYBILLBOARD
	//+CLIENTSIDEONLY
	speed 0
	height 48
	radius 16
	scale 2.0
	var int user_lightTime;
	States
	{
	Spawn:
		SHPR AAA 2
		SHPR A 0 A_SetUserVar("user_lightTime", user_lightTime-1)
		SHPR A 0 A_Look//A_LookEx(LOF_NOSOUNDCHECK, 0, 1000, 0, 0, "Awaken")
		loop
	See:
		SHPR AAA 2 A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		Goto Spawn
	Open:
		SHPR B 4
	Awake:
		SHPR C 18 bright
		SHPR C 0 A_JumpIf(args[0] == 0 && user_lightTime <= 0, "SpawnBulbs")
		SHPR C 0 A_SetUserVar("user_lightTime", user_lightTime-1)
		SHPR C 0 A_JumpIfTargetInLOS("Awake", 0, 0, 1000)
		SHPR C 1 A_JumpIf(true, "Sleep")
		wait
	Sleep:
		SHPR B 3 A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		SHPR C 3 bright A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		SHPR B 3 A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		SHPR C 3 bright A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		SHPR B 3 A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		SHPR C 3 bright A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		SHPR B 3 A_JumpIfTargetInLOS("Open", 0, 0, 1000)
		goto Spawn
	SpawnBulbs:
		SHPR B 0 A_SpawnItemEx("PachiSmoke", 48, 0, 32, 0, 0.4, 0)
		SHPR B 0 A_SpawnItemEx("PachiSmoke", 48, 0, 32, 0, -0.4, 0)
		SHPR B 0 A_SpawnItemEx("PachiSmoke", 48, 0, 32, 0, 0, 0.4)
		SHPR B 0 A_SpawnItemEx("PachiSmoke", 48, 0, 32, 0, 0, -0.4)
		SHPR C 8 bright
		SHPR B 0 A_SpawnItemEx("LittlePachipachi", 16, 0, 32, 16, 0, 0,  22.5)
		SHPR B 0 A_SpawnItemEx("LittlePachipachi", 16, 0, 32, 16, 0, 0, -22.5)
		SHPR B 0 A_SetUserVar("user_lightTime", 15)
		goto Awake
	}
}

actor PachiSmoke
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	+FORCEXYBILLBOARD
	-SOLID
	scale 2.5
	height 0
	radius 0
	States
	{
	Spawn:
		TNT1 A 0
		SHPR HIHIHI 4
		SHPR HZHZHZHZIZIZIZIZHZHZHZHZIZIZIZIZHZHZHZHZ 1
		stop
	}
}

actor LittlePachipachi
{
	PROJECTILE
	+THRUACTORS
	-NOGRAVITY
    +BRIGHT
	damage 0
	Scale 2.0
	Height 1
	radius 1
	gravity 0.1
	States
	{
	Spawn:
		SHPR G 4
		MMFX D 0 A_Stop
	SpawnLoop:
		SHPR DEDEDEDEDEDEDEDE 2
	Up:
		SHPR F 0 A_SetAngle(angle+random(-10, 10))
		SHPR F 0 A_ChangeVelocity(frandom(0, 15), 0, 12, CVF_REPLACE)
		SHPR FGFG 2
		MMFX D 0 A_Stop
		goto SpawnLoop
	}
}
