actor HyperStormH_W : BaseMM8BDMWep_CBM
{
tag "$TAGC_WTC"
dropitem "HyperStormBlasterWep"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Obituary "$OB_HSHHOTAIR"
Inventory.Pickupmessage "Time to bring home the bacon!"//BaconAmmo
weapon.ammotype "HyperStormHeat"
weapon.ammotype2 "HyperStormCold"
inventory.icon "HSHISUCK"
States
{
Spawn:
C_WT C 1
loop
//HSHH S 1

Deselect:
HSHG A 0
goto DeselectSwap
Select:
HSHG A 0
goto SelectSwap

Ready:
HSHG A 0 ACS_NamedExecuteWithResult("core_weaponcolor",DYE_HYPERSTORMH)
goto Ready1
Ready1:
HSHG A 0 A_JumpIfInventory("HyperStormHeat",1,"Ready2")
HSHG A 0 A_JumpIfInventory("HyperStormCold",1,"Ready2")
HSHG A 1 A_WeaponReady(8)
wait
Ready2:
HSHG A 1 A_WeaponReady
wait

Fire:
HSHG B 3
HSHG C 3 A_GiveInventory("HSHSuckDelay",1)
SuckingReFire:
HSHG D 2 A_GiveInventory("HSH_SuckingCheck_P")
HSHG D 0 A_Refire("SuckingReFire")
HSHG CB 3 A_StopSound(1)
goto Ready1

AltFire:
HSHG A 0 A_JumpIfInventory("HyperStormHeat",1,"AltHot")
HSHG A 0 A_JumpIfInventory("HyperStormCold",1,"AltCold")
Goto Ready1
AltHot:
HSHG C 2 A_GiveInventory("HSH_AltHotThrust_P")
HSHG C 0 A_JumpIfInventory("HyperStormHeat",1,"AltHotFire")
goto AltHotEnd
AltHotFire:
HSHG C 0 A_Refire("AltHot")
goto AltHotEnd
AltHotEnd:
HSHG CB 3
goto Ready1

AltCold:
HSHG B 0 A_GiveInventory("CBM_Ratio7JumpPowerGiver",1)

HSHG B 0 A_GiveInventory("HSHDashFlagX",1)
HSHG B 0 A_GiveInventory("VivifyCycle1",1)
HSHG B 0 A_TakeInventory("HSHDashPower")

HSHG B 4 A_Quake(2,5,0,256,"none")
HSHG B 0 A_SpawnItemEx("HSH_DashExplodeStart",0,0,28,momx,momy,momz,0,8)
HSHG B 4 A_PlaySound("weapon/HSHRunning",4,1.0)
HSHG G 4 A_Quake(2,5,0,256,"none")
HSHG G 0 A_SpawnItemEx("HSH_DashExplodeStart",0,0,28,momx,momy,momz,0,8)
HSHG H 4 A_PlaySound("weapon/HSHRunning",4,1.0)
HSHG G 4 A_Quake(2,5,0,256,"none")
HSHG G 0 A_SpawnItemEx("HSH_DashExplodeStart",0,0,28,momx,momy,momz,0,8)
HSHG F 4 A_PlaySound("weapon/HSHRunning",4,1.0)
HSHG G 4 A_Quake(2,5,0,256,"none")
HSHG G 0 A_SetArg(1,angle*65536)
HSHG G 0 A_GunFlash("Flash",1)

goto GottaHeatUp1
GottaHeatUp1:
HSHG G 0 A_GiveInventory("VivifyCycle1",1)
HSHG G 1 A_GiveInventory("HSHColdTake_P")
HSHG G 0 A_ReFire("GottaHeatUp1C")
goto AltColdEndC
GottaHeatUp1C:
HSHG G 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp2")
goto AltColdEndC
GottaHeatUp2:
HSHG H 0
HSHG H 1 A_GiveInventory("HSHColdTake_P1")
HSHG H 0 A_ReFire("GottaHeatUp2C")
goto AltColdEndR
GottaHeatUp2C:
HSHG H 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp3")
goto AltColdEndR
GottaHeatUp3:
HSHG I 0 A_GiveInventory("VivifyCycle1",1)
HSHG I 1 A_GiveInventory("HSHColdTake_P")
HSHG I 0 A_ReFire("GottaHeatUp3C")
goto AltColdEndR
GottaHeatUp3C:
HSHG I 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp4")
goto AltColdEndR
GottaHeatUp4:
HSHG H 0
HSHG H 1 A_GiveInventory("HSHColdTake_P1")
HSHG H 0 A_ReFire("GottaHeatUp4C")
goto AltColdEndR
GottaHeatUp4C:
HSHG H 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp5")
goto AltColdEndR
GottaHeatUp5:
HSHG G 0 A_GiveInventory("VivifyCycle1",1)
HSHG G 1 A_GiveInventory("HSHColdTake_P")
HSHG G 0 A_ReFire("GottaHeatUp5C")
goto AltColdEndC
GottaHeatUp5C:
HSHG G 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp6")
goto AltColdEndC
GottaHeatUp6:
HSHG F 0
HSHG F 1 A_GiveInventory("HSHColdTake_P1")
HSHG F 0 A_ReFire("GottaHeatUp6C")
goto AltColdEndL
GottaHeatUp6C:
HSHG F 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp7")
goto AltColdEndL
GottaHeatUp7:
HSHG E 0 A_GiveInventory("VivifyCycle1",1)
HSHG E 1 A_GiveInventory("HSHColdTake_P")
HSHG E 0 A_ReFire("GottaHeatUp7C")
goto AltColdEndL
GottaHeatUp7C:
HSHG E 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp8")
goto AltColdEndL
GottaHeatUp8:
HSHG F 0
HSHG F 1 A_GiveInventory("HSHColdTake_P1")
HSHG F 0 A_ReFire("GottaHeatUp8C")
goto AltColdEndL
GottaHeatUp8C:
HSHG F 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp1")
goto AltColdEndL

AltColdEndC:
HSHG A 0 A_TakeInventory("HSHDashFlagX")
HSHG A 0 A_TakeInventory("VivifyCycle1")
HSHG A 0 A_TakeInventory("CBM_Ratio7JumpPower")
HSHG GBA 2
goto Ready1
AltColdEndR:
HSHG A 0 A_TakeInventory("HSHDashFlagX")
HSHG A 0 A_TakeInventory("VivifyCycle1")
HSHG A 0 A_TakeInventory("CBM_Ratio7JumpPower")
HSHG HGB 2
goto Ready1
AltColdEndL:
HSHG A 0 A_TakeInventory("HSHDashFlagX")
HSHG A 0 A_TakeInventory("VivifyCycle1")
HSHG A 0 A_TakeInventory("CBM_Ratio7JumpPower")
HSHG FGB 2
goto Ready1

Flash:
TNT1 A 0 A_SpawnItemEx("HSH_DashExplode",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_Quake(2,5,0,256,"none")
TNT1 A 0 A_PlaySound("weapon/HSHRunning",4,1.0)
TNT1 A 0 A_GiveInventory("HSHDashPower",1)

TNT1 A 0 A_JumpIfInventory("PlayerPropertyRage",1,5)
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 0 A_JumpIfInventory("PlayerPropertyRage",1,5)
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)

TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,"Flash")
stop
}
}

