Actor Mutilator : Weapon replaces PlasmaRifle 25007
{
  obituary "%o got fucked up by %k's FC-GP6."
  radius 20
  height 16
  Tag "FC-GP6 Mutilator"
  inventory.pickupmessage "You got the FC-GP6 'Mutilator' Flak Cannon! Sometimes you need way more gun."
  Inventory.PickupSound "misc/w_pkup"
  Weapon.UpSound "NGPKUP"
  scale 0.9
  +NOEXTREMEDEATH
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.Alt_Uses_Both
  +NOAUTOAIM
  weapon.bobstyle inversesmooth
   weapon.bobrangeX 0.4
   weapon.bobrangeY 0.6
   weapon.bobspeed 2.5
  weapon.slotnumber 6
  weapon.kickback 10
  weapon.ammotype "FlakShells"
  Weapon.AmmoType2 "Flak_Magazine"
  weapon.ammouse 1
  weapon.ammouse2 0
  Weapon.AmmoGive2 1
  states
  {
  Ready:
    VOLG A 1 A_WeaponReady(WRF_ALLOWRELOAD)
    loop
    Deselect:
	  TNT1 A 0 SetPlayerProperty(0,1,2)
	  TNT1 A 0 A_SetCrosshair(1)
	  VOLS ABCDE 1
	  Goto DeselectLoop
   DeselectLoop:
      TNT1 A 1 A_Lower
      Loop
   Select:
	  TNT1 A 0 A_JumpIfInventory("MutilatorFirstTime",1,1)
	  goto Select2
	  TNT1 A 0 A_PlaySoundEx("Weapons/MutilatorFirst","WeaponPickedUp",0,0)
	  TNT1 A 0 SetPlayerProperty(0,0,2)
	  TNT1 A 0 A_SetCrosshair(9)
	  VOLS EDCBA 1
	  TNT1 A 0 A_TakeInventory("MutilatorFirstTime",1)
	  Goto SelectLoop
	Select2:
	  TNT1 A 0 SetPlayerProperty(0,0,2)
	  TNT1 A 0 A_SetCrosshair(9)
	  VOLS EDCBA 1
	  Goto SelectLoop
   SelectLoop:
      VOLG A 1 A_Raise
	loop
  Fire: //Pre-Detonated Flak Shell
    D3SG A 0 A_JumpIfInventory("FlakShells",1,1)
    Goto DryFire
	TNT1 A 0 A_SetPitch(pitch - 1.25)
	TNT1 AAAAA 0 A_FireCustomMissile("gausssmoke_spawner2",0,0,3,4,0)		
	TNT1 A 0 A_SpawnItem("Lightprojectile",0,0,0,0)
    TNT1 A 0 A_PlaySound("NailShotty/Fire",103,0.99,0,1)
	TNT1 A 0 A_PlaySound("NailShotty/FireAdd",104,0.99,0,1)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload3",105,1.0,0,1)
	TNT1 A 0 A_PlaySound("Nailshotty/Rack",106,1.0,0,1)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("FlakProjectile", random(-6, 6), 0, 7, 5, 0,random(-6, 6))
	TNT1 A 0 A_FireCustomMissile("FlakProjectile", random(-6, 6), 1, 7, 5, 0,random(-6, 6))
	TNT1 A 0 A_FireCustomMissile("FlakCasing_Spawner",0,0,0,3,0)
	VOLF A 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.98)
	VOLF B 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.93)
	VOLF C 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.94)
	VOLF D 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.95)
	VOLF E 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.96)
	VOLF F 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLG A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.97)
	VOLG A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.98)
	VOLG A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.99)
	VOLG A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(1.00)
	VOLG A 8 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_StopSound(8)
	goto Ready
  AltFire: //Flak Bomb
    D3SG A 0 A_JumpIfInventory("FlakShells",1,1)
    Goto DryFire
	TNT1 A 0 A_SetPitch(pitch - 0.5)
	TNT1 AAAAA 0 A_FireCustomMissile("gausssmoke_spawner2",0,0,3,4,0)		
    TNT1 A 0 A_SpawnItem("Lightprojectile",0,0,0,0)
    TNT1 A 0 A_PlaySound("NailShotty/Fire",103,0.99,0,1)
	TNT1 A 0 A_PlaySound("NailShotty/FireAdd",104,0.99,0,1)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload3",105,1.0,0,1)
	TNT1 A 0 A_PlaySound("Nailshotty/Rack",106,1.0,0,1)
	TNT1 A 0 A_TakeInventory("FlakShells",7)// Gross Hack
	TNT1 A 0 A_FireCustomMissile("FlakBombProjectile", random(-1, 1), 1, 7, 5, 0,random(-1, 1))
	VOLF A 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.98)
	VOLF B 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.93)
	VOLF C 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.94)
	VOLF D 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.95)
	VOLF E 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.96)
	VOLF F 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLG A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.97)
	VOLG A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.98)
	VOLG A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(0.99)
	VOLG A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_ZoomFactor(1.00)
	VOLG A 8 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_StopSound(8)
	Goto Ready
  DryFire:
	VOLF A 0 A_PlaySound("Nailshotty/Rack",199,1.0,0,1)
	VOLR EE 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLR EDCBA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLG A 15 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_StopSound(8)
	TNT1 A 0 A_Refire
	Goto Ready
  Reload: //Plasma Vent
    QURL A 0 A_JumpIfInventory("FlakShells",8,"Ready")
	QURL A 0 A_JumpIfInventory("Flak_Magazine",1,1)
	Goto DryFire
  ReloadBegin:
	VOLF A 0 A_PlaySound("Nailshotty/RelRack1",113,0.8,0,1)
    VOLR ABCDE 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLR FGHIJ 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload1",107,1.0,0,1)
	VOLR KLMNO 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLR O 10 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload2",108,1.0,0,1)
	VOLR PQ 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload3",109,1.0,0,1)
	VOLR Q 20 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_SpawnItemEx("FlakClipDrop",0,0,20)
  ReloadWork:
	QURL M 0 A_TakeInventory("Flak_Magazine",1)
	QURL M 0 A_GiveInventory("FlakShells",8)
	QURL M 0 A_JumpIfInventory("FlakShells",8,"ReloadFinish")
	QURL M 0 A_JumpIfInventory("Flak_Magazine",1,"ReloadWork")
  ReloadFinish:
    VOLR Q 15 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLR QP 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload2",110,1.0,0,1)
	VOLR ONMLK 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLR KKKKK 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload1",111,1.0,0,1)
	VOLR IJHGF 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLR FFFFF 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	TNT1 A 0 A_PlaySound("Flakcannon/Reload3",112,1.0,0,1)
	VOLF A 0 A_PlaySound("Nailshotty/RelRack2",113,0.8,0,1)
	VOLR EDCBA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	VOLG A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	Goto Ready
  Spawn:
    VOLG X -1
    loop
  }
}

