ACTOR EmpoweredFlakCannon : FlakCannon
{
 Tag "$NEEmpFlak"
 Radius 20
 Weapon.Kickback 50
 Weapon.SelectionOrder 400
 Weapon.AmmoGive 30
 Weapon.AmmoType "NewShell"
 Weapon.AmmoUse 5
 Weapon.AmmoType2 "Missile"
 Weapon.AmmoUse2 5
 Weapon.KickBack 5
 Weapon.SisterWeapon "FlakCannon"
 DamageType SSG
 +WEAPON.NOAUTOFIRE
 +WEAPON.NOAUTOAIM
 +WEAPON.POWERED_UP
 +INVENTORY.UNDROPPABLE
 +FORCEXYBILLBOARD
 States
 {
  Spawn:
	DFKG Z -1
	Loop
  Ready:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	DFKG A 1 A_WeaponReady
	Loop
  Deselect:
	TNT1 A 0 ACS_NamedExecuteWithResult("SbarFix",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	DFKG A 1 A_Lower
	Goto Deselect+2
  Select:
	TNT1 A 0 ACS_NamedExecuteWithResult("SbarFix",0)
	TNT1 AAAAAAAAAAAA 0 A_Raise
	DFKG LMN 2
        TNT1 A 0 A_PlaySound("flak/select")
        DFKG A 8
	Goto Ready
  NoAmmo:
        DFKG A 4 A_PlaySound("Weapon/Empty", 2)
        Goto Ready+6
  Fire:
	TNT1 A 0 A_Recoil(10)
        DFKG B 1 Bright A_playsound("Weapon/DFLAKFIRE", 5)
	DFKG B 1 Bright Radius_Quake (16, 8, 0, 1, 0)
	DFKG BBBBBBBB 0 A_FireCustomMissile("DFlak",frandom(6,-6),1,frandom(1,-1),frandom(1,-1),0,frandom(6,-6))
        DFKG B 1 Bright A_ZoomFactor(0.85)
        DFKG C 1 A_ZoomFactor(0.9)
        DFKG C 1 A_ZoomFactor(0.910)
        DFKG C 1 A_ZoomFactor(0.920)
        DFKG C 1 A_ZoomFactor(0.930)
        DFKG C 1 A_ZoomFactor(0.940)
        DFKG C 1 A_ZoomFactor(0.950)
	DFKG C 1 A_ZoomFactor(0.960)
	DFKG C 2 A_ZoomFactor(0.980)
	DFKG C 2 A_ZoomFactor(1.0)
	//Don't go through reload if we don't have any ammo!
	TNT1 A 0 A_CheckReload
	DFKG DDEEFF 2
	DFKG G 2 A_PlaySound("Weapon/FLAKSNAP")
	DFKG HHOOII 2
	DFKG I 4
	DFKG JK 2
        TNT1 A 0 A_playsound("Weapon/FLAKRELD")
	DFKG L 6
	DFKG MNAA 2
	TNT1 A 0 A_ReFire
	DFKG A 2
        Goto Ready+7
	//TNT1 A 0 A_SpawnItemEx("ShrapnelCasing",30,5,25,Random(2,4),Random(3,6),Random(3,6),0)
  AltFire:
	DFKG A 0 A_GunFlash
	DFKG A 0 Bright A_playsound("Weapon/FLAKAFIR", 5)
	DFKG B 1 Bright Radius_Quake (8, 6, 0, 1, 0)
	DFKG B 3 Bright A_FireCustomMissile("DementedFlakSlug",0,1,2,4,0)
        DFKG B 1 Bright A_ZoomFactor(0.9)
        DFKG C 1 A_ZoomFactor(0.910)
        DFKG C 1 A_ZoomFactor(0.920)
        DFKG C 1 A_ZoomFactor(0.930)
        DFKG C 1 A_ZoomFactor(0.940)
        DFKG C 1 A_ZoomFactor(0.950)
        DFKG C 2 A_ZoomFactor(0.970)
	DFKG C 2 A_ZoomFactor(0.990)
	DFKG C 2 A_ZoomFactor(1.0)
	//Don't go through reload if we don't have any ammo!
	TNT1 A 0 A_CheckReload
	DFKG DDEEFF 2
	DFKG G 2 A_PlaySound("Weapon/FLAKSNAP")
	DFKG HHOOII 2
	DFKG I 4
	DFKG JK 2
        TNT1 A 0 A_playsound("Weapon/FLAKRELD")
	DFKG L 6
	DFKG MNAA 2
	TNT1 A 0 A_ReFire
	DFKG A 2
        Goto Ready+7
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DFKG A 1 Offset(0,30)
	DFKG A 1 Offset(0,40)
	DFKG A 1 Offset(0,50)
	DFKG A 1 Offset(0,60)
	DFKG A 1 Offset(0,70)
	TNT1 A 4 Offset(0,10)
	HGRN ABC 1 
	HGRN D 2
	HGRN EFG 1
	HGRN HI 2
	TNT1 A 15 A_PlayWeaponSound("weapons/hgrenadepin")
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1)
	HGNE A 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN J 1
	HGRN KLM 2
	HGRN NO 1
	TNT1 A 6
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
	TNT1 A 0 A_TakeInventory("Hand Grenade",1)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	DFKG A 1 Offset(0,70)
	DFKG A 1 Offset(0,60)
	DFKG A 1 Offset(0,50)
	DFKG A 1 Offset(0,40)
	DFKG A 1 Offset(0,30)
	Goto Ready
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DFKG A 1 Offset(0,30)
	DFKG A 1 Offset(0,40)
	DFKG A 1 Offset(0,50)
	DFKG A 1 Offset(0,60)
	DFKG A 1 Offset(0,70)
	TNT1 A 8 Offset(0,10)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1	
	TNT1 A 0 A_TakeInventory("MineAmmo",1)	  
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0)
	MINE HI 1
	MINE JK 2
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,2)
	TNT1 A 0 A_TakeInventory("Land Mine",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 5
	DFKG A 1 Offset(0,70)
	DFKG A 1 Offset(0,60)
	DFKG A 1 Offset(0,50)
	DFKG A 1 Offset(0,40)
	DFKG A 1 Offset(0,30)
	Goto Ready
 }
}


