//	Mobility recoded
actor Fuseman : SemiWeakArmorClass
{
Player.ScoreIcon "FUSEMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Fuseman"
player.soundclass "fusemanc"
player.startitem "ScrambleThunderBoss"
player.startitem "UltSoundWatcherSpawn4"
player.startitem "Base112Ammo", 112
player.startitem "IsFromMM11"
player.startitem "NoHealthBar"
player.viewheight 51
player.forwardmove 0.85,0.85
player.sidemove 0.83,0.83
player.jumpz 12
States
{
Spawn:
FUSE B 0 
FUSE B 1 A_JumpIf(z-floorz>0, "Jumping")
FUSE A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
FUSE BBBCCCDDDEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Jumping:
Animaton7:
FUSE I 1 A_JumpIf(z-floorz<=0, "Spawn")
wait

Missile:
Animation1:
FUSE FFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")

Missile2:
FUSE GGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+2

JumpingMissile:
FUSE FFF 1 A_JumpIf(z-floorz<=0, "Missile")

JumpingMissile2:
FUSE JJJJJ 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping

Animation2:
FuseChain:
FUSE KKKKK 1 A_JumpIf(z-floorz>0, "FuseChain.Jumping")

FuseChain2:
FUSE LLLLL 1 A_JumpIf(z-floorz>0, "FuseChain.Jumping2")
Goto Spawn+2

FuseChain.Jumping:
FUSE QQQQQ 1 A_JumpIf(z-floorz<=0, "FuseChain")

FuseChain.Jumping2:
FUSE TTTTT 1 A_JumpIf(z-floorz<=0, "FuseChain2")
goto Jumping

Animation3:
FuseChainFlashHold:
FUSE K 1 A_JumpIf(z-floorz>0, "FuseChainFlashHold.Jumping")
Goto FuseChainFlashHold

FuseChainFlashHold.Jumping:
FUSE K 1 A_JumpIf(z-floorz<=0, "FuseChainFlashHold")
Goto FuseChainFlashHold.Jumping

Animation4:
FuseChainFlash:
FUSE MMMMM 1 A_JumpIf(z-floorz>0, "FuseChainFlash.Jumping")
Goto Spawn+1

FuseChainFlash.Jumping:
FUSE RRRRR 1 A_JumpIf(z-floorz<=0, "FuseChainFlash")
Goto Jumping

Animation5:
FuseTackle:
FUSE NNNNNN 1
Goto Spawn+1

Animation6:
UltFuseTackle:
FUSE PPPPPP 1
Goto Spawn+1

Animation7:
FuseRise:
FUSE S 1
Goto FuseRise

Animation8:
UltFuseLand:
FUSE F 1 A_JumpIf(z-floorz<=0, "FuseStomp")
Goto UltFuseLand

Animation9:
FuseStomp:
FUSE GGGG 1
Goto Spawn+1

ClassPain:
FUSE HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
TNT1 A 0 A_StopSound(CHAN_VOICE)
TNT1 A 0 A_SpawnItemEx("DeadFuseMan",0,0,0,0,0,0,0,1)
TNT1 A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("ScrambleThunderWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("ScrambleThunderWepM")
goto ClassDeath
}
}

actor DeadFuseMan : DeadBlastMan
{
States
{
Spawn:
FUSE H 0 
goto Spawn2

Spawn3:
"####" "#" 0 A_PlaySoundEx("fuseman/deadx","Body")
goto loopit
}
}

Actor ScrambleThunderBoss : VCBaseWeapon
{
weapon.ammotype2 "Base112Ammo"
Obituary "$OB_FUSEMAN1"
const int RAND_MOV = 10;
const int TF_SPEED = 150;
States
{
Ready:
TNT1 A 0 A_JumpIfInventory("PowerUltBuildCooldown",1,"Ready3")
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready2")
TNT1 A 0 A_JumpIfInventory("FuseTackleCooldown",1,"Ready.NoTF")
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
TNT1 A 0 A_GiveInventory("Base112Ammo",1)
Goto Ready
Ready.NoTF:
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28))
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,28))
TNT1 A 0 A_GiveInventory("Base112Ammo",1)
Goto Ready

