//Mainfire chasers now damage individually from each other
//Mainfire damage increased: 8 > 9
//Mainfire ammo consumption reduced: 14 > 11
//Mainfire endlag reduced: 26 tics > 20 tics
//Altfire ammo consumption reduced: 112 > 101
actor Terra : SemiWeakArmorClass
{
	Player.ScoreIcon "TERRMUGS"
	player.startitem "BaseFlagPack", 1
	player.startitem "SemiWeakArmor"
	player.soundclass "terrac"
	Player.ViewHeight 52
	player.displayname "Terra"
	player.forwardmove 0.85, 0.85
	player.sidemove 0.83, 0.83
	player.jumpz 12
	player.startitem "SparkChaserBoss"
	player.startitem "Base28Ammo", 28
	player.startitem "BaseAltfireAmmo", 112
	player.startitem "CanThirdFire"
	player.startitem "UltimateAttackItem3", 1
	player.startitem "UltSoundWatcherSpawn3"
	player.startitem "IsFromGB5"
	States
	{
		Animation1:
		Spawn:
		TRRA A 0
		TRRA B 1 A_JumpIf(z-floorz>0,"Jumping")
		TRRA A 1 A_JumpIf(z-floorz>0,"Jumping")
		Goto Spawn+2
		
		See:
		TRRA BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0,"Jumping")
		Goto Spawn+1
		
		Jumping:
		TRRA I 1 A_JumpIf(z-floorz<=0,"Spawn")
		wait
	
		Missile:
		TRRA F 0 A_JumpIf(pitch>=270 && pitch<330,"MissileUp")
		TRRA FFFFFGGGGG 1 A_JumpIf(z-floorz>0,"JumpingMissile")
		goto Spawn+1
		
		MissileUp:
		TRRA KKKKKKKKKK 1 A_JumpIf(z-floorz>0,"JumpingMissileUp")
		goto Spawn+1
	
		JumpingMissile:
		TRRA J 0 A_JumpIf(pitch>=270 && pitch<330,"JumpingMissileUp")
		TRRA JJJJJJJJJJ 1 A_JumpIf(z-floorz<=0,"Missile")
		goto Jumping
	
		JumpingMissileUp:
		TRRA LLLLLLLLLL 1 A_JumpIf(z-floorz<=0,"MissileUp")
		goto Jumping
		
		Animation2:
		TRRA KKKKKKKKK 1 A_JumpIf(z-floorz>0,"JumpingA2")
		
		Animation2b:
		TRRA KKKKKKKK 1 A_JumpIf(z-floorz>0,"JumpingA2b")
		goto Spawn+2
		
		JumpingA2:
		TRRA LLLLLLLLL 1 A_JumpIf(z-floorz<=0,"Animation2")
		
		JumpingA2b:
		TRRA LLLLLLLL 1 A_JumpIf(z-floorz<=0,"Animation2b")
		goto Spawn+2
		
		ClassTimeStop:
		PLAY A 0 SetPlayerProperty(0,1,4)
		PLAY A 0 ACS_Execute(528,0)
		TRRA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
		PLAY A 0 SetPlayerProperty(0,0,4)
		Goto pain+1
		ClassPain:
		TRRA HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
		Goto Spawn+1
		ClassDeath:
		TRRA H 0 A_TakeInventory("BaseCustomFlag1",1)
		TRRA H 20 ACS_ExecuteAlways(999,0,0)
		TRRA H 0 A_PlayerScream
		NOFX A 0 A_SpawnItemEx("FakeDeathFXMMV", 0, 0, 32, 0, 0, 0, 0, 1)
		NOFX A 1 A_CheckPlayerDone
		wait
		ClassIceDeath:
		TRRA A 35
		NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
		NOFX A 1 A_CheckPlayerDone
		wait
		WeaponGetM:
		CUTM H 0 A_JumpIfInTargetInventory("SparkChaserWepM",1,2)
		CUTM H 0 A_GiveToTarget("WeaponGetter")
		CUTM H 0 A_GiveToTarget("SparkChaserWepM")
		goto ClassDeath
	}
}

