Actor TerraMeleeChecker
{
+MISSILE
+NOBLOCKMAP
+NOGRAVITY
+NOEXPLODEFLOOR
+DONTBLAST
+DONTREFLECT
+HITTRACER
+THRUGHOST
+THRUSPECIES
species "SmartDuoGrab"
Obituary "$OB_TERRAMELEE"
height 56
radius 36
renderstyle none
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Crash:
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"GiveMelee")
stop
GiveMelee:
TNT1 A 0 A_GiveToTarget("TerraMustMelee",1,AAPTR_DEFAULT)
stop

Death:
TNT1 A 1
stop
}
}

actor TerraMelee
{
translation "202:202=210:210"
PROJECTILE
damagetype "TerraMelee"
Obituary "$OB_TERRAMELEE"
+DONTBLAST
damage (25)
Radius 20
Height 20
speed 60
reactiontime 1
scale 2.0
States
{
Spawn:
UMFX J 0
UMFX J 1 A_CountDown
wait
Death:
UMFX J 0 ACS_ExecuteAlways(259,0,1)
goto XDeath
XDeath:
UMFX J 0 A_Stop
UMFX J 2
XMFX S 2
UMFX JK 2
stop
}
}

actor TerraMeleeB : TerraMelee{translation "202:202=205:205"}
actor TerraMeleeR : TerraMelee{translation "202:202=171:171"}
actor TerraMeleeO : TerraMelee{translation "202:202=104:104"}
actor TerraMeleeP : TerraMelee{translation "202:202=229:229"}


Actor TerraHoldRing1 : SheepHold
{
Renderstyle Translucent
Alpha 0.8
+BRIGHT
Translation "192:192=100:100", "198:198=110:110"
Scale 0.95
Speed 5
States
{
Spawn:
TRSS A 0
SpawnLoop:
TRSS J 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
loop
Death:
TRSS F 1 A_SetTranslucent(0.5)
TRSS E 1 A_SetTranslucent(0.4)
TRSS D 1 A_SetTranslucent(0.3)
TRSS C 1 A_SetTranslucent(0.2)
TRSS B 1 A_SetTranslucent(0.1)
TRSS A 1 A_SetTranslucent(0)
stop
Switch:
TNT1 A 1
stop
}
}

actor TerraHoldRing1B : TerraHoldRing1{translation "192:192=4:4", "198:198=205:205"}
actor TerraHoldRing1R : TerraHoldRing1{translation "192:192=4:4", "198:198=171:171"}
actor TerraHoldRing1O : TerraHoldRing1{translation "192:192=4:4", "198:198=104:104"}
actor TerraHoldRing1P : TerraHoldRing1{translation "192:192=4:4", "198:198=229:229"}

Actor TerraHoldRing2 : TerraHoldRing1
{
Scale 1.05
States
{
Spawn:
TRSS A 0
SpawnLoop:
TRSS I 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
loop
Death:
TRSS F 1 A_SetTranslucent(0.5)
TRSS E 1 A_SetTranslucent(0.4)
TRSS D 1 A_SetTranslucent(0.3)
TRSS C 1 A_SetTranslucent(0.2)
TRSS B 1 A_SetTranslucent(0.1)
TRSS A 1 A_SetTranslucent(0)
stop
Switch:
TNT1 A 1
stop
}
}

actor TerraHoldRing2B : TerraHoldRing2{translation "192:192=4:4", "198:198=205:205"}
actor TerraHoldRing2R : TerraHoldRing2{translation "192:192=4:4", "198:198=171:171"}
actor TerraHoldRing2O : TerraHoldRing2{translation "192:192=4:4", "198:198=104:104"}
actor TerraHoldRing2P : TerraHoldRing2{translation "192:192=4:4", "198:198=229:229"}

Actor TerraHoldRing3 : TerraHoldRing1
{
Scale 1.15
States
{
Spawn:
TRSS A 0
SpawnLoop:
TRSS H 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
loop
Death:
TRSS F 1 A_SetTranslucent(0.5)
TRSS E 1 A_SetTranslucent(0.4)
TRSS D 1 A_SetTranslucent(0.3)
TRSS C 1 A_SetTranslucent(0.2)
TRSS B 1 A_SetTranslucent(0.1)
TRSS A 1 A_SetTranslucent(0)
stop
Switch:
TNT1 A 1
stop
}
}