ACTOR MutilatorFirstTime : Inventory {Inventory.MaxAmount 1 Inventory.InterHubAmount 1}

ACTOR FlakShells : Ammo
{
  Inventory.PickupMessage "You shouldn't see this!"
  Inventory.Amount 0
  Inventory.MaxAmount 8
  Ammo.BackpackAmount 0
  Ammo.BackpackMaxAmount 8
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor Flak_Magazine : ammo 26106 {
  radius 16
  height 8
  scale 0.093
  inventory.pickupmessage "Magazine of 30mm Slug Ammo for the FC-GP6 Mutilator"
  inventory.pickupsound "Flakcannon/Reload1"
  inventory.amount 1
  inventory.maxamount 5
  ammo.backpackamount 1
  ammo.backpackmaxamount 10
  states
  {
  Spawn:
    CSLB A -1
    stop
  }
}

ACTOR FlakCasing_Spawner
{
    Radius 1
    Height 1
    Speed 18
    PROJECTILE
	+NOCLIP
	+CLIENTSIDEONLY
    States
    {
    Spawn:
        TNT1 A 1
        TNT1 A 0 A_Die
        Goto Death
    Death:
        TNT1 A 0 A_SpawnItemEx("flak_casing", 0, 10, -4, random(-3,0), random(-7,-5), random(0,1), 0)
        Stop
    }
}

ACTOR Flak_Casing
{
   Radius 2
   Height 4
   Speed 8
   Scale 0.12
   BounceSound "Weapons/HeavyCasing"
   PROJECTILE
   -NOGRAVITY
   +BOUNCEONACTORS
   +BOUNCEONCEILINGS
   +DONTSPLASH
   +CLIENTSIDEONLY
   Gravity 0.75
   BounceType Doom
   BounceCount 6
   BounceFactor 0.6
   DamageType Nope
   States
   {
   Spawn:
	  SGSC A 0
      SGSC ABCDEFGH 1
      Goto Roflcopter
   Roflcopter:
      SGSC A 0 A_Jump(128,1,3,5,7)
      SGSC ABCDEFGH 1
      Loop
   Death:
      ARBC A 0 A_SpawnItemEx("Flak_Casing_Liedown")
      stop
   }
}

actor Flak_Casing_Liedown
{
	-NOGRAVITY
    Scale 0.12
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3","Spawn4")
	  stop
	Spawn1:
	  SGSC A 1
	  Goto Ded
	Spawn2:
	  SGSC E 1
	  Goto Ded
	Spawn3:
	  SGSC G 1
	  Goto Ded
	Spawn4:
	  SGSC C 1
	  Goto Ded
	Ded:
	  "####" "#" 210 A_CheckSight("Fadying")
	  Loop
	Fadying:
	  "####" "#" 1 A_FadeOut(0.1)
	  Wait
   }
}

