actor HyperStormH : VCBaseClass
{
Player.ScoreIcon "HYPSMUGS"
player.startitem "BaseFlagPack", 1
Health 200
Player.MaxHealth 200
player.displayname "HyperStormH"
player.soundclass "HyperStormHc"
player.startitem "HyperBreatheBoss"
player.startitem "UltimateAttackItem1"
player.startitem "UltSoundWatcherSpawn1"
player.startitem "UltimateAttackItem5HSH"
player.startitem "UltSoundWatcherSpawn5HSH"
player.startitem "Base56Ammo", 56
player.startitem "IsFromWW"
player.startitem "IsLarge"
player.viewheight 55
projectilepassheight 100
player.forwardmove 0.7,0.7
player.sidemove 0.68,0.68
player.jumpz 12
damagefactor "HyperStormHSpawns", 0.0
States
{
Spawn:
HSHZ B 0 
HSHZ B 1 A_JumpIf(z-floorz>0, "Jumping")
HSHZ A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2
See:
HSHZ BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1
Jumping:
HSHZ I 1 A_JumpIf(z-floorz<=0, "Spawn")
wait
Animation1:
Missile:
HSHZ F 1 A_JumpIf(z-floorz>0, "JumpingMissile")
HSHZ FF 1 A_JumpIfInventory("HyperBreatheFlag",1,"Missile")
HSHZ FF 1 A_JumpIfInventory("HyperBreatheFlag",1,"Missile")
Goto Spawn+2
JumpingMissile:
HSHZ J 1 A_JumpIf(z-floorz<=0, "Missile")
HSHZ JJ 1 A_JumpIfInventory("HyperBreatheFlag",1,"JumpingMissile")
HSHZ JJ 1 A_JumpIfInventory("HyperBreatheFlag",1,"JumpingMissile")
Goto Jumping
ClassPain:
HSHZ HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
WeaponGetM:
ClassDeath:
HSHZ H 0 A_StopSound(CHAN_BODY)
HSHZ H 20 ACS_ExecuteAlways(999,0,0)
HSHZ H 0 A_StopSound(CHAN_BODY)
HSHZ H 0 A_PlayerScream
HSHZ H 0 A_SpawnItemEx("FakeDeathFXMMWT", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
}
}

Actor HyperBreatheBoss : VCBaseWeapon
{
-THRUACTORS
weapon.ammotype "Base56Ammo"
weapon.ammotype2 "BaseAltfireAmmo"
weapon.ammouse 1
Obituary "$OB_HYPERSTORMHAKKAI1"
const int HSH_ENEMY_SPAWN_DIST = 160;
const int HSH_ENEMY_RAISE_SPEED = 10;
const int HSH_BREATHE_SPREAD = 20;
const int ULT_DROP = -6;
States
{
Ready:
TNT1 A 0 A_GiveInventory("Base56Ammo",1)
HSHG A 1 A_WeaponReady TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
HSHG A 1 A_WeaponReady TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
HSHG A 1 A_WeaponReady TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
Goto Ready
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
TNT1 A 0 A_StopSound(CHAN_WEAPON)
HSHG A 1 A_Lower
Loop
Select:
TNT1 A 0 A_GunFlash
TNT1 A 0 ACS_ExecuteAlways(991,0,942)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HSHG A 1 A_Raise
Loop
Fire:
TNT1 A 0 A_GiveInventory("HyperBreatheFlag",1)
HSHG BC 2
HyperExhale:
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("HyperFX2",random(-HSH_BREATHE_SPREAD,HSH_BREATHE_SPREAD),0,0,0,0,random(-HSH_BREATHE_SPREAD,HSH_BREATHE_SPREAD))
TNT1 A 0 A_PlaySoundEx("weapon/hshbreath","Auto")
HSHG D 0 A_GiveInventory("HSHBreathHandler",1)
Exhale:
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_PlaySoundEx("misc/hsloop","Body")
TNT1 A 0 A_FireCustomMissile("HSHBlower",0,0)
HSHG DDD 1 A_FireCustomMissile("HyperFX2",random(-HSH_BREATHE_SPREAD,HSH_BREATHE_SPREAD),0,0,0,0,random(-HSH_BREATHE_SPREAD,HSH_BREATHE_SPREAD))
TNT1 A 0 A_JumpIfInventory("CutterFlag",8,"HyperExhaleBullet")
TNT1 A 0 A_ReFire("Exhale")
Goto ExhaleEnd
HyperExhaleBullet:
TNT1 A 0 A_TakeInventory("CutterFlag",8)
TNT1 A 0 A_PlaySoundEx("misc/devilfire","Auto")
TNT1 A 0 A_FireCustomMissile("HyperStormHShot",0,0)
Goto Exhale
ExhaleEnd:
TNT1 A 0 A_TakeInventory("CutterFlag",8)
TNT1 A 0 A_TakeInventory("HyperBreatheFlag",99)
HSHG CBA 3
TNT1 A 0 A_StopSound(CHAN_BODY)
goto Ready
Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
TNT1 A 0 A_GiveInventory("HyperBreatheFlag",1)
HSHG BC 1
HSHG A 0 A_GiveInventory("HSHSuctionFlag",1)
HSHG A 0 A_JumpIfInventory("HSHSuctionCooldown",1,"Inhale")
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("HyperFXSpawner",random(-15,15),0,0,0,0,random(-30,30))
TNT1 AAAA 0 A_FireCustomMissile("HSHSucker",0,0)
TNT1 A 0 A_PlaySoundEx("weapon/duststeam","Weapon")
HSHG B 0 A_GiveInventory("HSHSuctionCooldown",1)
Inhale:
TNT1 A 0 A_JumpIfInventory("Base56Ammo",1,1)
goto InhaleEnd
TNT1 A 0 A_TakeInventory("Base56Ammo",1)
TNT1 A 0 A_PlaySoundEx("weapon/windloop","Body")
TNT1 A 0 A_FireCustomMissile("HSHSucker",0,0)
TNT1 A 0 A_SpawnItemEx("HSHSuckerDamager",20)
HSHG DDD 1 A_FireCustomMissile("HyperFXSpawner",random(-15,15),0,0,0,0,random(-30,30))
TNT1 A 0 A_ReFire("Inhale")
Goto InhaleEnd
InhaleEnd:
HSHG A 0 A_TakeInventory("HSHSuctionFlag",99)
TNT1 A 0 A_TakeInventory("HyperBreatheFlag",99)
HSHG CBA 1 A_ClearRefire
TNT1 A 0 A_StopSound(1)
goto Ready
UltimateAttack:
HSHG A 1
TNT1 A 0 A_TakeInventory("EnemyDespawn",1)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,120)
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 ThrustThingZ(0, 150, 0, 1)
TNT1 A 0 A_TakeInventory("ShortUltimateAmmo",100)
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("SOLID",0)
TNT1 A 0 A_ChangeFlag("THRUSPECIES",1)
TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
TNT1 A 0 A_Recoil(-15)
HSHG A 1 ThrustThingZ(0,ULT_DROP,0,1) TNT1 A 0 A_SpawnItemEx("HyperStompFX") HSHG A 1 ThrustThingZ(0,ULT_DROP,0,1)
HSHG E 1 ThrustThingZ(0,ULT_DROP,0,1) TNT1 A 0 A_CheckFloor("HyperLand") TNT1 A 0 A_SpawnItemEx("HyperStompFX") HSHG E 1 ThrustThingZ(0,ULT_DROP,0,1) TNT1 A 0 A_CheckFloor("HyperLand")
HSHG F 1 ThrustThingZ(0,ULT_DROP,0,1) TNT1 A 0 A_CheckFloor("HyperLand") TNT1 A 0 A_SpawnItemEx("HyperStompFX") HSHG F 1 ThrustThingZ(0,ULT_DROP,0,1) TNT1 A 0 A_CheckFloor("HyperLand")
HSHG G 1 ThrustThingZ(0,ULT_DROP,0,1) TNT1 A 0 A_CheckFloor("HyperLand") TNT1 A 0 A_SpawnItemEx("HyperStompFX") HSHG G 1 ThrustThingZ(0,ULT_DROP,0,1) TNT1 A 0 A_CheckFloor("HyperLand")
BraceForImpact:
TNT1 A 0 ThrustThingZ(0,ULT_DROP,0,1)
TNT1 A 0 A_SpawnItemEx("HyperStompFX")
TNT1 A 0 A_SpawnItemEx("HyperUltDamager")
HSHG HH 1 A_CheckFloor("HyperLand")
loop
HyperLand:
TNT1 A 0 A_Stop TNT1 A 0 A_PlaySoundEx("weapon/WilyPressCrush","Weapon")
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",300,"EnemiesSpawn4")//TNT1 A 0 A_JumpIfInventory("LongUltimateAmmo",500,"EnemiesSpawn4")
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",210,"EnemiesSpawn3")//TNT1 A 0 A_JumpIfInventory("LongUltimateAmmo",350,"EnemiesSpawn3")
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",81,"EnemiesSpawn2")//TNT1 A 0 A_JumpIfInventory("LongUltimateAmmo",155,"EnemiesSpawn2")
EnemiesSpawn1:
TNT1 A 0 A_SpawnItemEx("HSHEMetChaseSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,45)
TNT1 A 0 A_SpawnItemEx("HSHEMetShootSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-45)
TNT1 A 0 A_SpawnItemEx("HSHEMetChaseSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-135)
TNT1 A 0 A_SpawnItemEx("HSHEMetShootSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,135)
TNT1 A 0 A_GiveInventory("SpawnedEnemyTimer",300)
Goto UltEnd
EnemiesSpawn2:
TNT1 A 0 A_SpawnItemEx("HSHEMetChaseSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,45)
TNT1 A 0 A_SpawnItemEx("HSHEHammerJoeSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-45)
TNT1 A 0 A_SpawnItemEx("HSHEMetChaseSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-135)
TNT1 A 0 A_SpawnItemEx("HSHEHammerJoeSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,135)
TNT1 A 0 A_GiveInventory("SpawnedEnemyTimer",600)
Goto UltEnd
EnemiesSpawn3:
TNT1 A 0 A_SpawnItemEx("HSHEJamacySpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,45)
TNT1 A 0 A_SpawnItemEx("HSHEHammerJoeSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-45)
TNT1 A 0 A_SpawnItemEx("HSHEJamacySpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-135)
TNT1 A 0 A_SpawnItemEx("HSHEHammerJoeSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,135)
TNT1 A 0 A_GiveInventory("SpawnedEnemyTimer",600)
Goto UltEnd
EnemiesSpawn4:
TNT1 A 0 A_SpawnItemEx("HSHEJamacySpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,45)
TNT1 A 0 A_SpawnItemEx("HSHEJunkGolemSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-45)
TNT1 A 0 A_SpawnItemEx("HSHEJamacySpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,-135)
TNT1 A 0 A_SpawnItemEx("HSHEJunkGolemSpawner",HSH_ENEMY_SPAWN_DIST,0,0,0,0,HSH_ENEMY_RAISE_SPEED,135)
TNT1 A 0 A_GiveInventory("SpawnedEnemyTimer",900)
UltEnd:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("HyperFX2",64,0,0,random(8,16),0,random(5,10),random(0,360)) //60
TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",300)
TNT1 A 0 A_SpawnItemEx("HyperStompLandedDamager")
TNT1 A 0 A_Quake(4,35,0,600,0)
TNT1 A 0 A_SpawnItemEx("SpawnedEnemyWatcher")
HSHG HFII 1 A_Stop
DRIA B 0 A_ChangeFlag("THRUSPECIES",0)
DRIA A 0 A_SpawnItemEx("ReSolidifier")
TNT1 A 0 A_GiveInventory("CutterFlag",8)
ShakenHold:
HSHG D 1 A_stop TNT1 A 0 ACS_NamedExecute("VC_SetState",0,1)
HSHG D 1 A_stop TNT1 A 0 ACS_NamedExecute("VC_SetState",0,1)
HSHG I 1 A_stop TNT1 A 0 ACS_NamedExecute("VC_SetState",0,1)
HSHG I 1 A_stop TNT1 A 0 ACS_NamedExecute("VC_SetState",0,1)
TNT1 A 0 A_TakeInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",1,"ShakenHold")
HSHG DCBA 2
TNT1 A 0 A_TakeInventory("PowerUltBuildCooldown",1)
Goto Ready
Flash:
TNT1 A 0 A_TakeInventory("HalfDamageProtection",999)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",1)
TNT1 AAA 1 A_JumpIfInventory("HSHArmorTimer",1,"Flash2")
loop
Flash2:
TNT1 A 1 A_GiveInventory("HalfDamageProtection",1)
TNT1 A 0 A_JumpIfInventory("HSHArmorTimer",1,"Flash2")
goto Flash
}
}

//Projectiles
Actor HyperStormHShot
{
PROJECTILE
damagetype "HyperStormHShot"
Obituary "$OB_HYPERSTORMHAKKAI1"
Speed 50
Damage (19)//(18) EVIL
radius 6
height 6
scale 2.5
Species "HyperStormHSpawn"
+THRUSPECIES
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
6ULT X 1
goto Spawn+2
XDeath:
Death:
TNT1 A 0
stop
}
}

Actor HyperStormMetoolShot : HyperStormHShot
{
damagetype "HyperStormHSpawns"
Obituary "$OB_HYPERSTORMHAKKAI8"
Damage (10)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
6ULT X 1
goto Spawn+2
XDeath:
Death:
TNT1 A 0
stop
}
}

Actor HyperStormHammerJoeHammer : HyperStormHShot
{
damagetype "HyperStormHSpawns"
Obituary "$OB_HYPERSTORMHAKKAI9"
Damage (25)
Speed 40
radius 10
height 9
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
HJOE KL 1
goto Spawn+2
XDeath:
Death:
TNT1 A 0
stop
}
}

Actor HyperStormJunkGolemCube : HyperStormHShot
{
damagetype "HyperStormHSpawns"
Obituary "$OB_HYPERSTORMHAKKAI11"
Damage (40)
Speed 45
radius 17
height 34
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
JGLM D 1
goto Spawn+2
XDeath:
Death:
TNT1 A 0 A_PlaySoundEx("weapon/gutsmangbreak","Body")
TNT1 AAAAA 0 A_SpawnItemEx("JunGolemCubeDebris",0,0,1,random(4,8),0,random(5,10),random(0,360))
TNT1 AAAAAAAAAA 0 A_Quake(3,10,0,300,0)
NAPA EFGHIJKLMNOPQRS 2
stop
}
}

actor JunGolemCubeDebris
{
-NOGRAVITY
+SOLID
speed 4
Radius 4
Height 8
scale 2.5
gravity 1.8
reactiontime 100
PROJECTILE
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 0 A_Jump(256,"Junk1")
TNT1 A 0 A_Jump(256,"Junk2")
TNT1 A 0 A_Jump(256,"Junk3")
TNT1 A 0 A_Jump(256,"Junk4")
Junk1:
JUCU M 1 ThrustThingZ(0, -4, 0, 1)
loop
Junk2:
JUCU N 1 ThrustThingZ(0, -4, 0, 1)
loop
Junk3:
JUCU O 1 ThrustThingZ(0, -4, 0, 1)
loop
Junk4:
JUCU P 1 ThrustThingZ(0, -4, 0, 1)
loop
Death:
XDeath:
TNT1 A 0
Stop
}
}

//Movers
actor HSHBlower
{
PROJECTILE
+NOINTERACTION
height 0
radius 0
speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(C_JAX_SUCKRECODE,0,450,11,1)
TNT1 A 3
stop
}
}

actor HSHSucker
{
PROJECTILE
-NOINTERACTION
height 0
radius 0
speed 0
states
{
Spawn:
TNT1 A 0
TNT1 A 2 ACS_ExecuteAlways(C_JAX_SUCKRECODE,0,300,10,6)
stop
}
}

actor PointBlankHyperExhaleFlinger
{
//+SERVERSIDEONLY
PROJECTILE
+NOINTERACTION
+NOCLIP
+DONTBLAST
damage 0
radius 1
height 1
speed 0
var int user_force;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("CannotBeMoved",1,"Death")
TNT1 A 0 A_SetUserVar("user_force",-35)
Spawn2:
TNT1 A 0 A_TransferPointer(AAPTR_TARGET,AAPTR_DEFAULT,AAPTR_TARGET,AAPTR_TRACER) //target's target to self's tracer
TNT1 A 0 A_FaceTracer
TNT1 A 0 ThrustThing(angle*256/360,user_force,1,ACS_ExecuteWithResult(257,0))
stop
Death:
TNT1 A 0
stop
}
}

//Borrowed Ra Thor Code
actor HSHWallRush_CI : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("HSHWallRushImmune",1,"PickupNo")
TNT1 A 0 A_JumpIfInventory("NewWallSlam",1,"PickupNo")
TNT1 A 0 A_GiveInventory("NoNewWallSlam",1)
TNT1 A 0 A_GiveInventory("NewWallSlam",1)
TNT1 A 0 A_GiveInventory("WallSlamRealTimer",1)
TNT1 A 0 A_SpawnItemEX("HSHWallRushChecker")
stop
PickupNo:
TNT1 A 0
stop
}
}

actor HSHUltWallRush_CI : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("NewWallSlam",1,"PickupNo")
TNT1 A 0 A_GiveInventory("NoNewWallSlam",1)
TNT1 A 0 A_GiveInventory("NewWallSlam",1)
TNT1 A 0 A_GiveInventory("WallSlamRealTimer",1)
TNT1 A 0 A_SpawnItemEX("HSHUltWallRushChecker")
stop
PickupNo:
TNT1 A 0
stop
}
}

actor HSHWallRushChecker
{
Height 0
Radius 0
Damage (0)
+NOINTERACTION
+NOCLIP
DamageType "HyperStormHSlam"
Obituary "$OB_HYPERSTORMHAKKAI3"
PROJECTILE
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_DEFAULT, AAPTR_TARGET)
TNT1 A 0 A_TransferPointer(AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_TARGET)
SpawnStart0:
TNT1 A 0 A_GiveInventory("WallSlamTimer",1)
SpawnStart:
TNT1 A 0 A_GiveInventory("WallSlamTrailPickup",1,AAPTR_TRACER)
TNT1 A 1 A_GiveInventory("WallSlamTimer",1,AAPTR_TRACER)
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,CallACS("TracerHeightGet")/2,0,0)
TNT1 A 0 A_JumpIfInventory("RaThorWallRush_P",1,"DeathCheck",AAPTR_TRACER)
TNT1 A 0 A_JumpIfInventory("WallSlamRealTimer",1,"SpawnStart",AAPTR_TRACER)
goto Death
DeathCheck:
TNT1 A 0 //A_JumpIfInventory("NewWallSlam",1,"Death",AAPTR_TRACER)
TNT1 A 0 A_SpawnItemEx("RaThorWallBonk")
TNT1 A 0 A_GiveInventory("WallSlamTimer",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("HSHSlamRocks",random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8))
TNT1 A 0 A_Quake(4,10,0,256)
TNT1 A 0 A_PlaySoundEx("misc/quake","Body")
TNT1 A 0 A_PlaySoundEx("weapon/wallrush","Weapon")
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,CallACS("TracerHeightGet")/2,0,0)
TNT1 A 0 A_Explode(13,12,0,0,12)
TNT1 A 10
Death:
TNT1 A 2
stop
}
}

