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 "UltSoundWatcherSpawn3"
player.startitem "UltimateAttackItem3HSH"
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
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 FFFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Goto Spawn+2
JumpingMissile:
HSHZ JJJJJ 1 A_JumpIf(z-floorz<=0, "Missile")
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 UltimateAttackItem3HSH : 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)
		Goto Failure
		ULTA I 0 A_GiveInventory("UltAttackFlag",1)
		fail
	}
}

Actor HyperBreatheBoss : VCBaseWeapon
{
weapon.ammotype "Base56Ammo"
weapon.ammotype2 "BaseAltfireAmmo"
Obituary "$OB_HYPERSTORMHAKKAI1"
States
{
Ready:
HSHG A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
HSHG A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
HSHG A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
HSHG A 0 A_GiveInventory("Base56Ammo",1)
loop

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 A 0 A_SpawnItemEx("HSHSmokeWatcher")
Select2:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HSHG A 1 A_Raise
loop

Fire:
HSHG CC 1 ACS_NamedExecute("VC_SetState",0,1)
Goto Fire.Exhale

Fire.Exhale:
TNT1 A 0 A_GiveInventory("HSHExhalePickUp",1)
Goto Fire.Hold

Fire.Hold:
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("HyperFXExhale",random(-20,20),0,0,0,0,random(-20,20))
TNT1 A 0 A_JumpIfInventory("CutterFlag",8,"Fire.Bullet")
TNT1 A 0 A_ReFire("Fire.Hold")
Goto Fire.End

Fire.Bullet:
TNT1 A 0 A_TakeInventory("CutterFlag",8)
TNT1 A 0 ACS_NamedExecute("VC_SetState",0,1)
TNT1 A 0 A_PlaySoundEx("misc/devilfire","Auto")
TNT1 A 0 A_FireCustomMissile("HSHShot",0,0)
Goto Fire.Hold

Fire.End:
TNT1 A 0 A_StopSound(CHAN_BODY)
HSHG C 2 A_TakeInventory("CutterFlag",8)
Goto Ready

Altfire:
TNT1 A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
HSHG CC 1 ACS_NamedExecute("VC_SetState",0,1)
TNT1 A 0 A_JumpIfInventory("HSHSuctionCooldown",1,"Altfire.Hold")
Goto Altfire.Inhale

Altfire.Inhale:
TNT1 A 0 A_GiveInventory("HSHInhalePickUp",1)
Goto Altfire.Hold

Altfire.Hold:
TNT1 A 0 A_JumpIfInventory("Base56Ammo",1,"Altfire.Go")
Goto Altfire.End

Altfire.Go:
TNT1 A 0 A_TakeInventory("Base56Ammo",1)
TNT1 A 0 A_FireCustomMissile("HSHSucker",0,0)
TNT1 A 0 A_SpawnItemEx("HSHSuckerDamager",20)
TNT1 A 0 A_PlaySoundEx("weapon/windloop","Body")
HSHG DDD 1 A_FireCustomMissile("HyperFXInhaleSpawner",random(-15,15),0,0,0,0,random(-30,30))
TNT1 A 0 A_ReFire("Altfire.Hold")
Goto Altfire.End

Altfire.End:
TNT1 A 0 A_StopSound(CHAN_BODY)
HSHG C 2 A_ClearRefire
Goto Ready

UltimateAttack:
HSHG A 1
HSHG A 0 A_GunFlash("HyperLunging")
HSHG A 0 A_GiveInventory("HSHUltimateStartPickUp",1)
HSHG A 2
HSHG EEFFGG 1 A_CheckFloor("UltimateAttack.Landed")
Goto UltimateAttack.BraceForImpact

UltimateAttack.BraceForImpact:
HSHG H 1 A_CheckFloor("UltimateAttack.Landed") HSHG A 0 A_SpawnItemEx("HyperUltDamager")
HSHG H 1 A_CheckFloor("UltimateAttack.Landed") HSHG A 0 A_SpawnItemEx("HyperUltDamager")
loop

UltimateAttack.Landed:
HSHG H 1 A_GiveInventory("HSHUltimateSummonPickUp")
HSHG A 0 A_GunFlash("HyperStopping")
HSHG A 0 A_GiveInventory("HSHUltimateAttackPickUp",1)
HSHG GFEAC 1 A_Quake(4,30,0,600,0)
HSHG A 0 A_SpawnItemEx("ReSolidifier")
HSHG DDIIDDIIDDIIDDIIDDIIDDIIDDIIDDII 1 ACS_NamedExecute("VC_SetState",0,1)
HSHG A 0 A_GunFlash
HSHG DCA 2 A_TakeInventory("PowerUltBuildCooldown",1)
Goto Ready

Flash:
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("HalfDamageProtection",999)
//TNT1 A 0 A_GiveInventory("HSHSmoke_CI")
TNT1 AAA 1 A_JumpIfInventory("HSHArmorTimer",1,"Flash2")
loop

Flash2:
TNT1 A 1 A_GiveInventory("HalfDamageProtection",1)
//TNT1 A 0 A_GiveInventory("HSHSmoke_CI")
TNT1 A 0 A_JumpIfInventory("HSHArmorTimer",1,"Flash2")
goto Flash

HyperLunging:
TNT1 A 1 ThrustThingZ(0,-6,0,1)
TNT1 A 0 A_SpawnItemEx("HyperStompFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 ThrustThingZ(0,-6,0,1)
TNT1 A 0 A_SpawnItemEx("HyperStompFX",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
loop

HyperStopping:
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
loop
}
}

actor HSHExhalePickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/hshbreath","Auto")
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("HyperFXExhale",random(-20,20),0,0,0,0,random(-20,20))
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)
TNT1 A 0 A_Quake(3,10,0,128)
TNT1 A 0 A_PlaySoundEx("weapon/dm2impact","Weapon")
stop
}
}

