actor ScrambleThunderWep_NormalBar : NormalBar{args 160, 5}
actor ScrambleThunderWep : BaseMM8BDMWep
{
Weapon.AmmoUse 2
Weapon.AmmoGive 30
Weapon.SlotNumber 3
Inventory.Pickupmessage "$PU_SCRAMBLETHUNDER"
Obituary "$OB_SCRAMBLETHUNDER"
Tag "$TAG_SCRAMBLETHUNDER"
weapon.ammotype "ScrambleThunderAmmo"
inventory.icon "STHUICON"
States
{
SpawnLoop:
11WP B 1
loop
Ready:
STHU A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_SCRAMBLETHUNDER)
STHU A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
STHU A 0
goto DeselectSwap
Select:
STHU A 0
goto SelectSwap
Fire:
STHU A 0 A_JumpIfNoAmmo("NoAmmo")
STHU A 0 A_PlaySound("weapon/scrambleshot","Weapon")
BBLL A 0 A_FireCustomMissile("ScrambleThunderBall",0,1,8,0)
STHU ABC 3
STHU A 0
STHU CB 3
STHU A 0 A_Refire
Goto Ready+1
NoAmmo:
STHU A 1 ACS_NamedExecute("core_noammo",0)
Goto Ready+1
ReadyC:
Goto Ready+1
}
}

actor ScrambleThunderAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor ScrambleThunderBall : BasicProjectile
{
damagetype "ScrambleThunder"
Obituary "$OB_SCRAMBLETHUNDER"
Damage (CallACS("vile_cbm_damage",8))
+RIPPER
+BRIGHT
Speed 40
Radius 20
Height 20
States
{
Spawn:
TNT1 AA 0 
SpawnLoop:
SCTH ABCB 2 A_SpawnItemEx("ScrambleThunderBallFX")
loop
Death:
SPAA C 0 A_PlaySoundEx("weapon/scrambletravel","Weapon")
SCTH A 0 A_CheckFloor("SplitFloor")
TNT1 A 0 A_SpawnItemEx("ScrambleThunderFall",0,0,0,0,0,-35,0,1)
stop
SplitFloor:
TNT1 A 0 A_SpawnItemEx("ScrambleThunderSplitFloor",0,0,0,35,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ScrambleThunderSplitFloor",0,0,0,35,0,0,180,1)
MMFX A 0 A_Stop
MMFX A 0 A_SetScale(3.5)
MMFX BCDE 2
stop
}
}


actor ScrambleThunderFall : ScrambleThunderBall
{
States
{
Spawn:
TNT1 AA 0 
SpawnLoop:
SCTH FGHG 2
loop
Death:
SPAA C 0 A_PlaySoundEx("weapon/scrambletravel","Weapon")
TNT1 A 0 A_SpawnItemEx("ScrambleThunderSplitFloor",0,0,0,35,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ScrambleThunderSplitFloor",0,0,0,35,0,0,180,1)
MMFX A 0 A_Stop
MMFX A 0 A_SetScale(3.5)
MMFX BCDE 2
stop
}
}

actor ScrambleThunderBallFX : BasicGraphicEffect
{
+BRIGHT
+NOINTERACTION
scale 2.0
States
{
SpawnFrame:
TNT1 AA 0
SCTH DE 2
stop
}
}


actor ScrambleThunderSplitFloor : BasicProjectile
{
damagetype "ScrambleThunder"
Obituary "$OB_SCRAMBLETHUNDER"
Radius 12
Height 12
damage (0)
+BRIGHT
+FLOORHUGGER
+FORCEXYBILLBOARD
gravity 2
speed 50
reactiontime 2
States
{
Spawn:
SCTH IJKL 2 A_SpawnItemEx("ScrambleThunderBallFX")
loop
XDeath:
TNT1 A 0 A_StopSoundEx("Weapon")
TNT1 A 0 A_SpawnItemEx("ScrambleThunderOrb")
stop
Death:
MMFX A 0 A_Stop
MMFX A 0 A_SetScale(3.5)
TNT1 A 0 A_StopSoundEx("Weapon")
MMFX BCDE 2
stop
}
}

actor ScrambleThunderSplitCeiling : ScrambleThunderSplitFloor
{
-FLOORHUGGER
+CEILINGHUGGER
}

actor ScrambleThunderOrb : BasicExplosion
{
+BRIGHT
damagetype "ScrambleThunder"
Obituary "$OB_SCRAMBLETHUNDER"
speed 0
+FORCEXYBILLBOARD
States
{
Spawn:
SCTH A 0
TNT1 A 0 A_Stop
TNT1 A 0 A_Changeflag("NOGRAVITY",1)
TNT1 A 0 A_PlaySoundEx("weapon/scrambleboom","Weapon")
SCTH M 2 A_Explode(CallACS("vile_cbm_damage",4), 100, 0,0,128)
SCTH N 2 A_Stop
SCTH O 2 A_Explode(CallACS("vile_cbm_damage",4), 100, 0,0,128)
SCTH P 2 A_Stop
SCTH O 2 A_Explode(CallACS("vile_cbm_damage",4), 100, 0,0,128)
SCTH Q 2 A_Stop
SCTH O 2 A_Explode(CallACS("vile_cbm_damage",4), 100, 0,0,128)
SCTH R 2 A_Stop
stop
}
}

actor ScrambleThunderOrbVoid
{
+BRIGHT
+NOINTERACTION
Scale 2.4
+NOGRAVITY
+FORCEXYBILLBOARD
renderstyle subtract
States
{
Spawn:
SCTH A 0
STHN A 16
stop
}
}