actor HSHSlamRocks : ThorSlamRocks
{
translation "208:208=234:234", "46:46=0:0"
}

Actor HSHWallRushImmune : PowerProtection
{
	Powerup.Duration 53
	DamageFactor "HyperStormHSlam", 0.0
}

actor HSHUltWallRushChecker : HSHWallRushChecker
{
DamageType "HyperStormHSlam"
Obituary "$OB_HYPERSTORMHAKKAI6"
}

Actor HSHFlingProtect : PowerProtection
{
	Powerup.Duration 53
	DamageFactor "HyperStormHPointBlank", 0.0
}

//Damagers
actor HSHBlowerPointBlankDamager1
{
species "DustManType"
+THRUSPECIES
Projectile
Scale 2.5
Height 6
Radius 6
meleerange 12
damagetype "HyperStormHPointBlank"
Obituary "$OB_HYPERSTORMHAKKAI2"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(meleerange, 128, 0 ,0 ,128)
stop
}
}

actor HSHBlowerPointBlankDamager2 : HSHBlowerPointBlankDamager1
{
meleerange 24
}

actor HSHBlowerPointBlankDamager3 : HSHBlowerPointBlankDamager1
{
meleerange 36
}

actor HSHBlowerPointBlankDamager4 : HSHBlowerPointBlankDamager1
{
meleerange 48
}
actor HSHSuckerDamager : HSHBlowerPointBlankDamager1
{
damagetype "HyperStormHAlt"
Obituary "$OB_HYPERSTORMHAKKAI4"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(3, 128, 0)
stop
}
}

