actor ChainBlastWep_NormalBar : NormalBar{args 227, 199}
actor ChainBlastWep : BaseMM8BDMWep
{
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Weapon.SlotNumber 5
Inventory.Pickupmessage "$PU_CHAINBLAST"
Obituary "$OB_CHAINBLAST"
Tag "$TAG_CHAINBLAST"
weapon.ammotype "ChainBlastAmmo"
inventory.icon "CBLAICON"
States
{
SpawnLoop:
11WP C 1
loop
Ready:
CBLA A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_CHAINBLAST)
CBLA A 0 A_JumpIfNoAmmo("ReadyNoAmmo")
CBLA A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
ReadyNoAmmo:
CBLA I 1 A_WeaponReady
CBLA I 0 A_JumpIfNoAmmo("ReadyNoAmmo")
Goto Ready+1
Deselect:
CBLA A 0
Goto DeselectSwap
Select:
CBLA A 0
Goto SelectSwap
Fire:
CBLA D 0 A_JumpIfNoAmmo("NoAmmo")
CBLA B 1
CBLA C 1
CBLA D 0 A_PlaySoundEx("weapon/chainblastthrow", "Weapon")
CBLA D 0 A_FireCustomMissile("ChainBomb",0,1,0,0)
CBLA D 2 
CBLA EF 2 A_JumpIfInventory("ChainBlastP_P",1,"FireEnd") 
CBLA GH 3 A_JumpIfInventory("ChainBlastP_P",1,"FireEnd")
TNT1 AA 3 A_JumpIfInventory("ChainBlastP_P",1,"FireEnd") 
FireEnd:
CBLA A 0 A_JumpIfNoAmmo("NoneWait")
CBLA A 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
goto Ready+1
NoneWait:
CBLA I 3 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
goto Ready+1

NoAmmo:
CBLA I 1 ACS_NamedExecute("core_noammo",0)
Goto Ready+1
}
}

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


actor ChainBlastP_P : Powerup {Powerup.Duration 4}

actor ChainBomb : BasicProjectile
{
PROJECTILE
+SKYEXPLODE
+HITTRACER
+DONTREFLECT

renderstyle "Translucent"
damagetype "ChainBlast"
Obituary "$OB_CHAINBLAST"
Radius 16
Height 16
scale 2.5
damage (0)
speed 45
var int User_PosX;
var int User_PosZ;
var int User_angle;
var int User_ChainBlastCount;
States
{
Spawn:
TNT1 AA 0
CBLB AAAABBBBCCCCDDDD 1 //A_GiveInventory("BajookieHoming")
loop
Crash:
XDeath:
Death:
REMI A 0 A_Stop
CBLB A 0 A_PlaySound("weapon/crashland")
REMI A 0 A_JumpIfInventory("MM8BDMPlayer", 1, "PrepTracer", AAPTR_TRACER)
REMI A 0 A_Stop
goto Latch
PrepTracer:
CBLB A 0 A_GiveToTarget("ChainBlastP_P",1)
TNT1 A 0 A_SetUserVar(User_PosX,random(16,32))
TNT1 A 0 A_SetUserVar(User_PosZ,random(16,48))
TNT1 A 0 A_GiveInventory("ChainBlastFlag",1,AAPTR_TRACER)
REMI B 0 ACS_NamedExecuteWithResult("core_remotemineoffset")
WATS B 0 ACS_NamedExecuteWithResult("core_changeClientProperty", APROP_Alpha, 20000, AAPTR_TRACER) // 0.6 * 65536
Goto Latch
Latch:
CHBT A 0 A_Changeflag("NOINTERACTION",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",4,"Latch2")
CHBT D 0 A_JumpIfInventory("NoRemoteMineLatch", 1, "Detonate", AAPTR_TRACER)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT A 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT A 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT A 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT A 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT B 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT B 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT C 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT C 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT C 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT C 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT D 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT D 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT D 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT D 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

TNT1 A 0 A_GiveInventory("CutterFlag",1)
Goto Latch
Latch2:
CHBT A 0 A_Changeflag("NOINTERACTION",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",7,"Latch3")
CHBT D 0 A_JumpIfInventory("NoRemoteMineLatch", 1, "Detonate", AAPTR_TRACER)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT A 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT A 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT B 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT B 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT F 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT F 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT C 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT C 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT G 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT G 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT D 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT D 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT H 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT H 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

TNT1 A 0 A_GiveInventory("CutterFlag",1)
Goto Latch2
Latch3:
CHBT A 0 A_Changeflag("NOINTERACTION",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",8,"Detonate")
CHBT D 0 A_JumpIfInventory("NoRemoteMineLatch", 1, "Detonate", AAPTR_TRACER)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT E 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT F 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT F 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT F 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT F 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT G 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT G 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT G 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT G 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT H 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT H 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT H 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
CHBT D 0 A_JumpIfInventory("BajookieBlast", 1, "Detonate",AAPTR_TRACER)
CHBT A 0 A_SetUserVar("user_angle", user_angle + 12)
CHBT E 0 A_PlaySound("weapon/chainblastbeep",0,0.6,0,0.8)
CHBT H 1 A_Warp(AAPTR_TRACER,User_PosX,0,User_PosZ,user_angle,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)

TNT1 A 0 A_GiveInventory("CutterFlag",1)

Goto Latch3
Detonate:
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,32,0,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar(User_ChainBlastCount,ACS_NamedExecuteWithResult("vile_chainblastcheck",0))
RDUS A 0 A_Explode(CallACS("vile_cbm_damage",21), 80+(User_ChainBlastCount*20), 0, 0 , 80+(User_ChainBlastCount*20))
RDUS A 0 A_PlaySoundEx("weapon/chainblastboom", "Weapon")
TNT1 A 0 A_GiveInventory("BajookieBlast",1,AAPTR_TRACER)
TNT1 A 0 A_SetScale(2.5+(User_ChainBlastCount)/2)
WATS B 0 ACS_NamedExecuteWithResult("core_changeClientProperty", APROP_Alpha, 65536, AAPTR_TRACER) // 0.6 * 65536
RDUS ACF 1
TNT1 A 0 A_TakeInventory("ChainBlastFlag",1,0,AAPTR_TRACER)
RDUS GHIJKLMNO 1 A_FadeOut(0.08)
stop
Exit:
TNT1 A 1
stop
}
}

actor ChainBlastFlag : Inventory
{
inventory.amount 1
inventory.maxamount 12
}

actor BajookieBlast : Powerup {Powerup.duration 5}