actor SparkChaserBoss : VCBaseWeapon
{
	Weapon.AmmoUse 11
	Weapon.AmmoGive 28
	Weapon.AmmoType2 "BaseAltfireAmmo"
	Obituary "$OB_TERRA1"
	States
	{
		Ready:
		TNT1 A 0
		TERH A 0 A_JumpIfInventory("BaseAltfireAmmo",112,"Ready.CanThird")
		TERH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,11)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,101)) TERH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		TERH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,11)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,101)) TERH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		TERH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,11)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,101)) TERH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		TERH A 0 A_GiveInventory("Base28Ammo",1)
		Goto Ready
		
		Ready.CanThird:
		TERH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,11)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,101)) TERH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TERH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TERH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,11)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,101)) TERH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TERH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TERH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,11)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,101)) TERH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TERH A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
		TERH A 0 A_GiveInventory("Base28Ammo",1)
		Goto Ready
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		TERH A 1 A_Lower
		Loop
		Select:
		TNT1 A 0 A_GunFlash
		TNT1 A 0 ACS_ExecuteAlways(991,0,5960)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		TERH A 1 A_Raise
		Loop
		
		Fire:
		TERH B 2
		TERH C 0 A_PlaySoundEx("weapon/terrasparkchaser","Weapon")
		TERH C 8 A_GiveInventory("TerraM1Handler",1)
		TERH B 2
		TERH A 10//16
		goto Ready
		
		User1:
		TERH A 1
		HAZH D 0 A_ChangeFlag("INVULNERABLE",1)
		HAZH D 0 A_GiveInventory("InvProtection")
		HAZH D 0 A_TakeInventory("UnSolid",1)
		HAZH D 0 A_ChangeFlag("SOLID",0)
		HAZH D 0 A_ChangeFlag("PICKUP",0)
		DORH A 0 A_SpawnItemEx("TerraTeleportFX",0,0,32)
		DORH A 0 A_PlaySoundEx("weapon/terrawarp","Weapon")
		TERH A 0 A_SetTranslucent(0.0)
		TNT1 A 1 A_ChangeVelocity(cos(pitch)*400,0,0,CVF_RELATIVE|CVF_REPLACE)
		DORH A 0 A_TakeInventory("BaseAltfireAmmo",112,1)
		HAZH D 0 A_ChangeFlag("INVULNERABLE",0)
		HAZH D 0 A_TakeInventory("InvProtection")
		DRIA A 0 A_SpawnItemEx("ReSolidifier")
		TNT1 A 0 A_ChangeFlag("PICKUP",1)
		TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_SetGravity(0.0)
		TERH A 1 A_Stop
		TERH AAAAAA 1 A_SetTranslucent(1.0)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_GiveInventory("GravityRestore")
		goto Ready
		
		Altfire:
		TERH B 0 A_PlaySoundEx("weapon/terracharge","Weapon")
		TERH B 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		TERH B 1 A_SpawnItemEx("TerraFormFX",10,0,40)
		TERH C 13
		//TERH C 0 A_TakeInventory("BaseAltfireAmmo",101)
		TERH C 0 A_PlaySoundEx("weapon/pshot","Body")
		//TERH C 0 A_FireCustomMissile("TerraLockOnMarker",0,0,1,8)
		TERH C 1 Offset(8,38) A_GiveInventory("TerraM2Handler",1)
		TERH C 1 Offset(16,44)
		TERH C 5 Offset(24,50)
		TERH C 1 Offset(20,47)
		TERH C 1 Offset(16,44)
		TERH C 1 Offset(12,41)
		TERH C 1 Offset(8,38)
		TERH C 1 Offset(4,35)
		TERH B 1
		//TERH A 11
		goto Ready
		
		Flash:
		TNT1 A 1 A_GiveInventory("BaseAltfireAmmo",1)
		loop
		
		UltimateAttack:
		TERH A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,107)
		TERH A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		TERH A 0 A_GiveInventory("TerraUltBuildCooldownGiver",1)
		TERH A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		TERH A 0 A_SpawnItemEx("DarkMoonTeleport", -20, 0, 512, 0, 0, -36, 0, SXF_NOCHECKPOSITION, 0)
		TERH A 0 A_TakeInventory("MediumUltimateAmmo",999)
		TERH A 20 Offset(0,56)
		TERH A 0 A_TakeInventory("UltAttackFlag",1)
		goto Ready
		
		NoAmmo:
		TERH A 3
		TERH A 0 A_JumpIfInventory("TerraSparkActive",1,"Ready")
		TERH A 0 A_GiveInventory("Base28Ammo",1)
		goto Ready
	}
}