Ready2:
TNT1 A 0 A_JumpIfInventory("FuseTackleCooldown",1,"Ready2.NoTF")
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,0))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,1)
Goto ChainRecall
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,0))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready2")
Goto ChainRecall
Ready2.NoTF:
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,0))
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,1)
Goto ChainRecall
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,0))
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready2")
Goto ChainRecall

Ready3:
FUSH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,0))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
TNT1 A 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,1)
Goto Ready+1
FUSH G 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,0)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",2,0))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
TNT1 A 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,"Ready3")
Goto Ready+1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FUSH A 1 A_Lower
Loop
Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,910)
TNT1 A 0 A_GunFlash 
Select2:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
FUSH A 1 A_Raise
Loop

Fire:
TNT1 A 0 A_JumpIfInventory("PowerUltBuildCooldown",1,"UltAttack")
FUSH B 1 Offset(-209, 75)
FUSH B 1 Offset(-209, 75)
FUSH B 1 Offset(-123, 64)
TNT1 A 0 A_GiveInventory("FuseM1Handler")
FUSH D 1 Offset(-123, 64)
FUSH D 1 Offset(-70, 40)
FUSH D 1 Offset(-12, 12)
FUSH D 1 Offset(64, -14)
FUSH A 1 Offset(120, -21)
TNT1 A 1 Offset(130,89)
TNT1 A 0 A_JumpIfHealthLower(47,"SecondShot")
FUSH A 2 Offset(110,69)
FUSH A 2 Offset(77,58)
FUSH A 2 Offset(55,47)
FUSH A 4 A_WeaponReady(WRF_NOFIRE)
Goto EndMain
SecondShot:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
FUSH B 1 Offset(-209, 75)
FUSH B 1 Offset(-209, 75)
FUSH B 1 Offset(-123, 64)
TNT1 A 0 A_GiveInventory("FuseM1Handler")
FUSH D 1 Offset(-123, 64)
FUSH D 1 Offset(-70, 40)
FUSH D 1 Offset(-12, 12)
FUSH D 1 Offset(64, -14)
FUSH A 1 Offset(120, -21)
TNT1 A 6 Offset(130,89)
FUSH A 1 Offset(110,69)
FUSH A 1 Offset(77,58)
FUSH A 1 Offset(55,47)
FUSH A 2 A_WeaponReady(WRF_NOFIRE)
EndMain:
TNT1 A 0
Goto Ready+1
NoAmmo:
FUSH A 1
goto Ready+1

