actor StormCloudWep_NormalBar : NormalBar{args 4,67}
actor StormCloudWep_ScriptBar : ScriptBar {}
actor StormCloudWep : BaseMM8BDMWep
{
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Weapon.SlotNumber 4
Inventory.Pickupmessage "$PU_STORMCLOUD"
Obituary "$OB_STORMCLOUD"
Tag "$TAG_STORMCLOUD"
weapon.ammotype "StormCloudAmmo"
inventory.icon "STCLICON"
States
{
SpawnLoop:
STCL Z -1
loop
Ready:
STCL A 0 ACS_NamedExecuteWithResult("core_weaponcolor",CLR_STORMCLOUD)
STCL A 0 A_JumpIfInventory("StormCloudCooldownFlag",1,"ReadyCooldown")
STCL A 1 A_WeaponReady
Goto Ready+1
ReadyCooldown:
STCL A 1 A_WeaponReady(WRF_NOFIRE)
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
STCL A 0 
goto DeselectSwap
Select:
STCL A 0 
goto SelectSwap
Fire:
STCL A 0 A_JumpIfNoAmmo("NoAmmo")
STCL A 2 
STCL G 0 A_PlaySoundEx("weapons/mmqg/stormcloudfire","Weapon")
HTRN G 0 A_FireCustomMissile("StormCloud",0,1,8,0)
STCL BC 3
STCL A 4
STCL A 0 A_GiveInventory("StormCloudCooldownFlag",1)
STCL A 0 A_SpawnItemEx("StormCloudCooldowner")
Goto Ready+1
NoAmmo:
STCL A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor StormCloudAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor StormCloud : BasicProjectile
{
PROJECTILE
+RIPPER
+FORCEXYBILLBOARD
+HEXENBOUNCE
bouncefactor 0.7
Radius 10
Height 10
obituary "$OB_STORMCLOUD"
damagetype "StormCloud"
scale 3.75
damage (0)
speed 16
reactiontime 24
renderstyle "translucent"
States
{
Spawn:
STCL A 0
STCL DEF 3 A_ScaleVelocity(0.66)
STCL D 0 ACS_NamedExecuteWithResult("core_alphaprojectile", CallACS("core_getptrtid", AAPTR_TARGET), APROJ_TEAM, 6553, 192) // 6553 = 0.1 * 65536
STCL G 0 A_PlaySoundEx("weapons/mmqg/stormcloudshock","Weapon",1)
DangerDanger:
TNT1 AA 0 A_SpawnItemEx("ThunderWoolSparkFX", frandom(-WEPC_10TW_RADIUS, WEPC_10TW_RADIUS), frandom(-WEPC_10TW_RADIUS, WEPC_10TW_RADIUS), -16+frandom(0, WEPC_10TW_RADIUS), 0, 0, 0, 0, SXF_WEPFXCOLOR)
STCL GH 3 A_Explode(CallACS("mmqg_cbm_damage",17),96,0,0,36)
TNT1 AA 0 A_SpawnItemEx("ThunderWoolSparkFX", frandom(-WEPC_10TW_RADIUS, WEPC_10TW_RADIUS), frandom(-WEPC_10TW_RADIUS, WEPC_10TW_RADIUS), -16+frandom(0, WEPC_10TW_RADIUS), 0, 0, 0, 0, SXF_WEPFXCOLOR)
STCL IJ 3 A_Explode(CallACS("mmqg_cbm_damage",17),96,0,0,36)
STCL J 0 A_Countdown
loop
Death:
STCL FED 3
stop
}
}

actor StormCloudProtect : PowerProtection
{
Powerup.Duration 8
damagefactor "StormCloud", 0.0
}

actor StormCloudCooldownFlag : Once {}

actor StormCloudCooldowner : BasicCooldowner
{
reactiontime 46
States
{
Spawn:
TNT1 A 0
Spawn2:
TNT1 A 1 A_GiveInventory("StormCloudCooldownerFunc",1)
loop
Death:
TNT1 A 0 A_TakeFromTarget("StormCloudCooldownFlag",1)
stop
}
}

actor StormCloudCooldownerFunc : BasicCooldownerFunc
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInTargetInventory("StormCloudCooldownFlag",1,"PickupBasic")
goto PickupRemove
}
}
