//LDM03
actor BastionKeyStone 16201//This is actually a spawner, the rock itself is listed as BastionKeyStoneFX
{
//$Category Legopack-Props
+NOINTERACTION
+NOCLIP
+RANDOMIZE
Height 80
radius 32
scale 2.5
States
{
Spawn:
CBTS A 0
CBTS A 0 A_SpawnItemEx("BastionKeyStoneFX")
stop
}
}

actor BastionKeyStoneFX
{
+SOLID
+FLOATBOB
+DONTBLAST
+RANDOMIZE
scale 2.5
Height 80
radius 32
States
{
Spawn:
CBTS ABCD 4
loop
}
}

actor BastionTower 16202
{
//$Category Legopack-Props
+CLIENTSIDEONLY
+NOGRAVITY
+FORCEYBILLBOARD
scale 2.5
States
{
Spawn:
CBT1 B 0
CBT1 A -1
stop
}
}

actor BastionTower0.5x : BastionTower 16203
{
scale 0.5
}

actor BastionTower0.25x : BastionTower 16204
{
scale 0.25
}

actor BastionTower0.125x : BastionTower 16205
{
scale 0.125
}

actor BastionTeleportSpawner : CustomInventory
{
+INVENTORY.AUTOACTIVATE
States
{
Use:
TNT1 A 0 A_SpawnItemEx("BastionTeleport", 16)
stop
}
}

actor BastionTeleport
{
+NOINTERACTION
+NOGRAVITY
+FORCEYBILLBOARD
+CLIENTSIDEONLY
-SOLID
scale 2.5
height 0
radius 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("legopack/teleport", "Body")
TNT1 A 0 A_SetScale(scalex, ceilingz-z)
CBTL ABCDEFGHIJ 1
TNT1 A 10
stop
}
}

actor BastionTeleportBall
{
Translation "253:253=105:105"
-SOLID
+DONTBLAST
+NOGRAVITY
+FLOAT
scale 2.0
States
{
Spawn:
LRT1 A 0
LRT1 A 0 A_SpawnItemEx("BastionTeleportSpace", 0, 0, 33)
LRT1 A 0 A_SpawnItemEx("BastionTeleportGlyphs", 0, 0, 33)
SpawnLoop:
TNT1 A 6 A_SpawnItemEx("BastionTeleportGlow", 0, 0, 33)
loop
}
}


actor BastionTeleportBallDark
{
Translation "253:253=105:105"
-SOLID
+DONTBLAST
+NOGRAVITY
+FLOAT
scale 2.0
States
{
Spawn:
LRT1 A 0
LRT1 A 0 A_SpawnItemEx("BastionTeleportSpace", 0, 0, 33)
LRT1 A 0 A_SpawnItemEx("BastionTeleportGlyphsDark", 0, 0, 33)
SpawnLoop:
TNT1 A 6 A_SpawnItemEx("BastionTeleportGlow", 0, 0, 33)
loop
}
}

actor BastionTeleportGlow
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	-SOLID
	renderstyle add
	alpha 0.8
	FloatSpeed 2
	scale 2.0
	height 1
	radius 1
	States
	{
	Spawn:
		LRT1 A 0 A_JumpIf(scalex < 0.1, "Death")
		LRT1 A 1
		LRT1 A 0 A_SetScale(scalex - 0.01, scaley - 0.01)
		LRT1 A 0 A_FadeOut(0.005)
		LRT1 B 1
		LRT1 A 0 A_SetScale(scalex - 0.01, scaley - 0.01)
		LRT1 A 0 A_FadeOut(0.005)
		LRT1 C 1
		LRT1 A 0 A_SetScale(scalex - 0.01, scaley - 0.01)
		LRT1 A 0 A_FadeOut(0.005)
		LRT1 D 1
		LRT1 A 0 A_SetScale(scalex - 0.01, scaley - 0.01)
		LRT1 A 0 A_FadeOut(0.005)
		loop
	Death:
		LRT1 A 0
		stop
	}
}

actor BastionTeleportSpace : BastionTeleportGlow
{
	Alpha 1.0
	renderstyle translucent
	scale 1.9
	States
	{
	Spawn:
		LRT2 ABCDEFGHIJKLM 2
		loop
	}
}

actor BastionTeleportGlyphs : BastionTeleportGlow
{
	renderstyle add
	translation "250:250=56:56"
	alpha 1.0
	+FLOAT
	+FLOATBOB
	+FORCEXYBILLBOARD
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("GlyphI", 32, 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_SpawnItemEx("GlyphLU", 32, 0, 0, 0, 0, 0, 72)
		TNT1 A 0 A_SpawnItemEx("GlyphMI", 32, 0, 0, 0, 0, 0, 144)
		TNT1 A 0 A_SpawnItemEx("GlyphNA", 32, 0, 0, 0, 0, 0, 216)
		TNT1 A 0 A_SpawnItemEx("GlyphSUN", 32, 0, 0, 0, 0, 0, 288)
		TNT1 A 1
		TNT1 A 0 A_SetAngle(angle - 3)
		loop
	}
}

actor GlyphI : BastionTeleportGlyphs
{
	-FLOAT
	-FLOATBOB
	States
	{
	Spawn:
		LDIN A 1 A_FadeOut
		wait
	}
}

actor GlyphLU : GlyphI
{
	States
	{
	Spawn:
		LDIN B 1 A_FadeOut
		wait
	}
}

actor GlyphMI : GlyphI
{
	States
	{
	Spawn:
		LDIN C 1 A_FadeOut
		wait
	}
}

actor GlyphNA : GlyphI
{
	States
	{
	Spawn:
		LDIN D 1 A_FadeOut
		wait
	}
}

actor GlyphSUN : GlyphI
{
	States
	{
	Spawn:
		LDIN E 1 A_FadeOut
		wait
	}
}

actor BastionTeleportGlyphsDark : BastionTeleportGlow
{
	renderstyle translucent
	translation "250:250=56:56"
	alpha 1.0
	+FLOAT
	+FLOATBOB
	+FORCEXYBILLBOARD
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("GlyphDarkI", 32, 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_SpawnItemEx("GlyphDarkLU", 32, 0, 0, 0, 0, 0, 72)
		TNT1 A 0 A_SpawnItemEx("GlyphDarkMI", 32, 0, 0, 0, 0, 0, 144)
		TNT1 A 0 A_SpawnItemEx("GlyphDarkNA", 32, 0, 0, 0, 0, 0, 216)
		TNT1 A 0 A_SpawnItemEx("GlyphDarkSUN", 32, 0, 0, 0, 0, 0, 288)
		TNT1 A 1
		TNT1 A 0 A_SetAngle(angle - 3)
		loop
	}
}

actor GlyphDarkI : BastionTeleportGlyphsDark
{
	-FLOAT
	-FLOATBOB
	States
	{
	Spawn:
		LDIN A 1 A_FadeOut
		wait
	}
}

actor GlyphDarkLU : GlyphDarkI
{
	States
	{
	Spawn:
		LDIN B 1 A_FadeOut
		wait
	}
}

actor GlyphDarkMI : GlyphDarkI
{
	States
	{
	Spawn:
		LDIN C 1 A_FadeOut
		wait
	}
}

actor GlyphDarkNA : GlyphDarkI
{
	States
	{
	Spawn:
		LDIN D 1 A_FadeOut
		wait
	}
}

actor GlyphDarkSUN : GlyphDarkI
{
	States
	{
	Spawn:
		LDIN E 1 A_FadeOut
		wait
	}
}