CONST INT FUSE_SPEED = 50;
actor ScrambleThunderBoss : BaseMM8BDMWep_CBM
{
	Tag "$TAGC_11B"
	
	dropitem "ScrambleThunderWepCDropped"

	Obituary "%o was zapped by %k's Scramble Thunder."
	Inventory.Pickupmessage "Damn...,,.,"
	weapon.ammotype "FusemanAmmo"
	weapon.ammotype2 "FusemanTracerAmmo"
	Weapon.SlotNumber 1
	Weapon.AmmoUse 0
	Weapon.AmmoUse2 40
	Weapon.AmmoGive 0
	States
	{
		Spawn:
		C_11 F 1
		loop

		Ready:
		//FUSH A 0 A_GiveInventory("FusemanItem")
		FUSH A 0 A_GunFlash
		FUSH A 0 ACS_ExecuteAlways(998,0,DYE_FUSEMAN)
		THRM A 0 A_SpawnItemEx("FuseCombatWatcher")
		Goto Ready1
		
Flash:
	TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
	TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,"NoFlight")
	TNT1 A 0 A_JumpIfInventory("FuseSpeedGear",1,"YesFlightX")//StayLocked
	TNT1 A 0 A_JumpIfInventory("FuseFlight",1,"Flight")
goto NoFlight
YesFlightX:
	TNT1 A 0 //A_Stop
	goto YesFlight
	Flight:
	TNT1 A 0 A_JumpIf(z-floorz>=120, "NoFlight")
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(107,0)==1, "MaybeFlight")
	YesFlight:
	TNT1 A 1 SetPlayerProperty(0, 1, 3)
	TNT1 A 0 A_JumpIfInventory("FuseM_StaminaFlag",500,"Flash")
	TNT1 A 0 A_JumpIf(z-floorz==0, "Recharge")
	goto Flash
	MaybeFlight:
	TNT1 A 0 A_TakeInventory("FuseM_StaminaFlag",20)
	TNT1 A 0 A_JumpIfInventory("FuseM_StaminaFlag",1,"YesFlight")
	goto NoFlight
	NoFlight:
	TNT1 A 1 SetPlayerProperty(0, 0, 3)
	TNT1 A 0 A_JumpIfInventory("FuseM_StaminaFlag",500,"Flash")
	TNT1 A 0 A_JumpIf(z-floorz==0, "Recharge")
	Goto Flash
	Recharge:
	TNT1 A 0 A_GiveInventory("FuseM_StaminaFlag",4)