actor TerraChaser
{
Obituary "$OB_TERRA1"
PROJECTILE
Radius 8
Height 8
scale 2.5
damagetype "TerraChaser2"
var int user_damage;
damage (user_damage+1)
speed 35//40
bouncefactor 1.0
+HEXENBOUNCE
+SEEKERMISSILE
+RIPPER
-DONTBLAST
+LOOKALLAROUND
+THRUSPECIES
+THRUGHOST
species "DustManType"
bouncecount 99
ReactionTime 3//6
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/sparkchaser","Body")
TNT1 A 0 //A_ScaleVelocity(3.0)
TNT1 A 0 A_SetUserVar("user_damage",8)
Spawn2:
TERS A 0 A_PlaySoundEx("weapon/terrazip","Body")
TERS A 1 bright //A_SpawnItemEx("TerraChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
TERS A 1 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
TERS A 1 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
TERS A 1 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)
TERS A 0 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM)
TERS A 1 bright A_SpawnItemEx("TerraChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)

Freeze:
TERS AAA 0 A_Stop
TERS BBCCBBCCBBCCBBCCBBC 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TERS C 1 A_SpawnItemEx("TerraChaserDot")
TERS AAAAAAA 0 A_SeekerMissile (90, 90, SMF_LOOK|SMF_PRECISE, 256, 10)
TERS A 0 A_CountDown
TERS A 0 A_Recoil(-35)
goto Spawn2

Death:
TNT1 A 0
stop
}
}

actor TerraChaserT2 : TerraChaser
{
damagetype "TerraChaser2T2"
}

actor TerraChaserT3 : TerraChaser
{
damagetype "TerraChaser2T3"
}

actor TerraChaser2 : TerraChaser
{
ReactionTime 3
}

actor TerraChaser2T2 : TerraChaser2
{
damagetype "TerraChaser2T2"
}

actor TerraChaser2T3 : TerraChaser2
{
damagetype "TerraChaser2T3"
}

actor TerraChaserTrail
{
Obituary "$OB_TERRA1"
damagetype "TerraChaser"
projectile
+RIPPER
scale 2.5
height 8
radius 8
//damage (2)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TERS A 2
stop
}
}


actor TerraChaserTrail2 : TerraChaserTrail
{
damagetype "TerraChaser2"
damage(23)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
SCHS D 2
stop
}
}

actor TerraChaserDot : TerraChaserTrail
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TERS BBC 1
stop
}
}

actor TerraChaserProtect : PowerProtection
{
powerup.duration 4
DamageFactor "TerraChaser", 0.0
}

actor TerraChaser2Protect : PowerProtection
{
powerup.duration 21
DamageFactor "TerraChaser2", 0.0
}

actor TerraChaser2T2Protect : PowerProtection
{
powerup.duration 21
DamageFactor "TerraChaser2T2", 0.0
}

actor TerraChaser2T3Protect : PowerProtection
{
powerup.duration 21
DamageFactor "TerraChaser2T3", 0.0
}

actor TerraTeleportFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
TRTP ABCDEFGFHF 2
stop
}
}

actor TerraFormFX
{
scale 2.5
PROJECTILE
+NOINTERACTION
+NOCLIP
damage(0)
radius 5
height 5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
TNT1 A 0 A_Warp(AAPTR_TARGET,30,0,40,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TRSS ABCDEFGHIJGHIJ 1 A_Warp(AAPTR_TARGET,30,0,40,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
stop
}
}

actor TerraFirma
{
Obituary "$OB_TERRA2"
scale 2.5
PROJECTILE
speed 35
damage(0)
+RIPPER
damagetype "TerraFirma"
radius 8
height 8
reactiontime 2
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_PlaySoundEx("weapon/terrafirma","Body")
TRSS GHIJGHIJ 1 A_Explode(22,32,0,0,32)
TNT1 A 0// A_Countdown
goto Spawn+2
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_StopSound("Body")
TRSS JIHGFEDCBAK 1 A_FadeOut(0.083)
stop
}
}

actor TerraFirma2 : TerraFirma
{
damagetype "TerraFirma2"
}

actor TerraFirmaProtect : PowerProtection
{
powerup.duration 22
DamageFactor "TerraFirma", 0.0
}