actor TerraHoldRing3B : TerraHoldRing3{translation "192:192=4:4", "198:198=205:205"}
actor TerraHoldRing3R : TerraHoldRing3{translation "192:192=4:4", "198:198=171:171"}
actor TerraHoldRing3O : TerraHoldRing3{translation "192:192=4:4", "198:198=104:104"}
actor TerraHoldRing3P : TerraHoldRing3{translation "192:192=4:4", "198:198=229:229"}

Actor TerraHoldRing4 : TerraHoldRing1
{
Scale 1.25
States
{
Spawn:
TRSS A 0
SpawnLoop:
TRSS G 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS G 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS G 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS G 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS G 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS G 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS J 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS J 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS J 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS J 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS J 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS I 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS I 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS I 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS I 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS I 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
TRSS H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TRSS H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
TRSS H 0 A_JumpIfInTargetInventory("SheepHoldChecker",1,"Death")
TRSS H 0 A_JumpIfInTargetInventory("SheepSwitchChecker",1,"Switch")
TRSS H 0 A_Warp(AAPTR_Target, 52*cos(pitch), -16, 28 + 44*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
loop
Death:
TRSS F 1 A_SetTranslucent(0.5)
TRSS E 1 A_SetTranslucent(0.4)
TRSS D 1 A_SetTranslucent(0.3)
TRSS C 1 A_SetTranslucent(0.2)
TRSS B 1 A_SetTranslucent(0.1)
TRSS A 1 A_SetTranslucent(0)
stop
Switch:
TNT1 A 1
stop
}
}

actor TerraHoldRing4B : TerraHoldRing4{translation "192:192=4:4", "198:198=205:205"}
actor TerraHoldRing4R : TerraHoldRing4{translation "192:192=4:4", "198:198=171:171"}
actor TerraHoldRing4O : TerraHoldRing4{translation "192:192=4:4", "198:198=104:104"}
actor TerraHoldRing4P : TerraHoldRing4{translation "192:192=4:4", "198:198=229:229"}

Actor TerraClassSparkChaser
{
var int user_SparkChaserAdd;
Translation "198:198=107:107", "194:194=107:107", "195:195=198:198", "199:199=198:198", "249:249=107:107"
PROJECTILE
Damagetype "SparkChaserTerra"
Obituary "$OB_SPARKCHASERBOSSX"
+SKYEXPLODE
+BRIGHT
+DONTSPLASH
+THRUSPECIES
+NOTARGETSWITCH
+FORCEXYBILLBOARD
ReactionTime 1
Damage (15)
Radius 14
Height 14
Speed 8
Scale 2.5
States
{
Spawn:
TNT1 A 0
//TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
FHUB V 0 Thing_ChangeTID(0,400+ACS_ExecuteWithResult(257,0))
PlaySound:
TNT1 A 0 A_StopSound(CHAN_6)
TNT1 A 0 A_PlaySound("weapon/sparkchasertravel",CHAN_6,0.4,FALSE)
TNT1 A 0 A_TakeInventory("SparkChaserSoundCounter",99)
	SpawnLOOP:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("SparkChaserSoundCounter",6,"PlaySound")
	TNT1 A 0 A_GiveInventory("SparkLaserTimer",1)
	TERV A 1 A_JumpIfInTargetInventory("SparkChaserFlag",1,"Death")
	TNT1 A 0 A_GiveInventory("SparkChaserSoundCounter",1)
	TNT1 A 0 A_GiveToTarget("SparkChaserChecker",1)
	TNT1 A 0 ACS_NamedExecuteWithResult("CCBM_PitchAngleSetter",5)
	TNT1 A 0 A_ChangeVelocity(cos(-pitch)*14,0,sin(-pitch)*14,3)
	TNT1 A 0 A_SpawnItemEx("TerraTrailHelper",0,0,0,0,0,0,0,1)
	TNT1 A 0 A_GiveInventory("SparkLaserTimer",1)
	TERV A 1 A_JumpIfInTargetInventory("SparkChaserFlag",1,"Death")
	TNT1 A 0 A_GiveInventory("SparkChaserSoundCounter",1)
	TNT1 A 0 ACS_NamedExecuteWithResult("CCBM_PitchAngleSetter",5)
	TNT1 A 0 A_ChangeVelocity(cos(-pitch)*14,0,sin(-pitch)*14,3)
	TNT1 A 0 A_SpawnItemEx("TerraTrailHelper",0,0,0,0,0,0,0,1)
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"SDeath")
	TNT1 A 0 A_GiveInventory("SparkLaserTimer",1)
	TERV B 1 A_JumpIfInTargetInventory("SparkChaserFlag",1,"Death")
	TNT1 A 0 A_GiveInventory("SparkChaserSoundCounter",1)
	TNT1 A 0 ACS_NamedExecuteWithResult("CCBM_PitchAngleSetter",5)
	TNT1 A 0 A_ChangeVelocity(cos(-pitch)*14,0,sin(-pitch)*14,3)
	TNT1 A 0 A_SpawnItemEx("TerraTrailHelper",0,0,0,0,0,0,0,1)
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"SDeath")
	TNT1 A 0 A_GiveInventory("SparkLaserTimer",1)
	TERV B 1 A_JumpIfInTargetInventory("SparkChaserFlag",1,"Death")
	TNT1 A 0 A_GiveInventory("SparkChaserSoundCounter",1)
	TNT1 A 0 ACS_NamedExecuteWithResult("CCBM_PitchAngleSetter",5)
	TNT1 A 0 A_ChangeVelocity(cos(-pitch)*14,0,sin(-pitch)*14,3)
	TNT1 A 0 A_SpawnItemEx("TerraTrailHelper",0,0,0,0,0,0,0,1)
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"SDeath")
	TNT1 A 0 A_GiveInventory("SparkLaserTimer",1)
	loop

