actor StrikeLightningWep_NormalBar : NormalBar { args 108, 93 }
actor StrikeLightningWep : BaseMM8BDMWep
{
Weapon.AmmoUse 3
Weapon.AmmoGive 28
Weapon.SlotNumber 3
Inventory.Pickupmessage "$PU_STRIKELIGHTNING"
Obituary "$OB_STRIKELIGHTNING"
Tag "$TAG_STRIKELIGHTNING"
weapon.ammotype "StrikeLightningAmmo"
inventory.icon "STKLICON"
States
{
SpawnLoop:
STKL Z 1
loop
Ready:
STKL A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_STRIKELIGHTNING)
STKL A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
STKL A 0
goto DeselectSwap
Select:
STKL A 0
goto SelectSwap
Fire:
STKL A 0 A_JumpIfNoAmmo("NoAmmo")
STKL A 0 A_PlaySoundEx("weapon/lightningbolt","Weapon")
STKL A 0 A_FireCustomMissile("StrikeLightningBoltPinpoint",0,1,8,0)
STKL BC 3
STKL A 4
STKL A 0 
STKL A 0 A_Refire
goto Ready+1
NoAmmo:
STKL A 1 ACS_NamedExecute("core_noammo",0)
Goto Ready+1
}
}

actor StrikeLightningAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 33
+INVENTORY.IGNORESKILL
}

actor StrikeLightningStartFX1 : BasicGraphicEffect
{
+BRIGHT
Translation "192:192=108:108","198:198=93:93"
States
{
Spawn:
STKG BCD 3
stop
}
}

actor StrikeLightningStartFX2 : StrikeLightningStartFX1
{
+BRIGHT
States
{
Spawn:
STKG EFGHIJ 3
stop
}
}

actor StrikeLightningBoltFX : StrikeLightningStartFX1
{
+BRIGHT
States
{
Spawn:
STKG K 0
STKG K 0 A_ChangeVelocity(Random(-2,2),Random(-2,2),Random(-2,2),CVF_REPLACE)
STKG KLM 1
stop
}
}


actor StrikeLightningBoltPinpoint : BasicFastProjectile
{
+BRIGHT
Translation "192:192=108:108","198:198=93:93"
radius 16
height 16
speed 100
var int user_PierceRipper;
+SKYEXPLODE
+DONTBLAST
+RIPPER
Obituary "$OB_STRIKELIGHTNING"
damagetype "StrikeLightning"
damage (CallACS("vile_cbm_damage",12))
reactiontime 20
MissileType "StrikeLightningBoltFX"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_CountDown
loop
Death:
TNT1 A 5 A_SpawnItemEx("StrikeLightningBolt",0,0,-(z-floorz),0,0,0,0,1)
stop
}
}


actor StrikeLightningBoltTracer : BasicProjectile
{
+BRIGHT
Translation "192:192=108:108","198:198=93:93"//,"4:4=4:4"
PROJECTILE
+DONTSPLASH
+NOEXPLODEFLOOR
+NOCLIP
+DONTBLAST
Damage (0)
Speed 60
Radius 16
Height 96
Scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_ChangeFlag("FLOORHUGGER", 1)
TNT1 A 0 A_Changeflag("NOCLIP", 0)
TNT1 A 10
Goto XDeath
Death:
TNT1 A 0
stop
Crash:
XDeath:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("StrikeLightningBolt",0,0,0,0,0,0,0,1)
stop
}
}
actor StrikeLightningBoltTracer2 : StrikeLightningBoltTracer
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_ChangeFlag("FLOORHUGGER", 1)
TNT1 A 0 A_Changeflag("NOCLIP", 0)
TNT1 A 5
Goto XDeath
}
}

actor StrikeLightningBolt : BasicExplosion
{
+BRIGHT
PROJECTILE
+THRUACTORS
+NOEXPLODEFLOOR
+FORCEYBILLBOARD
+FLOORHUGGER
+DONTBLAST
+OLDRADIUSDMG
Damage (0)
DamageType "StrikeLightning"
Obituary "$OB_STRIKELIGHTNING"
height 32
radius 16
scale 2.5
states
{
Spawn:
STKG N 0
STKG N 1 A_SpawnItemEx("StrikeLightningExtend",0,0,355,0,0,0,0,1)
STKG N 0 A_PlaySoundEx("weapon/lightningbolt","Weapon")
STKG N 0 A_Explode(CallACS("vile_cbm_damage",12),96,0,0,24)
STKG O 1
STKG P 0 A_SpawnItemEx("StrikeLightningBoltFX",Random(32,96),Random(32,96),32,0,0,0,0,1)
STKG P 0 A_SpawnItemEx("StrikeLightningBoltFX",Random(-32,-96),Random(-32,-96),64,0,0,0,0,1)
STKG P 0 A_SpawnItemEx("StrikeLightningBoltFX",Random(32,96),Random(32,96),96,0,0,0,0,1)
STKG P 0 A_SpawnItemEx("StrikeLightningBoltFX",Random(-32,-96),Random(-32,-96),128,0,0,0,0,1)
STKG P 0 A_SpawnItemEx("StrikeLightningBoltFX",Random(32,96),Random(32,96),160,0,0,0,0,1)
STKG P 0 A_SpawnItemEx("StrikeLightningBoltFX",Random(-32,-96),Random(-32,-96),192,0,0,0,0,1)
STKG PQR 1
Stop
}
}

Actor StrikeLightningExtend : StrikeLightningBolt
{
-FLOORHUGGER
+CLIENTSIDEONLY
+NOINTERACTION
States
{
Spawn:
STKG S 0 
STKG S 0 A_JumpIf(ceilingz-z <= 32, "Death")
STKG S 0 A_SpawnItemEx("StrikeLightningExtend",0,0,160,0,0,0,0,1)
STKG STUV 1
stop
Death:
TNT1 A 0 
stop
}
}