ACTOR FlakResidue 
 {
  +FORCEXYBILLBOARD
  +THRUACTORS
  BounceType Doom
  bouncefactor 0.25
  wallbouncefactor 0.20
  BounceSound "weapons/flak"
  radius 2
  height 2
  speed 45
  alpha 0.9
  scale 0.4
  states
 {
  Spawn:
	TNT1 AAAA 0 A_Jump(256, "Type1", "Type2", "Type3", "Type4")
  Type1:
	FKSD I 60
	Stop
  Type2:
	FKSD J 62
	Stop
  Type3:
	FKSD K 55
	Stop
  Type4:
	FKSD L 57
	Stop
  Death:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("ShrapnelCasing",0)
	Stop
  XDeath:
	TNT1 A 1
	Stop
 }
}

Actor Flak
{
Projectile
Species "Player"
Decal BulletChip
Radius 4
Height 4
Gravity 0.7
Damage (5*random(1,5))
Scale 0.5
DamageType "normal"
Speed 30
BounceSound "ricochet/hit"
BounceType doom
BounceFactor 0.7
WallBounceFactor 0.7
-NOGRAVITY
+RANDOMIZE
+FORCEXYBILLBOARD
+RIPPER
+DONTSPLASH
+THRUSPECIES
States
{
Spawn:
FKSD ABCDABCD 1 Bright Light("FLAKHI")
FKSD EFGHEFGHEFGH 1 Bright Light("FLAKLO")
TNT1 A 1 A_CustomMissile("FlakResidue",-5,0,0,CMF_AIMDIRECTION)
FKSD FGH 4 A_SpawnItem("ShrapnelSmoke",0)
Loop
Death:
FKSD IJKIJKIJK 1
FKSD KKKK 1 A_FadeOut(0.50)
Stop
}
}

Actor ShrapnelSmoke
{
Radius 1
Height 1
+NOGRAVITY
Scale 0.6
RenderStyle Translucent
Alpha 0.5
States
{
Spawn:
WSMK ABCD 3
Goto Death
Death:
WSMK E 3
Stop
}
}

ACTOR ShrapnelCasing
{
 +NOTELEPORT
 +DONTSPLASH
 -NOBLOCKMAP
 Height 12
 Radius 9
 Speed 4
 Scale 0.45
 PROJECTILE
 -NOGRAVITY
 -NOLIFTDROP
 SeeSound "FlakShell"
 States
 {
  Spawn:
	NULL A 0
	CASE A 0 A_PlaySound("NULL")
	CASE A 3
	CASE ACBHEGFD 1 A_CustomMissile("ShrapnelSmoke",0,0,0)
	Goto Spawn+2
  Death:
	CASE A 0 A_Jump(32,8)
	CASE A 0 A_Jump(37,8)
	CASE A 0 A_Jump(43,8)
	CASE A 0 A_Jump(51,8)
	CASE A 0 A_Jump(64,8)
	CASE A 0 A_Jump(85,8)
	CASE A 0 A_Jump(128,8)
	CASE ABCDEFGH 5 A_CustomMissile("SmokeFinish",0,0,3)
	CASE H 1
	Stop
 }
}