actor HyperStompLandedDamager : HSHBlowerPointBlankDamager1
{
damagetype "HyperStormHUlt"
Obituary "$OB_HYPERSTORMHAKKAI5"
States
{
Spawn:
TNT1 A 1
TNT1 A 1 A_Explode(40, 175, 0)
stop
}
}

actor HyperUltDamager : HSHBlowerPointBlankDamager1
{
damagetype "HyperStormHUltLanding"
Obituary "$OB_HYPERSTORMHAKKAI5"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(4, 96, 0)
stop
}
}

actor MetoolChaserHitBox
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
+THRUSPECIES
Species "HyperStormHSpawn"
damagetype "HyperStormHSpawns"
Obituary "$OB_HYPERSTORMHAKKAI7"
damage (20)
Radius 32
Height 32
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 1
stop
Death:
XDeath:
TNT1 A 0 A_GiveToTarget("ImpactDespawn",1)
stop
}
}

actor JamacyHitBox : MetoolChaserHitBox
{
damagetype "HyperStormHSpawns"
Obituary "$OB_HYPERSTORMHAKKAI10"
damage (40)
States
{
Spawn:
TNT1 A 1
stop
Death:
XDeath:
TNT1 A 0 A_GiveToTarget("ImpactDespawn",1)
stop
}
}