ACTOR GaussHotTrail
{
  +NOINTERACTION
  +NOGRAVITY
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("GaussHotTrailMain",0.1*random(15,-15),0.1*random(15,-15),0.1*random(15,-15),0,0,0,0,0,0)
    Stop
  }
}

ACTOR GaussHotTrailMain
{
  RenderStyle Normal
  Scale 0.075
  Alpha 0.35
  +NOINTERACTION
  +NOGRAVITY
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_FadeOut(0.01)
    TNT1 A 0 A_Jump(255,"TrailA","TrailB","TrailC","TrailD")
  TrailA:
    NSMK A 3
  Looper:
    NSMK A 0 A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK A 1 A_FadeOut(0.01)
    Loop
  TrailB:
    NSMK B 3
  Looper:
    NSMK B 0 A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK B 1 A_FadeOut(0.01)
    Loop
  TrailC:
    NSMK C 3
  Looper:
    NSMK C 0 A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK C 1 A_FadeOut(0.01)
    Loop
  TrailD:
    NSMK D 3
  Looper:
    NSMK D 0 A_SetScale(ScaleX +0.005, ScaleY +0.005)
    NSMK D 1 A_FadeOut(0.01)
    Loop
  }
}

ACTOR GaussHotSpark
{
  -NOGRAVITY
  +NOTELEPORT
  +DONTBLAST
  +CLIENTSIDEONLY
  Gravity 0.15
  Scale 0.2
  Alpha 0.9
  Renderstyle Add
  States
  {
  Spawn:
    TNT1 A 0
    FSPK A 1 A_FadeOut(0.05)
    Wait
  }
}

