actor ClusterBombWep_NormalBar : NormalBar{args 92, 9}
actor ClusterBombWep : BaseMM8BDMWep
{
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Weapon.SlotNumber 5
Inventory.Pickupmessage "$PU_CLUSTERBOMB"
Obituary "$OB_CLUSTERBOMB"
Tag "$TAG_CLUSTERBOMB"
weapon.ammotype "ClusterBombAmmo"
inventory.icon "CLBMICON"
States
{
SpawnLoop:
CLBM Z 1
loop
Ready:
CLBM A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_CLUSTERBOMB)
CLBM A 0 A_JumpIfNoAmmo("ReadyNoAmmo")
CLBM A 1 A_WeaponReady
Goto Ready+2
ReadyC: Goto Ready+2
ReadyNoAmmo:
CLBM J 1 A_WeaponReady
CLBM J 0 A_JumpIfNoAmmo("ReadyNoAmmo")
Goto Ready+1
Deselect:
CLBM A 0
goto DeselectSwap
Select:
CLBM A 0
goto SelectSwap
Fire:
CLBM A 0 A_JumpIfNoAmmo("NoAmmo")
CLBM A 0 A_PlaySoundEx("weapon/deepdiggerthrow","Weapon")
CLBM A 0 A_FireCustomMissile("ClusterBomb",0,1,8,0)
CLBM BCDEFG 2
CLBM HI 2
CLBM A 6
CLBM A 0 A_Refire
Goto Ready+1
NoAmmo:
CLBM J 1 ACS_NamedExecute("core_NoAmmo",0)
Goto ReadyNoAmmo
}
}

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


actor ClusterBomb : BasicProjectile
{
Translation "192:129=92:92", "198:198=9:9"
PROJECTILE
damagetype "ClusterBomb"
Obituary "$OB_CLUSTERBOMB"
+SKYEXPLODE
+BOUNCEONWALLS
-NOGRAVITY
bouncefactor 0.5
damage (0)
Radius 16
Height 16
speed 50
mass 1
scale 3.5
States
{
Spawn:
CLBM X 0
CLBM X 0 ThrustThingZ(0, 12, 0, 1)
SpawnLoop:
CLBM X 1
loop
Death:
TNT1 A 0 A_CheckCeiling("Ceiling")
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,-5,-5,7,0,0,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,0,-5,7,0,0,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,5,-5,7,0,0,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,5,0,7,0,0,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,5,5,7,0,0,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,0,5,7,0,0,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,-5,5,7,0,0,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,8,-5,0,7,0,0,0)
Goto RealDeath
Ceiling:
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,-5,-5,-5,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,0,-5,-5,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,5,-5,-5,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,5,0,-5,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,5,5,-5,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,0,5,-5,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,-5,5,-5,0)
TNT1 A 0 A_SpawnItemEx("ClusterBombThrowSplit",0,0,0,-5,0,-5,0)
Goto RealDeath
RealDeath:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/clusterminibomb","Weapon")
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_Explode(CallACS("vile_cbm_damage",25),104,0,0,32)
TNT1 A 0 A_SetScale(3.5)
MXP2 ABCDEFGHIJKLMNOPQRST 1 A_SetTics(mass)
stop
}
}

actor ClusterBombThrowSplit : BasicProjectile
{
Translation "192:129=92:92", "198:198=9:9"
PROJECTILE
damagetype "ClusterBombSplit"
Obituary "$OB_CLUSTERBOMB"
+SKYEXPLODE
-NOGRAVITY
+THRUACTORS
damage (0)
Radius 10
Height 10
speed 60
scale 2.5
mass 1
reactiontime 350
States
{
Spawn:
TNT1 A 0
CLBM Y 3
CLBM Y 0 A_ChangeFlag(THRUACTORS,0)
Spawn2:
CLBM Y 1 A_Countdown
loop

Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_SetScale(1.5,1.5)
TNT1 A 0 A_PlaySound("weapon/clusterminibomb","Weapon",0.6)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_Explode(CallACS("vile_cbm_damage",8),80,0,0,81)
MXP2 ABCDEFGHIJKLMNOPQRST 1 A_SetTics(mass)
stop
}
}