//Particles
actor HyperFXSpawner
{
PROJECTILE
damage 0
height 1
radius 1
Speed 150
+SOLID
+DONTBLAST
+CLIENTSIDEONLY
+NOGRAVITY
+NOINTERACTION
scale 2.5
States
{
Spawn:
TNT1 A 2
Death:
TNT1 A 0 A_CustomMissile("HyperFX1",0,0,0,0)
stop
}
}

actor HyperFX1
{
+MISSILE
+NOINTERACTION
speed 45
scale 2.5
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
GHSH MMMMNNNNOOOO 1 A_JumpIfCloser(32,"Death")
Death:
TNT1 A 0
stop
}
}

actor HyperFX2 : HyperFX1
{
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
GHSH MNO 3
stop
Death:
TNT1 A 0
stop
}
}

actor HyperStompFX
{
Translation "192:192=218:218", "198:198=76:76"
scale 2.5
+CLIENTSIDEONLY
+NOINTERACTION
+DONTSPLASH
Gravity 0
Damage (0)
height 0
radius 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
HSHZ I 1 A_Fadeout(0.10)
wait
}
}

//Second Ultimate Bar
actor UltimateAttackItem5HSH : CustomInventory
{
	Tag "$ITEM_ULTIMATE"
	+inventory.undroppable
	inventory.amount 1
	inventory.maxamount 1
	inventory.icon "ULTAI0"
	scale 2.0
	+COUNTITEM
	+INVBAR
	states
	{
		Spawn:
		TNT1 A 0
		stop
		Failure:
		ULTA I 0
		ULTA I 0 A_PlaySoundEx("classes/itemfail","SoundSlot7")
		fail
		Use:
		ULTA I 0 A_JumpIfInventory("FrozenByFlashman",1,"Failure")
		ULTA I 0 A_JumpIfInventory("ShortUltimateAmmo",100,2)
		ULTA I 0 A_JumpIfInventory("MediumUltimateAmmo",301,1)//("LongUltimateAmmo",501,1)
		Goto Failure
		ULTA I 0 A_GiveInventory("UltAttackFlag",1)
		fail
	}
}