ACTOR FlakBombProjectile
{
  Speed 60
  Radius 6
  Height 3
  Damage 275
  PROJECTILE
  Obituary "%o was was looking good till %g took a red hot cannonball to the face."
  //+BOUNCEONWALLS
  +BOUNCEONFLOORS
  +BOUNCEONCEILINGS
  +EXPLODEONWATER
  BounceFactor 1
  BounceCount 15 //Ceiling-floor wombo combo, heh.
  BounceSound "sfx/nailric"
  -NOGRAVITY
  Gravity 1
  scale 0.5
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 ThrustThingZ(0, 15, 0, 1)
  Looplet:
    CANB B 0 A_Jump(32,2)
    CANB B 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),10+random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
    CANB B 0 A_SpawnItemEx("GaussHotTrail",0,0,10,0,0,0,0,0,0)
    CANB B 1 Bright A_SpawnItemEx("FlakBombSmokeTrail",-5+random(3,-3),random(3,-3),10+random(3,-3),frandom(0.05,-0.05),frandom(0.05,-0.05),frandom(0.75,0.025),random(0,359),128,0)
    Loop
  Death:
    TNT1 A 0 A_PlaySound("sfx/sboom1")
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("FlakProjectile",random(5,-5),random(5,-5),random(5,-5),random(50,-50),random(50,-50),random(15,-15),random(0,359),128,0)
    TNT1 B 0 A_Explode(150,164)
    TNT1 A 0 A_SpawnItemEx("PushkaExplodeSmall",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_Explode(150,256,0)
    TNT1 BCD 6
    stop
  }
}

ACTOR FlakBombTrail
{
  +NOINTERACTION
  +NOGRAVITY
  States
  {
  Spawn:
  CANB BB 1 A_FadeOut(0.15)
  Wait
  }
}

ACTOR FlakBombSmokeTrail : GaussHotTrailMain
{
  Scale 0.175
}

ACTOR FlakProjectile
{
  Speed 40
  Radius 6
  Height 3
  Damage 4
  PROJECTILE
  Obituary "%o was ripped open and made medium-rare by %k's hot, shredded metal."
  BounceType Hexen
  BounceFactor 0.6
  BounceCount 8
  Scale 0.4
  bouncesound ""
  +BLOODSPLATTER
  +RIPPER
  -NOGRAVITY
  Damagetype "Flak"
  Gravity 0.75
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(164,2)
    TNT1 A 0 A_PlaySound("Weapons/MutilatorLoop",5,0.2,1,2)
    TNT1 A 0 ThrustThingZ(0, 8, 0, 1)
    TNT1 A 0 A_ChangeVelocity (frandom(-6, 6), frandom(-6, 6), frandom(-6, 6), 0)
    TNT1 A 0 A_Jump(255,"Flak1","Flak2","Flak3")
  Flak1:
    TNT1 A 0 A_GiveInventory("DeathTokenA",1)
    FLAK A 0 A_Jump(217,2)
    FLAK A 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
    FLKA A 1 Bright A_SpawnItemEx("FlakTrailA",0,0,0,0,0,0,0,128,0)
    Loop
  Flak2:
    TNT1 A 0 A_GiveInventory("DeathTokenB",1)
    FLAK A 0 A_Jump(217,2)
    FLAK A 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
    FLKB A 1 Bright A_SpawnItemEx("FlakTrailB",0,0,0,0,0,0,0,128,0)
    Loop
  Flak3:
    TNT1 A 0 A_GiveInventory("DeathTokenC",1)
    FLAK A 0 A_Jump(217,2)
    FLAK A 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
    FLKC A 1 Bright A_SpawnItemEx("FlakTrailC",0,0,0,0,0,0,0,128,0)
    Loop
  Death:
    TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_JumpIfInventory("DeathTokenA",1,"DeathA")
    TNT1 A 0 A_JumpIfInventory("DeathTokenB",1,"DeathB")
    TNT1 A 0 A_JumpIfInventory("DeathTokenC",1,"DeathC")
  DeathA:
    FLAK A 0 A_SpawnItemEx("FlakProjectileDeadA",0,0,0,0,0,0,0,128,0)
    Stop
  DeathB:
    FLAK B 0 A_SpawnItemEx("FlakProjectileDeadB",0,0,0,0,0,0,0,128,0)
    Stop
  DeathC:
    FLAK C 0 A_SpawnItemEx("FlakProjectileDeadC",0,0,0,0,0,0,0,128,0)
    Stop
  XDeath:
    TNT1 A 1
    Stop
  }
}