actor HyperStormH_W2 : BaseMM8BDMWep_CBM
{
tag "$TAGC_WTC2"
dropitem "HyperStormBlasterWep"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Inventory.Pickupmessage "Damn, look at that bacon sizzle!"//SizzleAmmo
Obituary "$OB_HSHCOLDRAM"
weapon.ammotype2 "HyperStormCold"
weapon.ammotype "HyperStormHeat"
inventory.icon "HSHIBLOW"
States
{
Spawn:
C_WT C 1
loop

Deselect:
HSHH A 0
goto DeselectSwap
Select:
HSHH A 0
goto SelectSwap

Ready:
HSHH A 0 ACS_NamedExecuteWithResult("core_weaponcolor",DYE_HYPERSTORMH)
goto Ready1
Ready1:
HSHH A 0 A_JumpIfInventory("HyperStormHeat",1,"Ready2")
HSHH A 0 A_JumpIfInventory("HyperStormCold",1,"Ready2")
HSHH A 1 A_WeaponReady(8)
wait
Ready2:
HSHH A 1 A_WeaponReady
wait

Fire:
HSHH B 3
HSHH C 3 A_GiveInventory("HSHBlowDelay",1)
BlowingReFire:
HSHH D 2 A_GiveInventory("HSH_BlowingCheck_P")
HSHH D 0 A_Refire("BlowingReFire")
HSHH CB 3 A_StopSound(1)
goto Ready1

AltFire:
HSHH A 0 A_JumpIfInventory("HyperStormHeat",1,"AltHot")
HSHH A 0 A_JumpIfInventory("HyperStormCold",1,"AltCold")
Goto Ready1
AltHot:
HSHH C 2 A_GiveInventory("HSH_AltHotThrust_P")
HSHH C 0 A_JumpIfInventory("HyperStormHeat",1,"AltHotFire")
goto AltHotEnd
AltHotFire:
HSHH C 0 A_Refire("AltHot")
goto AltHotEnd
AltHotEnd:
HSHH CB 3
goto Ready1

AltCold:
HSHH B 0 A_GiveInventory("CBM_Ratio7JumpPowerGiver",1)

HSHH B 0 A_GiveInventory("HSHDashFlagX",1)
HSHH B 0 A_GiveInventory("VivifyCycle1",1)
HSHH B 0 A_TakeInventory("HSHDashPower")

HSHH B 4 A_Quake(2,5,0,256,"none")
HSHH B 0 A_SpawnItemEx("HSH_DashExplodeStart",0,0,28,momx,momy,momz,0,8)
HSHH B 4 A_PlaySound("weapon/HSHRunning",4,1.0)
HSHH G 4 A_Quake(2,5,0,256,"none")
HSHH G 0 A_SpawnItemEx("HSH_DashExplodeStart",0,0,28,momx,momy,momz,0,8)
HSHH H 4 A_PlaySound("weapon/HSHRunning",4,1.0)
HSHH G 4 A_Quake(2,5,0,256,"none")
HSHH G 0 A_SpawnItemEx("HSH_DashExplodeStart",0,0,28,momx,momy,momz,0,8)
HSHH F 4 A_PlaySound("weapon/HSHRunning",4,1.0)
HSHH G 4 A_Quake(2,5,0,256,"none")
HSHH G 0 A_SetArg(1,angle*65536)
HSHH G 0 A_GunFlash("Flash",1)

goto GottaHeatUp1
GottaHeatUp1:
HSHH G 0 A_GiveInventory("VivifyCycle1",1)
HSHH G 1 A_GiveInventory("HSHColdTake_P")
HSHH G 0 A_ReFire("GottaHeatUp1C")
goto AltColdEndC
GottaHeatUp1C:
HSHH G 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp2")
goto AltColdEndC
GottaHeatUp2:
HSHH H 0
HSHH H 1 A_GiveInventory("HSHColdTake_P1")
HSHH H 0 A_ReFire("GottaHeatUp2C")
goto AltColdEndR
GottaHeatUp2C:
HSHH H 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp3")
goto AltColdEndR
GottaHeatUp3:
HSHH I 0 A_GiveInventory("VivifyCycle1",1)
HSHH I 1 A_GiveInventory("HSHColdTake_P")
HSHH I 0 A_ReFire("GottaHeatUp3C")
goto AltColdEndR
GottaHeatUp3C:
HSHH I 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp4")
goto AltColdEndR
GottaHeatUp4:
HSHH H 0
HSHH H 1 A_GiveInventory("HSHColdTake_P1")
HSHH H 0 A_ReFire("GottaHeatUp4C")
goto AltColdEndR
GottaHeatUp4C:
HSHH H 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp5")
goto AltColdEndR
GottaHeatUp5:
HSHH G 0 A_GiveInventory("VivifyCycle1",1)
HSHH G 1 A_GiveInventory("HSHColdTake_P")
HSHH G 0 A_ReFire("GottaHeatUp5C")
goto AltColdEndC
GottaHeatUp5C:
HSHH G 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp6")
goto AltColdEndC
GottaHeatUp6:
HSHH F 0
HSHH F 1 A_GiveInventory("HSHColdTake_P1")
HSHH F 0 A_ReFire("GottaHeatUp6C")
goto AltColdEndL
GottaHeatUp6C:
HSHH F 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp7")
goto AltColdEndL
GottaHeatUp7:
HSHH E 0 A_GiveInventory("VivifyCycle1",1)
HSHH E 1 A_GiveInventory("HSHColdTake_P")
HSHH E 0 A_ReFire("GottaHeatUp7C")
goto AltColdEndL
GottaHeatUp7C:
HSHH E 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp8")
goto AltColdEndL
GottaHeatUp8:
HSHH F 0
HSHH F 1 A_GiveInventory("HSHColdTake_P1")
HSHH F 0 A_ReFire("GottaHeatUp8C")
goto AltColdEndL
GottaHeatUp8C:
HSHH F 0 A_JumpIfInventory("HyperStormCold",1,"GottaHeatUp1")
goto AltColdEndL

AltColdEndC:
HSHH A 0 A_TakeInventory("HSHDashFlagX")
HSHH A 0 A_TakeInventory("VivifyCycle1")
HSHH A 0 A_TakeInventory("CBM_Ratio7JumpPower")
HSHH GBA 2
goto Ready1
AltColdEndR:
HSHH A 0 A_TakeInventory("HSHDashFlagX")
HSHH A 0 A_TakeInventory("VivifyCycle1")
HSHH A 0 A_TakeInventory("CBM_Ratio7JumpPower")
HSHH HGB 2
goto Ready1
AltColdEndL:
HSHH A 0 A_TakeInventory("HSHDashFlagX")
HSHH A 0 A_TakeInventory("VivifyCycle1")
HSHH A 0 A_TakeInventory("CBM_Ratio7JumpPower")
HSHH FGB 2
goto Ready1

Flash:
TNT1 A 0 A_SpawnItemEx("HSH_DashExplode",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_Quake(2,5,0,256,"none")
TNT1 A 0 A_PlaySound("weapon/HSHRunning",4,1.0)
TNT1 A 0 A_GiveInventory("HSHDashPower",1)

TNT1 A 0 A_JumpIfInventory("PlayerPropertyRage",1,5)
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 0 A_JumpIfInventory("PlayerPropertyRage",1,5)
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)
TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,1)
stop
TNT1 A 1 A_GiveInventory("HSHThrust35",1)

TNT1 A 0 A_JumpIfInventory("HSHDashFlagX",1,"Flash")
stop
}
}