Goto Flash
		
		Delay:
		TNT1 A 0 SetPlayerProperty(0, 0, 0)//noammo m2
		FUSH A 15 A_WeaponReady(WRF_NOSECONDARY)
		GoGoGo:
		TNT1 A 0 SetPlayerProperty(0, 0, 0)//noammo m2
		FUSH A 0 A_GiveInventory("FusemanSlapDone",1)
		Ready1:
        FUSH A 0 A_JumpIfInventory("FusemanAmmo",420,"Ready2")
        FUSH A 1 A_WeaponReady
		TNT1 A 0 A_GiveInventory("FusemanTracerAmmo",2)
		TNT1 A 0 A_GiveInventory("FusemanAmmo",1)
        loop
        
        Ready2:
        FUSH A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		TNT1 A 0 A_GiveInventory("FusemanTracerAmmo",2)
        goto Ready1
		
		SGFireCancel:
		FUSH A 0 A_GiveInventory("FusemanSlapDone",1)
		TNT1 A 0 SetPlayerProperty(0, 0, 0)
		//TNT1 A 0 SetPlayerProperty(0, 0, 4)
		FUSH B 0 A_ScaleVelocity(.5)
		FUSH B 0 A_PlaySoundEx("fuseman/teleport","Body")
		FUSH A 0 A_TakeInventory("FusemanAmmo",210)
		goto FireSlap
		Fire:
		FUSH A 0 A_JumpIfInventory("FuseSpeedGear",1,"SGFireCancel")
		FireSlap:
		FUSH B 0 A_SetUserVar("user_wepangle",angle)
		FUSH B 0 A_SetUserVar("user_weppitch",pitch)
		FUSH B 0 A_PlaySoundEx("fuseman/melee","Weapon")
		FUSH B 1 Offset(209, 75)A_GiveInventory("FuseMainfire_CI")
		FUSH B 1 Offset(209, 75)
		FUSH B 1 Offset(123, 64)
		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)
		MainEnd:
		TNT1 A 20 Offset(-130,89)
		FUSH A 1 Offset(-110,69)
		FUSH A 1 Offset(-77,58)
		FUSH A 1 Offset(-55,47)
		FUSH A 3 A_WeaponReady(14)
		goto Ready1
		
		AltFire:
        FUSH A 0 A_JumpIfInventory("FusemanTracerAmmo",70,"DashIsOkay")
		FUSH A 0 A_JumpIfInventory("FuseSpeedGear",1,"SpeedSlamCheck")
		goto GoGoGo
		DashIsOkay:
		TNT1 A 0 A_GiveInventory("FuseBlink")
		FUSH A 0 A_JumpIfInventory("FuseSpeedGear",1,"SpeedThrustGear.a")
		TNT1 A 0 SetPlayerProperty(0, 1, 0)
		TNT1 A 0 A_Stop
		FUSH A 1 A_PlaySoundEx("fuseman/telestart", "Weapon")
		FUSH F 1 A_Stop//Offset(-9, 32)
		FUSH A 1 A_Stop//Offset(1, 32)
		FUSH FF 1 A_Stop//Offset(-18, 32)
		FUSH AA 1 A_Stop//Offset(1, 32)
		goto SpeedThrust
		SpeedThrustGearRefire.a:
		FUSH A 0 A_Refire("SpeedThrustGear.a")
		goto SpeedThrustGear
		SpeedThrustGear.a:
		FUSH A 0 A_PlaySoundEx("fuseman/telestart", "Weapon")
		TNT1 AA 0 A_SpawnItemEx("FuseSparkFX",random(12,48),0,32+random(-32,32),0,0,0,frandom(0,359),1)
		FUSH A 0 A_GiveInventory("FuseSpeedGear",1)
		FUSH F 1 A_Stop
		FUSH F 0 A_TakeInventory("FusemanAmmo",8)
		FUSH A 0 A_JumpIfInventory("FusemanAmmo",1,"SpeedThrustGearRefire.b")
		goto SpeedSlam
		SpeedThrustGearRefire.b:
		FUSH A 0 A_Refire("SpeedThrustGear.b")
		goto SpeedThrustGear
		SpeedThrustGear.b:
		//FUSH A 0 A_PlaySoundEx("fuseman/telestart", "Weapon")
		TNT1 AA 0 A_SpawnItemEx("FuseSparkFX",random(12,48),0,32+random(-32,32),0,0,0,frandom(0,359),1)
		FUSH A 0 A_GiveInventory("FuseSpeedGear",1)
		FUSH A 1 A_Stop
		FUSH F 0 A_TakeInventory("FusemanAmmo",8)
		FUSH A 0 A_JumpIfInventory("FusemanAmmo",1,"SpeedThrustGearRefire.a")
		goto SpeedSlam
		SpeedThrustGear:
		TNT1 A 0 A_PlaySoundEx("fuseman/voltage","Weapon")
		SpeedThrust:
		//TNT1 A 0 SetPlayerProperty(0, 1, 4)
		TNT1 A 0 A_ChangeFlag("SOLID",0)
		TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
		FUSH A 0 A_GiveInventory("FuseDash_P",1)
		ELEA C 0 A_SpawnItemEx("FuseTeleFXHelper",0,0,32,0,0,0,0,1)
		FUSH F 0 ACS_NamedExecute("BULL_SetState",0,1)
		TNT1 AA 1 A_JumpIf(z-floorz<=0,"SpeedSlap")
		//TNT1 A 0 SetPlayerProperty(0, 0, 4)
		FUSH A 0 A_JumpIfInventory("FuseSpeedGear",1,"SpeedReset")
		SpeedSlap:
		FUSH A 0 A_ScaleVelocity(.1)
		FUSH A 0 A_TakeInventory("CutterFlag",99)
		TNT1 A 0 A_SpawnItemEx("ResolidifyPlayer_H")
		TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
		TNT1 A 0 A_StopSoundEx("Weapon")
		TNT1 A 2 A_GiveInventory("FuseMainInv_CI")
		TNT1 A 2 A_WeaponReady(WRF_NOFIRE)
		TNT1 A 2 Offset(-110,69)
		FUSH A 2 Offset(-110,69)
		FUSH A 2 Offset(-77,58)
		FUSH A 4 Offset(-55,47)A_Refire("Refirecheck")
		TNT1 A 0 SetPlayerProperty(0, 0, 0)
		FUSH A 10 A_WeaponReady(WRF_NOFIRE)
		goto Delay
		RefireCheck:
        FUSH A 0 A_JumpIfInventory("FusemanTracerAmmo",70,"Altfire")
		TNT1 A 0 SetPlayerProperty(0, 0, 0)
		FUSH A 10 A_WeaponReady(WRF_NOFIRE)
		goto Delay
		SpeedSlamCheck:
		FUSH A 0 A_JumpIfInventory("FusemanTracerAmmo",35,"DashIsOkay")
		SpeedSlam:
		FUSH A 0 A_GiveInventory("FusemanSlapDone",1)
		TNT1 A 0 A_ChangeFlag("SOLID",0)
		TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
		FUSH A 0 A_PlaySoundEx("weapon/fusedashdown", "Weapon")
		FUSH A 0 A_TakeInventory("FusemanAmmo",210)
		ELEA C 0 A_SpawnItemEx("FuseTeleFXHelper",0,0,32,0,0,0,0,1)
		SpeedSlamLoop:
		FUSH A 0 A_GiveInventory("FusemanSlapDone",1)
		FUSH A 0 A_JumpIfInventory("CutterFlag",35,"SpeedSlap")
		FUSH A 0 A_GiveInventory("FuseSpeedGear",1)
		FUSH A 0 A_GiveInventory("CutterFlag",1)
		FUSH F 1 A_ChangeVelocity(0,0,-90,3)
		TNT1 A 0 A_JumpIf(z-floorz==0, "SpeedSlap")
		FUSH A 1 A_ChangeVelocity(0,0,-90,3)
		TNT1 A 0 A_JumpIf(z-floorz==0, "SpeedSlap")
		loop

		Reload:
		TNT1 A 0 SetPlayerProperty(0, 1, 0)
		TNT1 A 0 A_GiveInventory("FusemanTracerAmmo",210)
		FUSH F 0 A_TakeInventory("CutterFlag",999)
		TNT1 A 0 //A_ChangeFlag("SOLID",0)
		TNT1 A 0 //A_ChangeFlag("THRUACTORS",1)
		TNT1 A 0 A_Stop
		BSKI I 0 A_SpawnItemEx("FuseBreakerWarper1",0,0,28,0,0,0,0,1)
		BSKI I 0 A_SpawnItemEx("FuseBreakerWarper2",0,0,28,0,0,0,0,1)
		BSKI I 0 A_SpawnItemEx("FuseBreakerWarper3",0,0,28,0,0,0,0,1)
		BSKI I 0 A_SpawnItemEx("FuseBreakerWarper4",0,0,28,0,0,0,0,1)
		FUSH A 1 A_PlaySoundEx("fuseman/geardash", "Weapon")
		FUSH F 0 ACS_NamedExecute("BULL_SetState",0,2)
		ReloadStartup:
		FUSH FA 1 A_Stop//Offset(1, 32)
		TNT1 A 0 A_SpawnItemEx("FuseSparkFX",random(12,48),0,32+random(-32,32),-1,0,0,frandom(0,359),1)
		FUSH A 0 A_JumpIfInventory("CutterFlag",15,"ReloadGo")
		FUSH F 0 A_GiveInventory("CutterFlag",1)
		loop
		ReloadGo:
		FUSH F 0 A_TakeInventory("CutterFlag",999)
		FUSH A 0 A_PlaySoundEx("fuseman/voltage", "Weapon")
		TNT1 A 0 A_SetUserVar("user_wepangle",angle)
		FUSH A 1 A_ChangeVelocity(50*cos(pitch),0,50*-sin(pitch),3)
		TNT1 A 0 A_SetArg(4,momz)
		TNT1 A 0 A_SetArg(3,momy)
		TNT1 A 0 A_SetArg(2,momx)
		goto SpeedGar.a
		SpeedReset:
		TNT1 A 0 A_GiveInventory("FusemanAmmo",70)
		TNT1 A 0 A_SpawnItemEx("ResolidifyPlayer_H")
		TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
		//TNT1 A 0 A_GiveInventory("FuseMainInv_CI")
		TNT1 A 0 A_SetUserVar("user_wepangle",angle)
		TNT1 A 0 A_ChangeVelocity(50*cos(pitch),0,50*-sin(pitch),3)
		TNT1 A 0 A_SetArg(4,momz)
		TNT1 A 0 A_SetArg(3,momy)
		TNT1 A 0 A_SetArg(2,momx)
		SpeedGar.a://read crungle on webtoons
		FUSH A 0 A_TakeInventory("CutterFlag",1)
		FUSH F 0 ACS_NamedExecute("BULL_SetState",0,1)
		PLSP A 0 A_PlaySoundEx("weapon/sparkchasertravel","SoundSlot6")
		FUSH A 0 A_GiveInventory("FuseSpeedGear",1)
		FUSH A 0 A_ChangeVelocity(args[2],args[3],args[4],CVF_REPLACE)
		FUSH G 1 A_WeaponReady
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",4,4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",4,-4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",-4,4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",-4,-4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 AA 0 A_SpawnItemEx("FuseSparkFX",random(12,48),0,32+random(-32,32),0,0,0,frandom(0,359),1)
		FUSH A 0 A_TakeInventory("FusemanAmmo",4)
		TNT1 A 0 A_JumpIfInventory("FuseBreakerHit",1,"SpeedinFuseToHeaven")
		TNT1 A 0 A_JumpIfInventory("FusemanTracerDelay",1,"SpeedSlam")
		FUSH A 0 A_JumpIfInventory("FusemanAmmo",1,"SpeedGar.b")
		goto SpeedSlam
		SpeedGar.b:
		PLSP A 0 A_PlaySoundEx("weapon/sparkchasertravel","SoundSlot6")
		FUSH A 0 A_GiveInventory("FuseSpeedGear",1)
		FUSH F 0 A_ChangeVelocity(args[2],args[3],args[4],CVF_REPLACE)
		FUSH H 1 A_WeaponReady
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",4,4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",4,-4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",-4,4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 A 0 A_SpawnItemEx("FuseStrikeCheck",-4,-4,-2,velx,0,velz,0,SXF_ABSOLUTEVELOCITY)
		TNT1 AA 0 A_SpawnItemEx("FuseSparkFX",random(12,48),0,32+random(-32,32),0,0,0,frandom(0,359),1)
		FUSH A 0 A_TakeInventory("FusemanAmmo",4)
		TNT1 A 0 A_JumpIfInventory("FuseBreakerHit",1,"SpeedinFuseToHeaven")
		TNT1 A 0 A_JumpIfInventory("FusemanTracerDelay",1,"SpeedSlam")
		FUSH F 0 A_JumpIfInventory("FusemanAmmo",1,"SpeedGar.a")
		goto SpeedSlam
		SpeedinFuseToHeaven:
		TNT1 A 0 A_SpawnItemEx("ResolidifyPlayer_H")
		TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
		FUSH A 0 A_GiveInventory("FusemanSlapDone",1)
		FUSH A 0 A_TakeInventory("FusemanAmmo",420)
		TNT1 A 0 A_TakeInventory("FusemanTracerDelay")
		TNT1 A 0 SetPlayerProperty(0, 0, 0)
		TNT1 A 0 A_WeaponReady(WRF_NOFIRE)
		FUSH B 0 A_Stop
		FUSH B 1 Offset(209, 75) A_PlaySoundEx("fuseman/teleport","Weapon")
		FUSH B 1 Offset(209, 75)
		TNT1 A 1 Offset(123, 64)
		FUSH C 1 Offset(123, 64)
		FUSH C 1 Offset(70, 40)
		FUSH C 1 Offset(-47, 56)
		FUSH C 2 Offset(12, 12)
		FUSH C 2 Offset(-64, -14)
		FUSH C 2 Offset(-120, -21)
		FUSH C 2 Offset(-110,69)
		TNT1 A 5 A_WeaponReady(WRF_NOSECONDARY)
		FUSH A 2 Offset(-110,69)
		FUSH A 2 Offset(-77,58)
		FUSH A 2 Offset(-55,47)
		FUSH A 10 A_WeaponReady
		goto Delay
	}
}