ACTOR E_FlakProjectile
{
  Speed 40
  Radius 6
  Height 3
  Damage 1
  PROJECTILE
  Obituary "%o was ripped open and made medium-rare by %k's hot, shredded metal."
  BounceType Hexen
  BounceFactor 0.6
  BounceCount 8
  Scale 0.4
  bouncesound ""
  +BLOODSPLATTER
  +RIPPER
  -NOGRAVITY
  Gravity 0.75
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(164,2)
    TNT1 A 0 A_PlaySound("Weapons/MutilatorLoop",5,0.2,1,2)
    TNT1 A 0 ThrustThingZ(0, 8, 0, 1)
    TNT1 A 0 A_ChangeVelocity (frandom(-6, 6), frandom(-6, 6), frandom(-6, 6), 0)
    TNT1 A 0 A_Jump(255,"Flak1","Flak2","Flak3")
  Flak1:
    TNT1 A 0 A_GiveInventory("DeathTokenA",1)
    FLAK A 0 A_Jump(217,2)
    FLAK A 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
    FLKA A 1 Bright A_SpawnItemEx("FlakTrailA",0,0,0,0,0,0,0,128,0)
    Loop
  Flak2:
    TNT1 A 0 A_GiveInventory("DeathTokenB",1)
    FLAK A 0 A_Jump(217,2)
    FLAK A 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
    FLKB A 1 Bright A_SpawnItemEx("FlakTrailB",0,0,0,0,0,0,0,128,0)
    Loop
  Flak3:
    TNT1 A 0 A_GiveInventory("DeathTokenC",1)
    FLAK A 0 A_Jump(217,2)
    FLAK A 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
    FLKC A 1 Bright A_SpawnItemEx("FlakTrailC",0,0,0,0,0,0,0,128,0)
    Loop
  Death:
    TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_JumpIfInventory("DeathTokenA",1,"DeathA")
    TNT1 A 0 A_JumpIfInventory("DeathTokenB",1,"DeathB")
    TNT1 A 0 A_JumpIfInventory("DeathTokenC",1,"DeathC")
  DeathA:
    FLAK A 0 A_SpawnItemEx("FlakProjectileDeadA",0,0,0,0,0,0,0,128,0)
    Stop
  DeathB:
    FLAK B 0 A_SpawnItemEx("FlakProjectileDeadB",0,0,0,0,0,0,0,128,0)
    Stop
  DeathC:
    FLAK C 0 A_SpawnItemEx("FlakProjectileDeadC",0,0,0,0,0,0,0,128,0)
    Stop
  XDeath:
    TNT1 A 1
    Stop
  }
}

ACTOR DeathTokenA : Inventory
{
  Inventory.MaxAmount 1
}

ACTOR DeathTokenB : Inventory
{
  Inventory.MaxAmount 1
}

ACTOR DeathTokenC : Inventory
{
  Inventory.MaxAmount 1
}

ACTOR OkudzhavaFlakTrail
{
  +NOINTERACTION
  +NOGRAVITY
  +CLIENTSIDEONLY
  Renderstyle Normal
  Scale 0.4
  Alpha 0.75
}

ACTOR FlakTrailA : OkudzhavaFlakTrail
{
  +CLIENTSIDEONLY
  States
  {
  Spawn:
  FLKA AA 1 A_FadeOut(0.2)
  Wait
  }
}

ACTOR FlakTrailB : OkudzhavaFlakTrail
{
  States
  {
  Spawn:
  FLKB AA 1 A_FadeOut(0.2)
  Wait
  }
}

ACTOR FlakTrailC : OkudzhavaFlakTrail
{
  States
  {
  Spawn:
  FLKC AA 1 A_FadeOut(0.2)
  Wait
  }
}

