actor ElectricBurstWep_NormalBar : NormalBar { args 152, 105 }

actor ElectricBurstWep : BaseMM8BDMWep
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_ELECTRICBURST"
Obituary "$OB_ELECTRICBURST"
Tag "$TAG_ELECTRICBURST"
weapon.ammotype "ElectricBurstAmmo"
inventory.icon "ELECBRST"
States
{
SpawnLoop:
EBRS A 1
loop
Ready:
ELBU N 0 ACS_NamedExecuteWithResult("core_weaponcolor",CLR_ELECTRICBURST)
ELBU N 1 A_WeaponReady
Goto Ready+1
Deselect:
ELBU N 0
goto DeselectSwap
Select:
ELBU N 0
goto SelectSwap
Fire:
ELBU A 0 A_JumpIfNoAmmo("NoAmmo")
ELBU A 0 A_PlaySoundEx("weapon/electricburst","Weapon")
ELBU A 0 A_FireCustomMissile("ElectricBurstShot",0,1,8,0)
ELBU BC 1
ELBU D 0 A_GiveInventory("WeaponCharge", 30)
ELBU D 0 A_JumpIfInventory("IsBot", 1, "BotCheck")
Goto Hold
Altfire:
ELBU A 0 A_JumpIfNoAmmo("NoAmmo")
ELBU A 0 A_PlaySoundEx("weapon/electricburst","Weapon")
ELBU A 0 A_FireCustomMissile("ElectricBurstShot",0,1,8,0)
ELBU BC 1
ELBU D 0 A_GiveInventory("WeaponCharge", 30)
Goto Hold
Hold:
ELBU D 1 A_RailWait
ELBU D 0 A_TakeInventory("WeaponCharge", 1)
ELBU D 0 A_Refire
AltHold:
ELBU D 0 A_ClearRefire
ELBU D 0 A_GiveInventory("ElectricBurstFlag",2)
ELBU D 1
ELBU D 0 A_TakeInventory("ElectricBurstFlag",999)
AltHoldLoop:
ELBU D 1 A_TakeInventory("WeaponCharge", 1)
ELBU D 0 A_JumpIfInventory("WeaponCharge",1,"AltHoldLoop")
AltHoldEnd:
ELBU EFGH 2
ELBU IJK 2 A_PlaySoundEx("weapon/electricreload","Weapon")
ELBU K 0 A_TakeInventory("ElectricBurstFlag",999)
Goto Ready+1
NoAmmo:
ELBU N 0 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
BotCheck:
ELBU D 5 A_RailWait
Goto AltHold
}
}

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

actor ElectricBurstFlag : Inventory
{
inventory.amount 1
inventory.maxamount 2
}

actor ElectricBurstShot : BasicFastProjectile
{
+FORCEXYBILLBOARD
+RIPPER
+BRIGHT
Damage (CallACS("burst_cbm_damage",20))
Height 20
Radius 20
var int user_PierceRipper;
damagetype "ElectricBurst"
Obituary "$OB_ELECTRICBURST"
speed 60
reactiontime 1
States
{
Spawn:
ELB1 A 1 A_GiveInventory("ElectricBurstDetCheck",1)
ELB1 A 0 A_SpawnItemEx("ElectricBurstTrail", -2, Random(-22, 22), Random(-20, 20), 0, 0, 0, 0, SXF_WEPFXCOLOR)
ELB1 A 1 A_GiveInventory("ElectricBurstDetCheck",1)
ELB1 A 0 A_SpawnItemEx("ElectricBurstTrail", -2, Random(-22, 22), Random(-20, 20), 0, 0, 0, 0, SXF_WEPFXCOLOR)
ELB1 B 1 A_GiveInventory("ElectricBurstDetCheck",1)
ELB1 B 0 A_SpawnItemEx("ElectricBurstTrail", -2, Random(-22, 22), Random(-20, 20), 0, 0, 0, 0, SXF_WEPFXCOLOR)
ELB1 B 1 A_GiveInventory("ElectricBurstDetCheck",1)
ELB1 B 0 A_SpawnItemEx("ElectricBurstTrail", -2, Random(-22, 22), Random(-20, 20), 0, 0, 0, 0, SXF_WEPFXCOLOR)
ELB1 B 0 A_PlaySoundEx("weapon/electrictravel", "body")
loop
Death:
ELB1 C 0 A_CustomMissile("ElectricBurstBit",0,0,0,2,0)
ELB1 C 0 A_CustomMissile("ElectricBurstBit",0,0,45,2,0)
ELB1 C 0 A_CustomMissile("ElectricBurstBit",0,0,315,2,0)
ELB1 C 0 A_CustomMissile("ElectricBurstBit",0,0,180,2,0)
ELB1 C 0 A_CustomMissile("ElectricBurstBit",0,0,145,2,0)
ELB1 C 0 A_CustomMissile("ElectricBurstBit",0,0,225,2,0)
ELB1 C 0 A_PlaySoundEx("weapon/electricburst", "body")
ELB1 CD 2
stop
}
}

actor ElectricBurstDetCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInTargetInventory("ElectricBurstFlag",2,"Pickup2")
stop
Pickup2:
TNT1 A 0 A_CountDown
stop
}
}

actor ElectricBurstBit : BasicProjectile
{
+FORCEXYBILLBOARD
+BRIGHT
Damage (CallACS("burst_cbm_damage",10))
Height 15
Radius 15
damagetype "ElectricBurst"
Obituary "$OB_ELECTRICBURST"
speed 30
States
{
Spawn:
ELB2 AB 2
ELB2 B 0 A_PlaySoundEx("weapon/electricbits", "body")
loop
Death:
ELB2 CD 2
stop
}
}

actor ElectricBurstTrail : BasicGraphicEffect
{
-NOINTERACTION
+DONTSPLASH
+FORCEXYBILLBOARD
+BRIGHT
renderstyle translucent
damage (0)
States
{
Spawn:
ELB1 EFG 2 A_Fadeout(0.2)
loop
}
}