actor HyperStormHeat : Ammo
{
inventory.amount 1
inventory.maxamount 200
+INVENTORY.IGNORESKILL
}
actor HyperStormCold : Ammo
{
inventory.amount 1
inventory.maxamount 200
+INVENTORY.IGNORESKILL
}

actor HSHSoundDelay : Powerup
{
Powerup.Duration 24
}
actor HSHSuckDelay : Powerup
{
+INVENTORY.ADDITIVETIME
Powerup.Duration 5
}
actor HSHBlowDelay : Powerup
{
+INVENTORY.ADDITIVETIME
Powerup.Duration 10
}

actor HSHDashFlagX : Inventory
{
Inventory.amount 1
Inventory.maxamount 3
}

actor HSHDashPower : Inventory
{
Inventory.amount 1
Inventory.maxamount 99999
}

actor HSH_SuckingCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("HyperStormCold",1,"SuckCold")
TNT1 A 0 A_JumpIfInventory("HyperStormHeat",200,"SuckingWeak")
Goto Sucking
SuckCold:
TNT1 A 0 A_FireCustomMissile("HSHParticleSuck_H3",0,0)
TNT1 A 0 A_TakeInventory("HyperStormCold",2)
TNT1 A 0 A_FireCustomMissile("HyperStormH_Puller_H3",0,0)
goto SuckingSnd
Sucking:
TNT1 A 0 A_FireCustomMissile("HSHParticleSuck_H2",0,0)
TNT1 A 0 A_GiveInventory("HyperStormHeat",2)
TNT1 A 0 A_FireCustomMissile("HyperStormH_Puller_H2",0,0)
goto SuckingSnd
SuckingWeak:
TNT1 A 0 A_FireCustomMissile("HSHParticleSuck_H1",0,0)
TNT1 A 0 A_GiveInventory("HyperStormHeat",2)
TNT1 A 0 A_FireCustomMissile("HyperStormH_Puller_H1",0,0)
goto SuckingSnd