actor FusemanBeamProtect : PowerProtection {
	DamageFactor "FuseM_Scrambeam", 0.26
	Powerup.Duration 20
}
actor FusemanDashP : PowerProtection {
	DamageFactor "FusemanDash", 0.0
	Powerup.Duration 4
}
actor FusemanDashP2 : PowerProtection {
	DamageFactor "FusemanDash2", 0.0
	Powerup.Duration 5
}
actor FuseM_LivewireProtect : PowerProtection {
	DamageFactor "FuseM_Livewire", 0.0
	Powerup.Duration 5
}
actor FuseM_Livewire2Prot : PowerProtection {
	DamageFactor "FuseM_Livewire2", 0.0
	Powerup.Duration 5
}
actor FuseM_ChainProt : PowerProtection {
	DamageFactor "FuseM_Chain", 0.0
	Powerup.Duration 6
}

actor FuseBlastDelay : Powerup
{
Powerup.Duration 10
}

actor FusemanAmmo : Ammo
{
	+INVENTORY.IGNORESKILL
	Inventory.MaxAmount 420
	Inventory.Amount 1
}

actor FusemanTracerAmmo : Ammo
{
	+INVENTORY.IGNORESKILL
	Inventory.MaxAmount 210
	Inventory.Amount 1
}
actor FuseM_StaminaFlag : Ammo
{
inventory.amount 1
inventory.maxamount 500
+INVENTORY.IGNORESKILL
+INVENTORY.UNDROPPABLE
}