ACTOR FlakProjectileDeadA : OkudzhavaFlakTrail
{
  ReactionTime 70
  +FLOORCLIP
  +CLIENTSIDEONLY
  States
  {
  Spawn:
  FLKA A 0
  FLKA A 0 A_Jump(128,2)
  FLKA A 0 A_PlaySound("Weapons/MutilatorLoop",5,0.2,1,3)
  Looplet:
  FLKA A 0 A_Countdown
  FLKA A 0 A_Jump(217,2)
  FLKA A 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
  FLKA A 1 Bright
  Loop
  Death:
  FLKA A 350 Bright
  TNT1 A 0 A_PlaySound("Weapons/MutilatorEnd",5,0.2,0,2)
  FLKA ABCDEFGHIJK 4 Bright
  FLKA K 105
  FLKA K 1 A_FadeOut(0.1)
  Wait
  }
}

ACTOR FlakProjectileDeadB : OkudzhavaFlakTrail
{
  ReactionTime 70
  +FLOORCLIP
  +CLIENTSIDEONLY
  States
  {
  Spawn:
  FLKB B 0
  FLKB B 0 A_Jump(128,2)
  FLKB B 0 A_PlaySound("Weapons/MutilatorLoop",5,0.2,1,3)
  Looplet:
  FLKB B 0 A_Countdown
  FLKB B 0 A_Jump(217,2)
  FLKB B 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
  FLKB B 1 Bright
  Loop
  Death:
  FLKB A 350 Bright
  TNT1 A 0 A_PlaySound("Weapons/MutilatorEnd",5,0.2,0,2)
  FLKB ABCDEFGHIJK 4 Bright
  FLKB K 105
  FLKB K 1 A_FadeOut(0.1)
  Wait
  }
}

ACTOR FlakProjectileDeadC : OkudzhavaFlakTrail
{
  ReactionTime 70
  +FLOORCLIP
  +CLIENTSIDEONLY
  States
  {
  Spawn:
  FLKC C 0
  FLKC C 0 A_Jump(128,2)
  FLKC C 0 A_PlaySound("Weapons/MutilatorLoop",5,0.2,1,3)
  Looplet:
  FLKC C 0 A_Countdown
  FLKC C 0 A_Jump(217,2)
  FLKC C 0 A_SpawnItemEx("GaussHotSpark",random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(2,-2),random(5,-1),random(0,359),128,0)
  FLKC C 1 Bright
  Loop
  Death:
  FLKC A 350 Bright
  TNT1 A 0 A_PlaySound("Weapons/MutilatorEnd",5,0.2,0,2)
  FLKC ABCDEFGHIJK 4 Bright
  FLKC K 105
  FLKC K 1 A_FadeOut(0.1)
  Wait
  }
}

ACTOR FlakClipDrop
{
   Radius 4
   Height 6
   Speed 0
   Scale 0.25
   BounceSound "Clip/FLK"
   PROJECTILE
   -NOGRAVITY
   +BOUNCEONACTORS
   +BOUNCEONCEILINGS
   +NOTIMEFREEZE
   Gravity 0.75
   BounceType Doom
   BounceCount 3
   BounceFactor 0.6
   States
   {
   Spawn:
      CLP5 A 0
      CLP5 ABCDEFGH 2
      Loop
   Death:
      CLP1 A 0 A_SpawnItemEx("FlakClipLiedown")
      stop
   }
}

actor FlakClipLiedown
{
	-NOGRAVITY
	+FLOORCLIP
	+NOTIMEFREEZE
    Scale 0.25
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_Jump(255,"Spawn1","Spawn2")
	  stop
	Spawn1:
	  CLP5 J 1
	  Goto Ded
	Spawn2:
	  CLP5 I 1
	  Goto Ded
	Ded:
	  "####" "#" 210 A_CheckSight("Fadying")
	  Loop
	Fadying:
	  "####" "#" 1 A_FadeOut(0.1)
	  Wait
   }
}