SuckingSnd:
TNT1 A 0 A_JumpIfInventory("HSHSoundDelay",1,3)
TNT1 A 0 A_PlaySound("weapon/HSHSuckBlow",1,1.0)
TNT1 A 0 A_GiveInventory("HSHSoundDelay",1)
TNT1 A 0 A_JumpIfInventory("HSHSuckDelay",1,"SuckingEnd")
TNT1 A 0 A_FireCustomMissile("HSH_SuckExplode",0,0)
TNT1 A 0 A_GiveInventory("HSHSuckDelay_RC",1)
stop
SuckingEnd:
TNT1 A 0
stop
}
}

actor HSH_BlowingCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("HyperStormHeat",1,"BlowHeat")
TNT1 A 0 A_JumpIfInventory("HyperStormCold",200,"BlowingWeak")
Goto Blowing
BlowHeat:
TNT1 A 0 A_SpawnItemEx("HSHParticleBlow_H3",cos(-pitch)*4,0,32+sin(-pitch)*4,cos(-pitch)*1,0,sin(-pitch)*1,0,32)
TNT1 A 0 A_TakeInventory("HyperStormHeat",2)
TNT1 A 0 A_FireCustomMissile("HyperStormH_Pusher_H3",0,0)
goto BlowingSnd
Blowing:
TNT1 A 0 A_SpawnItemEx("HSHParticleBlow_H2",cos(-pitch)*4,0,32+sin(-pitch)*4,cos(-pitch)*1,0,sin(-pitch)*1,0,32)
TNT1 A 0 A_GiveInventory("HyperStormCold",2)
TNT1 A 0 A_FireCustomMissile("HyperStormH_Pusher_H2",0,0)
goto BlowingSnd
BlowingWeak:
TNT1 A 0 A_SpawnItemEx("HSHParticleBlow_H1",cos(-pitch)*4,0,32+sin(-pitch)*4,cos(-pitch)*1,0,sin(-pitch)*1,0,32)
TNT1 A 0 A_GiveInventory("HyperStormCold",2)
TNT1 A 0 A_FireCustomMissile("HyperStormH_Pusher_H1",0,0)
goto BlowingSnd