actor TerraStunWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
reactiontime 35
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("MovementFrozen2")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("DontStunMeYouStupidBish",1,"Death")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_SpawnItemEx("TerraFreezeFX", random(8, 64), 0, random(0, 64), 0, 0, 0, random(0, 359))
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0 A_GiveToTarget("MovementReturnFailsafe")
stop
}
}

actor TerraStunWatcher2 : TerraStunWatcher
{
reactiontime 17
}

actor UnstunMeOnHit : powerup
{
Powerup.duration 36
}

actor DontStunMeYouStupidBish : powerup
{
Powerup.duration 2
}

actor TerraFirmaFreeze : powerup
{
Powerup.duration 35
}

actor TerraFreezeFX : BasicClientSide
{
scale 0.0
alpha 0.9
renderstyle add
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
TRSS KKKKK 1 A_SetScale(scalex+0.5,scaley+0.5)
TRSS KKKKK 1 A_SetScale(scalex-0.5,scaley-0.5)
stop
}
}

actor TerraUltBuildCooldownGiver : UltBuildCooldownGiver
{
	Powerup.Duration 70
}

actor DarkMoonTeleport
{
Radius 8
Height 8
scale 2.5
+NOCLIP
PROJECTILE
-DONTBLAST
+SKYEXPLODE
+DONTREFLECT
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
DMUN A 9
DMUN A 0 A_ChangeFlag("NOCLIP", 0)
DMUN AAAAAAAAAA 1 A_CheckFloor("Next")
Goto Next
Next:
DMUN A 0 //A_ChangeFlag(NOGRAVITY, false)
Goto Death
Death:
TNT1 A 0 A_GiveToTarget("TerraUltBuildCooldownGiver")
TNT1 A 0 A_SpawnItemEx("DarkMoon",0,0,3,0,0,momz,0,SXF_NOCHECKPOSITION|SXF_TRANSFERTRANSLATION,0) 
stop
}
}

actor DarkMoon
{
PROJECTILE
-SOLID
-DONTBLAST
+NOCLIP
+SKYEXPLODE
+MISSILE
-ISMONSTER
+DONTREFLECT
scale 2.5
Radius 1
Height 1
states
{
Spawn:
TNT1 AA 0 A_GiveToTarget("ProjectileCode")
RUSH A 0 A_ChangeFlag("MISSILE",0)
loopit:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
DMUN A 0 A_ChangeVelocity(0, 0, -32, CVF_REPLACE)
DMUN A 1 A_JumpIf(z-floorz<=0, "Tick")
loop
Tick:
DMUN A 0 A_PlaySoundEx("weapon/darkmoonwarp","Body")
DMUN A 0 A_ChangeFlag("NOCLIP",0)
DMUN BC 2
DMUN B 0 A_PlaySoundEx("weapon/darkmooncount","Body")
DMUN DDDDEFFEDDDDDE 4 A_GiveToTarget("TerraUltBuildCooldownGiver")
DMUN F 1 A_ChangeVelocity(0,16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN F 1 A_ChangeVelocity(0,-16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN F 1 A_ChangeVelocity(0,16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN F 1 A_ChangeVelocity(0,-16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN E 1 A_ChangeVelocity(0,16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN E 1 A_ChangeVelocity(0,-16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN D 1 A_ChangeVelocity(0,16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN D 1 A_ChangeVelocity(0,-16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN D 1 A_ChangeVelocity(0,16,0,CVF_RELATIVE|CVF_REPLACE)
DMUN D 1 A_ChangeVelocity(0,-16,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_PlaySoundEx("weapon/darkmoonboom","Body")
TNT1 A 0 A_SpawnItemEx("DMFakeDeathFX",20,0,120,0,0,0,0,1)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("DarkMoonPiece",random(0,64),0,random(0,160),random(7,25),0,random(-30,30),random(0,359),1)
TNT1 A 2
stop
}
}

actor DMDeathFX1
{
height 1
radius 1
scale 2.5
+NOINTERACTION
Speed 15
PROJECTILE
reactiontime 14
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
DMUN MNO 2
DMUN A 0 A_CountDown
goto Spawn+2
}
}

actor DMDeathFX2 : DMDeathFX1
{
speed 5
}

actor DMFakeDeathFX
{
PROJECTILE
radius 1
height 1
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,0,2,90)
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,0,2,-90)
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,90,2,45)
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,-90,2,-45)
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,90,2,0)
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,-90,2,0)
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,90,2,-45)
PLY1 Z 0 A_CustomMissile("DMDeathFX1",0,0,-90,2,45)
PLY1 Z 0 A_CustomMissile("DMDeathFX2",0,0,0,2,90)
PLY1 Z 0 A_CustomMissile("DMDeathFX2",0,0,0,2,-90)
PLY1 Z 0 A_CustomMissile("DMDeathFX2",0,0,90,2,0)
PLY1 Z 0 A_CustomMissile("DMDeathFX2",0,0,-90,2,0)
TNT1 A 1
stop
}
}