actor FusemanSlapDone : PowerUp {Powerup.Duration 50}
actor FuseBreakerHit : PowerUp {Powerup.Duration 5}
actor FusemanTracerDelay : PowerUp {Powerup.Duration 5}
actor FusemanTracerRegen : Powerup {Powerup.Duration 16}
actor FuseFlight : OnceC{}
actor FuseAuraFarming : OnceC{}
actor AuraHasBeenSpawned : OnceC{}
actor NoAura : Powerup {Powerup.Duration 5}
actor FuseSpeedGear : Powerup {Powerup.Duration 10}
actor FuseBlink : Powerup {Powerup.Duration 10}
actor FuseM_BreakerCheck : Powerup {Powerup.Duration 5}

actor FuseFlightItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.pickupmessage "Prepare to fly-ode!"
Tag "$TAGC_FLOATTOGGLE"
inventory.icon "FUSEBATI"
scale 2.0
+INVBAR
states
{
Spawn:
ASTI X 1
loop
Use:
TNT1 A 0 A_PlaySoundEx("item/ItemUseMM9","SoundSlot6")
TNT1 A 0 A_JumpIfInventory("FuseFlight",1,"Take")
TNT1 A 0 A_GiveInventory("FuseFlight",1)
fail
Take:
TNT1 A 0 A_TakeInventory("FuseFlight",999)
fail
}
}

actor FuseDash_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("FuseSpeedGear",1,"DontFuckWithTheFucker")
ELEA C 0 A_ChangeVelocity(200*cos(pitch),0,125*sin(-pitch),3)
TNT1 A 0 A_TakeInventory("FusemanTracerAmmo",70)
stop
DontFuckWithTheFucker:
ELEA C 0 A_ChangeVelocity(100*cos(pitch),0,75*sin(-pitch),3)
TNT1 A 0 A_TakeInventory("FusemanTracerAmmo",35)
stop
}
}

actor FuseAura_P : CustomInventory
{
States
{
Pickup:
//TNT1 A 0 A_JumpIfInventory("AuraHasBeenSpawned",1,"Die")
//TNT1 A 0 A_GiveInventory("AuraHasBeenSpawned",1)
TNT1 A 0 A_SpawnItemEx("FuseAura",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura2",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura3",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura4",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura5",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura6",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura7",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura8",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura9",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("FuseAura10",0,0,0,0,0,0,0,1)
stop
Die:
TNT1 A 0
fail
}
}

actor FuseM_Beam
{
	Translation "192:192=228:228","202:202=212:212","198:198=228:228"
	PROJECTILE
	+RIPPER
	+BRIGHT
	+NOEXPLODEFLOOR
	Obituary "$OB_FUSESHOT"
	DamageType "FuseM_Scrambeam"
	Speed 45
	Damage (8)
	Radius 12
	Height 16
	Scale 2.5
	States
	{
		Spawn:
			TNT1 AA 0
		SpawnLoop:
			FSST AABBCCBB 1 A_SpawnItemEx("ScrambleThunderBallFX",0,0,0,0,0,0,0,1)
			FSFX A 0 A_ChangeFlag("NOINTERACTION",TRUE)
			FSST B 0 A_Stop
		Death:
			FSFX A 0 A_PlaySound("weapon/ThunderClawHit","Body")
			FSFX A 0 A_Explode(10, 96, 0, 0, 48)
			FSST FGHI 2
		stop
	}
}

actor FuseM_BeamB : FuseM_Beam {Translation "192:192=74:74","202:202=205:205","198:198=74:74"}
actor FuseM_BeamR : FuseM_Beam {Translation "192:192=41:41","202:202=171:171","198:198=41:41"}
actor FuseM_BeamO : FuseM_Beam {Translation "192:192=128:128","202:202=104:104","198:198=128:128"}
actor FuseM_BeamP : FuseM_Beam {Translation "192:192=232:232","202:202=229:229","198:198=232:232"}

actor FuseThunder
{
	Translation "192:192=160:160","198:198=228:228"
	PROJECTILE
	Damagetype "FuseM_Livewire"
	Obituary "$OB_FUSESHOT1"
	+FLOORHUGGER
	+FORCEXYBILLBOARD
	+STEPMISSILE
	+HITTRACER
	+BRIGHT
	Damage (0)
	Radius 20
	Height 15
	speed 35
	Scale 2.5
	reactiontime 350
	States
	{
		Spawn:
			TNT1 AA 0
			TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
			TNT1 A 0 A_PlaySoundEx("weapon/scrambletravel","Weapon",1)
		SpawnLOOP:
			11FS AABBCCDD 1 A_SpawnItemEx("FuseM_ThunderFX",0,0,0,0,0,0,0,1)
			loop
		Death:
			TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"Blast")
			TNT1 A 0 A_StopSoundEx("Weapon")//A_CheckFloor("Slam")
			TNT1 A 5 A_Stop
			stop
		Blast:
			TNT1 A 0 A_SpawnItemEx("FuseThunderBlast",0,0,0,0,0,0,0,1)
			TNT1 A 0 A_SpawnItemEx("FuseThunderLoop",0,0,0,35,0,0,0,1)
			TNT1 A 0 A_StopSoundEx("Weapon")//A_CheckFloor("Slam")
			TNT1 A 5 A_Stop
			stop
			
		
	}
}

actor FuseThunderLoop : FuseThunder
{
+THRUACTORS
	States
	{
		Spawn:
			TNT1 AA 0
			TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
			TNT1 A 0 A_PlaySoundEx("weapon/scrambletravel","Weapon",1)
			11FS CCDD 1 A_SpawnItemEx("FuseM_ThunderFX",0,0,0,0,0,0,0,1)
			11FS A 0 A_ChangeFlag(THRUACTORS,false)
			goto Super::SpawnLOOP
	}
}

actor FuseWeakness2 : BasePowerWeak
{
damagefactor "FuseM_Scrambeam",3
powerup.duration 15
}