BlowingSnd:
TNT1 A 0 A_JumpIfInventory("HSHSoundDelay",1,3)
TNT1 A 0 A_PlaySound("weapon/HSHSuckBlow",1,1.0)
TNT1 A 0 A_GiveInventory("HSHSoundDelay",1)
TNT1 A 0 A_JumpIfInventory("HSHBlowDelay",1,"BlowingEnd")
TNT1 A 0 A_GiveInventory("HSHBlowDelay_RC",1)
TNT1 A 0 A_JumpIfInventory("HyperStormHeat",1,"BlowingPew2")
TNT1 A 0 A_PlaySound("weapon/HSHPew",4,1.0)
TNT1 A 0 A_FireCustomMissile("HSHBullet",0,0,0,0)
stop
BlowingPew2:
TNT1 A 0 A_PlaySound("weapon/FlameBall",4,1.0)
TNT1 A 0 A_FireCustomMissile("HSHBulletHeat",0,0,0,0)
stop
BlowingEnd:
TNT1 A 0
stop
}
}

actor HSHColdTake_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("HyperStormCold",1+CallACS("core_checkrune",RUNE_RAGE))
stop
}
}
actor HSHColdTake_P1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("HyperStormCold",1+CallACS("core_checkrune",RUNE_RAGE),1)
stop
}
}

actor HSHBlowDelay_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PlayerPropertyRage",1,2)
TNT1 AA 0 A_GiveInventory("HSHBlowDelay",1)
stop
}
}
actor HSHSuckDelay_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PlayerPropertyRage",1,2)
TNT1 AA 0 A_GiveInventory("HSHSuckDelay",1)
stop
}
}