actor UltSoundWatcherSpawn5HSH: CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
+COUNTITEM
+INVBAR
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("UltReadySoundWatcher5")
stop
}
}

//EnemeySpawners
actor HSHEMetChaseSpawner
{
PROJECTILE
+THRUACTORS
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 15
States
{
Spawn:
TNT1 A 10
TNT1 A 0 A_SpawnItemEx("HyperStormMetoolChaser")
stop
Death:
TNT1 A 1 A_SpawnItemEx("HyperStormMetoolChaser",0,0,-40)
stop
}
}

actor HSHEMetShootSpawner : HSHEMetChaseSpawner
{
States
{
Spawn:
TNT1 A 10
TNT1 A 0 A_SpawnItemEx("HyperStormMetoolShooter")
stop
Death:
TNT1 A 1 A_SpawnItemEx("HyperStormMetoolShooter",0,0,-50)
stop
}
}

actor HSHEHammerJoeSpawner : HSHEMetChaseSpawner
{
States
{
Spawn:
TNT1 A 10
TNT1 A 0 A_SpawnItemEx("HyperStormHammerJoe")
stop
Death:
TNT1 A 1 A_SpawnItemEx("HyperStormHammerJoe",0,0,-40)
stop
}
}

actor HSHEJamacySpawner : HSHEMetChaseSpawner
{
States
{
Spawn:
TNT1 A 10
TNT1 A 0 A_SpawnItemEx("HyperStormJamacy")
stop
Death:
TNT1 A 1 A_SpawnItemEx("HyperStormJamacy",0,0,-50)
stop
}
}