AltFire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
RATU A 0 A_JumpIfInventory("FuseManSpeedBoost",1,"NoAmmo")
TNT1 A 0 A_JumpIfInventory("PowerUltBuildCooldown",1,"UltAltAttack")
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"ChainRecall")
TNT1 A 0 A_PlaySoundEx("fuseman/telestart","Body")
TNT1 A 0 A_GiveInventory("BaseCustomFlag1") TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_SpawnItemEx("FuseChain") TNT1 A 0 A_SpawnItemEx("FuseChain2") TNT1 A 0 A_SpawnItemEx("FuseChain3") TNT1 A 0 A_SpawnItemEx("FuseChain4")
FUSH A 1 Offset(-18, 32)
FUSH A 1 Offset(-28, 22)
FUSH A 1 Offset(-48, 12)
FUSH C 2 Offset(-68, 2)
FUSH C 2 Offset(-78, -2)
FUSH C 2 Offset(-68, 2)
FUSH C 2 Offset(-48, 12)
FUSH C 2 Offset(-28, 22)
FUSH A 16
Goto EndAlt
ChainRecall:
TNT1 A 0 A_PlaySoundEx("classes/sparklightningstrike","Weapon") TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
TNT1 A 0 A_GiveInventory("ReturningChain") TNT1 A 0 A_TakeInventory("BaseCustomFlag1") 
FUSH A 1 Offset(-18, 32)
FUSH A 1 Offset(-28, 22)
FUSH A 1 Offset(-48, 12)
FUSH CC 1 Offset(-68, 2)
ReturnChainHold:
TNT1 A 0 A_JumpIfInventory("FuseManFlag",2,"ReturnChainEnd")
FUSH C 1 Offset(-78, -2)
Goto ReturnChainHold
ReturnChainEnd:
FUSH C 2 Offset(-68, 2)
FUSH C 2 Offset(-48, 12)
FUSH C 2 Offset(-28, 22)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",4)
FUSH AFAFAAAA 2 A_WeaponReady(WRF_NOFIRE)
EndAlt:
TNT1 A 0
Goto Ready+1
User1:
TNT1 A 0 A_JumpIfInventory("FuseTackleCooldown",1,"NoTF")
TNT1 A 0 A_Stop TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
TNT1 A 0 A_GiveInventory("InvProtection") TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("SOLID",0) TNT1 A 0 A_ChangeFlag("PICKUP",0)
TNT1 AA 0 A_PlaySoundEx("fuseman/voltage","Weapon")
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("FuseSparkFX",0,0,48,random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV),random(0,RAND_MOV))

FuseTackle:
TNT1 A 0 A_JumpIfInventory("PowerUltBuildCooldown",1,"UltFuseTackle")
TNT1 A 0 A_JumpIfInventory("CutterFlag",6,"TackleEnd")
TNT1 A 0 A_GiveInventory("TempPitProtect_P")
FUSH A 1 Offset(30,62)ACS_NamedExecuteWithResult("VC_SetState",5)
TNT1 AA 0 A_SpawnItemEx("FuseSparkFX",random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV),random(16,48))
TNT1 A 0 A_SpawnItemEx("FuseTackleDamager")
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYmob",cos(pitch)*TF_SPEED),0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
Goto FuseTackle

UltFuseTackle: 
TNT1 A 0 A_JumpIfInventory("CutterFlag",6,"TackleEnd")
FUSH G 1 Offset(30,62)ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_SpawnItemEx("UltFuseTackleAfterImage")
TNT1 AAAA 0 A_SpawnItemEx("FuseSparkFX",random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV))
TNT1 A 0 A_SpawnItemEx("FuseTackleDamager")
TNT1 A 0 A_ChangeVelocity(cos(pitch)*TF_SPEED/2,0,-sin(pitch)*TF_SPEED/2,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",6,"TackleEnd")
FUSH A 1 Offset(30,62)ACS_NamedExecuteWithResult("VC_SetState",6)
TNT1 A 0 A_SpawnItemEx("UltFuseTackleAfterImage")
TNT1 AAAA 0 A_SpawnItemEx("FuseSparkFX",random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV))
TNT1 A 0 A_SpawnItemEx("FuseTackleDamager")
TNT1 A 0 A_ChangeVelocity(cos(pitch)*TF_SPEED/2,0,-sin(pitch)*TF_SPEED/2,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
Goto UltFuseTackle

TackleEnd:
TNT1 A 0 A_Stop TNT1 A 0 A_TakeInventory("CutterFlag",6)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",0) TNT1 A 0 A_TakeInventory("InvProtection")
TNT1 A 0 A_SpawnItemEx("ReSolidifier") TNT1 A 0 A_ChangeFlag("PICKUP",1)
TNT1 A 0 A_JumpIfInventory("PowerUltBuildCooldown",1,"UltTackleEnd")
FUSH A 1 Offset(20,52)
FUSH A 1 Offset(10,32)
FUSH A 1 A_WeaponReady(WRF_NOFIRE)
TNT1 A 0 A_GiveInventory("FuseTackleCooldown",105) TNT1 A 0 A_SpawnItemEx("FuseTackleWatcher")
NoTF:
TNT1 A 0
Goto Ready+1

UltTackleEnd:
FUSH G 1 Offset(-20,52)
FUSH A 1 Offset(-20,52)
FUSH G 1 Offset(-10,32)
FUSH A 1 Offset(-10,32)
FUSH GA 1 A_WeaponReady(WRF_NOFIRE)
Goto Ready3

UltAttack:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("fuseman/nope","Weapon")
TNT1 A 0 A_PlaySoundEx("fuseman/hvoltage","Body")
TNT1 A 0 ThrustThingZ(0, 300, 0, 0) TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7)
TNT1 A 0 A_ChangeFlag("THRUACTORS",True)
FUSH G 1 Offset(0,42)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH A 1 Offset(0,52)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH G 1 Offset(0,62)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH A 1 Offset(0,72)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH G 1 A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH A 1 A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH G 1 A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
TNT1 A 0 ThrustThingZ(0, 300, 1, 0) TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",8)
TNT1 A 0 A_PlaySoundEx("classes/sparklightning","Weapon")
FUSH A 1 Offset(0,52)
FUSH G 1 Offset(0,32)
LandHold:
TNT1 A 0 A_ChangeFlag("THRUACTORS",True)
TNT1 A 0 ThrustThingZ(0, 150, 1, 1) TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",8)
FUSH A 1 A_CheckFloor("StompLand")
FUSH G 1 A_CheckFloor("StompLand")
Goto LandHold
StompLand: 
TNT1 A 0 A_PlaySoundEx("fuseman/dashdown","Weapon")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",9)