actor HSH_AltHotThrust_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("HyperStormHeat",1)
TNT1 A 0 A_TakeInventory("HyperStormHeat",5,1)
TNT1 A 0 A_FireCustomMissile("HSHExplodeHeat",0,0,0,-24)
TNT1 A 0 A_Recoil(-1)
TNT1 A 0 A_PlaySoundEX("weapon/superboost","Weapon")
TNT1 AAAAA 0 A_SpawnItemEx("HSHHeatThrustFX",random(-10,-6),random(-16,16),random(28,36),random(-8,4),random(-8,8),random(-8,3),0,129) 
TNT1 A 0 A_SpawnItemEX("HSHBoosterFX",-8,-16,32,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEX("HSHBoosterFX",-8,16,32,0,0,0,0,1)

TNT1 A 0 A_JumpIfInventory("PlayerPropertyGrounded",1,5)
TNT1 A 0 A_JumpIfInventory("IsUnderWater",1,3)
TNT1 A 0 A_JumpIf(momz>=0,2)
TNT1 A 0 ThrustThingZ(0,0,0,0)
TNT1 A 0 ThrustThingZ(0,6,0,1)
TNT1 A 0
stop
}
}

actor HSHBullet : ProjSpawnFuncActor
{
PROJECTILE
DamageType "HSH_Shot"
Obituary "$OB_HSHBULLET"
Damage (130)//150
Radius 15
Height 15
speed 39//38
scale 3.0
States
{
Spawn://Q_0D B
HSHF A 0
HSHF A -1
stop
}
}

actor HSHBulletHeat : ProjSpawnFuncActor
{
PROJECTILE
DamageType "HSH_ShotHot"
Obituary "$OB_HSHHOTBULLET"
Damage (180)//200
Radius 16
Height 16
speed 47//46
scale 2.0
States
{
Spawn:
//FIRE ABC 2
HSHF BCD 2
loop
Death:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}

actor PainHSH_DrainHit : BasicWatcher
{
States
{
Spawn:
TNT1 A 0 nodelay A_GiveToTarget("CBM_HealThing10_PU",1,AAPTR_TARGET)
stop
}
}
actor DeathHSH_DrainHit : BasicWatcher
{
States
{
Spawn:
TNT1 A 0 nodelay A_GiveToTarget("CBM_HealThing40_PU",1,AAPTR_TARGET)
stop
}
}

actor HSH_SuckExplode// : BasicExplosion
{
DamageType "HSH_Drain"
Obituary "$OB_HSHCOLDSUCK"
+DROPOFF
-SOLID
+NOGRAVITY
+THRUACTORS
+THRUGHOST
+DONTBLAST
+DONTREFLECT
radius 2
height 2
Speed 42
States
{
Spawn:
TNT1 A 1
TNT1 A 0 A_Stop
TNT1 A 1 A_Explode(50,96,0,0,32)//10
stop
}
}


actor PainHSH_WallopHit : BasicWatcher
{
Args 6
States
{
Spawn:
TNT1 A 0 nodelay A_GiveToTarget("HyperStormCold",Args[0],AAPTR_TARGET)
stop
}
}
actor DeathHSH_WallopHit : PainHSH_WallopHit{Args 25}

actor HSH_DashExplodeStart : BasicExplosion
{
DamageType "HSH_Wallop"
Obituary "$OB_HSHCOLDRAM"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("HSH_DashDustFX",-5,0,-28,-3,0,0,0,1)
TNT1 A 1 A_Explode(100+CallACS("core_checkrune",RUNE_SPREAD,2)*200,112,0,0,32)
stop
}
}

actor HSH_DashExplode : HSH_DashExplodeStart
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetArg(0,CallACS("cbm_countinv_acs",306,2))
//A_Explode(user_P*0.65+10,user_P/3+112,0)
TNT1 A 0 A_SpawnItemEx("HSH_DashDustFX",-2,0,-28,-2,0,0,0,1)
TNT1 A 2 A_Explode((Args[0]*5+90)*(CallACS("core_checkrune",RUNE_SPREAD,2)*2+1),Args[0]*0.25+112,0,0,Args[0]*0.25+32)
stop
}
}

actor HSH_DashDustFX : BasicGraphicEffect
{
Scale 3.5
States
{
SpawnFrame:
HSHH PQR 4//6
stop
}
}