actor HSHDamagerBase
{
species "DustManType"
+THRUSPECIES
+DONTREFLECT
PROJECTILE
Height 8
Radius 8
Scale 2.5
}

actor HSHBlowerPointBlankDamager1 : HSHDamagerBase
{
damagetype "HyperStormHPointBlank"
Obituary "$OB_HYPERSTORMHAKKAI2"
meleerange 9
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(meleerange, 128, 0, 0, 128)
stop
}
}
actor HSHBlowerPointBlankDamager2 : HSHBlowerPointBlankDamager1{meleerange 18}
actor HSHBlowerPointBlankDamager3 : HSHBlowerPointBlankDamager1{meleerange 27}
actor HSHBlowerPointBlankDamager4 : HSHBlowerPointBlankDamager1{meleerange 36}

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

actor HyperFXExhale
{
+MISSILE
+NOINTERACTION
speed 45
scale 2.5
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 1
GHSH MNO 3
Goto Death
Death:
TNT1 A 0
stop
}
}

actor PointBlankHyperExhaleFlinger
{
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)
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
}
}

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 : BaseWallRushChecker
{
DamageType "HyperStormHSlam"
Obituary "$OB_HYPERSTORMHAKKAI3"
states
{
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(9,12,0,0,12)//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
}

Actor HSHPorjectileBase
{
PROJECTILE
damagetype "HyperStormH"
radius 8
height 8
scale 2.5
}

Actor HSHShot : HSHPorjectileBase
{
Obituary "$OB_HYPERSTORMHAKKAI1"
damagetype "HyperStormHShot"
Speed 50
Damage (19)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
6ULT X 1
wait
}
}

actor HSHInhalePickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("HSHSuctionCooldown",1)
TNT1 AAAA 0 A_FireCustomMissile("HSHSucker",0,0)
TNT1 A 0 A_PlaySoundEx("weapon/duststeam","Weapon")
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("HyperFXInhaleSpawner",random(-15,15),0,0,0,0,random(-30,30))
stop
}
}