Crash:
XDeath:
TNT1 A 0
TERV A 2 A_PlaySoundEx("weapon/sparkchaserhit","Body")
TNT1 A 0 A_GiveToTarget("SparkChaserDetFlag",1)
//TNT1 A 0 A_TakeFromTarget("SparkEyeFlag",99)
TERV B 2
Stop

SDeath:
TNT1 A 0
TNT1 A 1 A_CountDown
Wait

Death:
TNT1 A 0
TERV A 0 A_PlaySoundEx("weapon/sparkchaseractivate","Body")
TNT1 A 0 A_GiveToTarget("SparkChaserDetFlag",1)
//TNT1 A 0 A_TakeFromTarget("SparkEyeFlag",99)
TERV A 1 A_Stop
TNT1 AAAAAAAAA 0 A_SpawnItemEx("PlugElectricFX",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(0,359),1)
TNT1 A 0 A_JumpIf(user_SparkChaserAdd < 201,2)
TNT1 A 0 A_SetUserVar("user_SparkChaserAdd",200)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserShot_1Bounce",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
TERV A 1
TERV B 1
TERV B 1
TNT1 AA 4 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceNoFX",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
Stop
}
}

actor TerraClassSparkChaserB : TerraClassSparkChaser{translation "198:198=74:74", "194:194=196:196", "195:195=74:74", "199:199=244:244", "249:249=74:74"
States
{
Death:
TNT1 A 0
TERV A 0 A_PlaySoundEx("weapon/sparkchaseractivate","Body")
TNT1 A 0 A_GiveToTarget("SparkChaserDetFlag",1)
TERV A 1 A_Stop
TNT1 AAAAAAAAA 0 A_SpawnItemEx("PlugElectricFX",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(0,359),1)
TNT1 A 0 A_JumpIf(user_SparkChaserAdd < 201,2)
TNT1 A 0 A_SetUserVar("user_SparkChaserAdd",200)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceB",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
TERV A 1
TERV B 1
TERV B 1
TNT1 AA 4 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceNoFXB",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
Stop
}
}
actor TerraClassSparkChaserR : TerraClassSparkChaser{translation "198:198=41:41", "194:194=170:170", "195:195=41:41", "199:199=191:191", "249:249=41:41"
States
{
Death:
TNT1 A 0
TERV A 0 A_PlaySoundEx("weapon/sparkchaseractivate","Body")
TNT1 A 0 A_GiveToTarget("SparkChaserDetFlag",1)
TERV A 1 A_Stop
TNT1 AAAAAAAAA 0 A_SpawnItemEx("PlugElectricFX",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(0,359),1)
TNT1 A 0 A_JumpIf(user_SparkChaserAdd < 201,2)
TNT1 A 0 A_SetUserVar("user_SparkChaserAdd",200)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceR",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
TERV A 1
TERV B 1
TERV B 1
TNT1 AA 4 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceNoFXR",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
Stop
}
}
actor TerraClassSparkChaserO : TerraClassSparkChaser{translation "198:198=128:128", "194:194=138:138", "195:195=128:128", "199:199=135:135", "249:249=128:128"
States
{
Death:
TNT1 A 0
TERV A 0 A_PlaySoundEx("weapon/sparkchaseractivate","Body")
TNT1 A 0 A_GiveToTarget("SparkChaserDetFlag",1)
TERV A 1 A_Stop
TNT1 AAAAAAAAA 0 A_SpawnItemEx("PlugElectricFX",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(0,359),1)
TNT1 A 0 A_JumpIf(user_SparkChaserAdd < 201,2)
TNT1 A 0 A_SetUserVar("user_SparkChaserAdd",200)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceO",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
TERV A 1
TERV B 1
TERV B 1
TNT1 AA 4 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceNoFXO",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
Stop
}
}
actor TerraClassSparkChaserP : TerraClassSparkChaser{translation "198:198=232:232", "194:194=214:214", "195:195=232:232", "199:199=234:234", "249:249=232:232"
States
{
Death:
TNT1 A 0
TERV A 0 A_PlaySoundEx("weapon/sparkchaseractivate","Body")
TNT1 A 0 A_GiveToTarget("SparkChaserDetFlag",1)
TERV A 1 A_Stop
TNT1 AAAAAAAAA 0 A_SpawnItemEx("PlugElectricFX",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(0,359),1)
TNT1 A 0 A_JumpIf(user_SparkChaserAdd < 201,2)
TNT1 A 0 A_SetUserVar("user_SparkChaserAdd",200)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceP",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
TERV A 1
TERV B 1
TERV B 1
TNT1 AA 4 A_SpawnItemEx("TerraClassSparkChaserShot_1BounceNoFXP",0,0,0,Cos(pitch)*66,0,-sin(pitch)*66,0,SXF_TRANSFERSPECIAL)
Stop
}
}