actor HSHExplodeHeat : BasicImplosion
{
DamageType "HSH_Booster"
Obituary "$OB_HSHHOTAIR"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(70,112,0,0,16)
TNT1 A 2 A_SpawnItemEx("OilPitIgnite",0,0,0)
stop
}
}

actor HSHBoosterFX : BasicGraphicEffect
{
States
{
SpawnFrame:
NMFX ABCD 1
stop
}
}

actor HSHHeatThrustFX : BasicGraphicEffect
{
+NOTIMEFREEZE
Scale 1.5
States
{
SpawnFrame:
HSHF I 0 A_SetScale(ScaleX*(random(0,1)*2-1),ScaleY)
HSHF IJKL 2
stop
}
}

actor HyperStormH_Puller_H1 : BasicHelper
{
+SERVERSIDEONLY
Args 625,11,-1,-1//Range,Angle,Power,Type
States
{
Spawn:
TNT1 A 0
TNT1 A 3 ACS_NamedExecuteWithResult("cbm_ConedPushPull",Args[0],Args[1],Args[2],Args[3])
stop
}
}
actor HyperStormH_Puller_H2 : HyperStormH_Puller_H1{Args 625,11,-3,-1}
actor HyperStormH_Puller_H3 : HyperStormH_Puller_H1{Args 625,11,-3,-4}//Gives slowdown

actor HyperStormH_Pusher_H1 : HyperStormH_Puller_H1{Args 625,22,1,-1}
actor HyperStormH_Pusher_H2 : HyperStormH_Pusher_H1{Args 625,22,3,-1}
actor HyperStormH_Pusher_H3 : HyperStormH_Pusher_H1{Args 625,22,4,-1}


actor HSHParticleSuck_H1 : BasicHelper//Sync FX being spawned
{
+NOTIMEFREEZE
RenderStyle None
speed 1
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteWithResult("cbm_CopyPointerAnglePitch",2,0)
TNT1 A 0
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H1",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+SXF_TRANSFERPITCH+SXF_TRANSFERPOINTERS+SXF_MULTIPLYSPEED)//512+1024+8192
TNT1 A 2
stop
}
}
actor HSHParticleSuck_H2 : HSHParticleSuck_H1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteWithResult("cbm_CopyPointerAnglePitch",2,0)
TNT1 A 0
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H1",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H1",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H1",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H1",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 2
stop
}
}
actor HSHParticleSuck_H3 : HSHParticleSuck_H1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteWithResult("cbm_CopyPointerAnglePitch",2,0)
TNT1 A 0
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H3",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H3",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H3",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 0 A_SetArg(1,random(-10,10))
TNT1 A 0 A_SpawnItemEx("HSHParticleSuckFX_H3",0,0,random(-10,10),cos(pitch+Args[1]),0,-sin(pitch+Args[1]),random(-15,15),1+1024+8192)
TNT1 A 2
stop
}
}

actor HSHParticleSuckFX_H1 : ProjSpawnFuncActorFast
{
+SKYEXPLODE
+EXPLODEONWATER
+DONTBLAST
+DONTREFLECT
+DONTSPLASH
+CLIENTSIDEONLY
RenderStyle None
Damage (0)
radius 8
height 8
Speed 500
States
{
Spawn:
TNT1 A 1
TNT1 A 0
goto Death
Crash:
XDeath:
Death:
TNT1 A 0 A_CustomMissile("HSHParticleSuckFX1",0,0,0,0)
stop
}
}

actor HSHParticleSuckFX_H3 : HSHParticleSuckFX_H1
{
States
{
Spawn:
TNT1 A 1
goto Death
Crash:
XDeath:
Death:
TNT1 A 0 A_CustomMissile("HSHParticleSuckFX2",0,0,0,0)
stop
}
}

actor HSHParticleSuckFX1 : BasicGraphicEffectM
{
//var int user_TranslateWhiteColors;
//PROJECTILE
+THRUACTORS
height 5
radius 5
Speed 37
Scale 1.5
States
{
SpawnFrame:
HSHF U 0
HSHF U 0 A_SetScale(ScaleX*(random(0,1)*2-1),ScaleY)
HSHF UUUUUVVVVVWWWWW 1 A_JumpIfCloser(60,"Death")
stop
Death:
TNT1 A 0
stop
}
}

