ACTOR TurretTesla
{
	radius 8
	height 8
	mass 99999
	speed 0
	health 9999999
	MONSTER
	+FLOORCLIP
	+NODAMAGETHRUST
	+FRIENDLY
	//+SOLID
	-ISMONSTER //Makes it spawnable everywhere
	
	states
	{
		Spawn:
			TBAS A 0
			TBAS A 0 A_SpawnItemEx("TurretTesla2_Count", 0, 0, 64)
			TBAS A 0 A_SpawnItemEx("TurretTesla_BuildC1", 32, 32)
			TBAS A 0 A_SpawnItemEx("TurretTesla_BuildC2", -32, 32)
			TBAS A 0 A_SpawnItemEx("TurretTesla_BuildC3", -32, -32)
			TBAS A 0 A_SpawnItemEx("TurretTesla_BuildC4", 32, -32)
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD AB 5 bright
			TBLD A 2 bright
			NULL A 1 A_SpawnItemEx("TurretTesla_Head", 0, 0, 0, 0, 0, 0, 0, SXF_SETMASTER)
			NULL A 1 A_NoBlocking
		Active:
			NULL A 5
			goto Active
	}
}

ACTOR TurretTesla_Baser
{
	radius 8
	height 8
	mass 99999
	speed 0
	health 999999
	-SOLID
	States
	{
		Spawn:
			TBAS C 100
		Fade:
			TBAS C 1 A_FadeOut(0.1)
			goto Fade
	}
}



ACTOR TurretTesla2_Count
{
	radius 3
	height 3
	scale 0.5
	+NOGRAVITY
	
	renderstyle add
	
	States
	{
		Spawn:
			CONT ABCDEFGHIJKL 29 bright
			stop
	}
}

// build column
ACTOR TurretTesla_BuildC1
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC O 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC P 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC M 1
			BLDC L 1
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC IHGFECBA 1
			stop
	}
}
ACTOR TurretTesla_BuildC2
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 1
			BLDC K 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 1
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC J 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC O 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC N 1
			BLDC M 1
			BLDC L 1
			BLDC K 1
			BLDC IHGFECBA 1
			stop
	}
}
ACTOR TurretTesla_BuildC3
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 1
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_pt1_strt", CHAN_AUTO)
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC M 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC IHGFECBA 1
			stop
	}
}
ACTOR TurretTesla_BuildC4
{
	radius 8
	height 56
	mass 10000
	speed 0
	+FLOORCLIP
	+DONTOVERLAP
	+NODAMAGETHRUST
	+SOLID
	
	states
	{
		Spawn:
			BLDC A 0
			BLDC A 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC ABCDEFGHI 1
			BLDC I 5
			BLDC J 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC K 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC N 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC M 1
			BLDC L 1
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC M 1 A_PlaySound("plats/pt1_strt", CHAN_AUTO)
			BLDC N 1
			BLDC O 1
			BLDC P 1
			BLDC O 1
			BLDC N 1
			BLDC M 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC L 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC K 1
			BLDC J 1
			BLDC K 1
			BLDC L 1
			BLDC M 1
			BLDC N 1
			BLDC O 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC P 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC O 1
			BLDC N 50 A_SpawnItemEx("splatEmitter_CFX2", 0, 0, 8)
			BLDC M 1 A_PlaySound("plats/pt1_stop", CHAN_AUTO)
			BLDC L 1
			BLDC K 1
			BLDC IHGFECBA 1
			stop
	}
}