ACTOR SmokeFinish
{
+NOTELEPORT
Height 12
Radius 9
Speed 0
Scale 0.8
PROJECTILE
SeeSound ""
RENDERSTYLE TRANSLUCENT
ALPHA 0.2
States
{
Spawn:
FLSK A 1
Death:
FLSK ABCDEFGH 2
Stop
}
}

Actor FlakSlug
{
  Radius 16
  Height 16
  Speed 30
  Damage 40
  Species "Player"
  +BLOODSPLATTER 
  +DONTSPLASH
  +BLOODLESSIMPACT
  +THRUSPECIES
  Deathsound "Weapon/FLAKEXPL"
  PROJECTILE
  Scale 0.4
  Reactiontime 8
  Gravity 0.4
  states
  {
  Spawn:
    FLK1 A 5
    FLK1 A 0 A_Gravity
    FLK1 A 6 A_SpawnItemEx("ShrapnelSmoke",0,0,0,0,0,2,0,128,0)
    goto Spawn+2
  Death:
	TNT1 A 0 A_Explode(110,140)
    TNT1 A 0 A_NoGravity
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
    TNT1 AAA 0 A_CustomMissile("Kaboom3", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
    TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    TNT1 A 0 A_SpawnItemEx("Kaboom3", 0, 0, 0, 0, 0, 0, 0, 128, 0)
	TNT1 AAAAAAAA 0 A_SpawnItemEx("Flak",frandom(8,-8),frandom(8,-8),random(4,-4),random(2,-2),random(2,-2),0,frandom(2,12), 128)
    TNT1 AAAAAAAAAAAAA 8 A_SpawnItemEx("SmokeFX2",0,0,0,0,0,2,0,128,0)
    Stop
  }
}

actor DFlak
{
Projectile
Species "Player"
Decal BulletChip
Radius 5
Height 5
Damage (15*random(1,5))
Scale 0.45
DamageType "normal"
Speed 35
Gravity 0.75
BounceType doom
BounceFactor 0.75
WallBounceFactor 0.55
BounceSound "ricochet/hit"
-NOGRAVITY
+RANDOMIZE
+FORCEXYBILLBOARD
+NOBLOCKMAP
+RIPPER
+DONTSPLASH
+THRUSPECIES
+EXTREMEDEATH
States
{
Spawn:
DFKS ABCDABCD 1 Bright Light("DFLAK1")
DFKS EFGHEFGHEFGH 1 Bright Light("DFLAK2")
DFKS FGH 4 A_SpawnItem("ShrapnelSmoke",0)
Loop
Death:
FKSD IJKIJKIJK 1
TNT1 A 0 A_CustomMissile("FlakResidue",-5,0,0,CMF_AIMDIRECTION)
FKSD KKKK 1 A_FadeOut(0.50)
Stop
}
}

Actor DementedFlakSlug
{
  Radius 16
  Height 16
  Speed 30
  Damage 80
  DECAL LegRocketScorch
  Species "Player"
  +BLOODSPLATTER 
  +DONTSPLASH
  +BLOODLESSIMPACT
  +THRUSPECIES
  Deathsound "Weapon/FLAKEXPL"
  PROJECTILE
  Scale 0.4
  Reactiontime 8
  Gravity 0.4
  states
  {
  Spawn:
    FLK1 A 5
    FLK1 A 0 A_Gravity
    FLK1 A 6 A_SpawnItemEx("ShrapnelSmoke",0,0,0,0,0,2,0,128,0)
    goto Spawn+2
  Death:
	TNT1 A 0 A_Explode(110,140)
    TNT1 A 0 A_NoGravity
	TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
    TNT1 AAA 0 A_CustomMissile("BlueKaboom3", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX2", 0, 0, random(0,360), 2, random(0,360))
    TNT1 AAAA 0 A_SpawnItemEx("LegendaryDebris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    TNT1 A 0 A_SpawnItemEx("BlueKaboom3", 0, 0, 0, 0, 0, 0, 0, 128, 0)
	TNT1 AAAAAAAAAA 0 A_CustomMissile("DFlak",0,0,random(0,359),6,random(-90,90))
    TNT1 AAAAAAAAAAAAA 8 A_SpawnItemEx("LegendarySmokeFX2",0,0,0,0,0,2,0,128,0)
    Stop
  }
}