actor HSHParticleSuckFX2 : HSHParticleSuckFX1
{
States
{
SpawnFrame:
HSHF Q 0
HSHF Q 0 A_SetScale(ScaleX*(random(0,1)*2-1),ScaleY)
HSHF QQQQRRRRSSSSTTT 1 A_JumpIfCloser(60,"Death")
stop
}
}

actor HSHParticleBlow_H1 : BasicExplosion
{
RenderStyle None
Speed 1
States
{
Spawn:
TNT1 A 0 //A_SpawnItemEx("HSHParticleBlow",0,0,0,momx*37,momy*37,momz*37,0,9)
TNT1 A 0 A_SpawnItemEx("HSHParticleBlow",random(-8,8),0,random(-8,8),sqrt(momx*momx+momy*momy)*37+sin(random(0,8))*37,sin(random(-14,14))*37,momz*37+sin(random(-8,8))*37,0,1)
TNT1 A 3
stop
}
}
actor HSHParticleBlow_H2 : HSHParticleBlow_H1
{
States
{
Spawn:
TNT1 A 0
TNT1 AAAA 0 A_SpawnItemEx("HSHParticleBlow",random(-8,8),0,random(-8,8),sqrt(momx*momx+momy*momy)*37+sin(random(0,8))*37,sin(random(-14,14))*37,momz*37+sin(random(-8,8))*37,0,1)
TNT1 A 3
stop
}
}
actor HSHParticleBlow_H3 : HSHParticleBlow_H1
{
States
{
Spawn:
TNT1 A 0
TNT1 AAAA 0 A_SpawnItemEx("HSHParticleBlow2",random(-8,8),0,random(-8,8),sqrt(momx*momx+momy*momy)*37+sin(random(0,8))*37,sin(random(-14,14))*37,momz*37+sin(random(-8,8))*37,0,1)
TNT1 A 3
stop
}
}

actor HSHParticleBlow : BasicGraphicEffectM
{
//PROJECTILE
+CLIENTSIDEONLY
+THRUACTORS
height 4
radius 4
Speed 37
Scale 1.5
States
{
SpawnFrame:
TNT1 AA 1
HSHF X 0 A_SetScale(ScaleX*(random(0,1)*2-1),ScaleY)
HSHF XXXXYYYYZZZZ 1
stop
}
}

actor HSHParticleBlow2 : HSHParticleBlow
{//41 175
States
{
SpawnFrame:
TNT1 AA 1
HSHF MNMN 2
HSHF O 2 A_SetScale(ScaleX*(random(0,1)*2-1),ScaleY)
HSHF NO 2
stop
}
}


actor HSHThrust35 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PlayerPropertyRage",1,"Pickup_R")
TNT1 A 0 A_SetArg(1,CallACS("cbm_GradualAngleTurn",Args[1],angle*65536,7*65536/2,360*65536))//3.5
TNT1 A 0 A_JumpIf(CallACS("cbm_IsDashingDisabled"),"No")
TNT1 A 0 A_ChangeVelocity(20*cos(Args[1]/65536.0),20*sin(Args[1]/65536.0),momz,CVF_REPLACE)
stop
Pickup_R:
TNT1 A 0 A_SetArg(1,CallACS("cbm_GradualAngleTurn",Args[1],angle*65536,21*65536/4,360*65536))//5.25
TNT1 A 0 A_JumpIf(CallACS("cbm_IsDashingDisabled"),"No")
TNT1 A 0 A_ChangeVelocity(28*cos(Args[1]/65536.0),28*sin(Args[1]/65536.0),momz,CVF_REPLACE)
stop
No:
TNT1 A 0
stop
}
}

actor TastyPullStock : Inventory
{
inventory.amount 1
inventory.maxamount 99999
}


//actor HyperStormH_W_NormalBar : NormalBar {Args 229,227}//218,76
//actor HyperStormH_W2_NormalBar : SecondBar {Args 4,75}
actor HyperStormH_W_ScriptBar : ScriptBar {}
actor HyperStormH_W2_ScriptBar : ScriptBar {}