actor Terra_SparkChaserFX1 : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
Scale 1.0
States
{
Spawn:
TNT1 A 0
TNT1 A 2
Y_VA S 1
Y_VA SSSSS 1 A_SetScale(ScaleX - 0.15)
stop
}
}

actor Terra_SparkChaserFX2 : Terra_SparkChaserFX1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 2
Y_VA WXV random(1,2)
stop
}
}

actor Terra_SparkChaserFX3 : Terra_SparkChaserFX1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 2
Y_VA NOP random(1,2)
stop
}
}

actor TerraTrailHelper : BasicHelper
{
+CLIENTSIDEONLY
scale 1.9
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_JumpIf(CallACS("IsTargetClient")==1,"InCamCheck")
goto Spawn2
Spawn2:
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail_Fake",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail_Fake",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail_Fake",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail_Fake",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("Terra_SparkChaserFX1",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(90,270),1,32)
TNT1 A 0 A_SpawnItemEx("Terra_SparkChaserFX2",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(90,270),1,32)
TNT1 A 0 A_SpawnItemEx("Terra_SparkChaserFX3",random(1,5),0,random(-4,4),random(4,5),0,random(-5,5),random(90,270),1,96)
TNT1 A 1
stop
InCamCheck:
TNT1 A 0 A_JumpIfInTargetInventory("SliceOfEyefeTimer",1,"EyeCheck")
goto Spawn2
EyeCheck:
TNT1 A 0 A_JumpIfInTargetInventory("SparkEyeFlag",1,"Death")
goto Spawn2
Death:
TNT1 A 0
stop
}
}

Actor TerraClassSparkChaserShot : TerraClassSparkChaser
{
Translation "198:198=107:107", "199:199=198:198", "194:194=107:107", "195:195=198:198"
-SKYEXPLODE
-DONTSPLASH
+THRUSPECIES
+BRIGHT
+RIPPER
+NOGRAVITY
+FORCEXYBILLBOARD
Damagetype "SparkChaserTerra"
Obituary "$OB_SPARKCHASERBOSSX"
Damage 0
Speed 0
Reactiontime 70
States
{
Spawn:
TNT1 A 0
PlaySound:
TNT1 A 0 A_StopSound(CHAN_6)
TNT1 A 0 A_PlaySound("weapon/sparkchasertravel",CHAN_6,0.4,FALSE)
TNT1 A 0 A_TakeInventory("SparkChaserSoundCounter",99)
//TNT1 A 0 A_JumpIfInventory("CutterFlag",1,"SpawnLOOP2")
SpawnLOOP:
TNT1 A 0 A_JumpIfInventory("SparkChaserSoundCounter",6,"PlaySound")
TERV B 1 A_CountDown
TNT1 A 0 A_GiveInventory("SparkChaserSoundCounter",1)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TERV A 1 A_CountDown
//TNT1 A 0 A_StopSound(6)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
Goto SpawnLOOP

Crash:
XDeath:
TNT1 A 1
TNT1 A 0 A_StopSound(6)
Stop

Death:
TNT1 A 1
TNT1 A 0 A_StopSound(6)
Stop
}
}