actor HyperFXInhaleSpawner
{
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("HyperFXInhale",0,0,0,0)
stop
}
}

actor HyperFXInhale : HyperFXExhale
{
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
GHSH MMMNNNOOO 1 A_JumpIfCloser(32,"Death")
Goto Death
}
}

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

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

actor HSHSuctionCooldown : Powerup
{
powerup.duration 35
}

actor HSHArmorTimer : Powerup
{
powerup.duration 84
}


actor HSHUltimateStartPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Stop
TNT1 A 0 A_Recoil(-15)
TNT1 A 0 ThrustThingZ(0, 150, 0, 1)
TNT1 A 0 A_ChangeFlag("SOLID",False)
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("THRUACTORS",True)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_TakeInventory("ShortUltimateAmmo",100)
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,120)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
stop
}
}

actor HSHUltimateAttackPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeFlag("THRUACTORS",False)
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",300)
TNT1 A 0 A_SpawnItemEx("HyperStompLandedDamager")
TNT1 A 0 A_PlaySoundEx("weapon/WilyPressCrush","Weapon")
TNT1 AAAAAAAAA 0 A_SpawnItemEx("HSHQuakeDebris",random(32,160),0,0,0,0,random(5,20),random(0,360))
stop
}
}

actor HSHUltimateSummonPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",300,"Pickup2D")
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",210,"Pickup2C")
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",90,"Pickup2B")
Goto Pickup2A

Pickup2A:
TNT1 A 0 A_SpawnItemEx("HSHMetoolChaserSummonTeleportStart", 160, 0, 32, 0, 0, 16, 45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHMetoolChaserSummonTeleportStart", 160, 0, 32, 0, 0, 16, -135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHMetoolShooterSummonTeleportStart", 160, 0, 32, 0, 0, 16, -45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHMetoolShooterSummonTeleportStart", 160, 0, 32, 0, 0, 16, 135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
stop

Pickup2B:
TNT1 A 0 A_SpawnItemEx("HSHMetoolChaserSummonTeleportStart", 160, 0, 32, 0, 0, 16, 45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHMetoolChaserSummonTeleportStart", 160, 0, 32, 0, 0, 16, -135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHHammerJoeSummonTeleportStart", 160, 0, 32, 0, 0, 16, -45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHHammerJoeSummonTeleportStart", 160, 0, 32, 0, 0, 16, 135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
stop

Pickup2C:
TNT1 A 0 A_SpawnItemEx("HSHJamacySummonTeleportStart", 160, 0, 32, 0, 0, 16, 45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHJamacySummonTeleportStart", 160, 0, 32, 0, 0, 16, -135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHHammerJoeSummonTeleportStart", 160, 0, 32, 0, 0, 16, -45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHHammerJoeSummonTeleportStart", 160, 0, 32, 0, 0, 16, 135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
stop

Pickup2D:
TNT1 A 0 A_SpawnItemEx("HSHJamacySummonTeleportStart", 160, 0, 32, 0, 0, 16, 45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHJamacySummonTeleportStart", 160, 0, 32, 0, 0, 16, -135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHJunkGolemSummonTeleportStart", 160, 0, 32, 0, 0, 16, -45, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_SpawnItemEx("HSHJunkGolemSummonTeleportStart", 160, 0, 32, 0, 0, 16, 135, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM,0)
stop
}
}

actor HyperStompFX
{
+DONTSPLASH
+NOINTERACTION
+CLIENTSIDEONLY
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
HSHZ I 1 A_Fadeout(0.20)
wait
}
}

actor HSHQuakeDebris
{
translation "208:208=234:234", "46:46=0:0"
-SOLID
+MISSILE
+THRUACTORS
+CLIENTSIDEONLY
+BOUNCEONWALLS
+BOUNCEONFLOORS
+BOUNCEONCEILINGS
+CANBOUNCEWATER
+THRUSPECIES
bouncecount 1
Height 16
Radius 16
scale 2.5
States
{
Spawn:
TNT1 A 0
POWS BB 1
wait
}
}

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

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

Actor HyperStormHCooldownGiver : UltBuildCooldownGiver
{
	Powerup.Duration -1
}

actor HSHSummonBase
{
PROJECTILE
-NOGRAVITY
+THRUSPECIES
+DONTREFLECT
+SEEKERMISSILE
+LOOKALLAROUND
+BOUNCEONWALLS
+NOEXPLODEFLOOR
+NOTARGETSWITCH
damagetype "HyperStormHSpawns"
species "HyperStormHSummon"
WallBounceFactor 1
reactiontime 525
scale 2.5
}

actor HSHEnemyTeleportStart
{
PROJECTILE
+DONTBLAST
+SKYEXPLODE
+THRUACTORS
speed 40
Radius 16
Height 16
scale 2.5
reactiontime 2
States
{
Spawn:
TNT1 A 0
TNT1 AA 1 A_Countdown
goto Death

Death:
TNT1 A 0
stop
}
}

actor HSHEnemyTeleport
{
+MISSILE
+NOGRAVITY
+THRUACTORS
+NOINTERACTION
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 1
TNT1 A 1 A_CheckFloor("Death")
wait

Death:
TNT1 A 0
stop
}
}