actor FuseM_ThunderFX
{
PROJECTILE
damagetype "FuseM_Livewire"
Obituary "$OB_SCRAMBLETHUNDER"
+DONTBLAST
+FORCEXYBILLBOARD
+BRIGHT
damage (0)
radius 10
height 12
Renderstyle add
Scale 1.85
States
{
Spawn:
TNT1 AA 0
TNT1 A 1
FSFX C 2
FSFX BBAA 1 A_Fadeout(.2)
wait
}
}

actor FuseThunderBlast : BasicExplosion
{
Damagetype "FuseM_Thunder"
Obituary "$OB_SCRAMBLETHUNDER"
scale 2.5
+BRIGHT
+FORCEXYBILLBOARD
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/scrambleboom","Weapon")
11FS H 3 A_Stop
11FS I 3 A_Explode(6, 80, 0,0,100)
11FS J 3 A_Stop
11FS K 3 A_Explode(6, 80, 0,0,100)
11FS J 3 A_Stop
11FS L 3 A_Explode(6, 80, 0,0,100)
11FS J 3 A_Stop
11FS M 3 A_Explode(6, 80, 0,0,100)
stop
}
}

actor FuseM_ThunderProtect : PowerProtection {
	DamageFactor "FuseM_Thunder", 0.17//0.0
	Powerup.Duration 5
}

actor FuseThunderBoom : BasicExplosion
{
Translation "249:249=228:228","76:76=160:160","250:250=4:4"
+FLOORHUGGER
+STEPMISSILE
-NOINTERACTION
+NOCLIP
maxstepheight 32
Obituary "$OB_FUSEGROUND"
damagetype "FuseM_Ground"
scale 3.5
States
{
Spawn:
TNT1 AA 0
TNT1 A 0 A_Stop
TNT1 A 0 A_Explode(12,96,0,0,48)
BRBM MNO 2
stop
}
}

actor FuseThunderBoomB : FuseThunderBoom{translation "249:249=199:199","76:76=74:74","250:250=205:205"}
actor FuseThunderBoomR : FuseThunderBoom{translation "249:249=43:43","76:76=41:41","250:250=171:171"}
actor FuseThunderBoomO : FuseThunderBoom{translation "249:249=131:131","76:76=128:128","250:250=104:104"}
actor FuseThunderBoomP : FuseThunderBoom{translation "249:249=223:223","76:76=232:232","250:250=229:229"}

actor FuseTeleFXHelper : BasicHelper
{
scale 2.5
+BRIGHT
var int user_PTID;
renderstyle add
States
{
Spawn:
FUTL AA 0
FUTL A 1 A_SetUserVar("user_PTID",ACS_ExecuteWithResult(257,0))
FUTL A 1 ACS_NamedExecuteWithResult("cbm_FuseTrail",0,user_PTID,24)
FUTL A 1 A_Fadeout
wait
}
}

Actor FuseM_TrailFX-1 : BasicClientSide
{
+MISSILE
+BRIGHT
Scale 2.5
States
{
Spawn:
FSFX AA 0
FSFX ABCD 1
stop
}
}

actor FuseM_TrailFX0 : FuseM_TrailFX-1{Translation"192:192=196:196","198:198=205:205"}
actor FuseM_TrailFX1 : FuseM_TrailFX-1{Translation"192:192=170:170","198:198=171:171"}
actor FuseM_TrailFX2 : FuseM_TrailFX-1{Translation"192:192=138:138","198:198=104:104"}
actor FuseM_TrailFX3 : FuseM_TrailFX-1{Translation"192:192=214:214","198:198=229:229"}

actor FuseStrikeCheck
{
PROJECTILE
Damagetype "FuseM_Breaker"
Obituary "$OB_FUSEBREAK"
+DONTSPLASH
+DONTBLAST
+DONTREFLECT
//+NOEXPLODEFLOOR
-BOUNCEONCEILINGS
+THRUGHOST
+SKYEXPLODE
+HITTRACER
//+STEPMISSILE
Damage (12)
radius 24
height 64
Speed 0
scale 2.5
States
{
Spawn:
TNT1 AA 0
TNT1 A 1
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"BackBreaker")
goto Death
BackBreaker:
TNT1 A 1 A_GiveToTarget("FuseBreakerHit",1)
stop
Death:
TNT1 A 1 A_GiveToTarget("FusemanTracerDelay",1)
stop
}
}

actor FuseM_BreakerProtect : PowerProtection {
	DamageFactor "FuseM_Breaker", 0.0
	Powerup.Duration 20
}

actor FuseBreaker
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+DONTREFLECT
+MISSILE
+BRIGHT
Renderstyle add
scale 1.5
reactiontime 12
States
{
Spawn:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_PlaySoundEx("assist/kamishock","Body")
TNT1 A 0 A_GiveToTarget("FuseWeakness2",1)
FUBR AB 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("FuseM_BreakerCheck",1,"Stunned")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
FUBR CD 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("FuseM_BreakerCheck",1,"Stunned")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
FUBR EF 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("FuseM_BreakerCheck",1,"Stunned")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_Countdown
loop
Stunned:
TNT1 A 0 A_SetScale(2.5)
TNT1 A 0 A_TakeFromTarget("FuseWeakness2",1)
SPAS FFGGFFGGFFGGFFGGFFGGFFGGFFGG 1 A_Warp(AAPTR_TARGET,4,0,32,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
Death:
TNT1 A 0 A_TakeFromTarget("FuseWeakness2",1)
stop
}
}