actor TerraClassSparkChaserShotB : TerraClassSparkChaserShot{translation "198:198=74:74", "194:194=196:196", "195:195=74:74", "199:199=244:244"}
actor TerraClassSparkChaserShotR : TerraClassSparkChaserShot{translation "198:198=41:41", "194:194=170:170", "195:195=41:41", "199:199=191:191"}
actor TerraClassSparkChaserShotO : TerraClassSparkChaserShot{translation "198:198=128:128", "194:194=138:138", "195:195=128:128", "199:199=135:135"}
actor TerraClassSparkChaserShotP : TerraClassSparkChaserShot{translation "198:198=232:232", "194:194=214:214", "195:195=232:232", "199:199=234:234"}

actor TerraClassSparkChaserShot_1Bounce : TerraClassSparkChaserShot
{
+HEXENBOUNCE
-ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
WALLBOUNCEFACTOR 1.0
BOUNCEFACTOR 1.0
BounceCount 2
}

actor TerraClassSparkChaserShot_1BounceB : TerraClassSparkChaserShot_1Bounce{translation "198:198=74:74", "194:194=196:196", "195:195=74:74", "199:199=244:244"}
actor TerraClassSparkChaserShot_1BounceR : TerraClassSparkChaserShot_1Bounce{translation "198:198=41:41", "194:194=170:170", "195:195=41:41", "199:199=191:191"}
actor TerraClassSparkChaserShot_1BounceO : TerraClassSparkChaserShot_1Bounce{translation "198:198=128:128", "194:194=138:138", "195:195=128:128", "199:199=135:135"}
actor TerraClassSparkChaserShot_1BounceP : TerraClassSparkChaserShot_1Bounce{translation "198:198=232:232", "194:194=214:214", "195:195=232:232", "199:199=234:234"}

actor TerraClassSparkChaserShot_1BounceNoFX : TerraClassSparkChaserShot_1Bounce
{
states
{
Spawn:
TNT1 A 0
PlaySound:
TNT1 A 0 A_StopSound(CHAN_6)
TNT1 A 0 A_PlaySound("weapon/sparkchasertravel",CHAN_6,0.4,FALSE)
TNT1 A 0 A_TakeInventory("SparkChaserSoundCounter",99)
SpawnLOOP:
TNT1 A 0 A_JumpIfInventory("SparkChaserSoundCounter",6,"PlaySound")
TNT1 A 1 //A_CountDown
TNT1 A 0 A_GiveInventory("SparkChaserSoundCounter",1)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 1 //A_CountDown
//TNT1 A 0 A_StopSound(6)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrail",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
Goto SpawnLOOP

Crash:
XDeath:
TNT1 A 1
TNT1 A 0 A_StopSound(6)
Stop

Death:
TNT1 A 1
TNT1 A 0 A_StopSound(6)
Stop
}
}

actor TerraClassSparkChaserShot_1BounceNoFXB : TerraClassSparkChaserShot_1BounceNoFX{translation "198:198=74:74", "194:194=196:196", "195:195=74:74", "199:199=244:244"}
actor TerraClassSparkChaserShot_1BounceNoFXR : TerraClassSparkChaserShot_1BounceNoFX{translation "198:198=41:41", "194:194=170:170", "195:195=41:41", "199:199=191:191"}
actor TerraClassSparkChaserShot_1BounceNoFXO : TerraClassSparkChaserShot_1BounceNoFX{translation "198:198=128:128", "194:194=138:138", "195:195=128:128", "199:199=135:135"}
actor TerraClassSparkChaserShot_1BounceNoFXP : TerraClassSparkChaserShot_1BounceNoFX{translation "198:198=232:232", "194:194=214:214", "195:195=232:232", "199:199=234:234"}

Actor TerraClassSparkChaserTrail
{
PROJECTILE
Translation "198:198=107:107", "194:194=107:107", "195:195=198:198", "199:199=198:198"
Damagetype "SparkChaserTerra"
Obituary "$OB_SPARKCHASERBOSS"
+RIPPER
+NOGRAVITY
+FORCEXYBILLBOARD
+BRIGHT
var int user_power;
scale 2
height 12
radius 12
damage (0+user_power)
States
{
Spawn:
TERS A 0
TNT1 A 1
TERS A 2 A_SetUserVar("user_power",3) //A_SpawnItemEx("TerraClassSparkChaserTrail_Damager",0,0,0)
TERS A 0 A_ChangeFlag("NOINTERACTION",1)
TERS A 3
stop
}
}