TNT1 A 0 A_SpawnItemEx("HighVoltageDamager") TNT1 A 0 A_SpawnItemEx("HighVoltageSplash") TNT1 A 0 A_SpawnItemEx("HighVoltageSparkWave")
TNT1 A 0 A_Quake(3,9,0,400)
FUSH G 1 Offset(0,-8)
FUSH A 1 Offset(0,2)
FUSH G 1 Offset(0,12)
FUSH A 1 Offset(0,22)
TNT1 A 0 A_ChangeFlag("THRUACTORS",False)
FUSH GAGAGAGAGA 1 Offset(0,32)
Goto Ready3
UltAltAttack:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("fuseman/nope","Weapon")
TNT1 A 0 A_PlaySoundEx("fuseman/hvoltage","Body")
TNT1 A 0 ThrustThingZ(0, 300, 0, 0) TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",7)
TNT1 A 0 A_ChangeFlag("THRUACTORS",True)
FUSH G 1 Offset(0,42)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH A 1 Offset(0,52)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH G 1 Offset(0,62)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH A 1 Offset(0,72)A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH G 1 A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH A 1 A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
FUSH G 1 A_SpawnItemEx("UltQuickRiseAfterImage") TNT1 A 0 A_SpawnItemEx("FuseHVTackleDamager")
TNT1 A 0 ThrustThingZ(0, 150, 1, 0) TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",8) TNT1 A 0 A_Recoil(-35)
TNT1 A 0 A_PlaySoundEx("classes/sparklightning","Weapon")
FUSH A 1 Offset(0,52)
FUSH G 1 Offset(0,32)
goto LandHold

Flash:
TNT1 A 0 A_JumpIfInventory("FuseManFlag",2,"BoostFlash")
TNT1 A 1
loop
BoostFlash:
TNT1 A 0 A_TakeInventory("FuseManFlag",2)
TNT1 AA 0 A_PlaySoundEx("weapon/lightningbolt","Body")
TNT1 A 0 A_JumpIfInventory("MediumLongUltimateAmmo",400,"UltActivate")
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("FuseSparkFX",0,0,48,random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV),random(-RAND_MOV,RAND_MOV))
TNT1 A 0 A_GiveInventory("FuseManSpeed") TNT1 A 0 A_GiveInventory("FuseManSpeedBoost",105) TNT1 A 0 A_SpawnItemEx("FuseManSpeedBoostWatcher")
TNT1 A 2 ACS_ExecuteAlways(971,0,1234)
TNT1 A 2 ACS_ExecuteAlways(971,0,910)
Goto Flash
UltActivate:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,100)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_TakeInventory("FuseTackleCooldown",105)
TNT1 A 0 A_Quake(3,8,0,300)
TNT1 A 0 A_PlaySoundEx("speedgear/up","Body")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SpeedGearFX", random(-16, 16), 0, random(0,48), random(1,10), 0, random(-5,5), random(0, 359))
TNT1 A 0 A_PlaySoundEx("fuseman/speedgearx","Voice") TNT1 A 0 A_SpawnItemEx("FuseSparkFXWatcher")
Goto Flash
}
}

