// Pod ----------------------------------------------------------------------

ACTOR Pod
{
	Health 45
	Radius 16
	Height 54
	Painchance 255
	+SOLID +NOBLOOD +SHOOTABLE +DROPOFF
	+WINDTHRUST +PUSHABLE +SLIDESONWALLS
	+CANPASS +TELESTOMP +DONTMORPH
	+NOBLOCKMONST +DONTGIB +OLDRADIUSDMG
	DeathSound "world/podexplode"
	PushFactor 0.5
	
	action native A_PodPain (class<Actor> podtype = "PodGoo");
	action native A_RemovePod ();
	
	States
	{
	Spawn:
		PPOD A 10
		Loop
	Pain:
		PPOD B 14 A_PodPain
		Goto Spawn
	Death:
		PPOD C 5 BRIGHT A_RemovePod
		PPOD D 5 BRIGHT A_Scream
		PPOD E 5 BRIGHT A_Explode
		PPOD F 10 BRIGHT
		Stop
	Grow:
		PPOD IJKLMNOP 3
		Goto Spawn
	}
}


// Pod goo (falls from pod when damaged) ------------------------------------

ACTOR PodGoo
{
	Radius 2
	Height 4
	Gravity 0.125
	+NOBLOCKMAP +MISSILE +DROPOFF
	+NOTELEPORT +CANNOTPUSH
	States
	{
	Spawn:
		PPOD GH 8
		Loop
	Death:
		PPOD G 10
		Stop
	}
}

// Pod generator ------------------------------------------------------------

ACTOR PodGenerator
{
	+NOBLOCKMAP
	+NOSECTOR
	+DONTSPLASH
	AttackSound "world/podgrow"

	action native A_MakePod (class<Actor> podtype = "Pod");

	States
	{
	Spawn:
		TNT1 A 35 A_MakePod
		Loop
	}
}


// Teleglitter generator 1 --------------------------------------------------

ACTOR TeleGlitterGenerator1
{
	+NOBLOCKMAP 
	+NOGRAVITY
	+DONTSPLASH
	+MOVEWITHSECTOR
	States
	{
	Spawn:
		TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0,0,0.25)
		Loop
	}
}

// Teleglitter generator 2 --------------------------------------------------

ACTOR TeleGlitterGenerator2
{
	+NOBLOCKMAP 
	+NOGRAVITY
	+DONTSPLASH
	+MOVEWITHSECTOR
	States
	{
	Spawn:
		TNT1 A 8 A_SpawnItemEx("TeleGlitter2", random[TeleGlitter2](0,31)-16, random[TeleGlitter2](0,31)-16, 0, 0,0,0.25)
		Loop
	}
}


// Teleglitter 1 ------------------------------------------------------------

ACTOR TeleGlitter1
{
	+NOBLOCKMAP +NOGRAVITY +MISSILE
	RenderStyle Add
	Damage 0

	action native A_AccTeleGlitter ();

	States
	{
	Spawn:
		TGLT A 2 BRIGHT
		TGLT B 2 BRIGHT A_AccTeleGlitter
		TGLT C 2 BRIGHT
		TGLT D 2 BRIGHT A_AccTeleGlitter
		TGLT E 2 BRIGHT
		Loop
	}
}

// Teleglitter 2 ------------------------------------------------------------

ACTOR TeleGlitter2 : TeleGlitter1
{
	States
	{
	Spawn:
		TGLT F 2 BRIGHT
		TGLT G 2 BRIGHT A_AccTeleGlitter
		TGLT H 2 BRIGHT
		TGLT I 2 BRIGHT A_AccTeleGlitter
		TGLT J 2 BRIGHT
		Loop
	}
}


// --- Volcano --------------------------------------------------------------

ACTOR Volcano
{
	Radius 12
	Height 20
	+SOLID
	
	action native A_VolcanoSet ();
	action native A_VolcanoBlast ();
	
	States
	{
	Spawn:
		VLCO A 350
		VLCO A 35 A_VolcanoSet
		VLCO BCDBCD 3
		VLCO E 10 A_VolcanoBlast
		Goto Spawn+1
	}

}

// Volcano blast ------------------------------------------------------------

ACTOR VolcanoBlast
{
	Radius 8
	Height 8
	Speed 2
	Damage 2
	DamageType Fire
	Gravity 0.125
	+NOBLOCKMAP +MISSILE +DROPOFF
	+NOTELEPORT
	DeathSound "world/volcano/blast"

	action native A_VolcBallImpact ();

	States
	{
	Spawn:
		VFBL AB 4 BRIGHT A_SpawnItemEx("Puffy", random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625, 
									0,0,0,0,SXF_ABSOLUTEPOSITION, 64)
		Loop

	Death:
		XPL1 A 4 BRIGHT A_VolcBallImpact
		XPL1 BCDEF 4 BRIGHT
		Stop
	}
}

// Volcano T Blast ----------------------------------------------------------

ACTOR VolcanoTBlast
{
	Radius 8
	Height 6
	Speed 2
	Damage 1
	DamageType Fire
	Gravity 0.125
	+NOBLOCKMAP +MISSILE +DROPOFF
	+NOTELEPORT
	States
	{
	Spawn:
		VTFB AB 4 BRIGHT
		Loop
	Death:
		SFFI CBABCDE 4 BRIGHT
		Stop
	}
}