actor FuseBreakerWarper1
{
Translation "198:198=193:193"
PROJECTILE
damage (0)
var int user_dist;
var int user_a;
Radius 10
height 10
scale 2.5
renderstyle add
alpha 0.01
+THRUACTORS
+NOINTERACTION
+FORCEXYBILLBOARD
mass 150
accuracy 0
States
{
Spawn:
TNT1 AA 0
11FS Z 0 A_SetUserVar(user_a,accuracy)
11FS Z 0 A_SetUserVar(user_dist,mass)
SpawnDelay:
11FS A 0 A_JumpIfInTargetInventory("FuseSpeedGear",1,"SpawnForth")
11FS "#" 0 A_JumpIfInTargetInventory("FusemanSlapDone",1,"Death")
11FS "#" 0 A_SetPitch(pitch%360+12)
11FS "#" 0 A_FadeIn(0.04)
11FS "#" 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
11FS "#" 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS "#" 0 A_SetUserVar(user_dist,user_dist-2.5)
loop
SpawnForth:
11FS "#" 0 A_SetTranslucent(1)
11FS A 0 A_JumpIfInTargetInventory("FusemanSlapDone",1,"Move")
11FS "#" 0 A_SetPitch(pitch%360+12)
11FS "#" 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
11FS "#" 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS "#" 0 A_SpawnItemEx("FuseM_ThunderFX",0,0,0,0,0,0,0,1)
11FS B 0 A_JumpIfInTargetInventory("FusemanSlapDone",1,"Move")
11FS "#" 0 A_SetPitch(pitch%360+12)
11FS "#" 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
11FS "#" 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS "#" 0 A_SpawnItemEx("FuseM_ThunderFX",0,0,0,0,0,0,0,1)
11FS C 0 A_JumpIfInTargetInventory("FusemanSlapDone",1,"Move")
11FS "#" 0 A_SetPitch(pitch%360+12)
11FS "#" 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
11FS "#" 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS "#" 0 A_SpawnItemEx("FuseM_ThunderFX",0,0,0,0,0,0,0,1)
11FS D 0 A_JumpIfInTargetInventory("FusemanSlapDone",1,"Move")
11FS "#" 0 A_SetPitch(pitch%360+12)
11FS "#" 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
11FS "#" 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS "#" 0 A_SpawnItemEx("FuseM_ThunderFX",0,0,0,0,0,0,0,1)
loop
Move:
11FS A 1 A_SetUserVar(user_dist,user_dist+15)
11FS A 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS D 0 A_FadeOut
11FS B 1 A_SetUserVar(user_dist,user_dist+15)
11FS B 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS D 0 A_FadeOut
11FS C 1 A_SetUserVar(user_dist,user_dist+15)
11FS C 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS D 0 A_FadeOut
11FS D 1 A_SetUserVar(user_dist,user_dist+15)
11FS D 0 A_Warp(AAPTR_Target, -25,cos(pitch+user_a)*user_dist,28+(-sin(pitch+user_a)*user_dist), 0, WARPF_NOCHECKPOSITION)
11FS D 0 A_FadeOut
loop
Death:
TNT1 A 0
stop
}
}

actor FuseBreakerWarper2 : FuseBreakerWarper1{accuracy 90}
actor FuseBreakerWarper3 : FuseBreakerWarper1{accuracy 180}
actor FuseBreakerWarper4 : FuseBreakerWarper1{accuracy 270}

actor FuseM1SparkleFX1 : BrightmanSparkleFX { scale 0.75
renderstyle translucent
alpha .25
 }

actor FuseBodySparkleFX : BrightmanSparkleFX { scale 0.65 }

actor FuseAura
{
Translation "192:192=160:160","198:198=228:228"
PROJECTILE
damage (0)
var int user_distance;
var int user_slow;
var int user_angle;
Radius 1
height 1
scale 2.5
renderstyle translucent
alpha 0.25
+THRUACTORS
//+CLIENTSIDEONLY
+NOINTERACTION
+FORCEXYBILLBOARD
mass 27
accuracy 0
States
{
Spawn:
TNT1 AA 0
FSFX A 0 A_SetUserVar(user_distance,0)
FSFX A 0 A_SetUserVar(user_slow,mass)
FSFX A 0 A_SetUserVar(user_angle,accuracy)
Spawn1:
TNT1 A 0 A_Warp(AAPTR_Target, user_distance,0, 0, accuracy, WARPF_NOCHECKPOSITION|WARPF_TOFLOOR)
TNT1 A 0 A_JumpIfInTargetInventory("FuseSpeedGear",1,"Pause")
TNT1 A 2 A_JumpIfInTargetInventory("FuseAuraFarming",1,1)
goto Pause
FSFX A 0 A_JumpIf(user_distance>=360,"SpawnStop")
FSFX A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
FSFX A 0 A_Warp(AAPTR_Target, user_distance,0, 0, accuracy, WARPF_NOCHECKPOSITION|WARPF_TOFLOOR)
FSFX A 0 A_SetUserVar(user_distance,(user_distance+user_slow))
FSFX A 0 A_SetUserVar(user_slow,user_slow-0.009)
loop
SpawnStop:
TNT1 A 0 A_JumpIfInTargetInventory("FuseSpeedGear",1,"Pause")
FSFX A 0 A_JumpIfInTargetInventory("FuseAuraFarming",1,1)
goto Pause
FSFX A 0 //A_SpawnItemEx("FuseMeleeFX",frandom(-1,-360),frandom(-45,45),0,0,0,frandom(1,3),0,1,128)
FSFX B 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
FSFX C 0 A_Warp(AAPTR_Target, user_distance,0, 0, user_angle, WARPF_NOCHECKPOSITION|WARPF_TOFLOOR)
FSFX A 0 //A_SetUserVar(user_angle,user_angle+4)
FSFX A 0 //A_SpawnItemEx("FuseMeleeFX",frandom(-1,-360),frandom(-45,45),0,0,0,frandom(2,6),0,1,128)
FSFX C 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
FSFX C 0 A_Warp(AAPTR_Target, user_distance,0, 0, user_angle, WARPF_NOCHECKPOSITION|WARPF_TOFLOOR)
FSFX A 0 //A_SetUserVar(user_angle,user_angle+4)
loop

Pause:
FSFX A 0 A_SetUserVar(user_distance,0)
FSFX A 0 A_SetUserVar(user_slow,mass)
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("FuseSpeedGear",1,"Pause")
TNT1 A 0 A_JumpIfInTargetInventory("FuseAuraFarming",1,"Spawn1")
loop

Death:
TNT1 A 0
stop
}
}