actor HSHMetoolChaserSummonTeleportStart : HSHEnemyTeleportStart
{
States
{
Death:
TNT1 A 0 A_SpawnItemEx("HSHMetoolChaserSummonTeleport",0,0,0,0,0,-24)
stop
}
}

actor HSHMetoolChaserSummonTeleport : HSHEnemyTeleport
{
States
{
Death:
TNT1 A 0 A_Stop
TNT1 A 1 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET)
TNT1 A 1 A_SpawnItemEx("HSHMetoolChaserSummon", 0, 0, 16, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
stop
}
}

actor HSHMetoolChaserSummon : HSHSummonBase
{
Obituary "$OB_HYPERSTORMHAKKAI7"
damage (20)
height 16
radius 16
const int SPD = 10;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
Goto EnemySummon

EnemySummon:
METT D 2 A_ChangeVelocity(0,0,8,CVF_REPLACE|CVF_RELATIVE)
METT D 1 A_JumpIf(z-floorz<=0,"Land")
wait

Land:
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,0,0,1)
Goto MetoolLook

MetoolLook:
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT D 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT D 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
loop

Missile:
METT E 1 A_FaceTracer(0,0) TNT1 A 0 A_CountDown
METT E 1 A_FaceTracer(0,0) TNT1 A 0 A_CountDown
MissileHold:
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT B 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT A 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT A 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT A 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
METT A 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfTargetInLOS("Missile", 0, "MissileHold")
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
METT E 1 A_Stop TNT1 A 0 A_CountDown
METT E 1 A_Stop TNT1 A 0 A_CountDown
Goto MetoolLook

Death:
TNT1 A 0 A_PlaySound("misc/metdie")
TNT1 A 1 A_SpawnItemEx("ExplosionEffect1",0,0,16)
stop
}
}

actor HSHMetoolShooterSummonTeleportStart : HSHEnemyTeleportStart
{
States
{
Death:
TNT1 A 0 A_SpawnItemEx("HSHMetoolShooterSummonTeleport",0,0,0,0,0,-24)
stop
}
}

actor HSHMetoolShooterSummonTeleport : HSHEnemyTeleport
{
States
{
Death:
TNT1 A 0 A_Stop
TNT1 A 1 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET)
TNT1 A 1 A_SpawnItemEx("HSHMetoolShooterSummon", 0, 0, 16, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
stop
}
}

actor HSHMetoolShooterSummon : HSHSummonBase
{
+THRUACTORS
height 16
radius 16
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
Goto EnemySummon

EnemySummon:
METT D 2 A_ChangeVelocity(0,0,8,CVF_REPLACE|CVF_RELATIVE)
METT D 1 A_JumpIf(z-floorz<=0,"Land")
wait

Land:
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,0,0,1)
Goto MetoolLook