Actor TerraClassSparkChaserTrail_Fake : TerraClassSparkChaserTrail
{
States
{
Spawn:
TERS A 0
TNT1 A 1
TERS A 2
TERS A 0 A_ChangeFlag("NOINTERACTION",1)
TERS A 3
stop
}
}

actor TerraClassSparkChaserTrail_Damager : BasicExplosion
{
Damagetype "SparkChaserTerra"
Obituary "$OB_SPARKCHASERBOSS"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(6,15,0,0,15)
stop
}
}

actor TerraClassSparkChaserAlt
{
Translation "198:198=110:110", "194:194=100:100", "195:195=110:110", "199:199=110:110"
Obituary "$OB_SPARKCHASERBOSS2"
PROJECTILE
+SKYEXPLODE
+DONTBLAST
+BRIGHT
+HEXENBOUNCE
renderstyle translucent
alpha 0.95
Damagetype "Terra_Suppressor"
Speed 90
Damage (3)
height 12
radius 12
scale 1.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0 A_JumpIfInventory("CutterFlag",3,"InPlacer")
TERS B 1 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAltNODMG",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAltNODMG",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAltNODMG",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAltNODMG",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
loop
InPlacer:
TNT1 A 0 A_SetTranslucent(0.9,0)
Y_VA NO 2 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("SparkPacerFlag",1,"InPacer")
InLooper:
Y_VA N 1 bright A_Stop
Y_VA NN 1 bright A_JumpIfInTargetInventory("SparkPacerFlag",1,"InPacer")
Y_VA O 1 bright A_Stop
Y_VA OO 1 bright A_JumpIfInTargetInventory("SparkPacerFlag",1,"InPacer")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",35,"InPacer")
loop
InPacer:
Y_VA NNN 1 bright A_GiveToTarget("CBM_TargetMarker",1)
Y_VA O 1 bright ACS_ExecuteAlways(989,0,ACS_ExecuteWithResult(257)+100)
TNT1 A 0 A_SetTranslucent(1.0,0)
Death:
TNT1 A 0 A_SetScale(2.5)
W_AC A 0 A_SpawnItemEx("TerraClassSparkChaserAlt2",0,0,0,Cos(pitch)*90,0,-sin(pitch)*90,0,1)
TERV AB 2
stop
}
}

actor TerraClassSparkChaserAltB : TerraClassSparkChaserAlt{translation "198:198=205:205", "194:194=4:4", "195:195=205:205", "199:199=205:205"}
actor TerraClassSparkChaserAltR : TerraClassSparkChaserAlt{translation "198:198=171:171", "194:194=4:4", "195:195=171:171", "199:199=171:171"}
actor TerraClassSparkChaserAltO : TerraClassSparkChaserAlt{translation "198:198=104:104", "194:194=4:4", "195:195=104:104", "199:199=104:104"}
actor TerraClassSparkChaserAltP : TerraClassSparkChaserAlt{translation "198:198=229:229", "194:194=4:4", "195:195=229:229", "199:199=229:229"}

actor TerraClassSparkChaserAlt2 : TerraClassSparkChaserAlt
{
-HEXENBOUNCE
+RIPPER
+THRUACTORS
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
TNT1 A 0 A_PlaySound("weapon/sparkchaserchase",CHAN_6,0.4,FALSE)
SpawnLOOP:
Y_VA X 1
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
Y_VA W 1
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_SpawnItemEx("TerraClassSparkChaserTrailAlt",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERTRANSLATION)
loop
Death:
TERV AB 2
stop
}
}

Actor TerraClassSparkChaserTrailAlt
{
PROJECTILE
Translation "198:198=110:110", "194:194=100:100", "195:195=110:110", "199:199=110:110"
+RIPPER
renderstyle translucent
alpha 0.95
+NOGRAVITY
+FORCEXYBILLBOARD
Obituary "$OB_SPARKCHASERBOSS2"
Damagetype "Terra_Suppressor"
scale 2
height 12
radius 12
Damage (6)
+BRIGHT
States
{
Spawn:
TERS A 0
TERS A 2
TERS A 0 A_ChangeFlag("NOINTERACTION",1)
TERS A 1
stop
}
}

Actor TerraClassSparkChaserTrailAltNODMG : TerraClassSparkChaserTrailAlt 
{
+NOINTERACTION
}