actor FuseAura2 : FuseAura{accuracy 36}
actor FuseAura3 : FuseAura{accuracy 72}
actor FuseAura4 : FuseAura{accuracy 108}
actor FuseAura5 : FuseAura{accuracy 144}
actor FuseAura6 : FuseAura{accuracy 180}
actor FuseAura7 : FuseAura{accuracy 216}
actor FuseAura8 : FuseAura{accuracy 252}
actor FuseAura9 : FuseAura{accuracy 288}
actor FuseAura10 : FuseAura{accuracy 324}

actor FuseM1SparkleFX2 : BasicClientSide
{
scale 2.5
States
{
Spawn:
FSST CDE 3
stop
}
}

actor FuseDashSparkleFX1 : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
Renderstyle "Translucent"
Alpha 0.95
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 3
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4")
Spawn1:
FSTB UVWX 2
stop
Spawn2:
FSTB UVVWWXX 1
stop
Spawn3:
FSTB VUUVWX 1
stop
Spawn4:
FSTB VUVWX 1
stop
}
}

actor FuseDashSparkleFX2 : FuseM1SparkleFX2
{
States
{
Spawn:
TNT1 A 3
FSST CDE 3
stop
}
}

actor FuseThunderB : FuseThunder {Translation "198:198=74:74", "192:192=205:205"}
actor FuseThunderR : FuseThunder {Translation "198:198=41:41", "192:192=171:171"}
actor FuseThunderO : FuseThunder {Translation "198:198=128:128", "192:192=104:104"}
actor FuseThunderP : FuseThunder {Translation "198:198=232:232", "192:192=229:229"}

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

actor FuseSmallSparkFX : FuseSparkFX
{
scale 2.55
States
{
Spawn:
SCTH EF 3
stop
}
}

//gimmick ported from uec torchman, credits towards them
actor FuseCombatWatcher : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 5
TNT1 A 0 A_JumpIfInTargetInventory("LightTeamFlag",1,"SpawnB")
TNT1 A 0 A_JumpIfInTargetInventory("WilyTeamFlag",1,"SpawnR")
TNT1 A 0 A_JumpIfInTargetInventory("CossackTeamFlag",1,"SpawnO")
TNT1 A 0 A_JumpIfInTargetInventory("KingTeamFlag",1,"SpawnP")
SpawnNoTeam:
TNT1 AA 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"StopThis")
TNT1 A 0 A_GiveToTarget("FuseRadiusCheckStart")
TNT1 A 0 A_JumpIfInTargetInventory("FusemanIsInCombat",1,"GiveNoTeam")
loop
GiveNoTeam:
TNT1 A 0 A_GiveToTarget("FuseAuraFarming",1)
TNT1 A 0 A_GiveToTarget("FusemanAmmo",3)
//TNT1 A 0 A_GiveToTarget("FuseAura_P")
goto SpawnNoTeam

SpawnB:
TNT1 AA 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"StopThis")
TNT1 A 0 A_GiveToTarget("FuseRadiusCheckStartB")
TNT1 A 0 A_JumpIfInTargetInventory("FusemanIsInCombat",1,"GiveB")
loop
GiveB:
TNT1 A 0 A_GiveToTarget("FuseAuraFarming",1)
TNT1 A 0 A_GiveToTarget("FusemanAmmo",3)
//TNT1 A 0 A_GiveToTarget("FuseAura_P")
goto SpawnB

SpawnR:
TNT1 AA 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"StopThis")
TNT1 A 0 A_GiveToTarget("FuseRadiusCheckStartR")
TNT1 A 0 A_JumpIfInTargetInventory("FusemanIsInCombat",1,"GiveR")
loop
GiveR:
TNT1 A 0 A_GiveToTarget("FuseAuraFarming",1)
TNT1 A 0 A_GiveToTarget("FusemanAmmo",3)
//TNT1 A 0 A_GiveToTarget("FuseAura_P")
goto SpawnR

SpawnO:
TNT1 AA 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"StopThis")
TNT1 A 0 A_GiveToTarget("FuseRadiusCheckStartO")
TNT1 A 0 A_JumpIfInTargetInventory("FusemanIsInCombat",1,"GiveO")
loop
GiveO:
TNT1 A 0 A_GiveToTarget("FuseAuraFarming",1)
TNT1 A 0 A_GiveToTarget("FusemanAmmo",3)
//TNT1 A 0 A_GiveToTarget("FuseAura_P")
goto SpawnO

SpawnP:
TNT1 AA 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"StopThis")
TNT1 A 0 A_GiveToTarget("FuseRadiusCheckStartP")
TNT1 A 0 A_JumpIfInTargetInventory("FusemanIsInCombat",1,"GiveP")
loop
GiveP:
TNT1 A 0 A_GiveToTarget("FuseAuraFarming",1)
TNT1 A 0 A_GiveToTarget("FusemanAmmo",3)
//TNT1 A 0 A_GiveToTarget("FuseAura_P")
goto SpawnP
StopThis:
TNT1 A 0
stop
}
}

actor FuseRadiusCheckStart : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_RadiusGive("FuseRadiusCheck",360,RGF_PLAYERS,1)//bumpinthat
goto Drain1 //Pickup2
Pickup2:
//TNT1 A 0 A_JumpIfInventory("FuseAdrenaline",1,"Drain1")
TNT1 A 0 A_JumpIfInventory("FusemanIsInCombat",1,1)
goto Drain1
TNT1 A 0
stop
Drain1:
TNT1 A 0 A_TakeInventory("FuseAuraFarming",1)
//TNT1 A 0 A_TakeInventory("AuraIsOut",1)
stop
}
}

actor FuseRadiusCheckStartB : FuseRadiusCheckStart
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_RadiusGive("FuseRadiusCheckB",360,RGF_PLAYERS,1)//bumpinthat
goto Pickup2
}
}

actor FuseRadiusCheckStartR : FuseRadiusCheckStart
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_RadiusGive("FuseRadiusCheckR",360,RGF_PLAYERS,1)//bumpinthat
goto Pickup2
}
}

actor FuseRadiusCheckStartO : FuseRadiusCheckStart
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_RadiusGive("FuseRadiusCheckO",360,RGF_PLAYERS,1)//bumpinthat
goto Pickup2
}
}