Actor SpeedGearFX
{
+FLOATBOB
+NOGRAVITY
+THRUACTORS
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
+MISSILE
+DONTBLAST
Damage(0)
Scale 1.75
RenderStyle "Translucent"
Alpha 0.8
Height 0
Radius 0
States
{
Spawn:
TNT1 A 1
SGR1 A 3 A_Fadeout(0.03) PGR1 A 0 A_SetScale(ScaleX - 0.08, ScaleY - 0.08)
SGR1 A 3 A_Fadeout(0.03) PGR1 A 0 A_SetScale(ScaleX - 0.08, ScaleY - 0.08)
SGR1 B 3 A_Fadeout(0.03) PGR1 B 0 A_SetScale(ScaleX - 0.08, ScaleY - 0.08)
SGR1 B 3 A_Fadeout(0.03) PGR1 B 0 A_SetScale(ScaleX - 0.08, ScaleY - 0.08)
Goto Spawn+1
}
}

actor FuseSparkFX
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
scale 1.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
FSFX ABCD 2
stop
}
}

actor FuseSmallSparkFX : FuseSparkFX
{
scale 2.55
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
SCTH EF 3
stop
}
}

actor LiveWireSwipeFX : BasicClientSide
{
alpha 0.8
renderstyle translucent
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PLSW ABCD 1 A_Warp(AAPTR_TARGET, 80, 0, 48, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
stop
}
}

actor FuseSparkFXWatcher //Ult drainer
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 2.5
const int RAND_POS = 48;
States
{
Spawn:
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, RAND_POS, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_TakeFromTarget("MediumLongUltimateAmmo",1)
TNT1 A 0 A_GiveToTarget("FuseColors2")
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",random(-RAND_POS,RAND_POS),random(-RAND_POS,RAND_POS),random(-RAND_POS,RAND_POS))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "End")
TNT1 A 0 A_JumpIfInTargetInventory("MediumLongUltimateAmmo",1,1)
Goto End
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, RAND_POS, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_TakeFromTarget("MediumLongUltimateAmmo",1)
TNT1 A 0 A_GiveToTarget("FuseColors1")
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",random(-RAND_POS,RAND_POS),random(-RAND_POS,RAND_POS),random(-RAND_POS,RAND_POS))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "End")
TNT1 A 0 A_JumpIfInTargetInventory("MediumLongUltimateAmmo",1,"Spawn")
End:
//TNT1 A 0 A_PlaySoundEx("speedgear/down","Auto")
TNT1 A 0 A_GiveToTarget("FuseColors1")
TNT1 A 0 A_TakeFromTarget("PowerUltBuildCooldown",1)
stop
}
}

actor FuseColors1 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,910)
stop
}
}

actor FuseColors2 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,10865)
stop
}
}

actor UltFuseTackleAfterImage
{
Translation "192:192=229:229", "198:198=207:207"
scale 2.5
+CLIENTSIDEONLY
+NOINTERACTION
+DONTSPLASH
Gravity 0
Damage (0)
height 0
radius 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
FUSE P 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE P 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
stop
}
}

actor UltQuickRiseAfterImage : UltFuseTackleAfterImage
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 2
FUSE S 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,910) TNT1 A 0 A_Fadeout(0.10)
FUSE S 1 ACS_ExecuteAlways(971,0,10865) TNT1 A 0 A_Fadeout(0.10)
stop
}
}