actor HSHEJunkGolemSpawner : HSHEMetChaseSpawner
{
States
{
Spawn:
TNT1 A 10
TNT1 A 0 A_SpawnItemEx("HyperStormJunkGolem")
stop
Death:
TNT1 A 1 A_SpawnItemEx("HyperStormJunkGolem",0,0,-40)
stop
}
}

//Spawned Enemies
actor HyperStormMetoolChaser
{
//MONSTER
//Projectile
+MISSILE
Height 20
Radius 10
scale 2.5
speed 9
Health 9999
mass 99999
painchance 256
damage (40)
painsound "misc/metdie"
bloodtype "EnemyHurtFX1"
damagetype "HyperStormHSpawns"
damagefactor "HyperStormHSpawns", 0.0
Species "HyperStormHSpawn"
Obituary "$OB_HYPERSTORMHAKKAI7"
+NORADIUSDMG
+LOOKALLAROUND
+DROPOFF
+SHOOTABLE
+SOLID
-NOGRAVITY
+INVULNERABLE
+THRUSPECIES
+BOUNCEONWALLS
+NOEXPLODEFLOOR
+NOTARGETSWITCH
+LOOKALLAROUND
+SEEKERMISSILE
//+THRUACTORS
//+FRIENDLY
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCodeTracer", 1)
METT D 0 A_RearrangePointers(AAPTR_TARGET,AAPTR_TARGET,AAPTR_DEFAULT,PTROP_NOSAFEGUARDS)
METT D 0 A_ChangeFlag("MISSILE",0)
METT D 1 A_JumpIf(floorz==z,"Land1")
goto Spawn+3
Land1:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(0,0,12,CVF_RELATIVE|CVF_REPLACE)
METT D 1
Falling1:
METT D 1 A_JumpIf(floorz==z,"Land2")
loop
Land2:
METT D 0 A_ChangeVelocity(0,0,0,CVF_RELATIVE|CVF_REPLACE)
METT D 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)//A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
METT D 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
loop
See:
METT D 0 A_ChangeVelocity(0,0,0,CVF_RELATIVE|CVF_REPLACE)
METT D 0 A_GiveToTarget("HSHNoUlt1")
METT D 50
METT DE 1 A_FaceTracer//A_FaceTarget
TNT1 A 0 A_ChangeFlag("INVULNERABLE", False)
MetChase:
METT D 0 A_RearrangePointers(AAPTR_TRACER,AAPTR_DEFAULT,AAPTR_DEFAULT,PTROP_NOSAFEGUARDS)
METT A 1 A_Chase("Death")
METT A 1 A_Chase("Death")
METT A 1 A_Chase("Death")
TNT1 A 0 A_JumpIfInventory("EnemyDespawn",1,"Despawn",AAPTR_MASTER)
METT B 1 A_Chase("Death")
METT B 1 A_Chase("Death")
METT B 1 A_Chase("Death")
TNT1 A 0 A_JumpIfInventory("EnemyDespawn",1,"Despawn",AAPTR_MASTER)
METT C 1 A_Chase("Death")
METT C 1 A_Chase("Death")
METT C 1 A_Chase("Death")
TNT1 A 0 A_JumpIfInventory("EnemyDespawn",1,"Despawn",AAPTR_MASTER)
METT B 1 A_Chase("Death")
METT B 1 A_Chase("Death")
METT B 1 A_Chase("Death")
TNT1 A 0 A_JumpIfInventory("EnemyDespawn",1,"Despawn",AAPTR_MASTER)
loop
XDeath:
MMFX B 0 A_ReArrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_TARGET)
MMFX B 0 A_Explode(20, 56, 0, 0, 56)
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
Despawn:
Death:
MMFX B 0 A_ReArrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_TARGET)
MMFX B 0 A_Explode(20, 56, 0, 0, 56)
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor HyperStormMetoolShooter : HyperStormMetoolChaser
{
damage (0)
speed 0
+THRUACTORS
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCodeTracer", 1)
METT D 1 A_JumpIf(floorz==z,"Land1")
goto Spawn+2
Land1:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(0,0,12,CVF_RELATIVE|CVF_REPLACE)
METT D 1
Falling1:
METT D 1 A_JumpIf(floorz==z,"Land2")
loop
Land2:
TNT1 A 0 A_ChangeVelocity(0,0,0,CVF_RELATIVE|CVF_REPLACE)
//TNT1 A 0 A_GiveInventory("SpawnedEnemyTimer",300)
//TNT1 A 0 A_SpawnItemEx("SpawnedEnemyWatcher")
MetLook:
TNT1 A 0 A_JumpIfInTargetInventory("EnemyDespawn",1,"Despawn")
METT D 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)//A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
METT D 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
loop
See:
METT D 50 A_JumpIfInventory("EnemyDespawn",1,"Despawn")
METT DEB 1 A_FaceTracer//A_FaceTarget
MetShoot:
TNT1 A 0 A_FaceTracer//A_FaceTarget
TNT1 A 0 A_ChangeFlag("INVULNERABLE", False)
TNT1 A 0 A_PlaySoundEx("weapon/MetoolShoot","Weapon")
TNT1 A 0 A_GiveToTarget("HSHNoUlt1")
METT F 0 A_CustomMissile("HyperStormMetoolShot",8,0,0,CMF_AIMDIRECTION, pitch)
METT B 30
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
TNT1 A 0 A_ChangeFlag("INVULNERABLE", True)
METT BED 2
Goto MetLook
Despawn:
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor HyperStormHammerJoe : HyperStormMetoolChaser
{
damage (0)
Translation "192:192=184:184", "198:198=128:128"
Height 31
Radius 13
speed 0
+THRUACTORS
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCodeTracer", 1)
HJOE AABBCCDD 1 A_JumpIf(floorz==z,"Land1")
goto Spawn+2
Land1:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(0,0,12,CVF_RELATIVE|CVF_REPLACE)
HJOE AABBCCDD 1
Falling1:
HJOE AABBCCDD 1 A_JumpIf(floorz==z,"Land2")
loop
Land2:
TNT1 A 0 A_ChangeFlag("INVULNERABLE", False)
//BLA1 A 0 A_GiveInventory("SpawnedEnemyTimer",600)
//BLA2 H 0 A_SpawnItemEx("SpawnedEnemyWatcher")
JoeLook:
TNT1 A 0 A_JumpIfInTargetInventory("EnemyDespawn",1,"Despawn")
HJOE A 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
HJOE A 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
HJOE A 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
HJOE B 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
HJOE B 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
HJOE B 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
HJOE B 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
HJOE C 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
HJOE C 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
HJOE C 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
HJOE C 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
HJOE C 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
HJOE D 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)
HJOE D 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
HJOE D 1 A_SeekerMissile(0, 0, SMF_LOOK, 256) //A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
Goto JoeLook
See:
TNT1 A 0 A_Explode(10, 75, 0)
HJOE AABBCCDD 1 A_FaceTracer//A_FaceTarget
TNT1 A 0 A_Explode(10, 75, 0)
HJOE AABBCCDD 1 A_FaceTracer//A_FaceTarget
TNT1 A 0 A_Explode(10, 75, 0)
HJOE EEFFGGHH 1 A_FaceTracer//A_FaceTarget
TNT1 A 0 A_Explode(10, 75, 0)
HJOE IIFFGGHH 1 A_FaceTracer//A_FaceTarget
TNT1 A 0 A_PlaySoundEx("weapon/superboost","Weapon")
TNT1 A 0 A_GiveToTarget("HSHNoUlt1")
HJOE J 0 A_CustomMissile("HyperStormHammerJoeHammer",8,0,0,CMF_AIMDIRECTION, pitch)
HJOE J 20 A_JumpIfInventory("EnemyDespawn",1,"Despawn")
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto JoeLook
Despawn:
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor HyperStormJamacy : HyperStormMetoolChaser
{
damage (0)
Height 18
Radius 8
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCodeTracer", 1)
//JMC2 C 0 A_RearrangePointers(AAPTR_TARGET,AAPTR_TARGET,AAPTR_TARGET,PTROP_NOSAFEGUARDS)
JMC2 C 1 A_JumpIf(floorz==z,"Land1")
goto Spawn+2
Land1:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(0,0,12,CVF_RELATIVE|CVF_REPLACE)
JMC2 C 1
Falling1:
JMC2 C 1 A_JumpIf(floorz==z,"Land2")
loop
Land2:
TNT1 A 0 A_ChangeFlag("INVULNERABLE", False)
JamacyLook:
JMC2 C 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)//A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
JMC2 C 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 C 1 A_ChangeVelocity(12,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_JumpIfInventory("ImpactDespawn",1,"Despawn")
JMC2 C 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)//A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
JMC2 C 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 C 1 A_JumpIf(z-floorz>0, "Landing")
TNT1 A 0 A_JumpIfInventory("EnemyDespawn",1,"Despawn")
JMC2 D 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)//A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
JMC2 C 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 D 1 A_ChangeVelocity(12,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_JumpIfInventory("ImpactDespawn",1,"Despawn")
JMC2 D 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)//A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
JMC2 D 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 D 1 A_JumpIf(z-floorz>0, "Landing")
TNT1 A 0 A_JumpIfInventory("EnemyDespawn",1,"Despawn")
Goto JamacyLook
See:
TNT1 A 0 A_GiveToTarget("HSHNoUlt1")
TNT1 A 0 A_FaceTracer//A_FaceTarget
JMC2 C 1 A_SpawnItem("JamacyHitBox")
JMC2 C 1 A_ChangeVelocity(20,0,0,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_JumpIfInventory("ImpactDespawn",1,"Despawn")
JMC2 C 1 A_SpawnItem("JamacyHitBox")
JMC2 C 1 A_JumpIf(z-floorz>0, "GoDown")
JMC2 D 1 A_SpawnItem("JamacyHitBox")
JMC2 D 1 A_ChangeVelocity(20,0,0,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_JumpIfInventory("ImpactDespawn",1,"Despawn")
JMC2 D 1 A_SpawnItem("JamacyHitBox")
JMC2 D 1 A_JumpIf(z-floorz>0, "GoDown")
Goto JamacyLook
GoDown:
TNT1 A 0 A_ChangeVelocity(0,0,-9,CVF_RELATIVE|CVF_REPLACE)
Landing:
JMC2 A 1 A_JumpIf(floorz==z,"See") TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 A 1 A_JumpIfInventory("ImpactDespawn",1,"Despawn") TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 A 1 A_JumpIf(floorz==z,"See") TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 A 1 A_SpawnItem("JamacyHitBox")
JMC2 B 1 A_JumpIf(floorz==z,"See") TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 B 1 A_JumpIfInventory("ImpactDespawn",1,"Despawn") TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 B 1 A_JumpIf(floorz==z,"See") TNT1 A 0 A_SpawnItem("JamacyHitBox")
JMC2 B 1 A_SpawnItem("JamacyHitBox")
loop
Despawn:
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor HyperStormJunkGolem : HyperStormMetoolChaser
{
Height 37
Radius 8
speed 0
damage (0)
+THRUACTORS
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCodeTracer")
JGLM A 1 A_JumpIf(floorz==z,"Land1")
goto Spawn+2
Land1:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(0,0,12,CVF_RELATIVE|CVF_REPLACE)
JGLM A 1
Falling1:
JGLM A 1 A_JumpIf(floorz==z,"Land2")
loop
Land2:
TNT1 A 0 A_ChangeFlag("INVULNERABLE", False)
//BLA1 A 0 A_GiveInventory("SpawnedEnemyTimer",900)
//BLA2 H 0 A_SpawnItemEx("SpawnedEnemyWatcher")
GolemSee:
TNT1 A 0 A_JumpIfInTargetInventory("EnemyDespawn",1,"Despawn")
JGLM A 1 A_SeekerMissile(0, 0, SMF_LOOK, 256)//A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,"See")
JGLM A 0 A_JumpIfTargetInLOS("See", 0, JLOSF_PROJECTILE)
loop
See:
JGLM A 50 A_JumpIfInTargetInventory("EnemyDespawn",1,"Despawn")
JGLM AABBCC 1 A_FaceTracer//A_FaceTarget
TNT1 A 0 A_PlaySoundEx("weapon/superarmuse","Weapon")
TNT1 A 0 A_GiveToTarget("HSHNoUlt1")
TNT1 A 0 A_CustomMissile("HyperStormJunkGolemCube",0,0,0,CMF_AIMDIRECTION, pitch)
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
JGLM C 10
Goto GolemSee
Despawn:
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

//Flags and Inventory
actor HyperBreatheFlag : inventory
{
inventory.amount 1
inventory.maxamount 2
}
actor HSHSuctionFlag : HyperBreatheFlag {}
actor EnemyDespawn : HyperBreatheFlag {}
actor ImpactDespawn : HyperBreatheFlag {}

actor HSHLongUltimateAmmo : Inventory
{
inventory.amount 1
inventory.maxamount 500
}

actor SpawnedEnemyTimer : Ammo
{
	inventory.amount 1
	inventory.maxamount 900
	+INVENTORY.IGNORESKILL
}

actor SpawnedEnemyWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(CallACS("Core_TargetExists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("SpawnedEnemyTimer",1)
TNT1 A 0 A_JumpIfInTargetInventory("SpawnedEnemyTimer",1,"Spawn")
Death:
TNT1 A 1 A_GiveToTarget("EnemyDespawn",1)
stop
}
}

actor HSHArmorTimer : Powerup
{
powerup.duration 84//18
}

actor HSHBreathHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",84,"Pickup4")
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",56,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",28,"Pickup2")
TNT1 A 0 A_FireCustomMissile("HSHBlowerPointBlankDamager1",0,0)
stop

Pickup2:
TNT1 A 0 A_FireCustomMissile("HSHBlowerPointBlankDamager2",0,0)
stop

Pickup3:
TNT1 A 0 A_FireCustomMissile("HSHBlowerPointBlankDamager3",0,0)
stop

Pickup4:
TNT1 A 0 A_FireCustomMissile("HSHBlowerPointBlankDamager4",0,0)
stop
}
}


actor HSHSuctionCooldown : Powerup
{
powerup.duration 35
}

actor HSHMovementStopper
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
Renderstyle none
States
{
Spawn:
TNT1 A 0
TNT1 AA 1 A_GiveToTarget("MovementFrozenHSH")
Death:
TNT1 A 0
stop
}
}

actor MovementFrozenHSH : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_Stop
stop
}
}

Actor HSHNoUlt1 : UltBuildCooldownGiver
{
Powerup.duration 20
}