MetoolLook:
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT D 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
METT D 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
loop

Missile:
METT E 1 A_FaceTracer(0,0) TNT1 A 0 A_CountDown
METT E 1 A_FaceTracer(0,0) TNT1 A 0 A_CountDown
TNT1 A 0 A_PlaySoundEx("weapon/MetoolShoot","Weapon")
TNT1 A 0 A_CustomMissile("HSHMetoolShot",0,0,0,CMF_AIMDIRECTION, pitch)
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT BBBBB 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT BBBBB 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT BBBBB 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT BBBBB 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT BBBBB 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT BBBBB 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT BBBBB 1 A_CountDown
METT EE 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT DDDDD 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT DDDDD 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT DDDDD 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT DDDDD 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT DDDDD 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT DDDDD 1 A_CountDown
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1) METT DDDDD 1 A_CountDown
Goto MetoolLook

Death:
TNT1 A 0 A_PlaySound("misc/metdie")
TNT1 A 1 A_SpawnItemEx("ExplosionEffect1",0,0,16)
stop
}
}

Actor HSHMetoolShot : HSHShot
{
damagetype "HyperStormHSpawns"
Obituary "$OB_HYPERSTORMHAKKAI8"
Damage (10)
}

actor HSHHammerJoeSummonTeleportStart : HSHEnemyTeleportStart
{
States
{
Death:
TNT1 A 0 A_SpawnItemEx("HSHHammerJoeSummonTeleport",0,0,0,0,0,-24)
stop
}
}

actor HSHHammerJoeSummonTeleport : HSHEnemyTeleport
{
States
{
Death:
TNT1 A 0 A_Stop
TNT1 A 1 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET)
TNT1 A 1 A_SpawnItemEx("HSHHammerJoeSummon", 0, 0, 16, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
stop
}
}

actor HSHHammerJoeSummon : HSHSummonBase
{
Translation "192:192=184:184", "198:198=128:128"
+THRUACTORS
height 16
radius 16
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
Goto EnemySummon

EnemySummon:
HJOE D 2 A_ChangeVelocity(0,0,8,CVF_REPLACE|CVF_RELATIVE)
HJOE AABBCCDD 1 A_JumpIf(z-floorz<=0,"Land")
Goto EnemySummon+2

Land:
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,0,0,1)
Goto HammerJoeLook

HammerJoeLook:
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE A 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE A 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE B 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE B 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE C 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE C 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE D 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE D 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
loop

Missile:
TNT1 A 0 A_Explode(10, 75, 0) TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE AABBCCDD 1 A_FaceTracer(0,0) TNT1 AAAAAAAA 0 A_CountDown
TNT1 A 0 A_Explode(10, 75, 0) TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE AABBCCDD 1 A_FaceTracer(0,0) TNT1 AAAAAAAA 0 A_CountDown
TNT1 A 0 A_Explode(10, 75, 0) TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE EEFFGGHH 1 A_FaceTracer(0,0) TNT1 AAAAAAAA 0 A_CountDown
TNT1 A 0 A_Explode(10, 75, 0) TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE IIFFGGHH 1 A_FaceTracer(0,0) TNT1 AAAAAAAA 0 A_CountDown
TNT1 A 0 A_PlaySoundEx("weapon/superboost","Weapon")
TNT1 A 0 A_CustomMissile("HSHHammerJoeHammer",8,0,0,CMF_AIMDIRECTION, pitch)
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
HJOE JJJJJJJJJJJJJJJJJJJJ 1 A_CountDown
Goto HammerJoeLook

Death:
TNT1 A 0 A_PlaySound("misc/metdie")
TNT1 A 1 A_SpawnItemEx("ExplosionEffect2",0,0,32)
stop
}
}

Actor HSHHammerJoeHammer : HSHShot
{
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
}
}

actor HSHJamacySummonTeleportStart : HSHEnemyTeleportStart
{
States
{
Death:
TNT1 A 0 A_SpawnItemEx("HSHJamacySummonTeleport",0,0,0,0,0,-24)
stop
}
}