ACTOR TurretTesla_Head : TurretHeadBase
{
	obituary "%o was shot up by a Bullet Turret."
	health 350
	+FRIENDLY
	
	states
	{
		Spawn:
			TTRT A 1 A_Look
			TTRT A 0 A_SpawnItemEx("TurretTesla_Baser", 0)
			TTRT A 1 A_SpawnItemEx("TurretBase1", 0)
			NULL A 0 A_JumpIfHealthLower(300,"Spawn2")
			TTRT A 10  A_PlaySound("turret/active", CHAN_AUTO, 6)
			goto Spawn
		Spawn2:
			NULL A 0 A_SpawnItemEx("Smoke",random(-8,8),random(-8,8),56,0,0,random(1,3))
			TTRT A 1 A_Look
			TTRT A 0 A_SpawnItemEx("TurretTesla_Baser", 0)
			TTRT A 0 A_PlaySoundEx ("TTRTa/Loop", "SoundSlot5", 1)
			TTRT A 1 A_Look
			TTRT A 0 A_PlaySoundEx ("TTRTa/Loop", "SoundSlot5", 1)
			TTRT A 1 A_Look
			TTRT A 0 A_PlaySoundEx ("TTRTa/Loop", "SoundSlot5", 1)
			TTRT A 1 A_Look
			TTRT A 0 A_PlaySoundEx ("TTRTa/Loop", "SoundSlot5", 1)
			TTRT A 1 A_Look
			TTRT A 0 A_PlaySoundEx ("TTRTa/Loop", "SoundSlot5", 1)
			
			goto Spawn

		See:
			NULL A 0 A_JumpIfhealthLower(200,"See2")
			TTRT A 0 A_SpawnItemEx("TurretTesla_Baser", 0)
			TTRT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Chase
			TTRT A 5  A_PlaySound("turret/active", CHAN_AUTO, 6)
			goto See
		See2:
			NULL A 0 A_SpawnItemEx("Smoke",random(-8,8),random(-8,8),56,0,0,random(1,3))
			TTRT A 0 A_SpawnItemEx("TurretTesla_Baser", 0)
			TTRT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Chase
			TTRT A 5  A_PlaySound("turret/active", CHAN_AUTO, 6)
			goto See2
		Missile:
			NULL A 0 A_JumpIfHealthLower(300,"Missile2")
			TTRT A 2 A_FaceTarget
			TTRT A 0 A_SpawnItemEx("TurretTesla_Baser", 0)
			TTRT A 0 bright A_PlaySound ("TTRTa/Attack")
			TTRT A 0 bright A_SpawnItem ("TTRTaZapper", 0, 60)
			TTRT AAAA 1 bright
			TTRT A 2
			goto See
		Missile2:
			TTRT A 2 A_FaceTarget
			TTRT A 0 bright A_PlaySound ("TTRTa/Attack")
			TTRT A 0 bright A_SpawnItem ("TTRTaZapper", 0, 60)
			TTRT A 0 A_SpawnItemEx("TurretTesla_Baser", 0)
			NULL A 0 A_SpawnItemEx("Smoke",random(-8,8),random(-8,8),56,0,0,random(1,3))
			TTRT AAAA 1 bright
			TTRT A 2
			goto See
		
		Pain:
			TTRT A 1
			TTRT A 0 A_SpawnItemEx("TurretTesla_Baser", 0)
			TTRT A 1 A_Pain
			goto See
		Death:
			//BTRT A 1 bright A_SpawnItemEx ("Boom", 0, 0, 60, 0, 0, 0, 0, 160)
			TTRT A 0
                        NULL A 0 A_NoBlocking
			TTRT A 1 bright A_SpawnItemEx("explosionemitter_t", 0)
			TTRT A 0 bright A_StopSoundEx ("SoundSlot5")
			TTRT A 0 bright A_PlaySound ("weapons/rocklx")
			TTRT B 1
			
                       		NULL A 0 A_NoBlocking
			NULL A 0 A_KillMaster
			POSS A 0 A_SpawnDebris("splatSandbag1")
			POSS A 0 A_SpawnDebris("splatSandbag2")
			POSS A 0 A_SpawnDebris("splatSandbag3")
			POSS A 0 A_SpawnDebris("splatSandbag1")
			POSS A 0 A_SpawnDebris("splatSandbag2")
			POSS A 0 A_SpawnDebris("splatShard1")
			POSS A 0 A_SpawnDebris("splatShard2")
			POSS A 0 A_SpawnDebris("splatShard3")
			POSS A 0 A_SpawnDebris("splatShard4")
			POSS A 0 A_SpawnDebris("splatShard1")
			POSS A 0 A_SpawnDebris("splatShard2")
			POSS A 0 A_SpawnDebris("splatShard3")
			POSS A 0 A_SpawnDebris("splatShard4")
			stop
	}
}

actor TTRTaZapper
{
  obituary "%o was zapped by a TTRTa coil."
  radius 2
  height 2
  //Decal "CrossbowScorch2"
  +NOGRAVITY
  +LOOKALLAROUND
  +NOCLIP
  +INVULNERABLE
  states
  {
  Spawn:
    TNT1 A 1 A_FaceTarget
  Missile:
    TNT1 AAAAA 0 bright A_CustomRailgun (20, 0, none, lightblue, 1, 0, 1000, "InvisiblePuff")
    TNT1 AAAAA 0 bright A_CustomRailgun (20, 0, none, white, 1, 0, 1000, "InvisiblePuff")
    stop
  }
}