actor DarkMoonPiece
{
PROJECTILE
Scale 2.5
Height 16
Radius 16
Damage(15)
+ALLOWBOUNCEONACTORS
bouncetype "Classic"
bouncesound "weapon/darkmoonbounce"
+BOUNCEONWALLS
+CANBOUNCEWATER
+SKYEXPLODE
damagetype "TerraUlt"
Obituary "$OB_TERRA3"
bouncefactor 1.0
wallbouncefactor 1.0
speed 0
bouncecount 99
reactiontime 40
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
DMUN LKJIHG 2 A_GiveToTarget("TerraUltBuildCooldownGiver")
loopit:
DMUN GHIHG 2 A_GiveToTarget("TerraUltBuildCooldownGiver")
DMUN G 0 A_Countdown
loop
}
}

actor TerraSparkActive : Powerup
{
Powerup.Duration 24
}

actor TerraLockOnMarker
{
    PROJECTILE
    +FORCEXYBILLBOARD
    +HITTRACER
    +BRIGHT
	Damage (0)
	Radius 8
	Height 8
	Speed 40
	Scale 2.5
	var int user_tracertid;
	States
	{
	Spawn:
		HSNI M 1
		loop
    XDeath:
		//MARM D 0 A_GiveInventory("TracerAndTargetTeamsMatchCheck",1)
		//MARM D 0 A_JumpIfInventory("TracerAndTargetTeamsMatchFlag", 1, "Death")
		////TNT1 A 0 A_JumpIf(IsPointerEqual(AAPTR_TARGET,AAPTR_TRACER),"Death")
		MARM D 0 A_SetUserVar("user_tracertid",CallACS("core_gettracer"))
		MARM D 0 A_JumpIf(user_tracertid<1000||user_tracertid>1063,"Death")
		MARM D 0 A_TakeFromTarget("LockOnFlag",99)
		MARM D 0 A_GiveToTarget("LockOnFlag",user_tracertid-1000+1)
	Death:
		HSNI MLK 2
        stop
    }
}

actor TerraM2Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",101)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(975, 0)==2,"Pickup2")
TNT1 A 0 A_FireCustomMissile("TerraFirma",0,0,1,8)
stop

Pickup2:
TNT1 A 0 A_FireCustomMissile("TerraFirma2",0,0,1,8)
stop
}
}

actor TerraM1Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(975, 0)==2,"Pickup2")
TNT1 A 0 A_GiveInventory("VC_Timer",1)

Fire1:
TNT1 A 0 A_JumpIfInventory("VC_Timer",3,"Fire3")//Bloat so he can hit multiple during the power protect lol
TNT1 A 0 A_JumpIfInventory("VC_Timer",2,"Fire2")
TNT1 A 0 A_FireCustomMissile("TerraChaser",0,1,1,8)
stop
Fire2:
TNT1 A 0 A_FireCustomMissile("TerraChaserT2",0,1,1,8)
stop
Fire3:
TNT1 A 0 A_FireCustomMissile("TerraChaserT3",0,1,1,8)
TNT1 A 0 A_TakeInventory("VC_Timer",9)
stop

Pickup2:
TNT1 A 0 A_JumpIfInventory("VC_Timer",3,"PFire3")
TNT1 A 0 A_JumpIfInventory("VC_Timer",2,"PFire2")
TNT1 A 0 A_FireCustomMissile("TerraChaser2",0,1,1,8)
stop
PFire2:
TNT1 A 0 A_FireCustomMissile("TerraChaser2T2",0,1,1,8)
stop
PFire3:
TNT1 A 0 A_FireCustomMissile("TerraChaser2T3",0,1,1,8)
stop
}
}

actor dummy1 replaces terraboss
{
states
{
spawn:
tnt1 a 2
stop
}
}