actor HSHJamacySummonTeleport : HSHEnemyTeleport
{
States
{
Death:
TNT1 A 0 A_Stop
TNT1 A 1 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET)
TNT1 A 1 A_SpawnItemEx("HSHJamacySummon", 0, 0, 16, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
stop
}
}

actor HSHJamacySummon : HSHSummonBase
{
Obituary "$OB_HYPERSTORMHAKKAI10"
damage (40)
height 16
radius 16
const int SPD = 20;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
Goto EnemySummon

EnemySummon:
JMC2 C 2 A_ChangeVelocity(0,0,8,CVF_REPLACE|CVF_RELATIVE)
JMC2 C 1 A_JumpIf(z-floorz<=0,"Land")
wait

Land:
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,0,0,1)
Goto JamacyLook

JamacyLook:
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
JMC2 C 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
JMC2 C 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
loop

Missile:
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
JMC2 C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
JMC2 C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
JMC2 C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
JMC2 C 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
JMC2 D 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
JMC2 D 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
JMC2 D 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
JMC2 D 1 A_FaceTracer(0,0) TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_ChangeVelocity(SPD,0,MOMZ,CVF_REPLACE|CVF_RELATIVE) TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfTargetInLOS("Missile", 0, "MissileHold")
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
TNT1 A 0
Goto JamacyLook

Death:
TNT1 A 0 A_PlaySound("misc/metdie")
TNT1 A 1 A_SpawnItemEx("ExplosionEffect1",0,0,16)
stop
}
}

actor HSHJunkGolemSummonTeleportStart : HSHEnemyTeleportStart
{
States
{
Death:
TNT1 A 0 A_SpawnItemEx("HSHJunkGolemSummonTeleport",0,0,0,0,0,-24)
stop
}
}

actor HSHJunkGolemSummonTeleport : HSHEnemyTeleport
{
States
{
Death:
TNT1 A 0 A_Stop
TNT1 A 1 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET)
TNT1 A 1 A_SpawnItemEx("HSHJunkGolemSummon", 0, 0, 16, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
stop
}
}

actor HSHJunkGolemSummon : HSHSummonBase
{
+THRUACTORS
height 32
radius 16
const int OFS = 16;
const int HGT = 88;
reactiontime 350
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
Goto EnemySummon

EnemySummon:
JGLM A 2 A_ChangeVelocity(0,0,8,CVF_REPLACE|CVF_RELATIVE)
JGLM A 1 A_JumpIf(z-floorz<=0,"Land")
wait

Land:
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,0,0,1)
Goto JunkGolemLook

JunkGolemLook:
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
JGLM A 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveToTarget("HyperStormHCooldownGiver",1)
JGLM A 1 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
TNT1 A 0 A_Countdown TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
loop

Missile:
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*20)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*19)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*18)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*17)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*16)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*15)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*14)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*13)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*12)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*11)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*10)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*9)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*8)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*7)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*6)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*5)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*4)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*3)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*2)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*1)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
JGLM A 1 A_FaceTracer(0,0) TNT1 A 0 A_SpawnItemEx("HSHJunkGolemCubeFX",0,0,HGT+(OFS*0)) TNT1 A 0 A_Countdown
TNT1 A 0 A_PlaySoundEx("weapon/superarmuse","Weapon")
TNT1 A 0 A_CustomMissile("HSHJunkGolemCube",32,0,0,CMF_AIMDIRECTION,pitch)
JGLM BBBCCCCCCBBB 1 A_Countdown
JGLM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Countdown
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto JunkGolemLook

Death:
TNT1 A 0 A_PlaySound("misc/metdie")
TNT1 A 1 A_SpawnItemEx("ExplosionEffect2",0,0,32)
stop
}
}

Actor HSHJunkGolemCubeFX : BasicClientSide
{
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
JGLM D 1
stop
}
}