Actor LiveWireShot
{
PROJECTILE
damagetype "Fuseman"
Obituary "$OB_FUSEMAN1"
Speed 55
Damage (18)
radius 16
height 16
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
FSST AB 2
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-8,8),random(-8,8),random(-8,8))
Goto Spawn+2
Death:
XDeath:
FSST CDE 2
stop
}
}

actor LiveWireShot2 : LiveWireShot
{
Damage (22)
damagetype "FusemanHalfStun"
renderstyle add
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
FSST AAAA 0 A_SpawnItemEx("MM11DeathBolt",random(-40,40),random(-40,40),random(-40,40),0,0,0,0,0,64)
FSST A 1 A_SpawnItemEx("FuseSmallSparkFX",random(-8,8),random(-8,8),random(-8,8),random(-10,-8),0,random(-9,9),random(-50,50))
FSST AAAA 0 A_SpawnItemEx("MM11DeathBolt",random(-40,40),random(-40,40),random(-40,40),0,0,0,0,0,64)
FSST A 1 A_SpawnItemEx("FuseSmallSparkFX",random(-8,8),random(-8,8),random(-8,8),random(-10,-8),0,random(-9,9),random(-50,50))
FSST AAAA 0 A_SpawnItemEx("MM11DeathBolt",random(-40,40),random(-40,40),random(-40,40),0,0,0,0,0,64)
FSST B 1 A_SpawnItemEx("FuseSmallSparkFX",random(-8,8),random(-8,8),random(-8,8),random(-10,-8),0,random(-9,9),random(-50,50))
FSST AAAA 0 A_SpawnItemEx("MM11DeathBolt",random(-40,40),random(-40,40),random(-40,40),0,0,0,0,0,64)
FSST B 1 A_SpawnItemEx("FuseSmallSparkFX",random(-8,8),random(-8,8),random(-8,8),random(-10,-8),0,random(-9,9),random(-50,50))
Goto Spawn+2
}
}