actor FuseRadiusCheckStartP : FuseRadiusCheckStart
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_RadiusGive("FuseRadiusCheckP",360,RGF_PLAYERS,1)//bumpinthat
goto Pickup2
}
}

actor FuseRadiusCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_RadiusGive("FuseRadiusCheck2",360,RGF_PLAYERS,1)//bumpinthat
stop
}
}

actor FuseRadiusCheckB : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"Skip")
TNT1 A 0 A_RadiusGive("FuseRadiusCheck2B",360,RGF_PLAYERS,1)//bumpinthat
stop
Skip:
TNT1 A 0
stop
}
}

actor FuseRadiusCheckR : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"Skip")
TNT1 A 0 A_RadiusGive("FuseRadiusCheck2R",360,RGF_PLAYERS,1)//bumpinthat
stop
Skip:
TNT1 A 0
stop
}
}

actor FuseRadiusCheckO : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"Skip")
TNT1 A 0 A_RadiusGive("FuseRadiusCheck2O",360,RGF_PLAYERS,1)//bumpinthat
stop
Skip:
TNT1 A 0
stop
}
}

actor FuseRadiusCheckP : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"Skip")
TNT1 A 0 A_RadiusGive("FuseRadiusCheck2P",360,RGF_PLAYERS,1)//bumpinthat
stop
Skip:
TNT1 A 0
stop
}
}

actor FuseRadiusCheck2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("IsFuseman",1,1)
stop
TNT1 A 0 A_GiveInventory("FusemanIsInCombat",1)
stop
}
}

actor FuseRadiusCheck2B : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("IsFuseman",1,1)
stop
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,1)
stop
TNT1 A 0 A_GiveInventory("FusemanIsInCombat",1)
stop
}
}

actor FuseRadiusCheck2R : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("IsFuseman",1,1)
stop
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,1)
stop
TNT1 A 0 A_GiveInventory("FusemanIsInCombat",1)
stop
}
}

actor FuseRadiusCheck2O : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("IsFuseman",1,1)
stop
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,1)
stop
TNT1 A 0 A_GiveInventory("FusemanIsInCombat",1)
stop
}
}

actor FuseRadiusCheck2P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("IsFuseman",1,1)
stop
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,1)
stop
TNT1 A 0 A_GiveInventory("FusemanIsInCombat",1)
stop
}
}

actor FusemanIsInCombat : PowerUp
{
Powerup.Duration 7
}

actor IsFuseman : OnceC {}

actor FuseMainInv_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(z-floorz<=16,"FuknSlammer")
TNT1 A 0 A_JumpIfInventory("FuseSpeedGear",1,"Fuck")
TNT1 A 0 A_PlaySoundEx("fuseman/nope","Voice")
stop
FuknSlammer:
TNT1 A 0 A_JumpIfInventory("FuseSpeedGear",1,"DontFuckWithTheFucker")
TNT1 A 0 A_PlaySoundEx("fuseman/voltage","Voice")
TNT1 A 0 A_GiveInventory("FuseMain_CI")
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,36,0,1)//rebound? like the jpegmafia song? is this a jpegmafia reference???
stop
DontFuckWithTheFucker:
TNT1 A 0 A_GiveInventory("FuseMain2_CI")
TNT1 A 0 A_PlaySoundEx("fuseman/voltage","Voice")
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,36,0,1)
stop
Fuck:
TNT1 A 0 A_Stop
stop
}
}

actor FuseMain_CI : TeamColor_CI
{
	states
	{
		FireX:
			TNT1 A 0 A_SpawnItemEx("FuseThunderBoom",0,0,0,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,270)
			goto Done
		FireB:
			TNT1 A 0 A_SpawnItemEx("FuseThunderBoomB",0,0,0,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,270)
			goto Done
		FireR:
			TNT1 A 0 A_SpawnItemEx("FuseThunderBoomR",0,0,0,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,270)
			goto Done
		FireO:
			TNT1 A 0 A_SpawnItemEx("FuseThunderBoomO",0,0,0,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,270)
			goto Done
		FireP:
			TNT1 A 0 A_SpawnItemEx("FuseThunderBoomP",0,0,0,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,270)
			goto Done
	}
}

actor FuseMain2_CI : TeamColor_CI
{
	states
	{
		FireX:
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,30)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,60)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,120)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,150)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,210)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,240)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,270)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,300)
			TNT1 A 0 A_SpawnItemEx("FuseThunder",0,0,0,35,0,0,330)
			goto Done
		FireB:
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,30)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,60)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,120)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,150)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,210)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,240)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,270)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,300)
			TNT1 A 0 A_SpawnItemEx("FuseThunderB",0,0,0,35,0,0,330)
			goto Done
		FireR:
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,30)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,60)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,120)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,150)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,210)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,240)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,270)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,300)
			TNT1 A 0 A_SpawnItemEx("FuseThunderR",0,0,0,35,0,0,330)
			goto Done
		FireO:
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,30)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,60)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,120)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,150)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,210)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,240)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,270)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,300)
			TNT1 A 0 A_SpawnItemEx("FuseThunderO",0,0,0,35,0,0,330)
			goto Done
		FireP:
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,0)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,30)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,60)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,90)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,120)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,150)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,180)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,210)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,240)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,270)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,300)
			TNT1 A 0 A_SpawnItemEx("FuseThunderP",0,0,0,35,0,0,330)
			goto Done
	}
}

actor FuseMainfire_CI : TeamColor_CI
{
	states
	{
		FireX:
			TNT1 A 0 A_FireCustomMissile("FuseM_Beam",0,0,-8,0)
			goto Done
		FireB:
			TNT1 A 0 A_FireCustomMissile("FuseM_BeamB",0,0,-8,0)
			goto Done
		FireR:
			TNT1 A 0 A_FireCustomMissile("FuseM_BeamR",0,0,-8,0)
			goto Done
		FireO:
			TNT1 A 0 A_FireCustomMissile("FuseM_BeamO",0,0,-8,0)
			goto Done
		FireP:
			TNT1 A 0 A_FireCustomMissile("FuseM_BeamP",0,0,-8,0)
			goto Done
	}
}