Actor HSHJunkGolemCube : HSHShot
{
damagetype "HyperStormHSpawns"
Obituary "$OB_HYPERSTORMHAKKAI11"
Damage (40)
Speed 45
radius 32
height 64
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 1
JGLM D 1
wait
Death:
TNT1 A 0 A_Quake(3,10,0,200,0)
TNT1 A 0 A_PlaySoundEx("weapon/gutsmangbreak","Body")
TNT1 AAAAAA 0 A_SpawnItemEx("HSHJunkGolemDebris",0,0,1,random(4,8),0,random(5,10),random(0,360))
NAPA EFGHIJKLMNOPQRS 2
stop
}
}

actor HSHJunkGolemDebris
{
+MISSILE
+BOUNCEONWALLS
+CANBOUNCEWATER
+BOUNCEONFLOORS
+BOUNCEONCEILINGS
+THRUACTORS
BounceCount 1
Radius 8
Height 8
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1 A_Jump(256,"A","B")
wait
A:
JGLM E 1
wait
B:
JGLM F 1
wait
}
}

actor HSHSuctionFlag : VCOnce {}

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
}

/*actor HSHDamageProtection : PowerProtection
{
Powerup.Duration 0x7FFFFFFD
damagefactor "Normal", 0.70
}*/


actor HSHSmoke_CI : 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,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",2,"Pickup2")
TNT1 A 0
//TNT1 A 0 A_SpawnItemEx("MarsSmoke", random(8, 24), 0, random(24, 56), random(2,4), 0, random(1,4), random(0, 359))
stop
Pickup2:
TNT1 A 0 A_JumpIfInventory("HSHSmokeCooldown2",1,"Failed")
TNT1 A 0 A_GiveInventory("HSHSmokeCooldown2")
TNT1 AA 0 A_SpawnItemEx("HSHSmoke2", random(8, 24), 0, random(40, 56), random(2,4), 0, random(1,4), random(0, 359))
stop
Pickup3:
TNT1 A 0 A_JumpIfInventory("HSHSmokeCooldown3",1,"Failed")
TNT1 A 0 A_GiveInventory("HSHSmokeCooldown3")
TNT1 AA 0 A_SpawnItemEx("HSHSmoke", random(8, 24), 0, random(40, 56), random(2,4), 0, random(1,4), random(0, 359))
stop
Pickup4:
TNT1 AA 0 A_SpawnItemEx("HSHSmoke", random(8, 24), 0, random(40, 56), random(2,4), 0, random(1,4), random(0, 359))
stop
Failed:
TNT1 A 0 
stop
}
}


Actor HSHSmokeCooldown2 : Powerup
{
powerup.duration 6
}

Actor HSHSmokeCooldown3 : Powerup
{
powerup.duration 2
}

actor HSHSmoke : BasicClientSide
{
-CLIENTSIDEONLY//for some reason it doesn't show up online without this flag
renderstyle translucent
alpha 0.8
PROJECTILE
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ACS_NamedExecuteWithResult("core_alphaprojectile", 0, 0, 6553, 192)//ACS_NamedExecuteWithResult("core_alphaprojectile", CallACS("core_getptrtid", AAPTR_TARGET), APROJ_TEAM, 6553, 192)
TNT1 A 0 A_FadeOut(random(0.7,0.8))
MARD EEFFGGHH 2 ThrustthingZ(0,2,0,1)
stop
}
}

actor HSHSmoke2 : BasicClientSide
{
-CLIENTSIDEONLY
renderstyle translucent
alpha 0.8
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_FadeOut(random(0.7,0.8))
MARD EEFFGGHH 1 ThrustthingZ(0,2,0,1)
stop
}
}

Actor HSHSmokeWatcher
{
+MISSILE
-SOLID
+NOGRAVITY
+NOINTERACTION
Height 0
Radius 0
States
{
Spawn: 
TNT1 AAA 1
Spawn2:
TNT1 A 0
TNT1 A 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_GiveToTarget("HSHSmoke_CI",1)
loop
Death:
TNT1 A 0
stop
}
}