actor FuseChain
{
damagetype "FusemanFuseChain"
Obituary "$OB_FUSEMAN2"
var int User_PosDis;
var int User_PosAngle;
const int POSITION_CHANGE = 12;
const int Z_POSITION = 48;
PROJECTILE
+NOBLOOD
-NOBLOCKMAP
+DONTRIP
+REFLECTIVE
+DEFLECT
+DONTREFLECT
+NOGRAVITY
-SOLID
+SHOOTABLE
+NODAMAGETHRUST
+NOBLOOD
+DONTBLAST
+QUICKTORETALIATE
+RIPPER
+SKYEXPLODE
+DONTSPLASH
+GHOST
+THRUGHOST
+NOINTERACTION
+NOTARGETSWITCH
species "FuseChainType"
+THRUSPECIES
Height 16
Radius 8
Speed 0
damage 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_SetUserVar(User_PosAngle,0)
TNT1 A 1 A_Jump(256,"Spawn2")
goto Spawn2

Spawn2:
TNT1 A 0 A_JumpIfInventory("CutterFlag",12,"Orbit") TNT1 A 0 A_JumpIfInTargetInventory("ReturningChain",1,"ChainReturn")
SCTH A 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosDis,User_PosDis + POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_SpawnItemEx("FuseChainDamager",0,0,Z_POSITION)
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
SCTH B 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosDis,User_PosDis + POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_SpawnItemEx("FuseChainDamager",0,0,Z_POSITION)
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
TNT1 A 0 A_GiveInventory("CutterFlag",1)
loop

Orbit:
SCTH A 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosAngle,User_PosAngle - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_SpawnItemEx("FuseChainDamager",0,0,Z_POSITION) TNT1 A 0 A_JumpIfInTargetInventory("ReturningChain",1,"ChainReturn")
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
SCTH A 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit2")
SCTH A 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit2")
Goto ChainReturn

Orbit2:
SCTH B 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosAngle,User_PosAngle - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_JumpIfInTargetInventory("ReturningChain",1,"ChainReturn")
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit3")
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit3")
Goto ChainReturn

Orbit3:
SCTH A 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosAngle,User_PosAngle - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_SpawnItemEx("FuseChainDamager",0,0,Z_POSITION) TNT1 A 0 A_JumpIfInTargetInventory("ReturningChain",1,"ChainReturn")
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
SCTH A 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit4")
SCTH A 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit4")
Goto ChainReturn

Orbit4:
SCTH B 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosAngle,User_PosAngle - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_JumpIfInTargetInventory("ReturningChain",1,"ChainReturn")
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
TNT1 A 0 A_GiveToTarget("MediumLongUltimateAmmo",1) TNT1 A 0 A_TakeFromTarget("Base112Ammo",1)
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit")
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit")
Goto ChainReturn

ChainReturn:
TNT1 A 0 A_TakeFromTarget("BaseCustomFlag1",1)
ChainReturnCont:
TNT1 A 0 A_JumpIfInventory("CutterFlag",1,1)
Goto ReturnEnd
SCTH A 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosDis,User_PosDis - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_SpawnItemEx("FuseChainDamager",0,0,Z_POSITION)
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
SCTH B 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosDis,User_PosDis - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_SpawnItemEx("FuseChainDamager",0,0,Z_POSITION)
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
TNT1 A 0 A_TakeInventory("CutterFlag",1)
Goto ChainReturnCont
ReturnEnd:
TNT1 A 0 A_GiveToTarget("FuseManFlag",1)
TNT1 A 0 A_JumpIfInTargetInventory("FuseManFlag",2,"End")
TNT1 A 1
Goto ReturnEnd+1
Death:
End:
TNT1 A 0
stop
Disappear:
TNT1 A 0
stop
}
}

actor FuseChain2 : FuseChain
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_SetUserVar(User_PosAngle,90)
TNT1 A 1 A_Jump(256,"Spawn2")
goto Spawn2

Orbit4:
SCTH B 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosAngle,User_PosAngle - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_JumpIfInTargetInventory("ReturningChain",1,"ChainReturn")
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit")
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit")
Goto ChainReturn
}
}

actor FuseChain3 : FuseChain
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_SetUserVar(User_PosAngle,180)
TNT1 A 1 A_Jump(256,"Spawn2")
goto Spawn2
}
}

actor FuseChain4 : FuseChain
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_SetUserVar(User_PosAngle,270)
TNT1 A 1 A_Jump(256,"Spawn2")
goto Spawn2

Orbit4:
SCTH B 1 A_Warp(AAPTR_TARGET,0,User_PosDis,Z_POSITION,User_PosAngle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_SetUserVar(User_PosAngle,User_PosAngle - POSITION_CHANGE)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death") TNT1 A 0 A_JumpIfInTargetInventory("ReturningChain",1,"ChainReturn")
TNT1 A 0 A_SpawnItemEx("FuseSmallSparkFX",random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE),random(-POSITION_CHANGE,POSITION_CHANGE))
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit")
SCTH B 1 A_JumpIfInTargetInventory("Base112Ammo",1,"Orbit")
Goto ChainReturn
}
}

actor FuseChainDamager
{
+THRUSPECIES
PROJECTILE
damagetype "FusemanFuseChain"
Obituary "$OB_FUSEMAN2"
+RIPPER
+NOINTERACTION
+DONTBLAST
damage (0)
radius 1
height 1
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(3,100,0)
stop
Crash:
Death:
XDeath:
TNT1 A 0
stop
}
}

actor FuseTackleDamager : FuseChainDamager
{
damagetype "FusemanFuseTackle"
Obituary "$OB_FUSEMAN3"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(2,100,0,0,100)
stop
}
}

actor HighVoltageDamager
{
Projectile
-NOBLOCKMAP
Scale 2.5
Height 1
Radius 1
damagetype "FusemanHighVoltage"
Obituary "$OB_FUSEMAN4"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(40,250,0,0,50)
stop
}
}

actor FuseHVTackleDamager : FuseChainDamager
{
damagetype "Fuseman"
Obituary "$OB_FUSEMAN4"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(9,100,0)
stop
}
}

Actor FuseTackleProtect : PowerProtection
{
	Powerup.Duration -1
	DamageFactor "FusemanFuseTackle", 0.0
}

Actor HighVoltageProtect : PowerProtection
{
	Powerup.Duration -1
	DamageFactor "FusemanHighVoltage", 0.0
}

actor FuseManSpeed : PowerSpeed
{
-POWERSPEED.NOTRAIL
powerup.duration -999
Speed 1.30
}

actor FuseManSpeedBoost : Inventory
{
	inventory.amount 1
	inventory.maxamount 105
	+INVENTORY.IGNORESKILL
}

actor FuseManSpeedBoostWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("FuseManSpeedBoost",1)
TNT1 A 0 A_JumpIfInTargetInventory("FuseManSpeedBoost",1,"Spawn")
Death:
TNT1 A 1 A_TakeFromTarget("FuseManSpeed")
stop
}
}

actor FuseTackleCooldown : Inventory
{
	inventory.amount 1
	inventory.maxamount 105
	+INVENTORY.IGNORESKILL
}

actor FuseTackleWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("FuseTackleCooldown",1)
TNT1 A 0 A_JumpIfInTargetInventory("FuseTackleCooldown",1,"Spawn")
Death:
TNT1 A 1
stop
}
}

actor HighVoltageSplash
{
PROJECTILE
+FLOORHUGGER
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("FuseSparkFX",0,0,0,40,0,random(0,30),random(0,359))
stop
}
}

actor HighVoltageSparkWave
{
PROJECTILE
+FLOORHUGGER
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
const int SPARK_SPEED = 40;
States
{
Spawn:
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,18) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,36)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,54) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,72)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,90) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,108)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,126) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,144)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,162) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,180)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,198) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,216)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,234) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,254)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,270) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,288)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,306) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,324)
TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,342) TNT1 A 0 A_SpawnItemEx("FuseSparkFX",0,0,0,SPARK_SPEED,0,0,360)
stop
}
}

actor HighVoltageRadius
{
PROJECTILE
+FLOORHUGGER
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
States
{
Spawn:
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,18) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,36)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,54) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,72)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,90) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,108)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,126) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,144)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,162) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,180)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,198) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,216)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,234) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,254)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,270) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,288)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,306) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,324)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,342) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusRange",0,0,0,0,0,0,360)
stop
}
}

actor HighVoltageRadiusRange
{
PROJECTILE
+FLOORHUGGER
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
States
{
Spawn:
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",18) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",36)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",54) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",72)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",90) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",108)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",126) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",144)
TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",162) TNT1 A 0 A_SpawnItemEx("HighVoltageRadiusExplode",180)
stop
}
}

actor HighVoltageRadiusExplode
{
species "DustManType"
+THRUSPECIES
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
damagetype "FusemanHighVoltage"
Obituary "$OB_FUSEMAN4"
damage (45)
Radius 8
Height 16
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 1
stop
Death:
XDeath:
stop
}
}

actor ReturningChain : Powerup 
{
powerup.duration 6
} 

actor FuseManFlag : Inventory
{
inventory.amount 1
inventory.maxamount 2
}

actor FuseM1Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("fuseman/melee","Weapon") 
TNT1 A 0 A_SpawnItemEx("LiveWireSwipeFX")
TNT1 A 0 A_JumpIfInventory("FuseManSpeedBoost",1,"Pickup2")
TNT1 A 0 A_FireCustomMissile("LiveWireShot",0,0,1,10)
stop

Pickup2:
TNT1 A 0 A_FireCustomMissile("LiveWireShot2",0,0,1,10)
stop
}
}