//High Councilor Playersprites
Actor INFImprovedMinigun : ImprovedMinigunNEO Replaces ImprovedMinigunNEO { Weapon.PreferredSkin "ImprovedMinigun-Marine" Tag "Improved Minigun" }

Actor INFHomingRocketLauncher : HomingRocketLauncherNEO Replaces HomingRocketLauncherNEO { Weapon.PreferredSkin "HomingRocketLauncher-Marine" Tag "Homing Rocket Launcher" }

Actor INFFreezerRifle : FreezerRifle Replaces FreezerRifle { Weapon.PreferredSkin "FreezerRifle-Marine2" Tag "Freezer Rifle" }

Actor INFStingray : Stingray2 Replaces Stingray2 { Weapon.PreferredSkin "Stingray-Marine" Tag "Stingray" }

//Some fixes
Actor INFNailBombPlayer : NailBombPlayer Replaces NailBombPlayer { +THRUSPECIES +MTHRUSPECIES }

Actor INFDemonShotgunPuff : DemonShotgunPuff Replaces DemonShotgunPuff { +THRUSPECIES +MTHRUSPECIES }

Actor INFPPurpleDemonShotgunPuff : PPurpleDemonShotgunPuff Replaces PPurpleDemonShotgunPuff { +THRUSPECIES +MTHRUSPECIES }

Actor INFPPurpleExpMinigunPuff : PPurpleExpMinigunPuff Replaces PPurpleExpMinigunPuff { +THRUSPECIES +MTHRUSPECIES }

Actor INFPlayerAntiMatterMissile : PlayerAntiMatterMissile Replaces PlayerAntiMatterMissile { +THRUSPECIES +MTHRUSPECIES }

//Ability
Actor ThrownGrenade3 : ThrownGrenade2 Replaces ThrownGrenade2
{
States
{
  Spawn:
	TNT1 AAA 0 A_StopSound
	HGN1 ABCDEFGHABCDEFGHABCD 3 A_SetUserVar(user_grenadetime,user_grenadetime+1)
	Goto Death
  XDeath:
	TNT1 A 0 A_JumpIf(user_grenadeex == 1,"NoExplosion")
	HGN1 H 1 Bright A_ChangeFlag(EXTREMEDEATH,1)
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_SetUserVar(user_grenadeex,1)
	TNT1 A 0 A_JumpIfInventory("DPRGrenadierToken",1,"NewExp",AAPTR_TARGET)
  NormalExp:
	TNT1 A 0 A_Explode(100,150,XF_HURTSOURCE,0)
	TNT1 A 0 Radius_Quake(2,24,0,15,0)
	TNT1 A 0 A_PlaySound("weapons/hgrenadeex",CHAN_BODY)
	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,SXF_CLIENTSIDE,0)
	TNT1 A 1 A_SpawnItem("RocketEx")
	TNT1 A 0 A_Explode(200,300,0,0)
	TNT1 A 0 A_PlaySound("Explosion",CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("FAREXPL",CHAN_VOICE)
	TNT1 AAA 1 A_SpawnItemEx("RocketEx",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
	Stop
  NewExp:
    TNT1 A 0 A_Jump(10,"Nuke")
	TNT1 A 0 A_Jump(45,"NukeLite")
	TNT1 A 0 A_Jump(128,"Digger","HighExp","M79Exp")
	Goto NormalExp
  Digger:
	TNT1 A 0 A_PlaySound("weapons/hgrenadeex",CHAN_BODY)
	TNT1 A 0 A_PlaySound("Explosion",CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("FAREXPL",CHAN_VOICE)
	TNT1 A 0 Radius_Quake(2,24,0,15,0)
	TNT1 A 0 A_Explode(50,428,0,0)
	TNT1 A 0 A_Explode(200,300,0,0)
	TNT1 A 0 A_Explode(450,150,XF_HURTSOURCE,0)
	TNT1 A 0 A_CustomMissile("DiggerExplosion",0,0,random(80,100),2,random(80,100))
    TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,random(4,-4),random(4,-4),random(4,8),0,128)
	TNT1 A 1 A_SpawnItem("DiggerEx2")
    Stop
  M79Exp:
    MIS2 A 0 A_StopSoundEx("SoundSlot7")
	TNT1 A 0 A_Explode(36,628,0,0)
	TNT1 A 0 A_Explode(200,400,0,0)
	TNT1 A 0 A_Explode(512,256,XF_HURTSOURCE,0)
	TNT1 A 0 A_SpawnItemEx("M79GrenadeKaBoom",0,0,0,0,0,0,0,128)
	TNT1 AAAAAAAAAAAAA 0 A_CustomMissile("Explode",random(20,80),random(20,-20),random(0,360),2,random(0,360))
	TNT1 A 1 A_CustomMissile("BigExplosion",0,0,random(80,100),2,random(80,100))
	Stop
  HighExp:
    TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_Explode(64,798,0,0)
	TNT1 A 0 A_Explode(128,590,0,0)
	TNT1 A 0 A_Explode(256,320,0,0)
	TNT1 A 0 A_Explode(512,220,XF_HURTSOURCE,0)
	TNT1 A 0 Radius_Quake(6,28,0,32,0)
    TNT1 A 0 A_PlaySound("digger/explode")
	TNT1 A 0 A_PlaySound("hemissilelauncher/far",6)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,0,128) 
	TNT1 A 0 A_CustomMissile("SmokeFX3",0,0,random(80,100),2,random(80,100))
	TNT1 A 0 A_SpawnItemEx("HEMLFire",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
	CGE2 A 1 Bright A_SpawnItemEx("RPGRocketKaBoom",0,0,0,0,0,0,0)
    CGE2 BCDEFGHIJK 3 Bright A_CustomMissile("SmokeFX3",0,0,random(80,100),2,random(80,100))
    CGE2 LLLLLLLLLLLLL 1 Bright A_FadeOut(0.1,0)
	Stop
  NukeLite:
	TNT1 A 0 A_Explode(200,512,0,0)
	TNT1 A 0 A_Explode(450,420,0,0)
	TNT1 A 0 A_Explode(800,150,XF_HURTSOURCE,0)
    TNT1 A 0 A_SpawnItemEx("EFGFusionNukeFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_CustomMissile("EFGFusionNukeExplodePlayer",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 AAAAAAAA 3 A_SpawnItemEx("WelderFlare",0,0,0,random(2,4),random(2,4),2,random(0,360),SXF_TRANSFERPOINTERS,64)
	Stop
  Nuke:
    HGN1 H 140 Bright A_PlaySound("grenade/nukewarning")
	HGN1 H 1 Bright A_ChangeFlag(EXTREMEDEATH,1)
	TNT1 A 0 A_Jump(64,"Nuke2")
    TNT1 A 1 A_CustomMissile("NuclearMissileExplosion",0,0,0,CMF_TRACKOWNER,0)
	Stop
  Nuke2:
    TNT1 A 0 A_CustomBulletAttack(0,0,1,7000,"BulletPuff",128,CBAF_AIMFACING)
	TNT1 A 0 A_PlaySound("redeemer/explosion",4,1.0,0,ATTN_NONE)
	TNT1 A 0 A_Explode(10000,3600,true,true,666)
	TNT1 A 0 A_Blast(BF_DONTWARN,225,1000,30)
	TNT1 A 0 A_SpawnItemEX("DOOKNOOKMsilent",0,0,0,0,0,0,0)
	TNT1 A 0 A_CustomMissile("KazumiNuclearMissileShotEx",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("KazumiNuclearMissileShotEx2",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
	TNT1 A 0 A_CustomMissile("KazumiNuclearMissileShotEx2",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,-45)
	TNT1 A 0 A_CustomMissile("KazumiNuclearMissileShotEx2",0,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
	TNT1 A 1 A_CustomMissile("KazumiNuclearMissileShotEx2",0,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER,-45)
	Stop
	}
}

Actor EFGFusionNukeExplodePlayer : EFGFusionNukeExplode { Damagetype "Players" }

Actor ThrownGrenadeInstant : ThrownGrenade3
{
States
{
  Spawn:
	TNT1 AAA 0 A_StopSound
	Goto Death
  Death:
  XDeath:
	TNT1 A 0 A_ChangeFlag(EXTREMEDEATH,1)
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_Jump(25,"NukeLite")
	TNT1 A 0 A_Jump(128,"Digger","HighExp","M79Exp")
	Goto NormalExp
	}
}

Actor ThrownGrenadeInstantNuke : ThrownGrenade3
{
States
{
  Spawn:
	TNT1 AAA 0 A_StopSound
	Goto Death
  Death:
  XDeath:
	TNT1 A 0 A_ChangeFlag(EXTREMEDEATH,1)
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_AlertMonsters
	Goto Nuke
  Nuke:
    TNT1 A 0
	TNT1 A 0 A_Jump(64,"Nuke2")
    TNT1 A 1 A_CustomMissile("NuclearMissileExplosion",0,0,0,CMF_TRACKOWNER,0)
	Stop
	}
}

Actor DiggerExplosion2 : DiggerExplosion Replaces DiggerExplosion
{
States
{
  Spawn: 
    TNT1 A 0 
	TNT1 A 0 A_PlaySound("digger/explode")
	TNT1 A 0 Radius_Quake(3,15,0,10,0)
    TNT1 A 0 A_SpawnItemEx("DiggerExplosionFlare",0,0,0,0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("DiggerExplosionShockWave",0,0,0,0,0,0,0,128)
	TNT1 AAAAAA 0 A_SpawnItemEx("HugeExplosionParticle",random(64,-64),random(64,-64),random(64,-64),random(8,-8),random(8,-8),random(8,-8),0,128)
	TNT1 AAAAAAAAAAA 1 A_SpawnItemEx("DiggerExplosionKaboom",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4))
	TNT1 AAAAA 0 A_SpawnItemEx("SmokeFX3",random(8,-8),random(8,-8),random(8,-8),random(4,-4),random(4,-4),random(0,3),0,128)
    TNT1 A 10
	Stop
	}
}

Actor DiggerEx2 : RocketEx { Scale 1.7 }

Actor DiggerExplosionFlare : RocketExplosionFlare
{
Scale 0.9
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	EXN1 B 1 A_FadeOut(0.05)
	Wait
	}
}

//Reimagined-Fixes
Actor INFFlameSword : FlameSword2 replaces FlameSword
{
Inventory.PickupSound "FSword/Pickup"
Tag "Flame Sword"
}

//SubliminationSwordNEO

//DemonTechPistolNEO

//Explosive ShotgunNEO

//RapidShotgunNEO

Actor INFDemonTechShotgun : "NewDemonTechShotgun" Replaces "Demon Tech Shotgun"
{
Weapon.PreferredSkin "DemonTechShotgun-Marine"
States
{
  Deselect:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 a_jumpifinventory("CommanderDTShotgunUpgrade",1,"CommanderDeselectloop")
  Deselectloop:
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_Lower
	DTSG A 1 A_Lower
	Loop
  Fire:
	TNT1 A 0
    TNT1 A 0 a_jumpifinventory("CommanderDTShotgunUpgrade",1,"CommanderFire")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(5)
	TNT1 A 0 A_ZoomFactor(0.98)
	TNT1 A 0 A_PlaySound("DTechShotty/Fire",3)
	TNT1 A 0 A_PlaySound("DTechShotty/PrimaryAmb",5)
	TNT1 AAAAAAAAA 0 A_FireCustomMissile("RedDemonTechTracer",Random(-8,8),0,0,Random(-8,8))
	DTSG B 1 Bright A_FireBullets(11.2,7.1,20,5,"DemonShotgunPuff")
	DTSG CCDDE 1 Bright
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_PlaySound("Weapons/ErasusPump",6)
	DTSG FFGGHHIIJJKK 1 
	TNT1 A 0 A_ReFire
	Goto Ready
  CommanderFire:
	TNT1 A 0 A_JumpIfInventory("PurpleDTechSGMode2",1,"CommanderFire3")
	TNT1 A 0 A_JumpIfInventory("PurpleDTechSGMode1",1,"CommanderFire2")
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",8,"CommanderFire1")
	Goto CommanderReady
  CommanderFire1:
	TNT1 A 0
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(5)
	TNT1 A 0 A_ZoomFactor(0.98)
	TNT1 A 0 A_PlaySound("DTechShotty/Fire",3)
	TNT1 A 0 A_PlaySound("DTechShotty/PrimaryAmb",5)
	TNT1 AAAAAAAAAAA 0 A_FireCustomMissile("PurpleDemonTechSGTracer",Random(-8,8),0,0,Random(-8,8))
	PTSG B 1 Bright A_FireBullets(11.2,7.1,22,6,"PPurpleDemonShotgunPuff")
	PTSG CCDDE 1 Bright
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_PlaySound("Weapons/ErasusPump",6)
	PTSG FFGGHHIIJJKK 1 
	TNT1 A 0 A_ReFire("CommanderFire1")
	Goto CommanderReady
  CommanderFire2:
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",20,"CommanderFire2Continue")
	Goto CommanderReady
  CommanderFire2Continue:
	TNT1 A 0
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(20)
	TNT1 A 0 A_ZoomFactor(0.98)
	TNT1 A 0 Radius_Quake(20,5,0,1,0)
	TNT1 A 0 A_PlaySound("DTechShotty/Altfire",3)
	TNT1 A 0 A_PlaySound("DTechShotty/AlternateAmb",5)
	TNT1 A 0 A_TakeInventory("DemonAmmo",20,TIF_NOTAKEINFINITE)
    TNT1 AAAAAAAAAA 0 A_FireCustomMissile("PurpleDemonTechProjectileSeek",Random(15,-15),0,0,Random(30,-30))
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("PurpleDemonTechProjectile",Random(15,-15),0,0,Random(30,-30))
	PTSG BCCDDE 1 Bright
	TNT1 A 0 A_PlaySound("Weapons/ErasusPump",6)
	TNT1 A 0 A_ZoomFactor(1)
	PTSG FFGGHHIIJJKK 4 
	Goto CommanderReady
  CommanderFire3:
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",25,"CommanderFire3Continue")
	Goto CommanderReady
  CommanderFire3Continue:
	TNT1 A 0
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(10)
	TNT1 A 0 A_ZoomFactor(0.98)
	TNT1 A 0 Radius_Quake(20,5,0,1,0)
	TNT1 A 0 A_PlaySound("DTechShotty/Fire",3)
	TNT1 A 0 A_PlaySound("DTechShotty/PrimaryAmb",5)
	TNT1 A 0 A_TakeInventory("DemonAmmo",25,TIF_NOTAKEINFINITE)
  	TNT1 A 0 A_FireCustomMissile("PlayerAntiMatterMissile",0,0,0,0)
	PTSG BCCDDE 1 Bright
	TNT1 A 0 A_PlaySound("Weapons/ErasusPump",6)
	TNT1 A 0 A_ZoomFactor(1)
	PTSG FFGGHHIIJJKK 3
	Goto CommanderReady
  AltFire:
	TNT1 A 0
    TNT1 A 0 a_jumpifinventory("CommanderDTShotgunUpgrade",1,"CommanderAltFire")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(20)
	TNT1 A 0 A_ZoomFactor(0.98)
	TNT1 A 0 Radius_Quake(20,5,0,1,0)
	TNT1 A 0 A_PlaySound("DTechShotty/Altfire",3)
	TNT1 A 0 A_PlaySound("DTechShotty/AlternateAmb",5)
	TNT1 A 0 A_TakeInventory("DemonAmmo",20,TIF_NOTAKEINFINITE)
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("RedDemonTechProjectile",Random(15,-15),0,0,Random(30,-30))
	DTSG BCCDDE 1 Bright
	TNT1 A 0 A_PlaySound("Weapons/ErasusPump",6)
	TNT1 A 0 A_ZoomFactor(1)
	DTSG FFGGHHIIJJKK 4 
	Goto Ready
  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") 
	DTSG A 1 Offset(0,40)
	DTSG A 1 Offset(0,48)
	DTSG A 1 Offset(0,56)
	DTSG A 1 Offset(0,64)
	DTSG A 1 Offset(0,72)
	DTSG A 1 Offset(0,80)
	DTSG A 1 Offset(0,88)
	TNT1 A 4 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	DTSG A 1 Offset(0,88)
	DTSG A 1 Offset(0,80)
	DTSG A 1 Offset(0,72)
	DTSG A 1 Offset(0,64)
	DTSG A 1 Offset(0,56)
	DTSG A 1 Offset(0,48)
	DTSG A 1 Offset(0,40)
	TNT1 A 0 Offset(0,32)
	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")
	DTSG A 1 Offset(0,40)
	DTSG A 1 Offset(0,48)
	DTSG A 1 Offset(0,56)
	DTSG A 1 Offset(0,64)
	DTSG A 1 Offset(0,72)
	DTSG A 1 Offset(0,80)
	DTSG A 1 Offset(0,88)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	DTSG A 1 Offset(0,88)
	DTSG A 1 Offset(0,80)
	DTSG A 1 Offset(0,72)
	DTSG A 1 Offset(0,64)
	DTSG A 1 Offset(0,56)
	DTSG A 1 Offset(0,48)
	DTSG A 1 Offset(0,40)
	TNT1 A 0 Offset(0,32)
	Goto Ready
  CommanderGrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"CommanderGrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto CommanderReady
  CommanderGrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	PTSG A 1 Offset(0,40)
	PTSG A 1 Offset(0,48)
	PTSG A 1 Offset(0,56)
	PTSG A 1 Offset(0,64)
	PTSG A 1 Offset(0,72)
	PTSG A 1 Offset(0,80)
	PTSG A 1 Offset(0,88)
	TNT1 A 4 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	PTSG A 1 Offset(0,88)
	PTSG A 1 Offset(0,80)
	PTSG A 1 Offset(0,72)
	PTSG A 1 Offset(0,64)
	PTSG A 1 Offset(0,56)
	PTSG A 1 Offset(0,48)
	PTSG A 1 Offset(0,40)
	TNT1 A 0 Offset(0,32)
	Goto CommanderReady
  CommanderMineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"CommanderMineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto CommanderReady
  CommanderMineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PTSG A 1 Offset(0,40)
	PTSG A 1 Offset(0,48)
	PTSG A 1 Offset(0,56)
	PTSG A 1 Offset(0,64)
	PTSG A 1 Offset(0,72)
	PTSG A 1 Offset(0,80)
	PTSG A 1 Offset(0,88)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	PTSG A 1 Offset(0,88)
	PTSG A 1 Offset(0,80)
	PTSG A 1 Offset(0,72)
	PTSG A 1 Offset(0,64)
	PTSG A 1 Offset(0,56)
	PTSG A 1 Offset(0,48)
	PTSG A 1 Offset(0,40)
	TNT1 A 0 Offset(0,32)
	Goto CommanderReady
	}
}

//ImprovedMinigunNEO

Actor INFBarbatosCannon : BarbatosCannonNEO Replaces BarbatosCannon
{
Tag "Barbatos Cannon"
States
{
  Select:
	TNT1 A 0 A_Raise
	BRBC A 1 A_Raise
	Loop
  Deselect:
	TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
	TNT1 A 0 A_Lower
	BRBC A 1 A_Lower
	Goto Deselect+1
	}
}

//RuffianCannonNEO

//ProxLauncherNEO

//RapidRocketlauncherNEO

//HomingRocketLauncherNEO

Actor INFBFG2704 : BFG2704 replaces BFG2704
{
Inventory.PickupSound "BFG2704/Pickup"
Weapon.UpSound "BFG2704/Draw"
Tag "BFG 2704"
States
{
  AltFire:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("PowerDoubleFiringSpeed",1,"NoSpeedForYou2")
	TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"NoSpeedForYou2")
	TNT1 A 0 A_JumpIfInventory("TrueLegDoubleFiringSpeed",1,"NoSpeedForYou2")
	TNT1 A 0 A_JumpIfInventory("NewCell",120,2)
	BF27 A 1 A_WeaponReady(WRF_NOFIRE)
	Goto Ready
	BF27 A 15 A_PlaySound("2704AltFire",5,3)
	BF27 B 15
	BF27 C 4 Bright A_GunFlash
	TNT1 A 0 A_TakeInventory("NewCell",120)
	TNT1 A 0 A_FireCustomMissile("2704Ball3",0,0,0,6)
	BF27 D 1 Bright
	BF27 E 1 Bright
	BF27 C 2 Bright
	BF27 B 10
	TNT1 A 0 A_ReFire
	Goto Ready
  NoSpeedForYou2:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("NewCell",120,2)
	BF27 A 2 A_WeaponReady(WRF_NOFIRE)
	Goto Ready
	BF27 A 30 A_PlaySound("2704AltFire",5,3)
	BF27 B 30
	BF27 C 8 Bright A_GunFlash
	TNT1 A 0 A_TakeInventory("NewCell",120)
	TNT1 A 0 A_FireCustomMissile("2704Ball3",0,0,0,6)
	BF27 D 2 Bright
	BF27 E 2 Bright
	BF27 C 2 Bright
	BF27 B 20
	TNT1 A 0 A_ReFire
	Goto Ready
	}
}

Actor INFPyroCannon : "Pyro Cannon" Replaces PyroCannon
{
Inventory.PickupSound "PyroCNN/Pickup"
Weapon.PreferredSkin "PyroCannon-Marine"
Tag "Pyro Cannon"
States
{
  Deselect:
    TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
	TNT1 A 0 A_Lower
    PYRG A 1 A_Lower
    Goto Deselect+1
	}
}

Actor InfinityGas : GasNEO Replaces NexusGas { +INVENTORY.BIGPOWERUP }

Actor InfinityBigGas : BigGasNEO Replaces NexusBigGas { +INVENTORY.BIGPOWERUP }

Actor INFBlackHoleGenerator : "Blackhole Generator " Replaces "BlackHole Generator"
{
Inventory.PickupSound "BHG/Pickup"
Weapon.Upsound "BHG/Draw"
Tag "Black Hole Generator"
}

Actor InfinityDCell : DCellNEO Replaces NexusDCell { +INVENTORY.BIGPOWERUP }

Actor InfinityDCellPack : DCellPackNEO Replaces NexusDCellPack { +INVENTORY.BIGPOWERUP }

//--- TAPOR ---
Actor INFDesiccationRod : DesiccationRod Replaces DesiccationRod
{
Tag "Bloody Flandre's Desiccation Rod"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready2
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	SROD BCD 2 Bright
	TNT1 A 3
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	SROD DCB 2 Bright
	Goto Ready2
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready2
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	SROD BCD 2 Bright
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	SROD DCB 2 Bright
	Goto Ready2
	}
}

Actor INFDemonTechAxe : "DemonTechAxe" Replaces "DemonTechAxe"
{
Tag "Demon Tech Axe"
States
{
 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") 
	FAXE A 1 Offset(0,30)
	FAXE A 1 Offset(0,40)
	FAXE A 1 Offset(0,50)
	FAXE A 1 Offset(0,60)
	FAXE A 1 Offset(0,70)
	TNT1 A 4 Offset(0,10)
	TNT1 A 0 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	FAXE A 1 Offset(0,70)
	FAXE A 1 Offset(0,60)
	FAXE A 1 Offset(0,50)
	FAXE A 1 Offset(0,40)
	FAXE 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") 
	FAXE A 1 Offset(0,30)
	FAXE A 1 Offset(0,40)
	FAXE A 1 Offset(0,50)
	FAXE A 1 Offset(0,60)
	FAXE A 1 Offset(0,70)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	FAXE A 1 Offset(0,70)
	FAXE A 1 Offset(0,60)
	FAXE A 1 Offset(0,50)
	FAXE A 1 Offset(0,40)
	FAXE A 1 Offset(0,30)
	Goto Ready
	}
}

Actor INFSubliminationSword : SubliminationSwordNEO Replaces SubliminationSwordNEO
{
Tag "Sublimination Sword"
States
{
  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") 
	SBSW ABC 2
	TNT1 A 3
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	SBSW CBA 2
	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") 
	SBSW ABC 2
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	SBSW CBA 2
	Goto Ready
	}
}

Actor INFHandgun : "Handgun " Replaces "Handgun "
{
Tag "Handgun"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+5
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	PIST DCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+5
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	PIST DCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
	}
}

Actor INFDemonTechPistol : DemonTechPistolNEO Replaces DemonTechPistolNEO
{
Weapon.SisterWeapon "INFPoweredDemonTechPistol"
Tag "Demon Tech Pistol"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+5
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DTP0 DCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+5
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DTP0 DCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
	}
}

Actor INFPoweredDemonTechPistol : PoweredDemonTechPistolNEO
{
Weapon.SisterWeapon "INFDemonTechPistol"
Tag "Empowered Demon Tech Pistol"
States
{
  Ready:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickuptp")
	ETP0 ABCD 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("DTPistolMagazine",1,1)
	Goto Ready2
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	ETPS A 1 A_WeaponReady
	Loop
  Ready2:
    TNT1 A 0 A_JumpIfInventory("DTPistolMagazine",1,"ReadyLoop")
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    ETPS T 1 A_WeaponReady
	Loop
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+5
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	ETP0 DCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+5
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	ETP0 DCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
	}
}

Actor INFPlasmaPistol : "Plasma Handgun DJB2"
{
Tag "Plasma Handgun (Reloading Function)"
States
{
  Ready:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickuptp")
	PH51 ABCDEFGH 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	PH52 A 1 A_WeaponReady
	Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
	TNT1 A 0 A_Lower
	PH52 A 1 A_Lower
	Goto Deselect+4
  Fire:
	TNT1 A 0 A_JumpIfInventory("PHGMode1",1,"BigBall")
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_PlaySound("weapons/PHGFire",CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_FireCustomMissile("PHGProjectile",Random(-8,8)*0.1,1,1,8,0,Random(-4,4)*0.1)
	PH52 B 1 Bright A_GunFlash
	PH52 C 1 Bright
	PH52 D 1 A_Light0
	PH52 EFGH 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOBOB)
	Goto ReadyLoop
  BigBall:
	TNT1 A 0 A_JumpIfInventory("PlasmaMagazine",5,1)
	Goto Empty
	PH52 I 11 Bright A_PlaySound("weapons/PHGCharge",CHAN_WEAPON)
	PH52 JKL 11 Bright
	PH52 M 1 Bright
  Hold:
	TNT1 A 0 A_PlaySound("weapons/PHGIdle",CHAN_WEAPON)
	PH52 NOPQ 1 Bright
	TNT1 A 0 A_ReFire
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_TakeInventory("PlasmaMagazine",4,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_FireCustomMissile("PlasmaFireBall",Random(-8,8)*0.1,1,1,8,0,Random(-4,4)*0.1)
	PH52 R 1 Bright A_GunFlash
	TNT1 A 0 A_Light0
	TNT1 A 0 A_PlaySound("railgunner/chargedshot",CHAN_WEAPON)
	PH52 STUEFGH 1
	Goto ReadyLoop
  Empty:
	PH52 A 10 A_PlaySound("weapons/click3",CHAN_BODY)
	TNT1 A 0 A_JumpIfInventory("Newcell",1,"AltFire")
	Goto ReadyLoop
  AltFire:
	TNT1 A 0 A_JumpIfInventory("PlasmaMagazine",30,"ChangeMode")
    TNT1 A 0 A_JumpIfInventory("NewCell",1,2)
	TNT1 A 0 A_JumpIfNoAmmo("ReadyLoop")
	Goto ReadyLoop
  	TNT1 A 0 A_JumpIfInventory("PlasmaMagazine",1,"MaxReload")
	PH52 V 1 A_PlaySound("phandgun/foil1",CHAN_BODY)
	PH52 WXY 1
	PH52 "Z" 1 A_PlaySound("phandgun/empmagout",5)
	PH53 A 2 A_FireCustomMissile("PistolEmptyMagSpawner",0,0,0,1)
	PH53 BCD 2
	PH53 EFG 1
	PH53 H 2
	PH53 I 3
	PH53 J 2
	Goto Reload
  MaxReload:
	PH51 H 1 A_PlaySound("phandgun/foil1",CHAN_BODY)
	PH51 GF 1
	PH53 UTSRQP 1
	PH54 AB 1
	PH54 C 1 A_PlaySound("phandgun/magout",5)
	PH54 D 2
	PH54 E 3
	PH54 F 4
	PH54 G 3
	PH54 HIJ 2
  Reload:
	TNT1 A 0 A_TakeInventory("NewCell",1,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("PlasmaMagazine",1)
	TNT1 A 0 A_JumpIfInventory("PlasmaMagazine",30,2)
	TNT1 A 0 A_JumpIfInventory("NewCell",1,"Reload")  
  Full:
    TNT1 A 0 A_PlaySound("phandgun/magin2",7)
    PH53 K 2 A_PlaySound("phandgun/magin1",6)
	PH53 LM 2
	PH53 NOPQRSTU 1
	PH51 FGH 1	
	Goto ReadyLoop
  Zoom:
    TNT1 A 0 A_TakeInventory("RailgunAction",1)
  ChangeMode:
	TNT1 A 0 A_JumpIfInventory("PHGMode1",1,"ChangeMode2")
	TNT1 A 0 A_Print("Charge Fire")
	PH52 IJKL 1 A_GiveInventory("PHGMode1")
	PH52 L 4 A_PlayWeaponSound("phandgun/switch")
	Goto ReadyLoop
  ChangeMode2:
	TNT1 A 0 A_Print("Normal Fire")
	PH52 IJKL 1 A_TakeInventory("PHGMode1")
	PH52 L 4 A_PlayWeaponSound("phandgun/switch")
	Goto ReadyLoop
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoop
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PH51 HGFEDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PH51 HGFEDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
	}
}

ACTOR PPRECounter : Inventory {Inventory.MaxAmount 4}

Actor INFPlasmaPistolRE : INFPlasmaPistol
{
Weapon.AmmoUse 4
Weapon.AmmoType1 "PlasmaHGCellCF"
Tag "Plasma Handgun (Recharge Function)"
States
{
  Ready:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickuptp")
	PH51 ABCDEFGH 1
  ReadyLoop:
    TNT1 A 0 A_TakeInventory("PlasmaPistolDontRegenToken",1)
	TNT1 A 0 A_JumpIfInventory("PPRECounter",4,"Reload")
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	PH52 A 1 A_WeaponReady
	Loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("PlasmaHGCellCF",4,1)
	Goto Empty
	TNT1 A 0 A_PlaySound("weapons/PHGFire",CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_FireCustomMissile("PHGProjectile",Random(-8,8)*0.1,1,1,8,0,Random(-4,4)*0.1)
	TNT1 A 0 A_GiveInventory("PlasmaPistolDontRegenToken",1)
	PH52 B 1 Bright A_GunFlash
	PH52 C 1 Bright
	PH52 D 1 A_Light0
	PH52 EFGH 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOBOB)
	Goto ReadyLoop
  AltFire:
	TNT1 A 0 A_JumpIfInventory("NewCell",5,1)
	Goto Empty
	TNT1 A 0 A_GiveInventory("PlasmaPistolDontRegenToken",1)
	PH52 I 11 Bright A_PlaySound("weapons/PHGCharge",CHAN_WEAPON)
	PH52 JKL 11 Bright
	PH52 M 1 Bright
  Hold:
	TNT1 A 0 A_PlaySound("weapons/PHGIdle",CHAN_WEAPON)
	PH52 NOPQ 1 Bright
	TNT1 A 0 A_ReFire("Hold")
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_TakeInventory("NewCell",5,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_FireCustomMissile("PlasmaFireBall",Random(-8,8)*0.1,FALSE,1,8,0,Random(-4,4)*0.1)
	TNT1 A 0 A_GiveInventory("PPRECounter",1)
	PH52 R 1 Bright A_GunFlash
	TNT1 A 0 A_Light0
	TNT1 A 0 A_PlaySound("railgunner/chargedshot",CHAN_WEAPON)
	PH52 STUEFGH 1
	Goto ReadyLoop
  Reload:
    PH52 AAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE)
	PH52 V 1 A_PlaySound("phandgun/foil1",CHAN_BODY)
	PH52 WXY 1
	PH52 "Z" 1 A_PlaySound("phandgun/empmagout",5)
	PH53 A 2 A_FireCustomMissile("PistolEmptyMagSpawner",0,0,0,1)
	PH53 BCD 2
	PH53 EFG 1
	PH53 H 2
	PH53 I 3
	PH53 J 2
	TNT1 A 0 A_TakeInventory("PPRECounter",4)
    TNT1 A 0 A_PlaySound("phandgun/magin2",7)
    PH53 K 2 A_PlaySound("phandgun/magin1",6)
	PH53 LM 2
	PH53 NOPQRSTU 1
	PH51 FGH 1	
	Goto ReadyLoop
  Empty:
    TNT1 A 0 A_GiveInventory("PlasmaPistolDontRegenToken",1)
	PH52 A 10 A_PlaySound("weapons/click3",CHAN_BODY)
	Goto ReadyLoop
	}
}

Actor INFPlasmaPistolINF : INFPlasmaPistol
{
Weapon.AmmoUse1 0
Weapon.AmmoGive1 0
Tag "Plasma Handgun (Infinite Function)"
States
{
  Ready:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickuptp")
	PH51 ABCDEFGH 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	PH52 A 1 A_WeaponReady
	Loop
  Fire:
	TNT1 A 0 A_PlaySound("weapons/PHGFire",CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_FireCustomMissile("PHGProjectile",Random(-8,8)*0.1,FALSE,1,8,0,Random(-4,4)*0.1)
	PH52 B 1 Bright A_GunFlash
	PH52 C 1 Bright
	PH52 D 1 A_Light0
	PH52 EFGH 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOBOB)
	Goto ReadyLoop
  AltFire:
	PH52 I 11 Bright A_PlaySound("weapons/PHGCharge",CHAN_WEAPON)
	PH52 JKL 11 Bright
	PH52 M 1 Bright
  Hold:
	TNT1 A 0 A_PlaySound("weapons/PHGIdle",CHAN_WEAPON)
	PH52 NOPQ 1 Bright
	TNT1 A 0 A_ReFire("Hold")
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_FireCustomMissile("PlasmaFireBall",Random(-8,8)*0.1,FALSE,1,8,0,Random(-4,4)*0.1)
	PH52 R 1 Bright A_GunFlash
	TNT1 A 0 A_Light0
	TNT1 A 0 A_PlaySound("railgunner/chargedshot",CHAN_WEAPON)
	PH52 STUEFGH 1
	Goto ReadyLoop
	}
}

ACTOR CumShottySwitched : Inventory {Inventory.MaxAmount 1} //Innuendo warning
ACTOR CumShottyReloading : Inventory {Inventory.MaxAmount 1}
ACTOR CumShottyStartToken : Inventory {Inventory.MaxAmount 1}

Actor " Combat Shotgun " : "Combat Shotgun " Replaces "Combat Shotgun "
{
Inventory.PickupMessage "Combat Shotgun - Use ZOOM key to switch to the old version"
States
{
  Select:
	TNT1 A 0 A_Raise
    Wait
  Deselect:
    TNT1 A 0 A_JumpIfInventory("CumShottyReloading",1,"Deselect2")
    TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
    TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
    TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_JumpIfInventory("CumShottySwitched",1,"DeselectX")
	TNT1 A 0 A_Lower
    SHT3 A 1 A_Lower
    Goto Deselect+6
  DeselectX:
	TNT1 A 0 A_Lower
	SHTG A 1 A_Lower
	Loop
  Deselect2:
    TNT1 A 0 A_TakeInventory("CumShottyReloading",1)
	SHT3 WXY 1
	SHT6 ABC 1
	TNT1 A 0 A_Lower
    TNT1 A 1 A_Lower
	Goto Deselect2+7
  Startup:
    SHT3 B 1 A_PlaySound("assaultshotgun/draw",CHAN_BODY)
	SHT3 CD 1
	SHT3 A 2
	SHT3 A 1 A_PlaySound("weapons/12gsgcock",CHAN_AUTO)
	SHT3 EFGHHGFE 2
	TNT1 A 0 A_GiveInventory("CumShottyStartToken",1)
	Goto ReadyLoop
  Ready:
    TNT1 A 1 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_JumpIfInventory("CumShottySwitched",1,"ReadyX")
    TNT1 A 0 A_JumpIfInventory("CumShottyStartToken",1,1)
	Goto Startup
    SHT3 B 1 A_PlaySound("assaultshotgun/draw",CHAN_BODY)
	SHT3 CD 1
  Readyloop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
    SHT3 A 1 A_WeaponReady
    Loop
  ReadyX:
	TNT1 A 0 A_PlayWeaponSound("weapons/12gsgcock")
	SG1R ABCDE 1
	SG1R F 2
	SG1R G 3
	SG1R FE 2
	SG1R H 1
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",1,"Ready2X")
	Goto Ready3X
  Ready2X:
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",1,1)
	Goto Ready3X
	SHTG A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	Loop
  Ready3X:
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",1,"Ready2")
	SHTD A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("CumShottySwitched",1,"FireX")
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
    TNT1 A 0 A_JumpIfInventory("CumShottyReloading",1,"Full")
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(6,-6))
	SHT3 I 2 Bright A_FireBullets(3.8,2.4,7,Random(7,8),"ModdedBulletPuff")
	TNT1 A 0 A_TakeInventory("CumShottyStartToken",1)
	SHT3 J 2 Bright A_Light2
	SHT3 K 1 A_Light0
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",1,1)
	Goto Empty
	TNT1 A 0 A_TakeInventory("CumShottyStartToken",1)
	SHT3 LMM 1 A_WeaponReady(WRF_NOFIRE)
	TNT1 A 0 A_JumpIfInventory("PowerDoubleFiringSpeed",1,"ReloadFaster")
	TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"ReloadFaster")
	TNT1 A 0 A_JumpIfInventory("TrueLegDoubleFiringSpeed",1,"ReloadFaster")
	TNT1 A 0 A_JumpIfInventory("PowerFireSpeedee",1,"ReloadFaster")
	TNT1 A 0 A_JumpIfInventory("CFSPFirepower",1,"ReloadFaster")
	TNT1 A 0 A_JumpIfInventory("DoomSlayerFirepower",1,"ReloadFaster")
	SHT3 NNOO 1 A_WeaponReady(WRF_NOFIRE)
	TNT1 A 0 A_GiveInventory("CumShottyStartToken",1)
	SHT3 PQRSTU 1
	SHT4 P 2 A_PlaySound("weapons/12gsgcock")
	SHT4 QRS 2
	SHT4 P 2 A_SpawnItemEx("ShellCasing",30,-2,25,Random(2,4),Random(3,6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
    SHT4 ONMLKJI 1
	SHT3 F 1 A_ReFire
	Goto ReadyLoop
  ReloadFaster:
	SHT3 A 2 A_GiveInventory("CumShottyStartToken",1)
	SHT3 A 1 A_PlaySound("weapons/12gsgcock",CHAN_AUTO)
	SHT3 A 0 A_SpawnItemEx("ShellCasing",30,-2,25,Random(2,4),Random(3,6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	SHT3 EFGHHGFE 2
	Goto ReadyLoop
  FireX:
	TNT1 A 0 A_JumpIfNoAmmo("EmptyX")
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",CHAN_WEAPON)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(6,-6))
	SHTF A 2 Bright A_FireBullets(3.8,2.4,7,Random(7,8),"ModdedBulletPuff")
	SHTF B 2 Bright A_Light2
	TNT1 A 0 A_Light0
	SHTF CDEF 1
	SHTG BCDEFG 1
	SHTG G 1 A_PlaySound("weapons/12gsgcock")
	SHTG HI 2
	SHTG J 2 A_SpawnItemEx("ShellCasing",30,-2,25,Random(2,4),Random(3,6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	SHTG IHGF 2
	SHTG EDCB 1
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",1,3)
	SHTD A 2
	TNT1 A 0 A_ReFire
	Goto Ready3X
	SHTG A 2
	TNT1 A 0 A_ReFire
	Goto Ready2X
  Empty:
    TNT1 A 0 A_GiveInventory("CumShottyStartToken",1)
	TNT1 A 0 A_PlaySound("weapons/click",CHAN_BODY)
	SHT3 LLLMMMAAAA 1 A_WeaponReady(WRF_NOFIRE)
  AltFire:
    TNT1 A 0 A_JumpIfInventory("CumShottySwitched",1,"AltFireX")
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",9,2)
	TNT1 A 0 A_JumpIfInventory("NewShell",1,2)
	TNT1 A 0
	Goto ReadyLoop
	TNT1 A 0 A_GiveInventory("CumShottyReloading",1)
	SHT4 FGHIJKLMNO 1
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",1,"Reload")
	SHT4 TUV 1	
	SHT4 W 1 A_PlaySound("Weapons/ShellLoad")
	SHT4 "X" 1
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("ShotgunMagazine",1)
	SHT4 "Y" 1
	SHT5 ABC 1
	SHT4 T 2
	SHT4 B 2 A_PlayWeaponSound("weapons/12gsgcock")
	SHT4 CDE 2
	TNT1 A 0 A_SpawnItemEx("ShellCasing",30,-2,25,Random(2,4),Random(3,6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	SHT4 EDCB 2
	TNT1 A 0 A_JumpIfInventory("NewShell",1,1)
	Goto Full
	SHT4 TT 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
  Reload:
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",9,"Full")
	SHT4 UV 1
	SHT4 W 1 A_PlaySound("Weapons/ShellLoad")
	SHT4 "X" 1
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("ShotgunMagazine",1)
	SHT4 "Y" 1
	SHT5 ABC 1
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckReloading")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckReloading")
	SHT4 TT 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"Reload")
  Full:
    SHT4 O 1 A_TakeInventory("CumShottyReloading",1)
	SHT4 NMLKJIHGF 1
	Goto ReadyLoop
  EmptyX:
	TNT1 A 0 A_PlayWeaponSound("weapons/click")
	SHTD AAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE)
	Goto AltFireX
  AltFireX:
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",9,2)
	TNT1 A 0 A_JumpIfInventory("NewShell",1,2)
	TNT1 A 0
	Goto Ready2X
	SHTG BCD 1
	SHTG EFG 2
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",1,"ReloadX")
	SHTR ABC 1	
	SHTR D 1 A_PlaySound("Weapons/ShellLoad")
	SHTR E 1
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("ShotgunMagazine",1)
	SHTR FGHI 1
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
	SHER A 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
	SHER B 2
	SHTG G 2 A_PlayWeaponSound("weapons/12gsgcock")
	SHTG HIJIH 2
	TNT1 A 0 A_JumpIfInventory("NewShell",1,1)
	Goto FullX
	SHER BA 2
  ReloadX:
	TNT1 A 0 A_JumpIfInventory("ShotgunMagazine",9,"FullX")
	SHTR ABC 1
	SHTR D 1 A_PlaySound("Weapons/ShellLoad")
	SHTR E 1
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("ShotgunMagazine",1)
	SHTR FGHI 1
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckReloadingX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckReloadingX")
	SHTR A 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"ReloadX")
  FullX:
	SHTG GFEDCB 1
	SHTG A 3
	Goto Ready2X
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Readyloop
  GrenadeCheckReloading:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss2")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Reload
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("assaultshotgun/holster")
    SHT3 NOPQRSTUV 1
  GrenadeToss2:
    TNT1 A 0 A_TakeInventory("CumShottyReloading",1)
	SHT3 WXY 1
	SHT6 ABC 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	SHT6 CBA 1
    SHT3 YXWVUTSRQPON 1
	Goto ReadyLoop
  GrenadeCheckX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossX")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready2X
  GrenadeCheckReloadingX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossX")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReloadX
  GrenadeTossX:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	SGUN FEDCBA 1
	SGUW A 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6
	SGUW A 1 A_TakeInventory("HandGrenadeAction",1)
	SGUN ABCDEF 1
	Goto Ready2X
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineCheckReloading:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss2")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Reload
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("assaultshotgun/holster")
    SHT3 NOPQRSTUV 1
  MineToss2:
    TNT1 A 0 A_TakeInventory("CumShottyReloading",1)
	SHT3 WXY 1
	SHT6 ABC 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	SHT6 CBA 1
    SHT3 YXWVUTSRQPON 1
	Goto ReadyLoop
  MineCheckX:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossX")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready2X
  MineCheckReloadingX:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossX")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReloadX
  MineTossX:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	SGUN FEDCBA 1
	SGUW A 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5
	SGUW A 1 A_TakeInventory("MineAction",1)
	SGUN ABCDEF 1
	Goto Ready2X
  Zoom:
    TNT1 A 0
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
  ChangeWeapon:
    TNT1 A 0 A_JumpIfInventory("CumShottySwitched",1,"ChangeWeapon2")
	TNT1 A 0 A_GiveInventory("CumShottySwitched",1)
	TNT1 A 0 A_TakeInventory("CumShottyStartToken",1)
	TNT1 A 0 A_TakeInventory("CumShottyReloading",1)
  	TNT1 A 0 A_PlaySound("assaultshotgun/holster",CHAN_BODY)
	SHT3 NOPQRSTUVWXY 1
	SHT6 ABC 1
	TNT1 A 8
	Goto Select
  ChangeWeapon2:
    TNT1 A 0 A_TakeInventory("CumShottySwitched",1)
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	SGUN FEDCBA 1
	SGUW A 1
	TNT1 A 8
	Goto Select
	}
}

Actor AssaultShotgun2 : " Assault Shotgun " Replaces " Assault Shotgun "
{
Tag "Assault Shotgun"
Inventory.PickupMessage "Assault Shotgun - Use ZOOM key to switch to the DJB version"
States
{
  Select:
	TNT1 A 0 A_Raise
    Wait
  Deselect:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
    TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
    TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_TakeInventory("MineAction",1)
    TNT1 A 0 A_TakeInventory("AssShottyEmpty",1)
	TNT1 A 0 A_TakeInventory("AssShottyHalf",1)
	TNT1 A 0 A_JumpIfInventory("AssShottySwitched",1,"DeselectX")
	TNT1 A 0 A_Lower
    ASX3 A 1 A_Lower
    Goto Deselect+7
  DeselectX:
	TNT1 A 0 A_Lower
    SMAG A 1 A_Lower
    Loop
  Startup:
    ASX2 A 1 A_PlaySound("assaultshotgun/draw",CHAN_BODY)
	ASX2 BCDEF 1
	ASX3 A 2
	ASX2 G 1 A_PlayWeaponSound("assaultshotgun/handle")
	ASX2 HIJ 1
	ASX2 KLM 2
	TNT1 A 0 A_GiveInventory("AssShottyStartToken",1)
	TNT1 A 0 A_TakeInventory("AssShottyEmpty",1)
	ASX2 NOP 1
	ASX3 O 1
	Goto ReadyLoop
  Ready:
    TNT1 A 1 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_JumpIfInventory("AssShottySwitched",1,"ReadyX")
    TNT1 A 0 A_JumpIfInventory("AssShottyStartToken",1,1)
	Goto Startup
	ASX2 A 1 A_PlayWeaponSound("assaultshotgun/draw")
	ASX2 BCDEF 1
  Readyloop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
    ASX3 A 1 A_WeaponReady
    Loop
  ReadyX:
    TNT1 A 0 A_PlayWeaponSound("AShotgun/Cock")
	ASGR ABCDE 1
  ReadyXLoop:
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
    SMAG A 1 A_WeaponReady
    Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("AssShottySwitched",1,"FireX")
	TNT1 A 0 A_JumpIfInventory("AssShottyEmpty",1,"FullCock")
	TNT1 A 0 A_JumpIfInventory("AssShottyHalf",1,"Full")
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_PlaySound("assaultshotgun/fire")
	TNT1 A 0 A_AlertMonsters
    TNT1 A 0 Radius_Quake(3,3,0,1,0)
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 A_SpawnItemEx("ShellCasing",30,5,25,Random(2,4),Random(3,6),Random(3,6),0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(5,-5),0,0,Random(5,-5))
    ASX3 G 2 Bright A_FireBullets(5.0,3.0,7,Random(5,7),"ModdedBulletPuff")
    ASX3 H 2 Bright A_Light2
	TNT1 A 0 A_Light0
    ASX3 IJK 1
	ASX3 LM 2
	ASX3 "NO" 2 A_Refire
    Goto Readyloop
  FireX:
	TNT1 A 0 A_JumpIfNoAmmo("EmptyX")
	TNT1 A 0 A_PlaySound("AShotgun/Fire")
	TNT1 A 0 A_AlertMonsters
    TNT1 A 0 Radius_Quake(3,3,0,1,0)
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 A_SpawnItemEx("ShellCasing",30,5,25,Random(2,4),Random(3,6),Random(3,6),0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(5,-5),0,0,Random(5,-5))
    SMAF A 2 Bright A_FireBullets(5.0,3.0,7,Random(5,7),"ModdedBulletPuff")
    SMAF B 2 Bright A_Light2
	TNT1 A 0 A_Light0
    SMAG BCDE 1
	SMAG FA 2
    Goto ReadyXLoop
  Empty:
    ASX3 M 3 A_PlayWeaponSound("assaultshotgun/empty")
    ASX3 "NO" 3
  AltFire:
    TNT1 A 0 A_JumpIfInventory("AssShottySwitched",1,"AltFireX")
    TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",16,2)
    TNT1 A 0 A_JumpIfInventory("NewShell",1,2)
	TNT1 A 0
	Goto Readyloop
	ASX3 PQRSTUVWXYZ 1
	TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",1,"Reload2")
  Reload:   
    TNT1 A 0 A_GiveInventory("AssShottyEmpty",1)
    ASX4 AB 1
	ASX4 C 1 A_PlaySound("assaultshotgun/load2",CHAN_AUTO)
	ASX4 DE 1
	ASX4 F 2 //2
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	ASX4 G 2 A_GiveInventory("V25ShotgunDrum",1) //2
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckReloading")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckReloading")
	ASX4 HI 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
	TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",16,"FullCock")
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"Reload")
  FullCock:
    ASX4 A 1
	TNT1 A 0 A_TakeInventory("AssShottyEmpty",1)
    ASX3 ZYXWVUTSRQP 1
	ASX3 O 2
    ASX3 A 3
	ASX2 G 1 A_PlayWeaponSound("assaultshotgun/handle")
	ASX2 HIJ 1
	ASX2 KLM 2
	ASX2 NOP 1
	ASX3 O 1
	Goto Readyloop	
  Reload2:
    TNT1 A 0 A_GiveInventory("AssShottyHalf",1)
    ASX4 AB 1
	ASX4 C 1 A_PlaySound("assaultshotgun/load2",CHAN_AUTO)
	ASX4 DE 1
	ASX4 F 2 //2
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	ASX4 G 2 A_GiveInventory("V25ShotgunDrum",1) //2
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckReloading")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckReloading")
	ASX4 HI 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
	TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",16,"Full")
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"Reload2")
  Full:
    TNT1 A 0 A_TakeInventory("AssShottyHalf",1)
    ASX3 ZYXWVUTSRQP 1
	ASX3 O 2
	Goto Readyloop
  EmptyX:
    SMAG A 10 A_PlayWeaponSound("weapons/click")
  AltFireX:
    TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",16,2)
    TNT1 A 0 A_JumpIfInventory("NewShell",1,2)
	TNT1 A 0
	Goto ReadyXLoop
	SMAR ABC 1
	ASDU ABC 2
	TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",1,"MaxReloadX")
	ASDU D 2 A_PlayWeaponSound("AShotgun/DrumOut")
	ASDU E 3
	ASDU F 2
	ASDU GH 1
	ASDU I 35 A_FireCustomMissile("EmptyDrumSpawner",0,0,10,1)
	ASDU HG 1
	ASDU F 2
	ASDU E 3
	ASDU D 6 A_PlayWeaponSound("AShotgun/DrumIn")
	ASDU KL 2
	SMAR C 2
	SMAR BA 1
	SMAK A 1
	SMAK B 2
	SMAK C 3 A_PlayWeaponSound("AShotgun/Cock")
	SMAK D 5
	SMAK E 2
  ReloadX:   
	TNT1 A 0 A_TakeInventory("NewShell",1)
	TNT1 A 0 A_GiveInventory("V25ShotgunDrum",1)
	TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",15,2)
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"ReloadX")
	TNT1 A 0
	Goto ReadyXLoop
  MaxReloadX:
  	ASDU D 2 A_PlayWeaponSound("AShotgun/DrumOut")
	ASDU E 3
	ASDU F 2
	ASDU GH 1
	ASDU I 35 A_FireCustomMissile("EmptyDrumSpawner", 0, 0, 10, 1) 
	ASDU HG 1
	ASDU F 2
	ASDU E 3
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"Reload2X")
  Reload2X:
	TNT1 A 0 A_TakeInventory("NewShell",1)
	TNT1 A 0 A_GiveInventory("V25ShotgunDrum",1)
	TNT1 A 0 A_JumpIfInventory("V25ShotgunDrum",16,"FullX")
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"Reload2X")
  FullX:
	ASDU D 6 A_PlayWeaponSound("AShotgun/DrumIn")
	ASDU KL 2
	ASDU A 2
	SMAR CBA 1
	Goto ReadyXLoop
  FullCockX:
    SMAR P 3
    SMAR Q 2
    SMAR CBA 1
	SMAK A 1
	SMAK B 2
	SMAK C 3 A_PlayWeaponSound("AShotgun/Cock")
	SMAK D 5
	SMAK E 2
	Goto ReadyXLoop
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Readyloop
  GrenadeCheckReloading:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossReloading")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Reload
  GrenadeTossReloading:
    TNT1 A 0 A_TakeInventory("AssShottyHalf",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
    ASX4 JKLMN 1
	Goto GrenadeToss+8
  GrenadeToss:
    TNT1 A 0 A_TakeInventory("AssShottyEmpty",1)
	TNT1 A 0 A_TakeInventory("AssShottyHalf",1)
  	TNT1 A 0 A_PlaySound("assaultshotgun/holster",CHAN_BODY)
	ASX3 BCDEF 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_JumpIfInventory("AssShottyEmpty",1,"Startup")
	TNT1 A 0
	Goto Ready
  GrenadeCheckX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossX")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyXLoop
  GrenadeCheckReloadingX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossX")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReloadX
  GrenadeTossX:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	ASGR EDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyX+2
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Readyloop
  MineCheckReloading:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossReloading")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Reload
  MineTossReloading:
    TNT1 A 0 A_TakeInventory("AssShottyHalf",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
    ASX4 JKLMN 1
	Goto MineToss+8
  MineToss:
    TNT1 A 0 A_TakeInventory("AssShottyEmpty",1)
	TNT1 A 0 A_TakeInventory("AssShottyHalf",1)
  	TNT1 A 0 A_PlaySound("assaultshotgun/holster",CHAN_BODY)
	ASX3 BCDEF 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready
  MineCheckX:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossX")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyXLoop
  MineCheckReloadingX:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossX")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReloadX
  MineTossX:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	ASGR EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto ReadyX+2
  Zoom:
    TNT1 A 0
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
  ChangeWeapon:
    TNT1 A 0 A_JumpIfInventory("AssShottySwitched",1,"ChangeWeapon2")
	TNT1 A 0 A_GiveInventory("AssShottySwitched",1)
	TNT1 A 0 A_TakeInventory("AssShottyStartToken",1)
  	TNT1 A 0 A_PlaySound("assaultshotgun/holster",CHAN_BODY)
	ASX3 BCDEF 1
	TNT1 A 8
	Goto Select
  ChangeWeapon2:
    TNT1 A 0 A_TakeInventory("AssShottySwitched",1)
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	ASGR EDCBA 1
	TNT1 A 8
	Goto Select
	}
}

ACTOR AssShottySwitched : Inventory {Inventory.MaxAmount 1}
ACTOR AssShottyEmpty : Inventory {Inventory.MaxAmount 1}
ACTOR AssShottyHalf : Inventory {Inventory.MaxAmount 1}
ACTOR AssShottyStartToken : Inventory {Inventory.MaxAmount 1}

ACTOR INFDoubleBarrelShotgun : " Double Barrel Shotgun " Replaces " Double Barrel Shotgun "
{
Inventory.PickupMessage "Double Barrel Shotgun - Use ZOOM key to switch to the old version"
Tag "Double Barrel Shotgun"
States
{
  Deselect: 
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
    TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
    TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_JumpIfInventory("DBSGSwitched",1,"DeselectX")
	TNT1 A 0 A_Lower
	DBX6 A 1 A_Lower
	Goto Deselect+5
  DeselectX:
	TNT1 A 0 A_JumpIfInventory("SSGShell",2,"Deselect2")
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,"Deselect3")
	TNT1 A 0 A_Lower
	SHTE A 1 A_Lower
	Goto Deselect+2
  Deselect2: 
	TNT1 A 0 A_Lower
	SHT2 A 1 A_Lower
	Loop
  Deselect3: 
	TNT1 A 0 A_Lower
	SST2 A 1 A_Lower
	Loop
  Ready:
    TNT1 A 1 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_JumpIfInventory("DBSGSwitched",1,"ReadyX")
    DBX5 ABC 1
	TNT1 A 0 A_PlayWeaponSound("weapons/pickupssg")
	DBX5 DEFGHIJKLMN 1
  ReadyLoop:
	DBX6 A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	Loop
  ReadyX:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickupssg")
	SHRS ABCDEF 1
	SHRS GH 2
  ReadyLoopX:
	TNT1 A 0 A_JumpIfInventory("SSGShell",2,"Ready2")
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,"Ready3")
	SHTE A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	Loop
  Ready2:
	SHT2 A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	Goto ReadyLoopX
  Ready3:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	SST2 A 1 A_WeaponReady
	Goto ReadyLoopX
  FireRecoil:
    DBX7 H 1 A_Light0
	DBX7 IJK 1
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,1)
	Goto Reload
	DBX7 L 1 A_WeaponReady(WRF_NOBOB)
	DBX7 MN 2 A_WeaponReady(WRF_NOBOB)
	goto ReadyLoop
  Fire:
	TNT1 A 0 A_JumpIfInventory("SSGShell",2,"FireBoth")
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"Reload")
	Goto Empty
  FireBoth:
    TNT1 A 0 A_JumpIfInventory("DBSGSwitched",1,"FireBothX")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 A_PlaySound("ssg/fireboth")
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	TNT1 A 0 A_TakeInventory("SSGShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
	DBX6 B 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	DBX6 C 2 Bright A_Light2
	TNT1 A 0 A_JumpIfInventory("NewShell",2,1)
	Goto FireRecoil
	DBX6 D 1 A_Light0
	DBX6 E 1
	DBX6 FGH 2
	DBX6 I 3
	DBX6 JK 2
	DBX6 L 2 A_PlayWeaponSound("ssg/open")
	DBX6 MNOP 1
	TNT1 AA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	DBX6 QRSTUVWXY 1
	DBX6 "Z" 2
	DBX7 A 2
	DBX7 B 2 A_PlayWeaponSound("ssg/shellslide")
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	DBX7 C 1 A_GiveInventory("SSGShell",2)
	DBX7 DE 1
	DBX6 PONM 1
	DBX6 L 1 A_PlayWeaponSound("ssg/close")
	DBX6 KJIHGFED 1
	Goto ReadyLoop
  FireBothX:
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 A_PlaySound("weapons/sshotf")
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	TNT1 A 0 A_TakeInventory("SSGShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
	SH2F A 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	SH2F B 2 Bright A_Light2
	SH2E A 1 A_Light0
	SHT2 B 1
	SHT2 CDEF 1
	SHT2 EDCB 2
  SSGReloadCheckX:
	TNT1 A 0 A_JumpIfInventory("NewShell",2,2)
	SH2E A 2
	Goto ReadyLoopX
	TNT1 A 0
	Goto ReloadBothX+4
  AltFire:
    TNT1 A 0 A_JumpIfInventory("DBSGSwitched",1,"AltFireX")
	TNT1 A 0 A_JumpIfInventory("SSGShell",2,"FireRight")
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,1)
	Goto Reload
	TNT1 A 0 A_PlaySound("ssg/fireone")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("SSGShell",1)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(6,-6))
	DBX8 H 2 Bright A_FireBullets(4.6,2.8,7,Random(5,7),"ModdedBulletPuff")
	DBX8 I 2 Bright A_Light2
    Goto FireRecoil
  AltFireX:
	TNT1 A 0 A_JumpIfInventory("SSGShell",2,"FireRightX")
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,1)
	Goto ReloadX
	TNT1 A 0 A_PlaySound("weapons/ssgsingleshot")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("SSGShell",1)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(6,-6))
	S2SF C 2 Bright A_FireBullets(4.6,2.8,7,Random(5,7),"ModdedBulletPuff")
	S2SF D 2 Bright A_Light2
	TNT1 A 0 A_Light0
	SH2R EFGH 1
	SHTE A 2
	Goto ReadyLoopX
  FireRight:
	TNT1 A 0 A_PlaySound("ssg/fireone")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("SSGShell",1)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(6,-6))
	DBX7 F 2 Bright A_FireBullets(4.6,2.8,7,Random(5,7),"ModdedBulletPuff")
	DBX7 G 2 Bright A_Light2
	Goto FireRecoil
  FireRightX:
	TNT1 A 0 A_PlaySound("weapons/ssgsingleshot")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("SSGShell",1)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(6,-6))
	S2SF A 2 Bright A_FireBullets(4.6,2.8,7,Random(5,7),"ModdedBulletPuff")
	S2SF B 2 Bright A_Light2
	TNT1 A 0 A_Light0
	SH2R ABCD 1
	SST2 A 2
	Goto ReadyLoopX
  Empty:
    TNT1 A 0 A_JumpIfInventory("DBSGSwitched",1,"EmptyX")
	TNT1 A 0 A_PlaySound("ssg/empty",5)
	DBX7 LLMMNN 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	Goto ReadyLoop
  EmptyX:
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,"Empty2")
	TNT1 A 0 A_PlaySound("weapons/click")
	SHTE AAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyLoopX
  Empty2:
	TNT1 A 0 A_PlaySound("weapons/click")
	SST2 AAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyLoopX
  Reload:
    TNT1 A 0 A_JumpIfInventory("DBSGSwitched",1,"ReloadX")
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,"ReloadRight")
	TNT1 A 0 A_JumpIfInventory("NewShell",2,"ReloadBoth")
	//TNT1 A 0 A_JumpIfInventory("NewShell",1,"ReloadLeft")
	Goto Empty
  ReloadBoth:
	TNT1 A 0 A_JumpIfInventory("NewShell",1,1)
	Goto ReadyLoop
	DBX7 OPQR 1
	DBX7 S 1 A_PlayWeaponSound("ssg/open")
	DBX7 TUV 1
	TNT1 AA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	DBX8 JKLM 1
	DBX8 NOP 2
	DBX8 QR 1
	DBX8 ST 2
	DBX7 B 2 A_PlayWeaponSound("ssg/shellslide")
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	DBX7 C 1 A_GiveInventory("SSGShell",2)
	DBX7 DE 1
	DBX6 PONM 1
	DBX6 L 1 A_PlayWeaponSound("ssg/close")
	DBX6 KJIHGFED 1
	Goto ReadyLoop
  ReloadRight:
	TNT1 A 0 A_JumpIfInventory("NewShell",1,1)
	Goto ReadyLoop
	DBX7 OPQR 1
	DBX7 S 1 A_PlayWeaponSound("ssg/open")
	DBX7 TUV 1
	DBX7 W 1 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	DBX7 XYZ 1
	DBX8 ABC 2
	DBX8 DEFG 1
	DBX7 B 1 A_PlayWeaponSound("ssg/shellslide")
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	DBX7 C 1 A_GiveInventory("SSGShell",1)
	DBX7 DE 1
	DBX6 PONM 1
	DBX6 L 1 A_PlayWeaponSound("ssg/close")
	DBX6 KJIHGFED 1
	Goto ReadyLoop
  ReloadX:
	TNT1 A 0 A_JumpIfInventory("SSGShell",1,"ReloadRightX")
	TNT1 A 0 A_JumpIfInventory("NewShell",2,"ReloadBothX")
	Goto EmptyX
 ReloadBothX:
	TNT1 A 0 A_JumpIfInventory("NewShell",2,1)
	Goto ReadyLoopX
	SHT2 RQ 2
	SH2E B 2
	SHT2 GH 2
	SH2E F 1 A_PlayWeaponSound("weapons/sawedopen")
	SHT2 I 1
	SH2E G 1
	TNT1 AA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	SH2E D 4
	SHT2 J 2 
	SH2E EH 2
	SHT2 K 3
	SHT2 L 3 A_PlayWeaponSound("weapons/shellslide")
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	SHT2 M 2 A_GiveInventory("SSGShell",2)
	SHT2 N 2
	SHT2 OP 1 
	SH2E I 1 A_PlayWeaponSound("weapons/sawedclose")
	SH2E C 1
	SH2E B 2
	SHT2 QR 2	
	Goto ReadyLoopX	
 ReloadRightX:
	TNT1 A 0 A_JumpIfInventory("NewShell",1,1)
	Goto ReadyLoopX
	SHT2 RQ 2
	SH2E B 2
	SH2E C 1
	SH2E I 1 A_PlayWeaponSound("weapons/sawedopen")	
	SHT2 PO 1
	S2SR AB 1
	TNT1 A 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	S2SR C 4
	S2SR DEFG 2
	SHT2 L 2 A_PlayWeaponSound("weapons/shellslide")
	TNT1 A 0 A_TakeInventory("NewShell",1,TIF_NOTAKEINFINITE)
	SHT2 M 2 A_GiveInventory("SSGShell",1)
	SHT2 N 2
	SHT2 OP 1 
	SH2E I 1 A_PlayWeaponSound("weapons/sawedclose")
	SH2E C 1
	SH2E B 2
	SHT2 QR 2
	Goto ReadyLoopX
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoop
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DBX8 UVWXY 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
    DBX8 YXWVU 1
	Goto ReadyLoop
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DBX8 UVWXY 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	DBX8 YXWVU 1
	Goto ReadyLoop
  GrenadeCheckX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossX")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoopX
  GrenadeTossX:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	S2GN FEDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	S2GN ABCDEF 1
	Goto ReadyLoopX
  MineCheckX:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossX")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoopX
  MineTossX:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	S2GN FEDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	S2GN ABCDEF 1
	Goto ReadyLoopX
  Zoom:
    TNT1 A 0
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
  ChangeWeapon:
    TNT1 A 0 A_JumpIfInventory("DBSGSwitched",1,"ChangeWeapon2")
	TNT1 A 0 A_GiveInventory("DBSGSwitched",1)
  	TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
	DBX8 UVWXY 1
	TNT1 A 8
	Goto Select
  ChangeWeapon2:
    TNT1 A 0 A_TakeInventory("DBSGSwitched",1)
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
    S2GN FEDCBA 1
	TNT1 A 8
	Goto Select
	}
}

ACTOR DBSGSwitched : Inventory {Inventory.MaxAmount 1}

ACTOR INFQuadBarrelShotgun : " Quad Barrel Shotgun " replaces " Quad Barrel Shotgun "
{
Tag "Quad Barrel Shotgun"
weapon.preferredskin "INFNewQuad-Shotgun-Marine"
States
{
  Ready:
	TNT1 A 1 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/pickupqsg")
	TNT1 A 0 A_JumpIfInventory("QuadSwitched",1,"ReadyX")
	Q5HD ABCDEFGHIJKLM 1
	Goto ReadyLoop
  ReadyLoop:
	Q6HD A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	Loop
  ReadyX:
	QSRS ABCDEF 1
	QSRS GH 2
  ReadyLoopX:
	QSGN A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	Loop
  Deselect: 
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_JumpIfInventory("QuadSwitched",1,"DeselectX")
	TNT1 A 0 A_Lower
	Q6HD A 1 A_Lower
	Goto Deselect+5
  DeselectX:
	TNT1 A 0 A_Lower
	QSGN A 1 A_Lower
	Loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("QuadSwitched",1,"FireX")
	TNT1 A 0 A_JumpIfInventory("QuadShell",4,"QuadFire")
	TNT1 A 0 A_JumpIfInventory("NewShell",2,"Reload")
	Goto Empty
  QuadFire:
	TNT1 A 0 A_PlaySound("quadssg/fire")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_Recoil(2)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(10,5,0,1,0)
	TNT1 A 0 A_TakeInventory("QuadShell",4)	
	TNT1 AAAAAAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(10,-10))
	Q6HD B 2 Bright A_FireBullets(11.8,7.3,52,5,"ModdedBulletPuff")
	Q6HD C 2 Bright A_Light2
	TNT1 A 0 A_Light0
	TNT1 A 0 A_JumpIfInventory("NewShell",4,1)
	Goto QuadFireNoBullets
  ReloadAction:
	Q6HD MNO 1
	Q6HD PQ 2
	Q6HD R 6
	Q6HD STU 2
	Q6HD V 1
	Q6HD W 1 A_PlayWeaponSound("quadssg/open")
	TNT1 AAAA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	Q6HD XYZ 2
	Q7HD A 5
	Q7HD BC 2
	Q7HD DEF 1
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("QuadShell",2)
	Q7HD G 1 A_PlayWeaponSound("quadssg/slide")
	Q7HD H 1
	Q7HD IJK 2
	Q7HD L 3
	Q7HD MNO 2
	Q7HD PQRS 1
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("QuadShell",2)
	Q7HD T 1 A_PlayWeaponSound("quadssg/slide")
	Q7HD UV 1
	Q7HD WXYZ 2
	Q8HD A 2
	Q5HD ABCD 1
	Q5HD E 1 A_PlayWeaponSound("quadssg/close")
	Q5HD FGHIJKLM 1
	Goto ReadyLoop
  QuadFireNoBullets:
	Q6HD D 1
	Q6HD E 6
	Q6HD FGHI 2
	Goto ReadyLoop
  FireX:
	TNT1 A 0 A_JumpIfInventory("QuadShell",4,"QuadFireX")
	TNT1 A 0 A_JumpIfInventory("NewShell",2,"ReloadX")
	Goto EmptyX
  QuadFireX:
	TNT1 A 0 A_PlaySound("weapons/qsgfire")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_Recoil(2)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(10,5,0,1,0)
	TNT1 A 0 A_TakeInventory("QuadShell",4)	
	TNT1 AAAAAAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(10,-10))
	QS4F A 2 Bright A_FireBullets(11.8,7.3,52,5,"ModdedBulletPuff")
	QS4F B 2 Bright A_Light2
	TNT1 A 0 A_Light0
	QSGN CFG 1
	QSGN H 2
	QSER A 3
	QSER B 6
	QSGN GFEDC 2
  QuadReloadCheckX:
	TNT1 A 0 A_JumpIfInventory("NewShell",4,2)
	QSGN S 2
	Goto ReadyLoopX
	TNT1 A 0
	Goto ReloadFourShellsX+3
  AltFire:
	TNT1 A 0 A_JumpIfInventory("QuadSwitched",1,"AltFireX")
	TNT1 A 0 A_JumpIfInventory("QuadShell",4,"FireUpper")
	TNT1 A 0 A_JumpIfInventory("QuadShell",2,1)
	Goto Reload
	TNT1 A 0 A_PlaySound("quadssg/firetwo")	
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("QuadShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
	Q8HD D 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	Q8HD E 2 Bright A_Light2
	TNT1 A 0 A_Light0
	Q6HD GHI 2
	Goto ReadyLoop
  AltFireX:
	TNT1 A 0 A_JumpIfInventory("QuadShell",4,"FireUpperX")
	TNT1 A 0 A_JumpIfInventory("QuadShell",2,1)
	Goto ReloadX
	TNT1 A 0 A_PlaySound("weapons/qsgdoublefire")	
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("QuadShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
	QSGF C 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	QSGF D 2 Bright A_Light2
	TNT1 A 0 A_Light0
	QREC ABCDE 1
	QSGN A 1
	Goto ReadyLoopX
  FireUpper:
	TNT1 A 0 A_PlaySound("quadssg/firetwo")	
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("QuadShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
	Q8HD B 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	Q8HD C 2 Bright A_Light2
	TNT1 A 0 A_Light0
	Q6HD GHI 2
	Goto ReadyLoop
  FireUpperX:
	TNT1 A 0 A_PlaySound("weapons/qsgdoublefire")	
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("QuadShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
	QSGF A 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	QSGF B 2 Bright A_Light2
	TNT1 A 0 A_Light0
	QREC ABCDE 1
	QSGN A 1
	Goto ReadyLoopX
  Empty:
	TNT1 A 0 A_PlaySound("weapons/click",6)
	Q6HD GGGHHHIII 1 A_WeaponReady(WRF_NOFIRE)
	TNT1 A 0 A_JumpIfInventory("NewShell",4,"ReloadFourShells")
	Goto ReadyLoop
  EmptyX:
	TNT1 A 0 A_PlayWeaponSound("weapons/click")
	QSGN AAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE)
	TNT1 A 0 A_JumpIfInventory("NewShell",4,"ReloadFourShellsX")
	Goto ReadyLoopX
  Reload:
	TNT1 A 0 A_JumpIfInventory("QuadShell",2,"ReloadTwoShells")
	TNT1 A 0 A_JumpIfInventory("NewShell",4,"ReloadFourShells")
	Goto Empty
  ReloadFourShells:
	Q6HD JKLMNOPQRSTUV 1
	Goto ReloadAction+10
  ReloadTwoShells:
	TNT1 A 0 A_JumpIfInventory("NewShell",2,1)
	Goto ReadyLoop
	Q6HD JKLMNOPQRSTUV 1
	Q6HD W 1 A_PlayWeaponSound("quadssg/open")
	TNT1 AA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	Q8HD FGH 2
	Goto ReloadAction+31
  ReloadX:
	TNT1 A 0 A_JumpIfInventory("QuadShell",2,"ReloadTwoShellsX")
	TNT1 A 0 A_JumpIfInventory("NewShell",4,"ReloadFourShellsX")
	Goto Empty	
  ReloadFourShellsX:
	QSGN SRQ 2
	QSGN PJ 1
	QSGN K 1
	TNT1 AAAA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	QSGN L 1
	QSGR A 12 A_PlayWeaponSound("weapons/qsgopen")
	QSGR B 1
	QSGR CD 2
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("QuadShell",2)
	QSGR E 3 A_PlayWeaponSound("weapons/qsgshellslide")
	QSGR F 3
	QSGR G 2
	QSGR H 1
	QSGR I 8
	QSGR JK 1
	QSGR LM 2
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("QuadShell",2)
	QSGR N 3 A_PlayWeaponSound("weapons/qsgshellslide")	
	QSGR O 3
	QSGR P 2
	QSGR Q 1
	QSGN MNO 1
	QSGN P 1 A_PlayWeaponSound("weapons/qsgclose")
	QSGN QRS 2
	QSGN A 2
	Goto ReadyLoopX
  ReloadTwoShellsX:
	TNT1 A 0 A_JumpIfInventory("NewShell",2,1)
	Goto ReadyLoopX
	QSGN SRQ 2
	QSGN P 1
	QSEX A 1
	QSEX B 1
	TNT1 AA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
	QSEX C 1
	QSGR I 12 A_PlayWeaponSound("weapons/qsgopen")
	QSGR JK 1
	QSGR LM 2
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_GiveInventory("QuadShell",2)
	QSGR N 3 A_PlayWeaponSound("weapons/qsgshellslide")	
	QSGR O 3
	QSGR P 2
	QSGR Q 1
	QSGN MNO 1
	QSGN P 1 A_PlayWeaponSound("weapons/qsgclose")
	QSGN QRS 2
	QSGN A 2
	Goto ReadyLoopX
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoop
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	Q8HD IJKLM 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Q8HD MLKJI 1
	Goto ReadyLoop
  GrenadeCheckX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossX")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoopX
  GrenadeTossX:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	QSHT EDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	QSHT ABCDE 1
	Goto ReadyLoopX
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	Q8HD IJKLM 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Q8HD MLKJI 1
	Goto ReadyLoop
  MineCheckX:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossX")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoopX
  MineTossX:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	QSHT EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	QSHT ABCDE 1
	Goto ReadyLoopX
  Zoom:
	TNT1 A 0
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
  ChangeWeapon:
	TNT1 A 0 A_JumpIfInventory("QuadSwitched",1,"ChangeWeapon2")
	TNT1 A 0 A_GiveInventory("QuadSwitched",1)
	TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
	Q8HD IJKLM 1
	TNT1 A 8
	Goto Select
  ChangeWeapon2:
	TNT1 A 0 A_TakeInventory("QuadSwitched",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	QSHT EDCBA 1
	TNT1 A 8
	Goto Select
	}
}

ACTOR QuadSwitched : Inventory {Inventory.MaxAmount 1}


Actor Hexa-Shotgun3 : Hexa-Shotgun2 Replaces Hexa-Shotgun
{
Tag "Hexa-Shotgun"
Weapon.SisterWeapon "PoweredHexa-Shotgun2"
weapon.preferredskin "INFHexa-Shotgun-Marine"
States
{
  Spawn:
    HSGP A -1
    Stop
  Ready:
    TNT1 A 0 A_PlayWeaponSound("weapons/pickuphsg")
	H11T ABCDEFGHIJKLMNOP 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    H12T A 1 A_WeaponReady
    Loop
  Deselect: 
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
    H12T A 1 A_Lower
    Goto Deselect+1
  Select:
	TNT1 A 0 A_Raise
    Wait
  Fire:
	TNT1 A 0 A_JumpIfInventory("HexaShell",6,"HexaFire")
	TNT1 A 0 A_JumpIfInventory("NewShell",2,1)
	Goto Empty
	TNT1 A 0 A_JumpIfInventory("HexaShell",4,"ReloadTwoShells")
	TNT1 A 0 A_JumpIfInventory("NewShell",4,1)
	Goto Empty
	TNT1 A 0 A_JumpIfInventory("HexaShell",2,"ReloadFourShells")
	Goto Empty
  HexaFire:
	TNT1 A 0 A_PlaySound("weapons/hsgfire")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_Recoil(4)
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(20,5,0,1,0)
	TNT1 A 0 A_TakeInventory("HexaShell",6)	
	TNT1 AAAAAAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(10,-10))
    H12T B 1 Bright A_FireBullets(11.8,7.3,52,5,"ModdedBulletPuff")
    H12T C 1 Bright A_FireBullets(13.8,7.3,26,5,"ModdedBulletPuff")
    H12T D 1 Bright A_Light2
	TNT1 A 0 A_Light0
	H12T EFG 1
	H12T H 2
	H12T I 3
	H12T J 6
	H12T KLM 2
	H12T NOPQRST 1
  HexaReloadCheck:
  	TNT1 A 0 A_JumpIfInventory("NewShell",6,1)
	Goto Ready+16
	TNT1 A 0
	Goto ReloadSixShells+5
  AltFire:
    TNT1 A 0 A_JumpIfInventory("HexaShell",6,"FireUpper")
    TNT1 A 0 A_JumpIfInventory("HexaShell",4,"FireMiddle")
	TNT1 A 0 A_JumpIfInventory("HexaShell",2,1)
	Goto Reload
    TNT1 A 0 A_PlaySound("weapons/qsgdoublefire")	
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("HexaShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
    H15T H 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	H15T I 2 Bright A_Light2
	TNT1 A 0 A_Light0
	H15T CDE 2
    Goto ReadyLoop
  FireUpper:
    TNT1 A 0 A_PlaySound("weapons/qsgdoublefire")	
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("HexaShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
    H15T A 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	H15T B 2 Bright A_Light2
	TNT1 A 0 A_Light0
	H15T CDE 2
    Goto ReadyLoop	
  FireMiddle:
    TNT1 A 0 A_PlaySound("weapons/qsgdoublefire")	
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(3,3,0,1,0)
	TNT1 A 0 A_TakeInventory("HexaShell",2)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("SGTracer",Random(8,-8),0,0,Random(8,-8))
    H15T F 2 Bright A_FireBullets(11.2,7.1,20,5,"ModdedBulletPuff")
	H15T G 2 Bright A_Light2
	TNT1 A 0 A_Light0
	H15T CDE 2
    Goto ReadyLoop	
  Empty:
    H12T A 10 A_PlayWeaponSound("weapons/click")
	TNT1 A 0 A_JumpIfInventory("NewShell",6,"ReloadSixShells")
	Goto ReadyLoop
  Reload:
	TNT1 A 0 A_JumpIfInventory("HexaShell",2,"ReloadTwoShells")
	TNT1 A 0 A_JumpIfInventory("HexaShell",4,"ReloadFourShells")
	TNT1 A 0 A_JumpIfInventory("NewShell",6,"ReloadSixShells")
	Goto Empty	
  ReloadSixShells:
    H15T JKLMN 1
	H12T U 1
	TNT1 AAAAAA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0)
	H12T V 2 A_PlayWeaponSound("weapons/qsgopen")
	H12T W 2
	H12T "X" 12
	H12T "Y" 2
	H12T "Z" 1
	H13T AB 1
	H13T C 2
	TNT1 A 0 A_TakeInventory("NewShell",2)
	TNT1 A 0 A_GiveInventory("HexaShell",2)
	H13T D 2 A_PlayWeaponSound("weapons/qsgshellslide")
	H13T E 2
	H13T FG 1
	H13T H 8
	H13T I 2
	H13T JK 1
	H13T LM 2
	TNT1 A 0 A_TakeInventory("NewShell",2)
	TNT1 A 0 A_GiveInventory("HexaShell",2)
	H13T N 2 A_PlayWeaponSound("weapons/qsgshellslide")
	H13T O 2
	H13T PQR 1
	H13T S 8
	H13T T 2
	H13T UV 1
	H13T WX 2
	TNT1 A 0 A_TakeInventory("NewShell",2)
	TNT1 A 0 A_GiveInventory("HexaShell",2)
	H13T "Y" 2 A_PlayWeaponSound("weapons/qsgshellslide")
	H13T "Z" 2
	H14T A 2
	H14T BCDEFGHIJ 1
	H12T U 1
	H14T K 1
	H11T D 1 A_PlayWeaponSound("weapons/qsgclose")
	H11T EFGHIJKLMNOP 1
	Goto ReadyLoop
  ReloadFourShells:
    TNT1 A 0 A_JumpIfInventory("NewShell",4,1)
	Goto ReadyLoop
    H15T JKLMN 1
	H12T U 1
	TNT1 AAAA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0)
	H15T S 1 A_PlayWeaponSound("weapons/qsgopen")
	H15T TUV 1
	H13T H 8
	H13T I 2
	H13T JK 1
	H13T LM 2
	TNT1 A 0 A_TakeInventory("NewShell",2)
	TNT1 A 0 A_GiveInventory("HexaShell",2)
	H13T N 2 A_PlayWeaponSound("weapons/qsgshellslide")
	H13T O 2
	H13T PQR 1
	H13T S 8
	H13T T 2
	H13T UV 1
	H13T WX 2
	TNT1 A 0 A_TakeInventory("NewShell",2)
	TNT1 A 0 A_GiveInventory("HexaShell",2)
	H13T "Y" 2 A_PlayWeaponSound("weapons/qsgshellslide")
	H13T "Z" 2
	H14T A 2
	H14T BCDEFGHIJ 1
	H12T U 1
	H14T K 1
	H11T D 1 A_PlayWeaponSound("weapons/qsgclose")
	H11T EFGHIJKLMNOP 1
	Goto ReadyLoop
  ReloadTwoShells:
    TNT1 A 0 A_JumpIfInventory("NewShell",2,1)
	Goto ReadyLoop
	H15T JKLMN 1
	H12T U 1
	TNT1 AA 0 A_SpawnItemEx("SSGShellCasing",25,-2,25,Random(2,4),Random(-3,-6),Random(3,6),0)
	H15T O 1 A_PlayWeaponSound("weapons/qsgopen")
	H15T PQR 1
	H13T S 8
	H13T T 2
	H13T UV 1
	H13T WX 2
	TNT1 A 0 A_TakeInventory("NewShell",2)
	TNT1 A 0 A_GiveInventory("HexaShell",2)
	H13T "Y" 2 A_PlayWeaponSound("weapons/qsgshellslide")
	H13T "Z" 2
	H14T A 2
	H14T BCDEFGHIJ 1
	H12T U 1
	H14T K 1
	H11T D 1 A_PlayWeaponSound("weapons/qsgclose")
	H11T EFGHIJKLMNOP 1
	Goto ReadyLoop
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoop
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	H16T ABCDE 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	H16T EDCBA 1
	Goto ReadyLoop
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	H16T ABCDE 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	H16T EDCBA 1
	Goto ReadyLoop
	}
}

Actor PoweredHexa-Shotgun2 : PoweredHexa-ShotgunNEO
{
Weapon.SisterWeapon "Hexa-Shotgun3"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+9
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	XSHT EDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	XSHT ABCDE 1
	Goto Ready+9
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+9
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	XSHT EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	XSHT ABCDE 1
	Goto Ready+9
	}
}

Actor INFExplosiveShotgun : "Explosive ShotgunNEO" Replaces "Explosive ShotgunNEO"
{
Tag "Explosive Shotgun"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto RealyReady
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	HLSQ HGFEDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	HLSQ ABCDEFGH 1
	Goto RealyReady
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto RealyReady
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	HLSQ HGFEDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	HLSQ ABCDEFGH 1
	Goto RealyReady
	}
}

Actor INFExplosiveSSG : ExplosiveSSG Replaces ExplosiveSSG
{
Tag "Explosive Super Shotgun"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoop
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	3HD2 EDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	3HD2 ABCDEFGHIJK 1
	Goto ReadyLoop
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	3HD2 EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	3HD2 ABCDEFGHIJK 1
	Goto ReadyLoop
	}
}

Actor INFRapidShotgun : RapidShotgunNEO Replaces RapidShotgunNEO
{
Weapon.SisterWeapon "INFEmpoweredRapidShotgun"
Tag "Rapid Shotgun"
States
{
  GrenadeCheck:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	Goto Ready+6
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	CGRS EDCBA 1
	TNT1 A 6
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6
	Goto Ready+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+7	
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	CGRS EDCBA 1
	CGRS A 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
	}
}

Actor INFEmpoweredRapidShotgun : EmpoweredRapidShotgunNEO 
{ 
Weapon.SisterWeapon "INFRapidShotgun"
States
{
  Ready:  
	TNT1 A 0 A_PlayWeaponSound("weapons/minigunpickup")
	MGRE ABCDE 1 
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    ECHG A 1 A_WeaponReady 
	Goto Ready+6
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+7	
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	MGRE EDCBA 1
	MGRE A 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
  GrenadeCheck:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	Goto Ready+6
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	MGRE EDCBA 1
	TNT1 A 6
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6
	Goto Ready+1
	}
}

//Explosive Minigun
ACTOR HDExpMinigunToken : Inventory {Inventory.MaxAmount 1}

Actor INFExplosiveMinigun : "NewExplosiveMinigun" Replaces "NewExplosiveMinigun"
{
Tag "Explosive Minigun"
-INVENTORY.UNDROPPABLE
States
{
  Select:
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderSelecting")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"SelectingSD")
  Selecting:
    7ZCG A 1 A_Raise
    TNT1 A 0 A_Raise
    Loop
  SelectingSD:
    CHNG A 1 A_Raise
    TNT1 A 0 A_Raise
    Loop
  CommanderSelecting:
    TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderSelectingSD")
    8ZCG A 1 A_Raise
    TNT1 A 0 A_Raise
    Loop
  CommanderSelectingSD:
    PHNG A 1 A_Raise
    TNT1 A 0 A_Raise
    Loop
  Deselect:
    TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
    TNT1 A 0 A_TakeInventory("MineAction",1)
    TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_StopSound(5) //A_PlaySound("weapons/weapondown",5)
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderDeselecting")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"DeselectingSD")
  Deselecting:
    7ZCG A 1 A_Lower
    TNT1 A 0 A_Lower
    Loop
  DeselectingSD:
    CHNG A 1 A_Lower
    TNT1 A 0 A_Lower
    Loop
  CommanderDeselecting:
    TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderDeselectingSD")
    8ZCG A 1 A_Lower
    TNT1 A 0 A_Lower
    Loop
  CommanderDeselectingSD:
    PHNG A 1 A_Lower
    TNT1 A 0 A_Lower
    Loop
  Ready:
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReady")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySD")
  ReadyLoop:
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReady")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"WeaponSkin")
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    7ZCG A 1 A_WeaponReady
    Loop
  CommanderReady:
    TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySD")
  CommanderReadyLoop:
    TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderWeaponSkin")
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    8ZCG A 1 A_WeaponReady
    Loop
  CommanderReadySD:
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto CommanderWeaponSkin2
    PHNG A 1 A_WeaponReady
    Loop
  ReadySpinner:
    7ZCG VWXYZ 1
  ReadySpin:
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySpinSD")
    TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
    7ZCG EFGA 1 A_WeaponReady
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySpinSD")
    7ZCG BCDE 1 A_WeaponReady
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySpinSD")
    7ZCG FGAB 1 A_WeaponReady
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySpinSD")
	TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
	7ZCG CDEF 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySpinSD")
	7ZCG GABC 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySpinSD")
	7ZCG DEFG 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"ReadySpinSD")
	7ZCG ABCD 1 A_WeaponReady
    Loop
  CommanderReadySpinner:
    8ZCG VWXYZ 1
  CommanderReadySpin:
    TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySpinSD")
    8ZCG EFGA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySpinSD")
    8ZCG BCDE 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySpinSD")
    8ZCG FGAB 1 A_WeaponReady
	TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySpinSD")
	8ZCG CDEF 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySpinSD")
	8ZCG GABC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySpinSD")
	8ZCG DEFG 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderReadySpinSD")
	8ZCG ABCD 1 A_WeaponReady
    Loop
  ReadySD:
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReady")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto WeaponSkin2
    CHNG A 1 A_WeaponReady
    Loop
  ReadySpinSD:
    TNT1 A 0 A_PlaySound("weapons/expmgunspin", 5)
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto ReadySpin
    CHNG ABCD 1 A_WeaponReady
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto ReadySpin
    CHNG ABCD 1 A_WeaponReady
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto ReadySpin
    CHNG ABCD 1 A_WeaponReady
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderReadySpin")
    Loop
  CommanderReadySpinSD:
    TNT1 A 0 A_PlaySound("weapons/expmgunspin", 5)
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto CommanderReadySpin
    PHNG ABCD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto CommanderReadySpin
    PHNG ABCD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,1)
	Goto CommanderReadySpin
    PHNG ABCD 1 A_WeaponReady
    Loop
  Fire:
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderFire")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"FireSD")
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDown")   
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"Firing")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive",1,"Firing")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    7ZCG ABC 2
    7ZCG DEFGABCD 1
  Firing:
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    7ZCG H 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDown")   
    7ZCG IJ 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    7ZCG K 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
	TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDown")
    7ZCG L 1 Bright
  Hold:
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderHold")
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    7ZCG M 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDown")
    7ZCG N 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    7ZCG O 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDown")   
    7ZCG P 1 Bright
	TNT1 A 0 A_ReFire(1)
	Goto HoldFinish
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,3),Random(-3,-5),Random(3,5),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    7ZCG Q 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDown")
	7ZCG R 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
	7ZCG S 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
	TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDown")
	7ZCG T 1 Bright
    TNT1 A 0 A_ReFire("Hold")
  HoldFinish:
	7ZCG U 1 Bright
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"ReadySpinner")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
	7ZCG VWXYZ 1
    7ZCG FG 1
    7ZCG ABCD 2
    7ZCG EFG 3
    Goto ReadyLoop
  FireSD:
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDownSD")   
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"FiringSD")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive",1,"FiringSD")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    CHNG ABC 2
    CHNG DABCDABC 1
  FiringSD:
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin", 5)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    CHNF A 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDownSD")   
    CHNF BC 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    CHNF D 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
    CHNF E 1 Bright
  HoldSD: //FGHIJKLM
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderHold")
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin", 5)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    CHNF F 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
    CHNF G 1 Bright A_JumpIfNoAmmo("EmptySpinDownSD")
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    CHNF H 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
	CHNF I 1 Bright A_JumpIfNoAmmo("EmptySpinDownSD")
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    CHNF J 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
	CHNF K 1 Bright A_JumpIfNoAmmo("EmptySpinDownSD")
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 A 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    CHNF L 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,10),"ModdedBulletPuff")
	CHNF M 1 Bright
    TNT1 A 0 A_JumpIfNoAmmo("EmptySpinDownSD")   
    TNT1 A 0 A_ReFire("HoldSD")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"ReadySpinSD")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    CHNG ABCDABCD 1
    CHNG ABCD 2
    CHNG ABCD 3
    Goto ReadySD
  CommanderFire:
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderFireSD")
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDown")   
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"CommanderFiring")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive",1,"CommanderFiring")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    8ZCG ABC 2
    8ZCG DEFGABCD 1
  CommanderFiring:
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    8ZCG H 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDown")   
    8ZCG IJ 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    8ZCG K 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
	TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDown")
    8ZCG L 1 Bright
  CommanderHold:
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin",5,1.0,TRUE)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    8ZCG M 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDown")
    8ZCG N 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    8ZCG O 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDown")   
    8ZCG P 1 Bright
	TNT1 A 0 A_ReFire(1)
	Goto CommanderHoldFinish
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,3),Random(-3,-5),Random(3,5),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    8ZCG Q 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDown")
	8ZCG R 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
	8ZCG S 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
	TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDown")
	8ZCG T 1 Bright
    TNT1 A 0 A_ReFire("CommanderHold")
  CommanderHoldFinish:
	8ZCG U 1 Bright
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"CommanderReadySpinner")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
	8ZCG VWXYZ 1
    8ZCG FG 1
    8ZCG ABCD 2
    8ZCG EFG 3
    Goto CommanderReady
  CommanderFireSD:
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDownSD")   
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"CommanderFiringSD")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive",1,"CommanderFiringSD")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    PHNG ABC 1
    PHNG DABCDABC 1
  CommanderFiringSD:
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin", 5)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    PHNF A 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDownSD")
    PHNF BC 1 Bright
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    PHNF D 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
    PHNF E 1 Bright
  CommanderHoldSD:
    TNT1 A 0 A_GiveInventory("ExpMinigunActive",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspin", 5)
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    PHNF F 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
    PHNF G 1 Bright A_JumpIfNoAmmo("CommanderEmptySpinDownSD")
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    PHNF H 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
	PHNF I 1 Bright A_JumpIfNoAmmo("CommanderEmptySpinDownSD")
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    PHNF J 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
	PHNF K 1 Bright A_JumpIfNoAmmo("CommanderEmptySpinDownSD")
    TNT1 A 0 Radius_Quake(2,2,0,1,0)
    TNT1 A 0 A_SpawnItemEx("PurpleShellCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    TNT1 A 0 A_PlaySound("sentient/fire", CHAN_WEAPON)   
    TNT1 AA 0 A_FireCustomMissile("PlayerCommanderExplosiveTracer",Random(4,-4),0,0,Random(4,-4))
    PHNF L 1 Bright A_FireBullets(4.8,2.4,-1,Random(6,12),"PPurpleExpMinigunPuff")
	PHNF M 1 Bright	
    TNT1 A 0 A_JumpIfNoAmmo("CommanderEmptySpinDownSD")
    TNT1 A 0 A_ReFire("CommanderHoldSD")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"CommanderReadySpin") //SD
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    PHNG ABCDABCD 1
    PHNG ABCD 2
    PHNG ABCD 3
    Goto CommanderReady
  AltFire:
    TNT1 A 0 a_jumpifinventory("CommanderExpMinigunUpgrade",1,"CommanderAltFire")
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"AltFireSD")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"EmptySpinDownAlt")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    7ZCG ABC 2
    7ZCG DEFGABCD 1
    TNT1 A 0 A_GiveInventory("ExpMinigunActive2",1)
    Goto ReadySpin
  EmptySpinDown:
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
	7ZCG VWXYZ 1
    7ZCG FG 1
    7ZCG ABCD 2
    7ZCG EFG 3
    Goto ReadyLoop
  EmptySpinDownAlt:
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    7ZCG ABCDEFG 1
    7ZCG ABCD 2
    7ZCG EFG 3
    Goto ReadyLoop
  AltFireSD:
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"EmptySpinDownSD")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    CHNG ABC 2
    CHNG DABCDABCD 1
    TNT1 A 0 A_GiveInventory("ExpMinigunActive2",1)
    Goto ReadySpinSD
  EmptySpinDownSD:
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    CHNG ABCDABCD 1
    CHNG ABCD 2
    CHNG ABCD 3
    Goto ReadySD
  CommanderAltFire:
	TNT1 A 0 A_JumpIfInventory("HDExpMinigunToken",1,"CommanderAltFireSD")
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"CommanderEmptySpinDownAlt")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    8ZCG ABC 2
    8ZCG DEFGABCD 1
    TNT1 A 0 A_GiveInventory("ExpMinigunActive2",1)
    Goto CommanderReadySpin
  CommanderEmptySpinDown:
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
	8ZCG VWXYZ 1
    8ZCG FG 1
    8ZCG ABCD 2
    8ZCG EFG 3
    Goto ReadyLoop
  CommanderEmptySpinDownAlt:
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    8ZCG ABCDEFG 1
    8ZCG ABCD 2
    8ZCG EFG 3
    Goto CommanderReadyLoop
  CommanderAltFireSD:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("ExpMinigunActive2",1,"CommanderEmptySpinDownSD")
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstart", 5)
    PHNG ABC 2
    PHNG DABCDABCD 1
    TNT1 A 0 A_GiveInventory("ExpMinigunActive2",1)
    Goto CommanderReadySpin
  CommanderEmptySpinDownSD:
    TNT1 A 0 A_TakeInventory("ExpMinigunActive",1)
    TNT1 A 0 A_TakeInventory("ExpMinigunActive2",1)
    TNT1 A 0 A_PlaySound("weapons/expmgunspinstop", 5)
    PHNG ABCDABCD 1
    PHNG ABCD 2
    PHNG ABCD 3
    Goto CommanderReady
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	7ZCG A 1 Offset(0,35)
	7ZCG A 1 Offset(0,45)
	7ZCG A 1 Offset(0,55)
	7ZCG A 1 Offset(0,65)
	7ZCG A 1 Offset(0,75)
	7ZCG A 1 Offset(0,85)
	7ZCG A 1 Offset(0,95)
	7ZCG A 1 Offset(0,108)
	7ZCG A 4 Offset(0,150)
	TNT1 A 0 A_PlayWeaponSound("weapons/explosiveminigunpickup")
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	CHNG A 1 Offset(0,35)
	CHNG A 1 Offset(0,45)
	CHNG A 1 Offset(0,55)
	CHNG A 1 Offset(0,65)
	CHNG A 1 Offset(0,75)
	CHNG A 1 Offset(0,85)
	CHNG A 1 Offset(0,95)
	CHNG A 1 Offset(0,108)
	CHNG A 4 Offset(0,150)
	TNT1 A 0 A_PlayWeaponSound("weapons/explosiveminigunpickup")
	Goto Select
  CommanderWeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	8ZCG A 1 Offset(0,35)
	8ZCG A 1 Offset(0,45)
	8ZCG A 1 Offset(0,55)
	8ZCG A 1 Offset(0,65)
	8ZCG A 1 Offset(0,75)
	8ZCG A 1 Offset(0,85)
	8ZCG A 1 Offset(0,95)
	8ZCG A 1 Offset(0,108)
	8ZCG A 4 Offset(0,150)
	TNT1 A 0 A_PlayWeaponSound("weapons/explosiveminigunpickup")
	Goto Select
  CommanderWeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PHNG A 1 Offset(0,35)
	PHNG A 1 Offset(0,45)
	PHNG A 1 Offset(0,55)
	PHNG A 1 Offset(0,65)
	PHNG A 1 Offset(0,75)
	PHNG A 1 Offset(0,85)
	PHNG A 1 Offset(0,95)
	PHNG A 1 Offset(0,108)
	PHNG A 4 Offset(0,150)
	TNT1 A 0 A_PlayWeaponSound("weapons/explosiveminigunpickup")
	Goto Select
	}
}

Actor INFRocketLauncher : "Rocket Launcher" Replaces "Rocket Launcher "
{
Tag "Rocket Launcher"
States
{
  Ready:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickupml")
	R4Z4 ABCDE 1
  ReadyLoop:
    R4Z5 A 1 A_WeaponReady
    Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	R4Z5 A 1 A_Lower
    Goto Deselect+4
  Select:
	TNT1 A 0 A_Raise
    Wait
  Fire:
    TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
    TNT1 A 0 A_Light1 
	TNT1 A 0 Radius_Quake(4,3,0,1,0)
	R4Z5 B 1 Bright
	TNT1 A 0 A_FireCustomMissile("NewRocket")
	R4Z5 C 1 Bright A_Light2
	R4Z5 D 1 Bright
	R4Z5 E 1 A_Light0
	R4Z5 FGHIJK 1
	TNT1 A 0 A_JumpIfInventory("RocketDrum",1,1)
	Goto LastFire
	R4Z5 LM 1
	R4Z5 N 2 A_PlaySound("rocket/drumspin")
	R4Z5 OP 3
	R4Z5 QQQ 1 A_ReFire
	Goto ReadyLoop
  LastFire:
    R4Z5 RS 1
	R4Z5 T 2
	R4Z5 UVW 3
	R4Z5 AAA 1 A_Refire("Empty")
	Goto AltFire
  Empty:
    TNT1 A 0 A_PlayWeaponSound("weapons/click4")
	R4Z5 AAAA 1 A_WeaponReady(WRF_NOFIRE)
  AltFire:
  	TNT1 A 0 A_JumpIfInventory("RocketDrum",7,"ReadyLoop")
    TNT1 A 0 A_JumpIfInventory("Missile",1,1)
	Goto ReadyLoop
	R4Z6 A 1 A_PlayWeaponSound("weapons/rocketdrumin")
	R4Z6 BCDEFG 1
	R4Z6 H 2 A_FireCustomMissile("RocketEmptyDrumSpawner", 0, 0, 0, 1)
	R4Z6 IJ 2
	R4Z6 KL 3
	R4Z6 MNO 2
  Reload:
	TNT1 A 0 A_TakeInventory("Missile",1)
	TNT1 A 0 A_GiveInventory("RocketDrum",1)
	TNT1 A 0 A_JumpIfInventory("RocketDrum",7,2)
	TNT1 A 0 A_JumpIfInventory("Missile",1,"Reload")
	R4Z6 PQRST 2
	Goto ReadyLoop
	}
}

Actor INFGrenadeLauncher : "Grenade Launcher " Replaces "Grenade Launcher "
{
Weapon.PreferredSkin "GrenadeLauncher-Marine2"
Tag "Grenade Launcher"
States
{
  Deselect:
  	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	G4Z5 A 1 A_Lower
    Goto Deselect+4
  Ready:
    TNT1 A 0 A_PlayWeaponSound("Weapons/GrenadePickup")
	G4Z4 ABCDE 1
  ReadyLoop:
    G4Z5 A 1 A_WeaponReady
    Loop
  Fire:
    TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
    TNT1 A 0 A_Light1 
	TNT1 A 0 Radius_Quake(4,3,0,1,0)
	TNT1 A 0 A_PlaySound("Weapons/GrenadeFire")
	G4Z5 B 1 Bright
    G4Z5 C 1 Bright A_FireCustomMissile("RifleGrenade",0,TRUE,0,0,0,6.328125)
	G4Z5 D 1 Bright A_Light2
    G4Z5 E 1 Bright
	G4Z5 F 2 A_Light0
	G4Z5 GHIJKLM 2
	G4Z5 A 1 A_ReFire
    Goto ReadyLoop
  Empty:
    TNT1 A 0 A_PlayWeaponSound("weapons/click4")
	G4Z5 IIIJJJAAA 1 A_WeaponReady(WRF_NOFIRE)
  AltFire:
  	TNT1 A 0 A_JumpIfInventory("GrenadeDrum",7,"ReadyLoop")
    TNT1 A 0 A_JumpIfInventory("Missile",1,1)
    Goto ReadyLoop
	TNT1 A 0 A_JumpIfInventory("GrenadeDrum",1,"MaxReload")
	G4Z5 N 1 A_PlayWeaponSound("Weapons/GrenadeReload")
	G4Z5 OP 1
	G4Z5 QRSTU 1
	G4Z5 V 2 A_FireCustomMissile("RocketEmptyDrumSpawner",0,0,0,1)
	G4Z5 W 2
	G4Z5 XY 2
	G4Z5 "Z" 6
	G4Z6 ABCDE 1
  Reload:
	TNT1 A 0 A_TakeInventory("Missile",1)
	TNT1 A 0 A_GiveInventory("GrenadeDrum",1)
	TNT1 A 0 A_JumpIfInventory("GrenadeDrum",6,2)
	TNT1 A 0 A_JumpIfInventory("Missile",1,"Reload")
	G4Z6 F 2 A_PlaySound("Weapons/GrenadeCycle")
	G4Z6 GHI 2
	G4Z5 A 5
	G4Z5 KLM 2
	Goto ReadyLoop	
  MaxReload:
	G4Z5 N 1 A_PlayWeaponSound("Weapons/GrenadeReload")
	G4Z5 OP 1
	G4Z5 QRSTU 1
	G4Z5 V 2 A_FireCustomMissile("RocketEmptyDrumSpawner",0,0,0,1)
	G4Z5 W 2
	G4Z5 XY 2
	G4Z5 "Z" 6
	G4Z6 ABCDE 1
  Reload2:
	TNT1 A 0 A_TakeInventory("Missile",1)
	TNT1 A 0 A_GiveInventory("GrenadeDrum",1)
	TNT1 A 0 A_JumpIfInventory("GrenadeDrum",7,2)
	TNT1 A 0 A_JumpIfInventory("Missile",1,"Reload2")
	G4Z6 FGHI 2
	Goto ReadyLoop
	}
}

Actor INFM79-GGL : "M79 Gas Grenade Launcher" Replaces "M79 Gas Grenade Launcher "
{
Weapon.AmmoType1 "Missile"
Weapon.AmmoGive 12
Weapon.AmmoGive2 0
Weapon.UpSound "m79/up"
Inventory.PickupMessage "You got the Gas Grenade Launcher!"
Obituary "%o was Poisoned by %k's Gas Grenade."
Decal Scorch
Tag "M79 Gas Grenade Launcher"
States
{
  Deselect: 
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	GG21 A 1 A_Lower
	Goto Deselect+1 
  Ready:
	GG20 ABCDEFGHIJKLMNOPQRS 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    GG21 A 1 A_WeaponReady
	Loop
  Fire:
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 A_PlaySound("ggl/fire1")
	TNT1 A 0 A_PlaySound("ggl/fire2",CHAN_WEAPON)
	TNT1 A 0 Radius_Quake(3,3,0,1,0)
	GG21 B 1 Bright A_FireCustomMissile("INFM79Grenade",0,TRUE,0,0,0,3.1640625) //6.328125
	GG21 CD 1 Bright
	TNT1 A 0 A_Light0
	GG21 EFG 1
	GG21 HIJ 2
	TNT1 A 0 A_JumpIfInventory("Missile",1,1)
	Goto ReadyLoop
	TNT1 A 0 A_PlaySound("weapons/foley",CHAN_AUTO)
	GG21 KLMNOPQRSTUVWXYZ 1
	GG22 ABCD 1
	GG22 E 1 A_PlayWeaponSound("weapons/M79GrenadeOpen")
	GG22 F 1 A_PlaySound("weapons/rattle",CHAN_AUTO)
	GG22 GH 2
	GG22 I 10
	GG22 JK 2
	GG22 LMNOPQ 1
	GG22 R 2
	GG22 S 2 A_PlayWeaponSound("weapons/M79GrenadeLoad")
	GG22 T 2
	GG22 UVWXYZ 1
	GG23 ABC 1
	GG23 D 1 A_PlayWeaponSound("weapons/M79GrenadeClose")
	TNT1 A 0 A_PlaySound("weapons/rattle",CHAN_AUTO)
	GG22 EDCBA 1
	TNT1 A 0 A_PlaySound("weapons/foley",CHAN_AUTO)
	GG21 ZYXWVUTSRQPONMLK 1
	Goto ReadyLoop
  Empty:
	TNT1 A 0 A_JumpIfInventory("Missile",1,"Reload")
	TNT1 A 0 A_PlayWeaponSound("weapons/click")
	M79F CDEF 2
	Goto ReadyLoop
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoop
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	GG20 SRQP 1
	GG23 EFG 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_PlayWeaponSound("m79/up")
	Goto Ready
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	GG20 SRQP 1
	GG23 EFG 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_PlayWeaponSound("m79/up")
	Goto Ready
	}
}

Actor INFM79Grenade : M79Grenade
{
Speed 37
SeeSound ""
BounceSound ""
+EXPLODEONWATER
+USEBOUNCESTATE
States
{
  Bounce:
	TNT1 A 0 A_PlaySound("Weapons/GrenadeBounce")
	Goto Spawn
  Death:
	TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner",0,0,0,0)
	TNT1 AAA 0 A_CustomMissile("Kaboom4",0,0,FRandom(0,360),2,FRandom(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX2",0,0,FRandom(0,360),2,FRandom(0,360))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("BarbatosPoison",0,0,10,FRandom(4,-4),FRandom(4,-4),FRandom(4,-2))
	TNT1 A 0 A_SpawnItem("INFM79GrenadeExplosion",0,-10)
	TNT1 A 1 A_Explode(300,128)
	Stop
	}
}

ACTOR INFM79GrenadeExplosion
{
RenderStyle Add
Alpha 0.9
scale 0.5
+CLIENTSIDEONLY
+NOGRAVITY
States
{
  Spawn:
	CGE1 ABCDEFGHIJKL 2 Bright
	Stop
	}
}

Actor INFHeavyGrenadeLauncher : HeavyGrenadeLauncher Replaces HeavyGrenadeLauncher
{
Inventory.PickupSound "Weapons/GrenadePickup"
Tag "M79 Thumper"
+WEAPON.AMMO_OPTIONAL
States
{
  Ready:
    N79A ABCDEFGHIJKLMNOPQRS 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    N79B A 1 A_WeaponReady
    Loop
  Deselect:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
    TNT1 A 0 A_Lower
    N79B A 1 A_Lower
    Goto Deselect+4
  Select:
	TNT1 A 0 A_Raise
    Wait
  Empty:
    TNT1 A 0 A_PlayWeaponSound("weapons/click")
	N79B HHIIJJ 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyLoop
  Fire:
    TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
    TNT1 A 0 A_Light1
    TNT1 A 0 A_PlayWeaponSound("M79/Fire")
    N79B B 1 Bright A_FireCustomMissile("PlayerM79HeavyGrenade",0,TRUE,0,8)
	N79B C 1 Bright A_Light2
	N79B D 1 Bright
	N79B E 1 A_Light0
	N79B FG 1
	N79B HIJ 2
	TNT1 A 0 A_JumpIfInventory("Missile",10,1)
	Goto ReadyLoop
	N79B K 2
	N79B L 2 A_PlayWeaponSound("M79/Open")
	N79B MNO 1
	N79B PQR 2
	N79B S 8
	N79B TUVW 2
	N79B XY 1
	N79B "Z" 1 A_PlayWeaponSound("M79/S-In") //A_PlayWeaponSound("M79/S-Out")
	N79C A 1
	N79C B 2
	N79C CD 2
	N79C E 2 A_PlayWeaponSound("M79/Close")
	N79C FGHIJKLM 1
	Goto Ready+8
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyLoop
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	N79B K 1
	N79A DCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_PlayWeaponSound("m79/up")
	Goto Ready
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto ReadyLoop
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	N79B K 1
	N79A DCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_PlayWeaponSound("m79/up")
	Goto Ready
	}
}

ACTOR RailgunStartToken : Inventory {Inventory.MaxAmount 1}

ACTOR "Railgun3" : "Railgun2" Replaces "Railgun2"
{
Weapon.AmmoGive 0
Tag "Railgun"
States
{
  Deselect:
    TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,"Deselect2")
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
  DeselectLoop:
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_Lower
	RG30 "X" 1 A_Lower
	Loop
  Deselect2:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
  Deselect2Loop:
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_Lower
	RG30 A 1 A_Lower
	Loop
  Startup:
    TNT1 A 0 A_GiveInventory("RailgunStartToken",1)
	RG32 QPONML 1
	TNT1 A 0 A_PlaySound("railgun/startup",5)
	RG31 "Z" 5
	Goto Altfire+34
  Ready:
    TNT1 A 0 A_JumpIfInventory("RailgunStartToken",1,1)
	Goto Startup
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,"ReadyPulse")
	TNT1 A 0 A_PlaySound("weapons/railselect",6)
	RG32 QPONML 1
  Ready2:
    TNT1 A 0 A_JumpIfInventory("CellCharge",10,"ReadyPulse")
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_SetCrosshair(0)
	RG30 "X" 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	Loop
  ReadyPulse:
	TNT1 A 0 A_PlaySound("weapons/railselect",6)
	RG29 ABCDEF 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,1)
	Goto Ready2
	TNT1 A 0 A_PlayWeaponSound("weapons/railgunhum")
	TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 BBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 CCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 DDD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 EEE 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 FFF 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 BBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 CCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 DDD 1 A_WeaponReady	
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 EEE 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RG30 FFF 1 A_WeaponReady
	Goto ReadyLoop+1
  ReadyZoomed:
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,1)
	Goto UnZoom
	TNT1 A 0 A_PlayWeaponSound("weapons/railgunhum")
	TNT1 A 0 A_SetCrosshair(11)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	RSCP AAA 1 Bright A_WeaponReady(WRF_NOBOB)
	Goto ReadyZoomed+1
  Fire:
	TNT1 A 0 A_JumpIfInventory("RailgunZoomed",1,"FireZoomed")
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	TNT1 A 0 A_FireCustomMissile("RailgunImpact",0,0)
	TNT1 A 0 A_PlaySound("railgunner/chargedshot")
	RG30 G 2 Bright A_RailAttack(300,0,1,0,0,RGF_SILENT,0,"PlayerRailPuff",0,0,0,0,4,0,"NewRailgunTrail")
	RG30 H 2 Bright
	RG30 I 2 Bright A_Light2
	TNT1 A 0 A_Light0
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,"ChargedRecoil")
	RG30 QRST 2
	RG30 UV 1
	RG30 W 15 //40
	Goto Altfire
  ChargedRecoil:
	RG30 JKLM 2
	RG30 "NO" 1
	RG30 P 40 //51
	Goto ReadyLoop+1
  FireZoomed:
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light2
	TNT1 A 0 A_FireCustomMissile("RailgunImpact",0,0)
	TNT1 A 0 A_PlaySound("railgunner/chargedshot")
	TNT1 A 0 A_RailAttack(400,0,1,0,0,RGF_SILENT,0,"PlayerRailPuff",0,0,0,0,4,0,"NewRailgunTrail")
	TNT1 A 0 A_SetPitch(pitch-0.6)
	RSCP A 1 Bright
	RSCP AAA 1 Bright A_SetPitch(pitch+0.2,SPF_INTERPOLATE)
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,"ZoomedChargedRecoil")
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_ZoomFactor(1)	
	RG30 "X" 15 A_Light0
	Goto AltFire
  ZoomedChargedRecoil:
	TNT1 A 0 A_Light0
	RSCP A 10 Bright A_JumpIfInventory("RailgunAction",1,"FiredUnZoom")
	RSCP A 10 Bright A_JumpIfInventory("RailgunAction",1,"FiredUnZoom2")
	RSCP A 10 Bright A_JumpIfInventory("RailgunAction",1,"FiredUnZoom3")
	RSCP A 10 Bright A_JumpIfInventory("RailgunAction",1,"FiredUnZoom4")
	RSCP A 10 Bright A_JumpIfInventory("RailgunAction",1,"FiredUnZoom5")
	Goto ReadyZoomed
  Empty:
	TNT1 A 0 A_PlaySound("weapons/click2")
	RG30 XXXXXXXXXXXXXXX 1 A_WeaponReady(WRF_NOFIRE)
  AltFire:
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_JumpIfInventory("CellCharge",50,"ReadyLoop")
	TNT1 A 0 A_JumpIfInventory("NewCell",10,1)
	Goto ReadyLoop
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)	
	RG31 ABCDEFGH 1
	RG31 I 2 A_PlayWeaponSound("weapons/cellreload")
	RG31 JKL 2
	RG31 MNOP 1
	RG31 Q 1 A_FireCustomMissile("CellCasingSpawner",random(-13,-15),0,2,1)
	RG31 RSTUVW 1
	RG31 WXY 2
	RG31 "Z" 15
	RG32 ABC 1
	RG32 DEF 2 //57
  Reload:
	TNT1 A 0 A_TakeInventory("NewCell",10)
	TNT1 A 0 A_GiveInventory("CellCharge",10)
	TNT1 A 0 A_JumpIfInventory("CellCharge",50,2)
	TNT1 A 0 A_JumpIfInventory("NewCell",1,"Reload")
	RG32 GHI 3
	RG32 JK 2
	RG30 "X" 30
	RG30 A 10 A_PlaySound("Railgun/ReadyTF",6) //A_PlayWeaponSound("weapons/plasmacellin") //51
	Goto ReadyLoop+1
  Zoom:
	TNT1 A 0 A_JumpIfInventory("RailgunZoomed",1,"UnZoom")
	TNT1 A 0 A_SetCrosshair(11)
	TNT1 A 0 A_GiveInventory("RailgunZoomed",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	RSCP A 9 Bright A_ZoomFactor(5)
	Goto ReadyZoomed
  FiredUnZoom:
    TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	RG30 P 50 A_ZoomFactor(1)
	Goto ReadyLoop+1
  FiredUnZoom2:
    TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	RG30 P 40 A_ZoomFactor(1)
	Goto ReadyLoop+1
  FiredUnZoom3:
    TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	RG30 P 30 A_ZoomFactor(1)
	Goto ReadyLoop+1
  FiredUnZoom4:
    TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	RG30 P 20 A_ZoomFactor(1)
	Goto ReadyLoop+1
  FiredUnZoom5:
    TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	RG30 P 10 A_ZoomFactor(1)
	Goto ReadyLoop+1
  UnZoom:
    TNT1 A 0 A_SetCrosshair(0)
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	RG30 A 3 A_ZoomFactor(1)
	RG30 BC 3
	Goto ReadyLoop+1
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_JumpIfInventory("RailgunZoomed",1,2)
	TNT1 A 0 A_ZoomFactor(1)
	Goto ReadyLoop
	TNT1 A 0
	Goto ReadyZoomed
  GrenadeToss:
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,"GrenadeToss2")
	RG32 LMNOPQ 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+2
  GrenadeToss2:
	RG29 FEDCBA 1
	TNT1 A 6
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto ReadyPulse+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_JumpIfInventory("RailgunZoomed",1,2)
	TNT1 A 0 A_ZoomFactor(1)
	Goto ReadyLoop
	TNT1 A 0
	Goto ReadyZoomed
  MineToss:
	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("CellCharge",10,"MineToss2")
	RG32 LMNOPQ 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+2
  MineToss2:
	RG29 FEDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto ReadyPulse+1
	}
}

Actor INFDemonTechRailgun : "Neo Demon Tech Railgun " Replaces "Neo Demon Tech Railgun "
{
Tag "Demon Tech Railgun"
Weapon.SisterWeapon "INFPoweredDemonTechRailgun"
States
{
 Deselect:
	TNT1 AAA 0 A_StopSound(6)
	TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_WEAPON)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"Deselect2")
 DeselectingEmpty:	
	DRGS JIHGF 1 
 Deselection:
	TNT1 A 0 A_Lower
	Wait
 Deselect2:
	DRGS EDCBA 1
	Goto Deselection
 GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto BuzzIdleLoop
 GrenadeToss:
	TNT1 AAA 0 A_StopSound(6)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"GrenadeToss2")
	DRGS JIHGF 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto IdleReadyCheck
 GrenadeToss2:
	DRGS EDCBA 1
	TNT1 A 6
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto IdleReadyCheck
 MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto BuzzIdleLoop
 MineToss:
	TNT1 AAA 0 A_StopSound(6)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"MineToss2")
	DRGS JIHGF 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto IdleReadyCheck
 MineToss2:
	DRGS EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto IdleReadyCheck	
	}
}

Actor INFPoweredDemonTechRailgun : PoweredDemonTechRailgunNEO
{
Weapon.SisterWeapon "INFDemonTechRailgun"
States
{
  Ready:
	TNT1 A 0 A_PlaySound("EDTRA/Select")
  IdleReadyCheck:
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"BuzzSelect")
	Goto EmptySelect
  BuzzSelect:
	PDRS ABCDE 1 A_WeaponReady(WRF_NOFIRE)
  BuzzIdleLoop:
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,1)
	Goto EmptyIdleLoop
	TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"RageReadyLoop")
	TNT1 A 0 A_PlaySound("EDTRA/Idle",6,1.0,1)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	//TNT1 A 0 A_JumpIfInventory("RailgunAction",1,2)
	PDRG ABC 3 A_WeaponReady
	Loop
  RageReadyLoop:
	TNT1 A 0 A_PlaySound("EDTRA/Idle",6,1.0,1)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	//TNT1 A 0 A_JumpIfInventory("RailgunAction",1,2)
	PDRG AABBCC 3 A_WeaponReady
	Loop
  EmptySelect:
	PDRS FGHIJ 1 A_WeaponReady(WRF_NOFIRE)
  EmptyIdleLoop:
	TNT1 AAA 0 A_StopSound(6)
	TNT1 AAA 0 A_StopSound(7)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"BuzzIdleLoop")
	PDRG D 3 A_WeaponReady
	Loop
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"ReadyChargeStart")
	Goto ReadyEmptyStart
  GrenadeToss:
	TNT1 AAA 0 A_StopSound(6)
	TNT1 AAA 0 A_StopSound(7)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"GrenadeToss1")
	PDRS JIHGF 1
	Goto GrenadeToss2
  GrenadeToss1:	
	PDRS EDCBA 1
  GrenadeToss2:
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+1
 MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"ReadyChargeStart")
	Goto ReadyEmptyStart
 MineToss:
	TNT1 AAA 0 A_StopSound(6)
	TNT1 AAA 0 A_StopSound(7)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("DemonAmmoCharge",10,"MineToss1")
	PDRS JIHGF 1
	Goto MineToss2
 MineToss1:
	PDRS EDCBA 1
 MineToss2:
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
	}
}

Actor INFExplosiveRailgun : ExplosiveRailgunNEO Replaces ExplosiveRailgunNEO 
{ 
Weapon.PreferredSkin "ExplosiveRailgun-Marine" 
Tag "Explosive Railgun"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_JumpIfInventory("RailgunZoomed",1,2)
	TNT1 A 0 A_ZoomFactor(1)
	Goto ReadyLoop
    TNT1 A 0
	Goto ReadyZoomed
  GrenadeToss:
  	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	ERGD CBA 2
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_JumpIfInventory("RailgunZoomed",1,2)
	TNT1 A 0 A_ZoomFactor(1)
	Goto ReadyLoop
    TNT1 A 0
	Goto ReadyZoomed
  MineToss:
  	TNT1 A 0 A_TakeInventory("RailgunZoomed",1)
	TNT1 A 0 A_ZoomFactor(1)
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	ERGD CBA 2
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready
	}
}

Actor INFTechRipper : TechRipper Replaces TechRipper
{
Tag "Tech Ripper"
States
{
  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") 
	THRI A 1 Offset(0,30)
	THRI B 1 Offset(0,40)
	THRI C 1 Offset(0,50)
	THRI A 1 Offset(0,60)
	THRI B 1 Offset(0,70)
	TNT1 A 4 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	THRI A 1 Offset(0,70)
	THRI B 1 Offset(0,60)
	THRI C 1 Offset(0,50)
	THRI A 1 Offset(0,40)
	THRI B 1 Offset(0,31)
	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") 
	THRI A 1 Offset(0,30)
	THRI B 1 Offset(0,40)
	THRI C 1 Offset(0,50)
	THRI A 1 Offset(0,60)
	THRI B 1 Offset(0,70)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	THRI A 1 Offset(0,70)
	THRI B 1 Offset(0,60)
	THRI C 1 Offset(0,50)
	THRI A 1 Offset(0,40)
	THRI B 1 Offset(0,31)
	Goto Ready
  GrenadeCheck2:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss2")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready
  GrenadeToss2:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	THRI E 1 Offset(0,30)
	THRI E 1 Offset(0,40)
	THRI E 1 Offset(0,50)
	THRI E 1 Offset(0,60)
	THRI E 1 Offset(0,70)
	TNT1 A 4 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	THRI E 1 Offset(0,70)
	THRI E 1 Offset(0,60)
	THRI E 1 Offset(0,50)
	THRI E 1 Offset(0,40)
	THRI E 1 Offset(0,31)
	Goto Ready
  MineCheck2:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss2")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready
  MineToss2:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	THRI E 1 Offset(0,30)
	THRI E 1 Offset(0,40)
	THRI E 1 Offset(0,50)
	THRI E 1 Offset(0,60)
	THRI E 1 Offset(0,70)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	THRI E 1 Offset(0,70)
	THRI E 1 Offset(0,60)
	THRI E 1 Offset(0,50)
	THRI E 1 Offset(0,40)
	THRI E 1 Offset(0,31)
	Goto Ready
	}
}

Actor INFTechBlaster : "Tech Blaster" Replaces "Tech Blaster"
{
Weapon.PreferredSkin "TechBlaster-Marine"
Tag "Tech Blaster"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+25
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DTGL VHBNO 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	DTGL ONBHV 1
	Goto Ready+25
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+25
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DTGL VHBNO 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	DTGL ONBHV 1
	Goto Ready+25
	}
}

Actor INFTripleTechBallista : "Triple Tech Ballista" Replaces "Triple Tech Ballista"
{
Tag "Triple Tech Ballista"
States
{
  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")
	TPBW A 1 Offset(0,30)
	TPBW A 1 Offset(0,40)
	TPBW A 1 Offset(0,50)
	TPBW A 1 Offset(0,60)
	TPBW A 1 Offset(0,70)
	TNT1 A 4 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	TPBW A 1 Offset(0,70)
	TPBW A 1 Offset(0,60)
	TPBW A 1 Offset(0,50)
	TPBW A 1 Offset(0,40)
	TPBW 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")
	TPBW A 1 Offset(0,30)
	TPBW A 1 Offset(0,40)
	TPBW A 1 Offset(0,50)
	TPBW A 1 Offset(0,60)
	TPBW A 1 Offset(0,70)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	TPBW A 1 Offset(0,70)
	TPBW A 1 Offset(0,60)
	TPBW A 1 Offset(0,50)
	TPBW A 1 Offset(0,40)
	TPBW A 1 Offset(0,30)
	Goto Ready
	}
}

Actor "NewNewDemonTechBallista" : "NewDemonTechBallista" Replaces "Demon Tech Ballista " 
{
Inventory.PickupSound "weapons/ballistapickup"
Weapon.UpSound "weapons/BallistaUp"
Weapon.SisterWeapon "INFPoweredDemonTechBallista"
Tag "Demon Tech Ballista"
States
{
  Fire:
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",5,1)
	Goto Empty
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_PlayWeaponSound("weapons/Ballistafire")
	TNT1 A 0 A_FireCustomMissile("DemonTechProjectile",Random(-20,-15)*0.1,1,0,8,0,Random(-5,5)*0.1)
	TNT1 A 0 A_FireCustomMissile("DemonTechProjectile",Random(-10,-5)*0.1,1,0,8,0,Random(-5,5)*0.1)
	TNT1 A 0 A_FireCustomMissile("DemonTechProjectile",Random(-2,2)*0.1,1,0,8,0,Random(-5,5)*0.1)
	TNT1 A 0 A_FireCustomMissile("DemonTechProjectile",Random(5,10)*0.1,1,0,8,0,Random(-5,5)*0.1)
	TNT1 A 0 A_FireCustomMissile("DemonTechProjectile",Random(15,20)*0.1,1,0,8,0,Random(-5,5)*0.1)
	DTBF A 2 Bright
	TNT1 A 0 A_Light0
	DTBF BCD 1
	DTBF EFG 2
	DTBF JK 2
	DTBG E 10
	DTBG FG 2
	DTBG A 1 A_WeaponReady
	Goto Ready+2
  AltFire:
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",5,1)
	Goto Empty
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(1,2,0,1,0)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_PlayWeaponSound("weapons/Ballistafire")
	TNT1 A 0 A_FireCustomMissile("DTechBalistaRapidShot",0,1,0,2,0)
	DTBF A 2 Bright
	TNT1 A 0 A_Light0
	DTBF BCD 1
	DTBF EFG 2
	DTBF JK 2
	DTBG E 10
	DTBG FG 2
	DTBG A 1 A_WeaponReady
	Goto Ready+2
  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")
	DTBG A 1 Offset(0,30)
	DTBG A 1 Offset(0,40)
	DTBG A 1 Offset(0,50)
	DTBG A 1 Offset(0,60)
	DTBG A 1 Offset(0,70)
	TNT1 A 4 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	DTBG A 1 Offset(0,70)
	DTBG A 1 Offset(0,60)
	DTBG A 1 Offset(0,50)
	DTBG A 1 Offset(0,40)
	DTBG 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")
	DTBG A 1 Offset(0,30)
	DTBG A 1 Offset(0,40)
	DTBG A 1 Offset(0,50)
	DTBG A 1 Offset(0,60)
	DTBG A 1 Offset(0,70)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	DTBG A 1 Offset(0,70)
	DTBG A 1 Offset(0,60)
	DTBG A 1 Offset(0,50)
	DTBG A 1 Offset(0,40)
	DTBG A 1 Offset(0,30)
	Goto Ready
	}
}

Actor INFPoweredDemonTechBallista : "Powered Demon Tech Ballista"
{
Weapon.SisterWeapon "NewNewDemonTechBallista"
States
{
  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")
	PTBG A 1 Offset(0,30)
	PTBG A 1 Offset(0,40)
	PTBG A 1 Offset(0,50)
	PTBG A 1 Offset(0,60)
	PTBG A 1 Offset(0,70)
	TNT1 A 4 Offset(0,32)
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	PTBG A 1 Offset(0,70)
	PTBG A 1 Offset(0,60)
	PTBG A 1 Offset(0,50)
	PTBG A 1 Offset(0,40)
	PTBG 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")
	PTBG A 1 Offset(0,30)
	PTBG A 1 Offset(0,40)
	PTBG A 1 Offset(0,50)
	PTBG A 1 Offset(0,60)
	PTBG A 1 Offset(0,70)
	TNT1 A 8 Offset(0,32)
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	PTBG A 1 Offset(0,70)
	PTBG A 1 Offset(0,60)
	PTBG A 1 Offset(0,50)
	PTBG A 1 Offset(0,40)
	PTBG A 1 Offset(0,30)
	Goto Ready
	}
}

Actor INFDemonTechRifle : " Demon Tech Rifle " Replaces "Demon Tech Rifle "
{
Weapon.SisterWeapon "INFPoweredDemonTechRifle"
Tag "Demon Tech Rifle"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+8
  EXGrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"EXGrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto EXReady+6
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DTRS EDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+3
  EXGrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	EDT1 EDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto EXReady+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+8
  EXMineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"EXMineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto EXReady+6
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	DTRS EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+3
  EXMineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	EDT1 EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto EXReady+1
	}
}

Actor INFPoweredDemonTechRifle : PoweredDemonTechRifleNEO 
{
Weapon.SisterWeapon "INFDemonTechRifle"
States
{
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+6
  GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	STRS EDCBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+6
  MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	STRS EDCBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	Goto Ready+1
	}
}

//--- DOWON ---

//MELEE
Actor HDMeleeToken : Inventory {inventory.maxamount 1}

Actor INFMelee : NewNewMelee Replaces NewNewMelee
{
Tag "Melee"
States
{
  Deselect:
    TNT1 A 0 A_JumpIfInventory("HDMeleeToken",1,"DeselectX")
	PK0Z A 1 A_Lower
	TNT1 A 0 A_Lower
	Loop
  DeselectX:
	PKFS A 1 A_Lower
	TNT1 A 0 A_Lower
	Loop
  Select:
    TNT1 A 0 A_JumpIfInventory("HDMeleeToken",1,"SelectX")
	PK0Z A 1 A_Raise
	TNT1 A 0 A_Raise
	Loop
  SelectX:
	PKFS A 1 A_Raise
	TNT1 A 0 A_Raise
	Loop
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDMeleeToken",1,"ReadyX")
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	TNT1 A 0 A_JumpIfInventory("HDMeleeToken",1,"WeaponSkin")
	PK0Z A 1 A_WeaponReady
	Loop
  ReadyX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheckX")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheckX")
    TNT1 A 0 A_JumpIfInventory("HDMeleeToken",1,1)
	Goto WeaponSkin2
	PKFS A 1 A_WeaponReady
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDMeleeToken",1,"FireX")
	TNT1 A 0 A_JumpIfInventory("PowerStrength",1,"Berserked")
	TNT1 A 0 A_Jump(256,"NormalFist","NormalKick")
	Goto Ready
  FireX:
	TNT1 A 0 A_JumpIfInventory("PowerStrength",1,"BerserkedX")
	TNT1 A 0 A_Jump(256,"NormalFistX","NormalKickX")
	Goto Ready
  NormalFist:
	PK0Z LBCD 1
	PK0Z E 2 A_CustomPunch(2*Random(1,10),TRUE,0,"NewFistPuff",64)
	PK0Z FGHI 2
	PK0Z JKL 1
	PK0Z A 1 A_ReFire
	Goto Ready
  NormalFistX:
	PKFS LBCD 1
	PKFS E 2 A_CustomPunch(2*Random(1,10),TRUE,0,"NewFistPuff",64)
	PKFS FGHI 2
	PKFS JKL 1
	PKFS A 1 A_ReFire
	Goto Ready
  NormalKick:
	TNT1 A 0 A_GiveInventory("kickAnim",1)
	KIC2 A 1 A_PlaySound("weapons/kick")
	TNT1 A 0 A_Light0
	KIC2 BCDEF 1
	KIC2 G 5 A_CustomPunch(2*Random(11,20),TRUE,0,"NewFootPuff",96)	
	KIC2 EDCBA 2
	PK0Z A 1
	PK0Z A 5 A_ReFire
	Goto Ready
  NormalKickX:
	TNT1 A 0 A_GiveInventory("kickAnim",1)
	KICK A 1 A_PlaySound("weapons/kick")
	TNT1 A 0 A_Light0
	KICK BCDEF 1
	KICK G 5 A_CustomPunch(2*Random(11,20),TRUE,0,"NewFootPuff",96)	
	KICK EDCBA 2
	PKFS A 1
	PKFS A 5 A_ReFire
	Goto Ready	
  Berserked:
	TNT1 A 0 A_Jump(256,"BerserkFist","BerserkKick")
	Goto Ready
  BerserkFist:
	PK0Z L 1 A_PlaySound("weapons/fistwiff")
	PK0Z BCD 1
	PK0Z E 2 A_CustomPunch(25*Random(1,10),TRUE,0,"NewFistPuff",64)	 
	PK0Z FGHIJKL 1
	PK0Z A 1 A_ReFire
	Goto Ready
  BerserkKick:
	TNT1 A 0 A_GiveInventory("kickAnim",1)
	KIC2 A 1 A_PlaySound("weapons/berserkkick")
	KIC2 BCDEF 1
	KIC2 G 5 A_CustomPunch(25*Random(11,20),TRUE,0,"NewFootPuff",96)	
	KIC2 EDCBA 1
	PK0Z A 1
	PK0Z A 5 A_ReFire
	Goto Ready
  BerserkedX:
	TNT1 A 0 A_Jump(256,"BerserkFistX","BerserkKickX")
	Goto Ready
  BerserkFistX:
	PKFS L 1 A_PlaySound("weapons/fistwiff")
	PKFS BCD 1
	PKFS E 2 A_CustomPunch(25*Random(1,10),TRUE,0,"NewFistPuff",64)	 
	PKFS FGHIJKL 1
	PKFS A 1 A_ReFire
	Goto Ready
  BerserkKickX:
	TNT1 A 0 A_GiveInventory("kickAnim",1)
	KICK A 1 A_PlaySound("weapons/berserkkick")
	KICK BCDEF 1
	KICK G 5 A_CustomPunch(25*Random(11,20),TRUE,0,"NewFootPuff",96)	
	KICK EDCBA 1
	PKFS A 1
	PKFS A 5 A_ReFire
	Goto Ready
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready
  GrenadeToss:
	PK0X CBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	PK0X ABC 1
	Goto Ready
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready
  MineToss:
	PK0X CBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	PK0X ABC 1
	Goto Ready
  GrenadeCheckX:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeTossX")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready
  GrenadeTossX:
	PKFR CBA 1
	TNT1 A 4
	HGRN ABCDEFGHI 1
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadepin")
	HGRN JKLM 2
	TNT1 A 11
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN N 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 6 A_TakeInventory("HandGrenadeAction",1)
	PKFR ABC 1
	Goto Ready
  MineCheckX:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineTossX")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready
  MineTossX:
	PKFR CBA 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JKLM 1
	TNT1 A 5 A_TakeInventory("MineAction",1)
	PKFR ABC 1
	Goto Ready
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PK0Z A 1 Offset(0,35)
	PK0Z A 1 Offset(0,45)
	PK0Z A 1 Offset(0,55)
	PK0Z A 1 Offset(0,65)
	PK0Z A 1 Offset(0,75)
	PK0Z A 1 Offset(0,85)
	PK0Z A 1 Offset(0,95)
	PK0Z A 1 Offset(0,108)
	PK0Z A 1 Offset(0,150)
	PK0Z A 3
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PKFS A 1 Offset(0,35)
	PKFS A 1 Offset(0,45)
	PKFS A 1 Offset(0,55)
	PKFS A 1 Offset(0,65)
	PKFS A 1 Offset(0,75)
	PKFS A 1 Offset(0,85)
	PKFS A 1 Offset(0,95)
	PKFS A 1 Offset(0,108)
	PKFS A 1 Offset(0,150)
	PKFS A 3
	Goto Select
	}
}

//BFG9500
Actor HDBFG9500Token : Inventory {inventory.maxamount 1}

ACTOR BFG9500Dowon : NeoBFG9500 replaces BFG9500
{
Scale 0.85
Weapon.PreferredSkin "BFG9500-Marine"
Inventory.PickupSound "weapons/bfgpickup"
Inventory.PickupMessage "BFG9500"
Obituary "%o was annihilated by %k's BFG9500."
Weapon.AmmoType "NewCell"
Weapon.SisterWeapon "PoweredBFG9500Dowon"
Tag "BFG 9500"
+INVENTORY.UNDROPPABLE
States
{
  Spawn:
    BF95 A -1
    Stop
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"ReadyX")
  ReadyLoop:
    B950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	B950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	B950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	B950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
    B950 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	B950 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	B950 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	B950 BBBB 1 A_WeaponReady
	Loop
  ReadyX:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,1)
	Goto WeaponSkin2
	BFGG A 1 A_WeaponReady
	Loop
  Select:   
    TNT1 A 0 A_PlayWeaponSound("weapons/bfgpickup")
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"SelectX")
	TNT1 A 0 A_Raise
    B950 A 1 A_Raise
    Goto Select+2
  SelectX:
	TNT1 A 0 A_Raise
    BFGG A 1 A_Raise
    Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"DeselectX")
	TNT1 A 0 A_Lower
	B950 A 1 A_Lower
    Goto Deselect+5
  DeselectX:
	TNT1 A 0 A_Lower
	BFGG A 1 A_Lower
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"FireX")
    TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,"UpFire")
	TNT1 A 0 A_Light1
	B950 A 2 Bright A_PlaySound("weapons/bfgf",CHAN_WEAPON)
	B950 ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	B950 FFGGHHIIJJ 1 Bright Radius_Quake(4,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	B950 K 4 Bright A_FireCustomMissile("BFG9500Ball",0,1)
	B950 L 3 Bright
	B950 MNO 2 Bright
	TNT1 A 0 A_Light0
	B950 PQRS 1
	B950 TUV 2
	B950 A 20 A_ReFire
	Goto ReadyLoop
  UpFire:
	TNT1 A 0 A_Light1
	B950 A 2 Bright A_PlaySound("weapons/bfgf",CHAN_WEAPON)
	B950 ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	B950 FFGGHHIIJJ 1 Bright Radius_Quake(4,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	B950 K 4 Bright A_FireCustomMissile("UpBFG9500Ball",0,1)
	B950 L 3 Bright
	B950 MNO 2 Bright
	TNT1 A 0 A_Light0
	B950 PQRS 1
	B950 TUV 2
	B950 A 20 A_ReFire("Upfire")
	Goto ReadyLoop
  FireX:
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,"UpFireX")
	TNT1 A 0 A_Light1
	BFGG A 2 Bright A_PlaySound("weapons/bfgf",CHAN_WEAPON)
	BFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	BFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
	BFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
	BFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	DBFF A 4 Bright A_FireCustomMissile("BFG9500Ball",0,1)
	DBFF B 3 Bright
	TNT1 A 0 A_Light0
	BFGR ABCD 1
	BFGR EFG 2
	BFGG A 20 A_ReFire("FireX")
	Goto ReadyX
  UpFireX:
	TNT1 A 0 A_Light1
	BFGG A 2 Bright A_PlaySound("weapons/bfgf",CHAN_WEAPON)
	BFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	BFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
	BFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
	BFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	DBFF A 4 Bright A_FireCustomMissile("UpBFG9500Ball",0,1)
	DBFF B 3 Bright
	TNT1 A 0 A_Light0
	BFGR ABCD 1
	BFGR EFG 2
	BFGG A 20 A_ReFire("UpFireX")
	Goto ReadyX
  AltFire:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"AltFireX")
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,2)
	B950 A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyLoop
	TNT1 A 0 A_JumpIfInventory("NewCell",600,2)
	B950 A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyLoop
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_Light1
	B950 A 2 Bright A_PlaySound("BFG/UpAltfire",CHAN_WEAPON)
	B950 ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	B950 FFGGHHIIJJ 1 Bright Radius_Quake(4,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	TNT1 A 0 A_TakeInventory("NewCell",600)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-2,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",2,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-4,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",4,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-6,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",6,1)
	B950 K 4 Bright
	B950 L 3 Bright
	B950 MNO 2 Bright
	TNT1 A 0 A_Light0
	B950 PQRS 1
	B950 TUV 2
	B950 A 20 A_ReFire
	Goto ReadyLoop
  AltFireX:
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,2)
	BFGG A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyX
	TNT1 A 0 A_JumpIfInventory("NewCell",600,2)
	BFGG A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyX
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_Light1
	BFGG A 2 Bright A_PlaySound("BFG/UpAltfire",CHAN_WEAPON)
	BFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	BFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
	BFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
	BFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	TNT1 A 0 A_TakeInventory("NewCell",600)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-2,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",2,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-4,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",4,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",-6,1)
	TNT1 A 0 A_FireCustomMissile("UpBFG9500Ball",6,1)
	DBFF A 4 Bright
	DBFF B 3 Bright
	TNT1 A 0 A_Light0
	BFGR ABCD 1
	BFGR EFG 2
	BFGG A 20 A_ReFire
	Goto ReadyX
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	B950 A 1 Offset(0,35)
	B950 A 1 Offset(0,45)
	B950 A 1 Offset(0,55)
	B950 A 1 Offset(0,65)
	B950 A 1 Offset(0,75)
	B950 A 1 Offset(0,85)
	B950 A 1 Offset(0,95)
	B950 A 1 Offset(0,108)
	B950 A 1 Offset(0,150)
	B950 A 3
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	BFGG A 1 Offset(0,35)
	BFGG A 1 Offset(0,45)
	BFGG A 1 Offset(0,55)
	BFGG A 1 Offset(0,65)
	BFGG A 1 Offset(0,75)
	BFGG A 1 Offset(0,85)
	BFGG A 1 Offset(0,95)
	BFGG A 1 Offset(0,108)
	BFGG A 1 Offset(0,150)
	BFGG A 3
	Goto Select
  Flash:
	TNT1 A 0
	Stop
    }
}

ACTOR PoweredBFG9500Dowon : PoweredBFG9500
{
Weapon.SisterWeapon "BFG9500Dowon"
States
{
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"ReadyX")
  ReadyLoop:
	E950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	E950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	E950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	E950 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	E950 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	E950 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	E950 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	E950 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"WeaponSkin")
	Loop
  ReadyX:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,1)
	Goto WeaponSkin2
	PFGG A 1 A_WeaponReady
	Loop
  Select:
	TNT1 A 0 A_PlayWeaponSound("EBFG/Up")
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"SelectX")
  SelectLoop:
	TNT1 A 0 A_Raise
	E950 A 1 A_Raise
	Loop
  SelectX:
	TNT1 A 0 A_Raise
	PFGG A 1 A_Raise
	Loop
  Deselect:
	TNT1 A 0
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"DeselectX")
  DeselectLoop:
	TNT1 A 0 A_Lower
	E950 A 1 A_Lower
	Loop
  DeselectX:
	TNT1 A 0 A_Lower
	PFGG A 1 A_Lower
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"FireX")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,"UpFire")
	TNT1 A 0 A_Light1
	E950 A 2 Bright A_PlaySound("EBFG/Fire",CHAN_WEAPON)
	E950 ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	E950 FFGGHHIIJJ 1 Bright Radius_Quake(4,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	E950 K 4 Bright A_FireCustomMissile("PoweredBFG9500Ball",0,1)
	E950 L 3 Bright
	E950 MNO 2 Bright
	TNT1 A 0 A_Light0
	E950 PQRS 1
	E950 TUV 2
	E950 A 20 A_ReFire
	Goto ReadyLoop
  UpFire:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"UpFireX")
	TNT1 A 0 A_Light1
	E950 A 2 Bright A_PlaySound("EBFG/Fire",CHAN_WEAPON)
	E950 ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	E950 FFGGHHIIJJ 1 Bright Radius_Quake(4,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	E950 K 4 Bright A_FireCustomMissile("UpPoweredBFG9500Ball",0,1)
	E950 L 3 Bright
	E950 MNO 2 Bright
	TNT1 A 0 A_Light0
	E950 PQRS 1
	E950 TUV 2
	E950 A 20 A_ReFire("UpFire")
	Goto ReadyLoop
  FireX:
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,"UpFireX")
	TNT1 A 0 A_Light1
	PFGG A 2 Bright A_PlaySound("EBFG/Fire",CHAN_WEAPON)
	PFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	PFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
	PFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
	PFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	PBFF A 4 Bright A_FireCustomMissile("PoweredBFG9500Ball",0,1)
	PBFF B 3 Bright
	TNT1 A 0 A_Light0
	PFGR ABCD 1
	PFGR EFG 2
	PFGG A 20 A_ReFire("FireX")
	Goto ReadyX
  UpFireX:
	TNT1 A 0 A_Light1
	PFGG A 2 Bright A_PlaySound("EBFG/Fire",CHAN_WEAPON)
	PFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	PFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
	PFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
	PFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	PBFF A 4 Bright A_FireCustomMissile("UpPoweredBFG9500Ball",0,1)
	PBFF B 3 Bright
	TNT1 A 0 A_Light0
	PFGR ABCD 1
	PFGR EFG 2
	PFGG A 20 A_ReFire("UpFireX")
	Goto ReadyX
  AltFire:
    TNT1 A 0 A_JumpIfInventory("HDBFG9500Token",1,"AltFireX")
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,2)
	E950 A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyLoop
	TNT1 A 0 A_JumpIfInventory("NewCell",600,2)
	E950 A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyLoop
	TNT1 A 0 A_Light1
	E950 A 2 Bright A_PlaySound("EBFG/UpAltfire",CHAN_WEAPON)
	E950 ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	E950 FFGGHHIIJJ 1 Bright Radius_Quake(4,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	TNT1 A 0 A_TakeInventory("NewCell",600)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-2,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",2,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-4,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",4,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-6,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",6,1)
	E950 K 4 Bright
	E950 L 3 Bright
	E950 MNO 2 Bright
	TNT1 A 0 A_Light0
	E950 PQRS 1
	E950 TUV 2
	E950 A 20 A_ReFire
	Goto ReadyLoop
  AltFireX:
	TNT1 A 0 A_JumpIfInventory("BfgUpgrade",1,2)
	PFGG A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyX
	TNT1 A 0 A_JumpIfInventory("NewCell",600,2)
	PFGG A 1 A_WeaponReady(WRF_NOFIRE)
	Goto ReadyX
	TNT1 A 0 A_Light1
	PFGG A 2 Bright A_PlaySound("EBFG/UpAltfire",CHAN_WEAPON)
	PFGC ABCDE 2 Bright Radius_Quake(2,2,0,1,0)
	PFGC FGHI 1 Bright Radius_Quake(3,2,0,1,0)
	PFGC FGHIF 1 Bright Radius_Quake(4,2,0,1,0)
	PFGC GH 1 Bright Radius_Quake(6,2,0,1,0)
	TNT1 A 0 A_Light2
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(12,4,0,1,0)
	TNT1 A 0 A_TakeInventory("NewCell",600)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",0.71,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-2,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",2,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-4,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",4,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",-6,1)
	TNT1 A 0 A_FireCustomMissile("UpPoweredBFG9500Ball",6,1)
	PBFF A 4 Bright
	PBFF B 3 Bright
	TNT1 A 0 A_Light0
	PFGR ABCD 1
	PFGR EFG 2
	PFGG A 20 A_ReFire
	Goto ReadyX
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	E950 A 1 Offset(0,35)
	E950 A 1 Offset(0,45)
	E950 A 1 Offset(0,55)
	E950 A 1 Offset(0,65)
	E950 A 1 Offset(0,75)
	E950 A 1 Offset(0,85)
	E950 A 1 Offset(0,95)
	E950 A 1 Offset(0,108)
	E950 A 1 Offset(0,150)
	E950 A 3
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	PFGG A 1 Offset(0,35)
	PFGG A 1 Offset(0,45)
	PFGG A 1 Offset(0,55)
	PFGG A 1 Offset(0,65)
	PFGG A 1 Offset(0,75)
	PFGG A 1 Offset(0,85)
	PFGG A 1 Offset(0,95)
	PFGG A 1 Offset(0,108)
	PFGG A 1 Offset(0,150)
	PFGG A 3
	Goto Select
	}
}

ACTOR NBFG9500Ball : CFBFG9500Ball replaces BFG9500Ball
{
+THRUSPECIES
Species "Player"
Obituary "%o was obliterated by %k's BFG9500 ball."
DeathSound "BFG9K/Explode"
States
{
Spawn:
    NFGB AAABBBCCCDDDEEE 1 Bright A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    Loop
Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("NBFGShockwave", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 AAAAAA 0 A_CustomMissile("Kaboom11", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItem("PlayerNBFG9500kExplosion",0,-10)
	TNT1 A 16 A_SpawnItem("PlayerNBFG9500kHit",0,0)
	TNT1 A 0 A_BFGSpray("PCustomSpray")
    Stop    
    }
}

ACTOR PlayerNBFG9500kHit
{
RenderStyle Add
Alpha 0.8
scale 1.1
+CLIENTSIDEONLY
+NOGRAVITY
States
{
Spawn:
TNT1 A 1
NFGE AB 6 Bright A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
NFGE C 6 Bright  A_BFGSpray("NBFGSpray")
NFGE D 6 Bright 
NFGE EFGHI 3 Bright 
Stop
}
}

ACTOR PlayerNBFG9500kExplosion
{
RenderStyle Add
Alpha 0.9
scale 0.7
+CLIENTSIDEONLY
+NOGRAVITY
States
{
Spawn:
TNT1 A 1
CGE1 ABCDEFGHIJKL 3 Bright
Stop
}
}

ACTOR NBFGSpray
{
+NOBLOCKMAP
+NOGRAVITY
+ACTIVATEPCROSS
+ACTIVATEIMPACT
+NOTELEPORT
+DROPOFF
+EXTREMEDEATH
RENDERSTYLE ADD
Radius 1
Height 1
Damage 0
Speed 0
scale 1.15
Alpha 0.9
States
{
Spawn:
   TNT1 A 0
   NFGS A 5 Bright A_SpawnItemEx("GreenParticleSpawnerDT", 0, 0, 0, 0, 0, 0, 0, 128)
   NFGS BCDE 4 Bright 
   Stop
   }
}

ACTOR NBFG9500Trail
{
RenderStyle Add
+CLIENTSIDEONLY
+NOBLOCKMAP
+DONTSPLASH
+NOCLIP
+NOINTERACTION
+THRUACTORS
States
{
Toaster:
	TNT1 A 0
	Stop
	}
}

ACTOR NBFGShockwave : BFGShockwave
{
Scale 1
Renderstyle add
Alpha 0.9
+NOGRAVITY
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
NFGX ABCDEFGHIJK 2 Bright  A_FadeOut(0.05)
NFGX KLMNOPQR 2 Bright A_FadeOut(0.1)
Stop
}
}

ACTOR PlayerDTBFGExDowon : PlayerDTBFGEx Replaces PlayerDTBFGEx
{
Alpha 1
Scale 1.3
States
{
Spawn:
//TNT1 A 5
CGE2 AAAABBBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLL 1 Bright //A_CustomMissile("Kaboom15", 0, 0, random(0,360), 2, random(0,360))
Stop
}
}

//BFG10K
Actor HDBFG10KToken : Inventory {inventory.maxamount 1}

ACTOR "BFG10KDowon" : "BFG10K2" replaces "BFG10K "
{
Weapon.SisterWeapon "PoweredBFG10kDowon"
Tag "BFG10k"
States
{
  Spawn:
    BFG2 ABCDEFGHIJK 3
	Loop
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"NeoReady")
  ReadyLoop:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2")
    TNT1 A 0 A_PlayWeaponSound("weapons/bfg15kidle")
    BTX2 AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
    BTX2 BBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
    BTX2 CCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
    BTX2 DDD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
    Loop
  Ready2:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
    TNT1 A 0 A_JumpIfInventory("NewCell",5,"Ready")
    BTX3 A 1 A_WeaponReady
	Loop
  NeoReady:
    TNT1 A 0 A_JumpIfNoAmmo("NeoReady2")
    TNT1 A 0 A_PlayWeaponSound("weapons/bfg15kidle")
    BG2G AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto Weaponskin2
    BG2G BBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto Weaponskin2
    BG2G CCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto Weaponskin2
    BG2G DDD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto Weaponskin2
	TNT1 A 0
    Loop
  NeoReady2:
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto Weaponskin2
	TNT1 A 0 A_JumpIfInventory("NewCell",5,"Ready")
    BGE2 A 1 A_WeaponReady
	Loop
  Deselect:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"NeoDeselect")
  	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_JumpIfNoAmmo("Deselect2")
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	BTX2 A 1 A_Lower
    Goto Deselect+6
  NeoDeselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_JumpIfNoAmmo("NeoDeselect2")
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	BG2G A 1 A_Lower
    Goto NeoDeselect+5	
  Deselect2:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	BTX3 A 1 A_Lower
    Goto Deselect2+1
  NeoDeselect2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	BGE2 A 1 A_Lower
    Goto NeoDeselect2+1
  Select:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"NeoSelect")
    TNT1 A 0 A_JumpIfNoAmmo("Select2")
    TNT1 A 0 A_Playsound("weapons/pickup15k")
	TNT1 A 0 A_Raise
    BTX2 A 1 A_Raise
    Goto Select+3
  NeoSelect:
    TNT1 A 0 A_JumpIfNoAmmo("NeoSelect2")
    TNT1 A 0 A_Playsound("weapons/pickup15k")
	TNT1 A 0 A_Raise
    BG2G A 1 A_Raise
    Goto NeoSelect+2
  Select2:
    TNT1 A 0 A_PlayWeaponSound("weapons/pickup15k")
	TNT1 A 0 A_Raise
    BTX3 A 1 A_Raise
    Goto Select2+1
  NeoSelect2:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickup15k")
	TNT1 A 0 A_Raise
    BGE2 A 1 A_Raise
    Goto NeoSelect2+1
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"NeoFire")
    BTX1 A 5 A_PlayWeaponSound("weapons/charge15k")
	BTX1 BCDE 5
    BTX1 F 4
    BTX1 GHIJ 1
    Goto Hold
  NeoFire:
    BG2G E 25 A_PlayWeaponSound("weapons/charge15k")
    BG2G F 4
    BG2G GHIJ 1
    Goto NeoHold	
  Hold:
    BTX1 K 1 Bright A_GunFlash
    BTX1 K 1 Bright
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire",6)
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	BTX1 L 1 Bright A_FireCustomMissile("10KProjectile",Random(100,-100)/100.00,1,0,0,0,Random(100,-100)/100.00)
    BTX1 LMNO 1
    TNT1 A 0 A_ReFire
    BTX1 A 7 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	BTX1 BCDE 7
    Goto ReadyLoop
  NeoHold:
	BG2E A 1 Bright A_GunFlash
    BG2G K 1 Bright
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire",6)
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	BG2E B 1 Bright A_FireCustomMissile("10KProjectile",Random(100,-100)/100.00,1,0,0,0,Random(100,-100)/100.00)
    BG2G LMNO 1
    TNT1 A 0 A_ReFire("NeoHold")
    BG2G O 35 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO) 	
    Goto NeoReady
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkinX")
	BTX2 A 1 Offset(0,35)
	BTX2 A 1 Offset(0,45)
	BTX2 A 1 Offset(0,55)
	BTX2 A 1 Offset(0,65)
	BTX2 A 1 Offset(0,75)
	BTX2 A 1 Offset(0,85)
	BTX2 A 1 Offset(0,95)
	BTX2 A 1 Offset(0,108)
	BTX2 A 1 Offset(0,150)
	BTX2 A 3
	Goto Select
  WeaponSkinX:
	BTX3 A 1 Offset(0,35)
	BTX3 A 1 Offset(0,45)
	BTX3 A 1 Offset(0,55)
	BTX3 A 1 Offset(0,65)
	BTX3 A 1 Offset(0,75)
	BTX3 A 1 Offset(0,85)
	BTX3 A 1 Offset(0,95)
	BTX3 A 1 Offset(0,108)
	BTX3 A 1 Offset(0,150)
	BTX3 A 3
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkin2X")
	BG2G A 1 Offset(0,35)
	BG2G A 1 Offset(0,45)
	BG2G A 1 Offset(0,55)
	BG2G A 1 Offset(0,65)
	BG2G A 1 Offset(0,75)
	BG2G A 1 Offset(0,85)
	BG2G A 1 Offset(0,95)
	BG2G A 1 Offset(0,108)
	BG2G A 1 Offset(0,150)
	BG2G A 3
	Goto Select
  WeaponSkin2X:
	BGE2 A 1 Offset(0,35)
	BGE2 A 1 Offset(0,45)
	BGE2 A 1 Offset(0,55)
	BGE2 A 1 Offset(0,65)
	BGE2 A 1 Offset(0,75)
	BGE2 A 1 Offset(0,85)
	BGE2 A 1 Offset(0,95)
	BGE2 A 1 Offset(0,108)
	BGE2 A 1 Offset(0,150)
	BGE2 A 3
	Goto Select
    }
}

ACTOR "PoweredBFG10kDowon" : PoweredBFG10k 
{
Weapon.SisterWeapon "BFG10KDowon"
States
{
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"ReadyX")
  ReadyLoop:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2")
    TNT1 A 0 A_PlaySound("EB10K/Idle",7)
    ETX2 AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
	ETX2 BBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
	ETX2 CCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
	ETX2 DDD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
    Loop
  Ready2:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"WeaponSkin")
    TNT1 A 0 A_JumpIfInventory("NewCell",8,"Ready")
    ETX3 A 1 A_WeaponReady
	Loop
  ReadyX:
	TNT1 A 0 A_JumpIfNoAmmo("Ready2X")
	TNT1 A 0 A_PlaySound("EB10K/Idle",7)
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto WeaponSkin2
	EG2G AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto WeaponSkin2
	EG2G BBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto WeaponSkin2
	EG2G CCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto WeaponSkin2
	EG2G DDD 1 A_WeaponReady
	Loop
  Ready2X:
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,1)
	Goto WeaponSkin2
	TNT1 A 0 A_JumpIfInventory("NewCell",8,"Ready")
	EGE2 A 1 A_WeaponReady
	Loop
  Select:
    TNT1 A 0 A_Playsound("EB10K/Up",2)
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"SelectX")
	TNT1 A 0 A_JumpIfNoAmmo("Select2")
	TNT1 A 0 A_Raise
    ETX2 A 1 A_Raise
    Goto Select+2
  Select2:
	TNT1 A 0 A_Raise
    ETX3 A 1 A_Raise
    Loop
  SelectX:
	TNT1 A 0 A_JumpIfNoAmmo("Select2X")
    TNT1 A 0 A_Raise
	EG2G A 1 A_Raise
	Goto SelectX+1
  Select2X:
    TNT1 A 0 A_Raise
	EGE2 A 1 A_Raise
	Loop
  Deselect:
  	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"DeselectX")
	TNT1 A 0 A_JumpIfNoAmmo("Deselect2")
	TNT1 A 0 A_StopSound(7)
	TNT1 A 0 A_Lower
	ETX2 A 1 A_Lower
    Goto Deselect+7
  Deselect2:
	TNT1 A 0 A_Lower
	ETX3 A 1 A_Lower
    Loop
  DeselectX:
	TNT1 A 0 A_JumpIfNoAmmo("Deselect2X")
	TNT1 A 0 A_StopSound(7)
    TNT1 A 0 A_Lower
	EG2G A 1 A_Lower
	Goto DeselectX+2
  Deselect2X:
    TNT1 A 0 A_Lower
	EGE2 A 1 A_Lower
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDBFG10KToken",1,"FireX")
    ETX1 A 5 A_PlayWeaponSound("EB10K/Charge")
	ETX1 BCDE 5
    ETX1 F 4
    ETX1 GHIJ 1
    Goto Hold
  Hold:
    ETX1 K 1 Bright A_GunFlash
    ETX1 K 1 Bright
	TNT1 A 0 A_PlaySound("EB10K/Fire",6)
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	ETX1 L 1 Bright A_FireCustomMissile("EmpoweredBFG15KBall",Random(100,-100)/100.00,1,0,0,0,Random(100,-100)/100.00)
    ETX1 LMNO 1
    TNT1 A 0 A_ReFire
    ETX1 A 7 A_PlaySound("EB10K/Cool",CHAN_AUTO)
	ETX1 BCDE 7
    Goto ReadyLoop
  FireX:
	EG2G E 25 A_PlayWeaponSound("EB10K/Charge")
	EG2G F 4
	EG2G GHIJ 1
	Goto HoldX
  HoldX:
	EG2E A 1 Bright A_GunFlash
	EG2G K 1 Bright
	TNT1 A 0 A_PlaySound("EB10K/Fire",6)
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	EG2E B 1 Bright A_FireCustomMissile("EmpoweredBFG15KBall",Random(100,-100)/100.00,1,0,0,0,Random(100,-100)/100.00)
	EG2G LMNO 1
	TNT1 A 0 A_ReFire("HoldX")
	EG2G O 35 A_PlaySound("EB10K/Cool",CHAN_AUTO)
	Goto ReadyX
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkinX")
	ETX2 A 1 Offset(0,35)
	ETX2 A 1 Offset(0,45)
	ETX2 A 1 Offset(0,55)
	ETX2 A 1 Offset(0,65)
	ETX2 A 1 Offset(0,75)
	ETX2 A 1 Offset(0,85)
	ETX2 A 1 Offset(0,95)
	ETX2 A 1 Offset(0,108)
	ETX2 A 1 Offset(0,150)
	ETX2 A 3
	Goto Select
  WeaponSkinX:
	ETX3 A 1 Offset(0,35)
	ETX3 A 1 Offset(0,45)
	ETX3 A 1 Offset(0,55)
	ETX3 A 1 Offset(0,65)
	ETX3 A 1 Offset(0,75)
	ETX3 A 1 Offset(0,85)
	ETX3 A 1 Offset(0,95)
	ETX3 A 1 Offset(0,108)
	ETX3 A 1 Offset(0,150)
	ETX3 A 3
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkin2X")
	EG2G A 1 Offset(0,35)
	EG2G A 1 Offset(0,45)
	EG2G A 1 Offset(0,55)
	EG2G A 1 Offset(0,65)
	EG2G A 1 Offset(0,75)
	EG2G A 1 Offset(0,85)
	EG2G A 1 Offset(0,95)
	EG2G A 1 Offset(0,108)
	EG2G A 1 Offset(0,150)
	EG2G A 3
	Goto Select
  WeaponSkin2X:
	EGE2 A 1 Offset(0,35)
	EGE2 A 1 Offset(0,45)
	EGE2 A 1 Offset(0,55)
	EGE2 A 1 Offset(0,65)
	EGE2 A 1 Offset(0,75)
	EGE2 A 1 Offset(0,85)
	EGE2 A 1 Offset(0,95)
	EGE2 A 1 Offset(0,108)
	EGE2 A 1 Offset(0,150)
	EGE2 A 3
	Goto Select
	}
}

//DTBFG10K
ACTOR HDDTBFG10KToken : Inventory {Inventory.MaxAmount 1}

ACTOR "DemonTechBFG10KDowon" : "Demon Tech BFG10K " replaces "Demon Tech BFG10K"
{
Height 20
Weapon.AmmoUse 100
Weapon.AmmoGive 100
Weapon.AmmoType "DemonAmmo"
Scale 0.85
Weapon.SisterWeapon "PoweredDemonTechBFG10kDowon"
Weapon.PreferredSkin "DemonTechBFG10K-Marine2"
Inventory.PickupSound "weapons/dtech10kpickup"
Inventory.PickupMessage "You got the Demon Tech BFG10K!"
Obituary "%o had no chance against %k's Demon Tech BFG10K."
Tag "Demon Tech BFG10k"
+INVENTORY.UNDROPPABLE
States
{
  Spawn:
    NDTB ABCDEDCB 4
    Loop
  Select:
    TNT1 A 0 A_PlayWeaponSound("weapons/dtech10kpickup")
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"SelectX")
	TNT1 A 0 A_JumpIfNoAmmo("Select2")
    DM10 A 1 A_Raise
    Goto Select+3
  Select2:
    DM30 A 1 A_Raise
    Loop
  SelectX:   
	TNT1 A 0 A_JumpIfNoAmmo("Select2X")
    DBFI A 1 A_Raise
    Goto SelectX+1
  Select2X:
    DBFE A 1 A_Raise
    Loop
  Deselect:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"DeselectX")
	TNT1 A 0 A_JumpIfNoAmmo("Deselect2")
	TNT1 A 0 A_Lower
	DM10 A 1 A_Lower
    Goto Deselect+4
  Deselect2:
	TNT1 A 0 A_Lower
	DM30 A 1 A_Lower
    Loop
  DeselectX:
	TNT1 A 0 A_JumpIfNoAmmo("Deselect2X")
	TNT1 A 0 A_Lower
	DBFI A 1 A_Lower
    Goto DeselectX+1
  Deselect2X:
    TNT1 A 0 A_Lower
	DBFE A 1 A_Lower
    Loop
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"ReadyX")
  ReadyLoop:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2")
	TNT1 A 0 A_PlayWeaponSound("weapons/dtech10kidle")
    DM10 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	DM10 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	DM10 CCCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	DM10 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
    Loop
  Ready2:
    TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 EEEEFFFF 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 GGGGHHHHIIII 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 JJJJKKKKLLLL 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 MMMMHHHHIIII 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 JJJJKKKKLLLL 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 MMMMHHHHIIII 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 JJJJKKKKLLLL 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 MMMM 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
  Ready2Loop:
    TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
    DM20 HHHHIIIIJJJJ 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"Ready")
	DM20 KKKKLLLLMMMM 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	Loop
  ReadyX:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2X")
	TNT1 A 0 A_PlayWeaponSound("weapons/dtech10kidle")
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
    DBFI AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	DBFI BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	DBFI CCCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	DBFI BBBB 1 A_WeaponReady
    Loop
  Ready2X:
    TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,"ReadyX")
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	DBFE A 1 A_WeaponReady
	Loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"FireX")
	TNT1 A 0 A_Light1
    TNT1 A 0 A_PlayWeaponSound("Cardinal/9k")
	DM10 C 3 Bright Radius_Quake(1,2,0,1,0)
    DM10 DE 3 Bright Radius_Quake(2,2,0,1,0)
    DM10 FGH 3 Bright Radius_Quake(4,2,0,1,0)
	DM10 IJK 3 Bright Radius_Quake(6,3,0,1,0)
	DM10 L 3 Bright Radius_Quake(8,3,0,1,0)
	TNT1 A 0 A_Light2
    TNT1 A 0 A_GunFlash	
	DM10 M 2 Bright Radius_Quake(10,4,0,1,0)
	TNT1 A 0 A_Recoil(10)	
	TNT1 A 0 Radius_Quake(12,6,0,1,0)
	DM10 N 2 Bright A_FireCustomMissile("DTBFG10KBall",0,1,0,0)
	DM10 OP 2 Bright
	TNT1 A 0 A_Light0
	DM10 QRST 2 Bright
	TNT1 A 0 Radius_Quake(3,10,0,1,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam")
	DM10 UVWXYZ 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0) //1
	DM20 AABBCC 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	DM20 DEF 4
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	DM20 GHI 4
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	DM20 JKL 4
	TNT1 A 0 A_PlaySound("dtbfg10k/beep",6)
	DM20 M 4
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,1)
	Goto Ready2Loop
	DM20 "NO" 4
	DM20 P 3 A_PlaySound("weapons/dtech10kcharge",6)
	DM20 QRSTUVWXPQRSTUVWX 3
	DM20 "Y" 3 A_PlaySound("weapons/plasmacellin",6)
	DM20 "Z" 3
	Goto ReadyLoop
  FireX:
	TNT1 A 0 A_Light1
    TNT1 A 0 A_PlayWeaponSound("Cardinal/9k")
	DBFG C 2 Bright Radius_Quake(1,2,0,1,0)
    DBFG DE 2 Bright Radius_Quake(2,2,0,1,0)
    DBFG FGH 2 Bright Radius_Quake(4,2,0,1,0)
	DBFG IJK 1 Bright Radius_Quake(6,3,0,1,0)
	DBFG L 15 Bright Radius_Quake(8,3,0,1,0)
	TNT1 A 0 A_Light2
    TNT1 A 0 A_GunFlash	
	DBFG M 2 Bright Radius_Quake(10,4,0,1,0)
	TNT1 A 0 A_Recoil(10)	
	TNT1 A 0 Radius_Quake(12,6,0,1,0)
	DBFG N 2 Bright A_FireCustomMissile("DTBFG10KBall",0,1,0,0)	
	DBFG OP 1 Bright
	TNT1 A 0 A_Light0
	DBFG QRST 2 Bright
	TNT1 A 0 Radius_Quake(3,10,0,1,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam")
	DBFE AAAAAAAAAAAA 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	DBFE A 20
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,1)
	Goto Ready2X
	DBFE A 60 A_PlayWeaponSound("weapons/dtech10kcharge")
	DBFE A 10 A_PlayWeaponSound("weapons/plasmacellin")
	Goto ReadyX
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkinX")
	DM10 A 1 Offset(0,35)
	DM10 A 1 Offset(0,45)
	DM10 A 1 Offset(0,55)
	DM10 A 1 Offset(0,65)
	DM10 A 1 Offset(0,75)
	DM10 A 1 Offset(0,85)
	DM10 A 1 Offset(0,95)
	DM10 A 1 Offset(0,108)
	DM10 A 1 Offset(0,150)
	DM10 A 3
	Goto Select
  WeaponSkinX:
	DM30 A 1 Offset(0,35)
	DM30 A 1 Offset(0,45)
	DM30 A 1 Offset(0,55)
	DM30 A 1 Offset(0,65)
	DM30 A 1 Offset(0,75)
	DM30 A 1 Offset(0,85)
	DM30 A 1 Offset(0,95)
	DM30 A 1 Offset(0,108)
	DM30 A 1 Offset(0,150)
	DM30 A 3
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkin2X")
	DBFI A 1 Offset(0,35)
	DBFI A 1 Offset(0,45)
	DBFI A 1 Offset(0,55)
	DBFI A 1 Offset(0,65)
	DBFI A 1 Offset(0,75)
	DBFI A 1 Offset(0,85)
	DBFI A 1 Offset(0,95)
	DBFI A 1 Offset(0,108)
	DBFI A 1 Offset(0,150)
	DBFI A 3
	Goto Select
  WeaponSkin2X:
	DBFE A 1 Offset(0,35)
	DBFE A 1 Offset(0,45)
	DBFE A 1 Offset(0,55)
	DBFE A 1 Offset(0,65)
	DBFE A 1 Offset(0,75)
	DBFE A 1 Offset(0,85)
	DBFE A 1 Offset(0,95)
	DBFE A 1 Offset(0,108)
	DBFE A 1 Offset(0,150)
	DBFE A 3
	Goto Select
    }
}

Actor DTBFG10KBall2 : DTBFG10KBall replaces DTBFG10KBall
{
Decal BFG9500Lightning
States
{
Spawn:
    TNT1 A 0
	TNT1 A 0 A_Jump(128,"DTBFGSFX")
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySoundEx("weapons/dtech10kball","Voice",1)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 A 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 B 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 C 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 D 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 E 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 F 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 G 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 H 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 I 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 J 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    Loop
DTBFGSFX:
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySoundEx("weapons/dtech10kball","Voice",1)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 A 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 B 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 C 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 D 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 E 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 F 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 G 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 H 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 I 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreen2",Random(6,-6),Random(6,-6),Random(16,8),0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("BFGTrailParticleGreen",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 J 1 Bright A_SpawnItemEx("PlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    Goto Spawn
Death:
    TNT1 A 0
	TNT1 A 0 A_SetTranslucent(0.75,1)
	TNT1 A 0 Radius_Quake(5,60,0,10,0)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,0,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,10,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,20,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,30,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,40,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,50,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,60,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,70,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,80,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,90,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,100,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,110,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,120,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,130,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,140,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,150,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,160,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,170,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,180,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,190,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,200,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,210,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,220,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,230,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,240,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,250,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,260,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,270,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,280,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,290,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,300,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,310,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,320,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,330,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,340,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("DTBFG10KTracer",0,0,350,CMF_TRACKOWNER)
	TNT1 A 0 A_SpawnItemEx("DTBFGLightningGreenSpawner", 0, 0, 15, 0, 0, 0, 0, 128)
	CGS1 A 3 Bright A_SpawnItemEx("DTech10KShockwave3", 0, 0, 15, 0, 0, 0, 0, 128)
	CGS1 B 3 Bright
	CGS1 C 3 Bright A_SpawnItemEx("DTech10KShockwave3", 0, 0, 15, 0, 0, 0, 0, 128)
	CGS1 D 3 Bright
	CGS1 E 3 Bright A_SpawnItemEx("DTech10KShockwave3", 0, 0, 15, 0, 0, 0, 0, 128)
	CGS1 F 3 Bright
	CGS1 G 3 Bright A_SpawnItemEx("DTech10KShockwave3", 0, 0, 15, 0, 0, 0, 0, 128)
	CGS1 H 3 Bright
	TNT1 A 0 A_Explode(480,240)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	TNT1 A 0 A_PlaySound("weapons/dtech10kexplode")
	TNT1 A 0 A_SpawnItemEx("DTech10KShockwave4", 0, 0, 15, 0, 0, 0, 0, 128)
    TNT1 A 20 Bright A_SpawnItem("PlayerDTBFGEx",0,-10)
    Stop    
    }
}

ACTOR "PoweredDemonTechBFG10kDowon" : "PoweredDemonTechBFG10k" 
{ 
Weapon.SisterWeapon "DemonTechBFG10KDowon"
States
{
  Select:
    TNT1 A 0 A_PlaySound("EDTBFG/Up",1)
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"SelectX")
	TNT1 A 0 A_JumpIfNoAmmo("Select2")
    EM10 A 1 A_Raise
    Goto Select+3
  Select2:
    EM30 A 1 A_Raise
    Loop
  SelectX:
	TNT1 A 0 A_JumpIfNoAmmo("Select2X")
    SBFI A 1 A_Raise
    Goto SelectX+1
  Select2X:
    SBFE A 1 A_Raise
    Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"DeselectX")
	TNT1 A 0 A_JumpIfNoAmmo("Deselect2")
	TNT1 A 0 A_StopSound(7)
	TNT1 A 0 A_Lower
	EM10 A 1 A_Lower
    Goto Deselect+7
  Deselect2:
	TNT1 A 0 A_Lower
	EM30 A 1 A_Lower
    Loop
  DeselectX:
	TNT1 A 0 A_JumpIfNoAmmo("Deselect2X")
	TNT1 A 0 A_Lower
	SBFI A 1 A_Lower
    Goto DeselectX+1
  Deselect2X:
	TNT1 A 0 A_Lower
	SBFE A 1 A_Lower
    Loop
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"ReadyX")
  ReadyLoop:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2")
	TNT1 A 0 A_PlaySound("EDTBFG/Idle",7)
    EM10 AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	EM10 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	EM10 CCCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	EM10 BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
    Loop
  Ready2:
    TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 EEEEFFFF 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 GGGGHHHHIIII 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 JJJJKKKKLLLL 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 MMMMHHHHIIII 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 JJJJKKKKLLLL 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 MMMMHHHHIIII 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 JJJJKKKKLLLL 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 MMMM 1 A_WeaponReady
  Ready2Loop:
    TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
    EM20 HHHHIIIIJJJJ 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	EM20 KKKKLLLLMMMM 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"WeaponSkin")
	Loop
  ReadyX:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2X")
	TNT1 A 0 A_PlaySound("EDTBFG/Idle",7)
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
    SBFI AAAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	SBFI BBBB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	SBFI CCCC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	SBFI BBBB 1 A_WeaponReady
    Loop
  Ready2X:
    TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,"Ready")
	TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,1)
	Goto WeaponSkin2
	SBFE A 1 A_WeaponReady
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDDTBFG10KToken",1,"FireX")
	TNT1 A 0 A_Light1
    TNT1 A 0 A_PlaySound("EDTBFG/Fire",3)
	TNT1 A 0 A_StopSound(7)
	EM10 C 3 Bright Radius_Quake(1,2,0,1,0)
    EM10 DE 3 Bright Radius_Quake(2,2,0,1,0)
    EM10 FGH 3 Bright Radius_Quake(4,2,0,1,0)
	EM10 IJK 3 Bright Radius_Quake(6,3,0,1,0)
	EM10 L 3 Bright Radius_Quake(8,3,0,1,0)
	TNT1 A 0 A_Light2
    TNT1 A 0 A_GunFlash	
	EM10 M 2 Bright Radius_Quake(10,4,0,1,0)
	TNT1 A 0 A_Recoil(10)	
	TNT1 A 0 Radius_Quake(12,6,0,1,0)
	EM10 N 2 Bright A_FireCustomMissile("PoweredDTBFG10KBall",0,1,0,0)
	EM10 OP 2 Bright
	TNT1 A 0 A_Light0
	EM10 QRST 2 Bright
	TNT1 A 0 Radius_Quake(3,10,0,1,0)
	TNT1 A 0 A_PlaySound("EDTBFG/Steam",4)
	EM10 UVWXYZ 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	EM20 AABBCC 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	EM20 DEF 4
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	EM20 GHI 4
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	EM20 JKL 4
	TNT1 A 0 A_PlaySound("edtbfg10k/beep",6)
	EM20 M 4
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,1)
	Goto Ready2Loop
	EM20 "NO" 4
	EM20 P 3 A_PlaySound("EDTBFG/Cool",5)
	EM20 QRSTUVWXPQRSTUVWX 3
	EM20 "Y" 3 A_PlaySound("EDTBFG/Ready",6)
	EM20 "Z" 3
	Goto ReadyLoop
  FireX:
	TNT1 A 0 A_Light1
    TNT1 A 0 A_PlaySound("EDTBFG/Fire",3)
	SBFG C 2 Bright Radius_Quake(1,2,0,1,0)
    SBFG DE 2 Bright Radius_Quake(2,2,0,1,0)
    SBFG FGH 2 Bright Radius_Quake(4,2,0,1,0)
	SBFG IJK 1 Bright Radius_Quake(6,3,0,1,0)
	SBFG L 15 Bright Radius_Quake(8,3,0,1,0)
	TNT1 A 0 A_Light2
    TNT1 A 0 A_GunFlash	
	SBFG M 2 Bright Radius_Quake(10,4,0,1,0)
	TNT1 A 0 A_Recoil(10)	
	TNT1 A 0 Radius_Quake(12,6,0,1,0)
	SBFG N 2 Bright A_FireCustomMissile("PoweredDTBFG10KBall",0,1,0,0)	
	SBFG OP 1 Bright
	TNT1 A 0 A_Light0
	SBFG QRST 2 Bright
	TNT1 A 0 Radius_Quake(3,10,0,1,0)
	TNT1 A 0 A_PlaySound("EDTBFG/Steam",4)
	SBFE AAAAAAAAAAAA 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	SBFE A 20
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",150,1)
	Goto Ready2X
	SBFE A 60 A_PlaySound("EDTBFG/Cool",5)
	SBFE A 10 A_PlaySound("EDTBFG/Ready",6)
	Goto ReadyX
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkinX")
	EM10 A 1 Offset(0,35)
	EM10 A 1 Offset(0,45)
	EM10 A 1 Offset(0,55)
	EM10 A 1 Offset(0,65)
	EM10 A 1 Offset(0,75)
	EM10 A 1 Offset(0,85)
	EM10 A 1 Offset(0,95)
	EM10 A 1 Offset(0,108)
	EM10 A 1 Offset(0,150)
	EM10 A 3
	Goto Select
  WeaponSkinX:
	EM30 A 1 Offset(0,35)
	EM30 A 1 Offset(0,45)
	EM30 A 1 Offset(0,55)
	EM30 A 1 Offset(0,65)
	EM30 A 1 Offset(0,75)
	EM30 A 1 Offset(0,85)
	EM30 A 1 Offset(0,95)
	EM30 A 1 Offset(0,108)
	EM30 A 1 Offset(0,150)
	EM30 A 3
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_JumpIfNoAmmo("WeaponSkin2X")
	SBFI A 1 Offset(0,35)
	SBFI A 1 Offset(0,45)
	SBFI A 1 Offset(0,55)
	SBFI A 1 Offset(0,65)
	SBFI A 1 Offset(0,75)
	SBFI A 1 Offset(0,85)
	SBFI A 1 Offset(0,95)
	SBFI A 1 Offset(0,108)
	SBFI A 1 Offset(0,150)
	SBFI A 3
	Goto Select
  WeaponSkin2X:
	SBFE A 1 Offset(0,35)
	SBFE A 1 Offset(0,45)
	SBFE A 1 Offset(0,55)
	SBFE A 1 Offset(0,65)
	SBFE A 1 Offset(0,75)
	SBFE A 1 Offset(0,85)
	SBFE A 1 Offset(0,95)
	SBFE A 1 Offset(0,108)
	SBFE A 1 Offset(0,150)
	SBFE A 3
	Goto Select
	}
}

ACTOR PlayerDTBFGEx2 : PlayerDTBFGEx Replaces PlayerDTBFGEx
{
RenderStyle Add
Alpha 1
Scale 1.3
+CLIENTSIDEONLY
+NOGRAVITY
States
{
  Spawn:
	TNT1 A 5
	CGE1 AAAABBBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLL 1 Bright A_CustomMissile("Kaboom15", 0, 0, random(0,360), 2, random(0,360))
	Stop
	}
}

ACTOR PlayerDTBFGProjectileAttack2 : PlayerDTBFGProjectileAttack Replaces PlayerDTBFGProjectileAttack
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 AAAAA 1 A_Look
	Stop
  See:
    TNT1 A 0
	TNT1 A 1 A_JumpIfCloser(1250,"Attack")
	Stop
  Attack:
    TNT1 A 0
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_MissileAttack
	TNT1 A 1 A_CustomRailgun (-1,0,NONE,NONE,1,0,random(1,99),"PlayerLegendaryImpPuff",0,0,1500,1,3,5,"NeoDBFG10KRailParticle")
  Death:
	TNT1 A 1
	Stop
	}
}

Actor PlayerLegendaryImpPuff : BulletPuff
{
+THRUSPECIES
+MTHRUSPECIES
+PUFFGETSOWNER
+DONTHARMSPECIES
Species "Player"
DamageType "Normal"
}

ACTOR NeoDBFG10KRailParticle
{
Scale 0.2
Alpha 0.95
+NOTIMEFREEZE
+CLIENTSIDEONLY
States
{
  Spawn:
	DBFP A 2 Bright
	Stop
	}
}

//Demon Tech Devastator
ACTOR HDDTDevastatorToken : Inventory {Inventory.MaxAmount 1}

ACTOR "DemonTechDevastatorDowon" : "DemonTechDevastatorSwitch" Replaces "DemonTechDevastatorSwitch"
{	
Tag "Demon Tech Devastator"
States
{
  Spawn:
	WDEV BCDEFGHIJKLB 3
    Loop
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"ReadyX")
  ReadyLoop:
	DEI3 A 0 A_PlaySound("devastator/idle",6,1.0,1)
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 BB 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 CC 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 DD 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 EE 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 FF 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 GG 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 GG 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 GG 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 GG 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 FF 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 EE 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 DD 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 CC 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 BB 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"WeaponSkin")
	DEI3 AA 1 A_WeaponReady
	Loop
  ReadyX:
	DEVI A 0 A_PlaySound("devastator/idle",6,1.0,1)
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI BB 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI CC 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI DD 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI EE 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI FF 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI FF 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI FF 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI FF 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI EE 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI DD 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI CC 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI BB 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI AA 1 A_WeaponReady
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderReady")
	TNT1 A 0 A_JumpIfInventory("RailgunAction",1,"Zoom")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,1)
	Goto WeaponSkin2
	DEVI AA 1 A_WeaponReady
	Loop
  Deselect:
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderDeselect")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"DeselectX")
	TNT1 A 0 A_Lower
	DEI3 A 1 A_Lower
	Goto Deselect+7
  DeselectX:
	TNT1 A 0 A_Lower
	DEVI A 1 A_Lower
	Loop
  Select:
	TNT1 A 0 A_JumpIfInventory("CommanderedUpgraded", 1, "CommanderSelect")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"SelectX")
	TNT1 A 0 A_Raise
	DEI3 A 1 A_Raise
	Goto Select+2
  SelectX:
	TNT1 A 0 A_Raise
	DEVI A 1 A_Raise
	Loop
  Fire:
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderFire")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"FireX")
	DEI3 A 5 A_StopSound(6)
	DEI3 A 5 A_PlayWeaponSound("devastator/charge")
	DEI3 HIJKL 4 Bright
	DEI3 M 3 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 N 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 O 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 P 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 Q 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 M 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 N 3 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 O 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 P 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 Q 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 M 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 N 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 O 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 P 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 Q 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVI A 0 A_Refire
	DEI3 R 3 Bright A_GunFlash
	DEI3 S 3 Bright A_Playsound("devastator/fire")
	TNT1 A 0 A_Recoil(20)
	DEI3 T 10 Bright A_FireCustomMissile ("PlayerDevastatorBall",0,1,0,0)
	DEI3 UVWA 3 Bright
	Goto ReadyLoop
  Hold:
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderHold")
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_PlayWeaponSound("weapons/devfch")
	DEI3 M 3 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 N 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 O 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 P 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEI3 Q 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)	
	DEVI A 0 A_Refire("Hold")
	DEI3 R 4 Bright A_GunFlash
	DEI3 S 4 Bright A_Playsound("devastator/fire")
	TNT1 A 0 A_Recoil(20)
	DEI3 T 10 Bright A_FireCustomMissile ("PlayerDevastatorBall",0,1,0,0)
	DEI3 UVWA 3 Bright
	Goto Ready
  FireX:
	DEVI A 5 A_StopSound(6)
	DEVI A 5 A_PlayWeaponSound("devastator/charge")
	DEVG BCDEF 4 Bright
	DEVG G 3 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG H 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG I 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG J 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG K 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG G 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG H 3 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG I 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG J 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG K 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG G 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG H 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG I 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG J 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG K 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVI A 0 A_Refire("HoldX")
	DEVG L 3 Bright A_GunFlash
	DEVG M 3 Bright A_Playsound("devastator/fire")
	TNT1 A 0 A_Recoil(20)
	DEVG N 10 Bright A_FireCustomMissile ("PlayerDevastatorBall",0,1,0,0)
	DEVG O 3 Bright
	DEVG P 3 Bright
	DEVG Q 2 Bright
	Goto Ready
  AltFire:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"AltFireX")
	DEI3 A 1 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderAltFire")
	Goto Ready
  AltFireX:
	DEVI A 1 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderAltFire")
	Goto ReadyX
  HoldX:
	TNT1 A 0 a_jumpifinventory("CommanderedUpgraded", 1, "CommanderHold")
	DEVG G 0 A_StopSound(6)
	DEVG G 0 A_PlayWeaponSound("weapons/devfch")
	DEVG G 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG H 4 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG I 5 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG J 5 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)
	DEVG K 5 Bright A_FireBullets(4,4,2,6,"DevPuff",0,64)	
	DEVI A 0 A_Refire("HoldX")
	DEVG L 4 Bright A_GunFlash
	DEVG M 4 Bright A_Playsound("devastator/fire")
	TNT1 A 0 A_Recoil(20)
	DEVG N 10 Bright A_FireCustomMissile ("PlayerDevastatorBall",0,1,0,0)
	DEVG O 3 Bright
	DEVG P 3 Bright
	DEVG Q 3 Bright
	DEVI A 3 Bright
	Goto Ready
  CommanderFire:
	TNT1 A 0
	TNT1 AAA 0 A_StopSound(6)
	CDEV A 10 A_PlaySound("devastator/charge",CHAN_WEAPON)
	CDEV CDEF 10 Bright
	CDEV G 3 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV H 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV I 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV G 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV H 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV I 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV G 3 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV H 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV I 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV G 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV H 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV I 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	TNT1 A 0 A_Refire
	CDEV J 4 Bright A_GunFlash
	TNT1 A 0 A_Recoil(20)
	CDEV J 1 Bright A_Playsound("devastator/fire")
	CDEV K 10 Bright A_FireCustomMissile ("PCommanderDevastatorBall",0,1,0,0)
	CDEV L 7 Bright
	Goto CommanderReady
  CommanderHold:
	TNT1 A 0 A_StopSound(6)
	CDEV G 1 A_PlayWeaponSound("weapons/devfch")
	CDEV G 3 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV H 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV I 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV G 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV H 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	CDEV I 4 Bright A_FireBullets(4,4,2,6,"CommanderDevPuff",0,64)
	TNT1 A 0 A_Refire ("CommanderHold")
	CDEV J 4 Bright A_GunFlash
	CDEV J 1 Bright A_Playsound("devastator/fire")
	CDEV K 10 Bright A_FireCustomMissile ("PCommanderDevastatorBall",0,1,0,0)
	CDEV L 7 Bright
	Goto CommanderReady
  CommanderAltFire:
	TNT1 AAA 0 A_StopSound(6)
	TNT1 A 0 A_PlaySound("Cardinal/9k",CHAN_WEAPON)
	CDEV A 2 Bright Radius_Quake(1,2,0,1,0)
	CDEV CD 2 Bright Radius_Quake(2,2,0,1,0)
	CDEV EFG 2 Bright Radius_Quake(4,2,0,1,0)
	CDEV HIG 1 Bright Radius_Quake(6,3,0,1,0)
	TNT1 A 0 Radius_Quake(8,3,0,1,0)
	CDEV HIGHIGHIGHIGHIL 1 Bright
	TNT1 A 0 A_GunFlash
	TNT1 A 0 Radius_Quake(10,4,0,1,0)
	CDEV J 2 Bright
	TNT1 A 0 A_Recoil(10)
	TNT1 A 0 Radius_Quake(12,6,0,1,0)
	CDEV K 10 Bright A_FireCustomMissile ("PlayerPurpleDTBFG10KBall",0,1,0,0)
	TNT1 A 0 Radius_Quake(3,10,0,1,0)
	CDEV L 7 Bright
	CDEV B 20
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",100,1)
	Goto CommanderReady
	CDEV B 60 A_PlaySound("weapons/dtech10kcharge",CHAN_WEAPON)
	CDEV B 10 A_PlaySound("weapons/plasmacellin",CHAN_WEAPON)
	Goto CommanderReady
  Zoom:
	TNT1 A 0
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_JumpIfInventory("CommanderedToken",1,"ChangeWeapon")
	Goto MissingUpgrade
  ChangeWeapon:
	TNT1 A 0 A_JumpIfInventory("CommanderedUpgraded",1,"ChangeWeapon2")
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"ChangeWeaponX")
	TNT1 A 0 A_GiveInventory("CommanderedUpgraded",1)
	DEI3 A 0 A_StopSound(6)
	DEI3 A 1 Offset(1,35)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	DEI3 A 1 Offset(8,39)
	DEI3 A 1 Offset(18,45)
	DEI3 A 1 Offset(27,52)
	DEI3 A 1 Offset(35,60)
	DEI3 A 1 Offset(45,69)
	DEI3 A 1 Offset(58,89)
	DEI3 A 1 Offset(64,102)
	DEI3 A 1 Offset(64,102)
	DEI3 A 1 Offset(80,108)
	DEI3 A 1 Offset(80,150)
	DEI3 A 6 Offset(1,0)
	TNT1 A 0 A_PlayWeaponSound("devastator/up")
	Goto Select
  ChangeWeaponX:
	TNT1 A 0 A_GiveInventory("CommanderedUpgraded",1)
	DEVI A 0 A_StopSound(6)
	DEVI A 1 Offset(1,35)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	DEVI A 1 Offset(8,39)
	DEVI A 1 Offset(18,45)
	DEVI A 1 Offset(27,52)
	DEVI A 1 Offset(35,60)
	DEVI A 1 Offset(45,69)
	DEVI A 1 Offset(58,89)
	DEVI A 1 Offset(64,102)
	DEVI A 1 Offset(64,102)
	DEVI A 1 Offset(80,108)
	DEVI A 1 Offset(80,150)
	DEVI A 6 Offset(1,0)
	TNT1 A 0 A_PlayWeaponSound("devastator/up")
	Goto Select
  ChangeWeapon2:
	TNT1 A 0 A_TakeInventory("CommanderedUpgraded",1)
	CDEV B 0 A_StopSound(6)
	CDEV B 1 Offset(1,35)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	CDEV B 1 Offset(7,39)
	CDEV B 1 Offset(17,45)
	CDEV B 1 Offset(24,56)
	CDEV B 1 Offset(31,63)
	CDEV B 1 Offset(40,71)
	CDEV B 1 Offset(51,89)
	CDEV B 1 Offset(63,100)
	CDEV B 1 Offset(70,111)
	CDEV B 1 Offset(78,125)
	CDEV B 1 Offset(85,150)
	CDEV B 6 Offset(1,0)
	TNT1 A 0 A_PlayWeaponSound("devastator/up")
	Goto Select
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	DEI3 A 1 Offset(0,35)
	DEI3 A 1 Offset(0,45)
	DEI3 A 1 Offset(0,55)
	DEI3 A 1 Offset(0,65)
	DEI3 A 1 Offset(0,75)
	DEI3 A 1 Offset(0,85)
	DEI3 A 1 Offset(0,95)
	DEI3 A 1 Offset(0,108)
	DEI3 A 4 Offset(0,150)
	TNT1 A 0 A_PlayWeaponSound("devastator/up")
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	DEVI A 1 Offset(0,35)
	DEVI A 1 Offset(0,45)
	DEVI A 1 Offset(0,55)
	DEVI A 1 Offset(0,65)
	DEVI A 1 Offset(0,75)
	DEVI A 1 Offset(0,85)
	DEVI A 1 Offset(0,95)
	DEVI A 1 Offset(0,108)
	DEVI A 4 Offset(0,150)
	TNT1 A 0 A_PlayWeaponSound("devastator/up")
	Goto Select
  MissingUpgrade:
	TNT1 A 0 A_JumpIfInventory("HDDTDevastatorToken",1,"MissingUpgradeX")
	DEI3 A 10 A_Print("Missing upgrade!",2)
	Goto ReadyLoop
  MissingUpgradeX:
	DEI3 A 10 A_Print("Missing upgrade!",2)
	Goto Ready
  Flash:
    NULL A 5 A_Light1
    NULL A 10 A_Light2
    NULL A 7 A_Light1
    NULL A 5 A_Light0
    stop
   }
}

//FreezerBFG
ACTOR HDFreezerBFGToken : Inventory {Inventory.MaxAmount 1}

ACTOR "FreezerBFGDowon" : "Freezer BFG" Replaces "Freezer BFG"
{
Weapon.AmmoType2 "NewCell"
Weapon.AmmoUse2 150
Weapon.PreferredSkin "FreezeBFG-Marine"
Inventory.PickupSound "freezerbfg/pickup"
Weapon.Upsound "freezerbfg/up"
Tag "Big F***ing Freezer BFG"
States
{
  Spawn:
	FZDZ A -1 Bright
	Loop
  Ready:
	TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,"ReadyX")
	TNT1 A 0 A_PlaySound("freezerbfg/idle",5,1.0,1)
  ReadyLoop:
	F2DR ABCDEF 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,"WeaponSkin")
	F2DR GHIJK 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,"WeaponSkin")
	Loop
  ReadyX:
    TNT1 A 0 A_PlaySound("freezerbfg/idle",5,1.0,1)
    TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,1)
	Goto WeaponSkin2
	FZDF A 1 Bright A_WeaponReady
	Goto ReadyX+1
  Select:
    TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,"SelectX")
	TNT1 A 0 A_Raise
	F2DF A 1 A_Raise
	Goto Select+1
  SelectX:
	TNT1 A 0 A_Raise
	FZDF A 1 A_Raise
	Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_TakeInventory("BigFreezeGunHold",1)
	TNT1 AAA 0 A_StopSound(5)
	TNT1 AAA 0 A_StopSound(CHAN_VOICE)
	TNT1 AAA 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("weapons/weapondown",CHAN_BODY)
	TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,"DeselectX")
  DeselectLoop:
	TNT1 A 0 A_Lower
	F2DF A 1 A_Lower
	Loop
  DeselectX:
	TNT1 A 0 A_Lower
	FZDF A 1 A_Lower
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,"FireX")
	TNT1 A 0 A_JumpIfNoAmmo("Ready")
	F2DF A 5 Bright A_PlaySound("freezerbfg/startcharge",5,1.0,0)
	F2DF BCDEFGHIJ 3 Bright
	F2DH ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 A_Refire
	Goto Ball
  Hold:
	TNT1 A 0 A_JumpIfNoAmmo("Ready")
  HoldLoop:
	TNT1 A 0 A_PlaySound("freezerbfg/charge",5,1.0,1)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH A 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH B 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH C 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH D 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH E 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH F 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH G 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH H 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH I 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(15,15,0,1,0)
	F2DH J 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH K 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH L 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH M 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH N 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH O 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 Radius_Quake(3,15,0,1,0)
	F2DH P 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 A_Refire("HoldLoop")
  Ball:
	TNT1 AAA 0 A_StopSound(5)
	TNT1 AAA 0 A_StopSound(CHAN_VOICE)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(30)
	F2DF L 3 Bright A_Playsound("freezerbfg/fire",CHAN_WEAPON,1.0,0)
	F2DF M 3 Bright A_FireCustomMissile("PlayerFreezerBall",0,1,0,0)
	F2DF NOPQ 2 Bright
	F2DF RSTUVW 2 Bright
	Goto Ready+1
  FireX:
	TNT1 A 0 A_JumpIfNoAmmo("ReadyX")
	FZDF B 5 Bright A_PlaySound("freezerbfg/startcharge",5,1.0,0)
	TNT1 AAA 0 A_StopSound(CHAN_BODY)
	FZDF CDEFGHIJ 5 Bright
	FZDH KODHBJCILMEGAPFN 3 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 A_Refire("HoldX")
	Goto BallX
  HoldX:
	TNT1 A 0 A_JumpIfNoAmmo("ReadyX")
  HoldLoopX:
	TNT1 A 0 A_PlaySound("freezerbfg/charge",5,1.0,1)
	FZDF K 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH G 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH F 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH N 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH B 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH I 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH H 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH D 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH M 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH L 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH E 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH K 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH J 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH A 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH O 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH P 1 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	FZDH C 2 Bright A_FireBullets(4,4,2,6,"IceMeeleePuff",0,64)
	TNT1 A 0 A_Refire("HoldLoopX")
  BallX:
	FZDF L 4 Bright A_GunFlash
	TNT1 A 0 A_Recoil(30)
	TNT1 AAA 0 A_StopSound(5)
	FZDF L 1 Bright A_Playsound("freezerbfg/fire",CHAN_WEAPON,1.0,0)
	FZDF M 4 Bright A_FireCustomMissile ("PlayerFreezerBall",0,1,0,0)
	FZDF NOPQ 4 Bright
	FZDF A 7 Bright
	Goto ReadyX
  AltFire:
    TNT1 A 0 A_JumpIfInventory("HDFreezerBFGToken",1,"AltFireX")
	TNT1 A 0 A_JumpIfNoAmmo("Ready")
	F2DF A 5 Bright A_PlaySound("freezerbfg/startcharge",5,1.0,0)
	F2DF BCDEFGHIJ 3 Bright
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(60)
	TNT1 A 0 A_FireCustomMissile("PlayerCryoExplosion",0,0,0,5)
	F2DF L 3 Bright A_RailAttack(Random(500,1500), 0, 1, "00 00 ff", None, RGF_NOPIERCING|RGF_SILENT, 0, None, 0, 0, 0, 35, 0.5, 0.5, "PlayerCryoGuruRailTrail")
	F2DF M 3 Bright A_Playsound("freezerbfg/fire",CHAN_WEAPON,1.0,0)
	F2DF NOPQ 2 Bright
	F2DF RSTUVW 2 Bright
	Goto Ready+1
  AltFireX:
	TNT1 A 0 A_JumpIfNoAmmo("ReadyX")
	FZDF A 5 Bright A_PlaySound("freezerbfg/startcharge",5,1.0,0)
	FZDF BCDEFGHIJ 3 Bright
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(20)
	TNT1 A 0 A_FireCustomMissile("PlayerCryoExplosion",0,1,0,5)
	FZDF L 3 Bright A_RailAttack(Random(500,1500), 0, 1, "00 00 ff", None, RGF_NOPIERCING|RGF_SILENT, 0, None, 0, 0, 0, 35, 0.5, 0.5, "PlayerCryoGuruRailTrail")
	FZDF M 3 Bright A_Playsound("freezerbfg/fire",CHAN_WEAPON,1.0,0)
	FZDF NOPQ 2 Bright
	FZDF A 7 Bright
	Goto ReadyX
  WeaponSkin:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	F2DF A 1 Offset(0,35)
	F2DF A 1 Offset(0,45)
	F2DF A 1 Offset(0,55)
	F2DF A 1 Offset(0,65)
	F2DF A 1 Offset(0,75)
	F2DF A 1 Offset(0,85)
	F2DF A 1 Offset(0,95)
	F2DF A 1 Offset(0,108)
	F2DF A 1 Offset(0,150)
	F2DF A 3
	TNT1 A 0 A_PlaySound("freezerbfg/up",CHAN_AUTO)
	Goto Select
  WeaponSkin2:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	FZDF A 1 Offset(0,35)
	FZDF A 1 Offset(0,45)
	FZDF A 1 Offset(0,55)
	FZDF A 1 Offset(0,65)
	FZDF A 1 Offset(0,75)
	FZDF A 1 Offset(0,85)
	FZDF A 1 Offset(0,95)
	FZDF A 1 Offset(0,108)
	FZDF A 1 Offset(0,150)
	FZDF A 3
	TNT1 A 0 A_PlaySound("freezerbfg/up",CHAN_AUTO)
	Goto Select
	}
}

Actor PlayerFreezerBall2 : PlayerFreezerBall Replaces PlayerFreezerBall
{
RENDERSTYLE ADD //GLOOOW MOTHERFUCKER GLOOOOOW
-SHOOTABLE
States
	{
	Spawn:
		TNT1 A 0 NoDelay A_PlaySound("freezerball/loop",CHAN_VOICE,1.0,1)
	Fly:
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		TNT1 A 0 A_CustomMissile("PlayerFreezeLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		ICBL A 1 Bright A_SpawnItemEx("ProjectileTrailParticleBlue",random(-12,12),random(-12,12),random(-12,12),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_SpawnItemEx("FreezeBFGLightning",random(-6,6),random(-6,6),random(-6,6),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ICBL A 1 Bright A_CustomMissile("PlayerFreezeBFGProjectileAttack",random(-8,8),random(-10,10),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_CustomMissile("FreezeBFGTrail",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
		TNT1 A 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,random(-8,8),random(-8,8),Random(-6,6),0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
		TNT1 A 0 A_Explode(24,300,false,false)
		TNT1 A 0 A_Explode(16,600,false,false)
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		TNT1 A 0 A_CustomMissile("PlayerFreezeLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		ICBL B 1 Bright A_SpawnItemEx("ProjectileTrailParticleBlue",random(-12,12),random(-12,12),random(-12,12),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_SpawnItemEx("FreezeBFGLightning2",random(-6,6),random(-6,6),random(-6,6),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ICBL B 1 Bright A_CustomMissile("PlayerFreezeBFGProjectileAttack",random(-8,8),random(-10,10),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,random(-8,8),random(-8,8),random(-6,6),0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
		TNT1 A 0 A_Explode(24,300,false,false)
		TNT1 A 0 A_Explode(16,600,false,false)
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		TNT1 A 0 A_CustomMissile("PlayerFreezeLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		ICBL C 1 Bright A_SpawnItemEx("ProjectileTrailParticleBlue",random(-12,12),random(-12,12),random(-12,12),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_SpawnItemEx("FreezeBFGLightning",random(-6,6),random(-6,6),random(-6,6),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ICBL C 1 Bright A_CustomMissile("PlayerFreezeBFGProjectileAttack",random(-8,8),random(-10,10),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_CustomMissile("FreezeBFGTrail",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
		TNT1 A 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,random(-8,8),random(-8,8),random(-6,6),0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
		TNT1 A 0 A_Explode(24,300,false,false)
		TNT1 A 0 A_Explode(16,600,false,false)
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGBolt",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		TNT1 A 0 A_CustomMissile("PlayerFreezeLiteShot",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
		ICBL D 1 Bright A_SpawnItemEx("ProjectileTrailParticleBlue",random(-12,12),random(-12,12),random(-12,12),random(-2,2),random(-2,2),random(-2,2),random(-20,20),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_SpawnItemEx("FreezeBFGLightning2",random(-6,6),random(-6,6),random(-6,6),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ICBL D 1 Bright A_CustomMissile("PlayerFreezeBFGProjectileAttack",random(-8,8),random(-10,10),0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,random(-8,8),random(-8,8),random(-6,6),0,SXF_NOCHECKPOSITION|SXF_SETMASTER)
		TNT1 A 0 A_Explode(24,300,false,false)
		TNT1 A 0 A_Explode(16,600,false,false)
		TNT1 AAA 0 A_SpawnItemEx("PlayerFreezeBFGSpike",random(-200,200),random(-200,200),-1000,0,0,0,0,SXF_NOCHECKPOSITION,96)
		Loop
	Death:
		TNT1 A 0 
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerIceSpike",random(-256,256),random(-256,256),0,0,0,0,0,34,0)
        TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerIceSpike",random(-256,256),random(-256,256),0,0,0,0,0,34,0)
        TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerIceSpike",random(-256,256),random(-256,256),0,0,0,0,0,34,0)
		TNT1 A 0 A_SetTranslucent(0.75,1)
		TNT1 A 0 Radius_Quake(3,35,0,10,0)
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,10,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,20,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,30,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,70,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,80,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,110,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,130,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,140,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,160,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,170,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,190,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,210,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,220,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,230,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,260,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,270,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,280,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,290,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,310,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,320,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,330,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,340,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_CustomMissile("PlayerFreezeBFGTracer",0,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-90,90))
		TNT1 A 0 A_SpawnItemEx("FreezeBFGLightningSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL A 6 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL B 6 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL C 6 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL D 6 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL A 4 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL B 4 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL C 4 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL D 4 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL A 3 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL B 3 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL C 3 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL D 3 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL A 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL B 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL C 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL D 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL A 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL B 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL C 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL D 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL A 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL B 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL C 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 0 A_Explode(25,50,false,false)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Explode(25,50,true,false)
		ICBL D 2 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("PlayerCryoGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
		TNT1 A 1 Bright A_Explode(64,256,false,false)
		TNT1 A 0 A_Explode(115,240,false,false)
		TNT1 A 0 A_Jump(256,3)
		TNT1 A 1 Bright A_Explode(64,256,false,false)
		TNT1 A 0 A_Explode(115,240,true,false)
		TNT1 AAA 0 A_StopSound(CHAN_VOICE)
		TNT1 A 0 Radius_Quake(20,12,0,12,0)
		TNT1 A 0 A_PlaySound("freezerball/explode",CHAN_WEAPON,1.0,0)
		TNT1 A 0 A_SpawnItemEx("FreezeBFGShockWave2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,20,Random(8,-8),Random(8,-8),Random(6,-6))
		TNT1 A 0 A_CustomMissile("PlayerFreezeFlameSpawner",30)
		TNT1 AAAA 0 A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BlueKaboom3",0,0,0,random(-20,20),random(-20,20),random(-20,20))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGFlame2",random(-3,3),random(-3,3),random(-3,3),random(-6,6),random(-6,6),random(-3,3))
		CSA8 DEFGHIJKLMN 1 BRIGHT
		TNT1 A 0 A_SpawnItemEx("CryoShotEx",0,0,0,0,0,0,0)
		TNT1 A 15
		TNT1 A 0 A_SpawnItemEx("CryoShotEx",0,0,0,0,0,0,0)
		Stop    
	}
}

Actor PlayerCryoExplosion : PlayerFreezerBall2
{
-RIPPER
Speed 420
Scale 1
States
{
  Spawn:
    CSZ9 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	CSZ0 ABCDE 1 Bright A_SpawnItemEx("FreezeBFGShockWave",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	Loop
  Death:
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	TNT1 A 0 A_Explode(4000,600,0,1)
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_PlaySound("icefurry",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_PlaySound("freezerball/explode",CHAN_BODY,0.5,0,ATTN_NONE)
	TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,0,30)
    TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,65,30)
    TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,120,30)
    TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,165,30)
    TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,220,30)
    TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,265,30)
    TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,330,30)
    TNT1 A 0 A_CustomMissile("PlayerCryoExplosion1",0,0,375,30)
    TNT1 A 0 A_CustomMissile("PlayerFreezeFlameSpawner",30)
	TNT1 A 0 A_SpawnItemEx("CryoShotEx",0,0,0,0,0,0,0)
	CSE8 ABCDEFGHIJKL 3 BRIGHT
	TNT1 A 0 A_SpawnItemEx("CryoShotEx",0,0,0,0,0,0,0)
	CSE8 LLLL 1 Bright A_Fadeout(0.3,0)
	TNT1 A 11
	TNT1 A 0 A_SpawnItemEx("CryoShotEx",0,0,0,0,0,0,0)
    Stop
	}
}

ACTOR PlayerCryoExplosion1 : CryoExplosion1
{
States
{
  Spawn:
    TNT1 AAAAA 3 A_SpawnItem("PlayerCryoExplosion2",0,0)
	Stop
	}
}

ACTOR PlayerCryoExplosion2 : CryoExplosion2
{
DamageType "Ice"
States
{
  Spawn:
    CSE8 A 3 Bright
    CSE8 B 3 Bright A_Explode(16,164)
    CSE8 CDEFGHIJKL 3 Bright A_Explode(16,164)
	CSE8 LLLL 1 Bright A_Fadeout(0.3,0)
	Stop
	}
}

ACTOR PlayerFreezeFlameSpawner : ZombieFreezeFlameSpawner
{
SeeSound ""
States
{
  Spawn:
  TNT1 A 0
  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,Random(16,-16),Random(16,-16),Random(16,-16))
  TNT1 AAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGBolt",0,0,0,Random(-20,20),Random(-20,20),Random(-20,20),Random(-360,360),0,32)
  TNT1 A 2
  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,Random(8,-8),Random(8,-8),Random(6,-6),0,0,192)
  TNT1 AAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGBolt",0,0,0,Random(-20,20),Random(-20,20),Random(-20,20),Random(-360,360),0,32)
  TNT1 A 2
  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,Random(8,-8),Random(8,-8),Random(6,-6),0,0,192)
  TNT1 AAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGBolt",0,0,0,Random(-20,20),Random(-20,20),Random(-20,20),Random(-360,360),0,32)
  TNT1 A 2
  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,Random(8,-8),Random(8,-8),Random(6,-6),0,0,192)
  TNT1 AAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGBolt",0,0,0,Random(-20,20),Random(-20,20),Random(-20,20),Random(-360,360),0,32)
  TNT1 A 2
  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PlayerFreezeBFGFlame",0,0,0,Random(8,-8),Random(8,-8),Random(6,-6),0,0,192)
  Stop
  }
}

Actor PlayerIceSpike2 : FRZRIceSpikeNEO Replaces PlayerIceSpike 
{
Species ""
Species "Player"
DamageType ""
DamageType "Ice"
Tag "Ice Spike"
+THRUSPECIES
+DONTHURTSPECIES
+NODAMAGETHRUST
+BRIGHT
}

Actor INFCyberIceSpike : CyberIceSpikeNEO Replaces CyberIceSpike { +BRIGHT }

Actor INFFRZRIceSpike : FRZRIceSpikeNEO Replaces FRZRIceSpike { +BRIGHT }

Actor PlayerFreezeBFGSpike3 : FRZRIceSpikeNEO Replaces PlayerFreezeBFGSpike
{
Health 100
Species ""
Species "Player"
DamageType ""
DamageType "Ice"
DamageFactor "Ice", 0.0
DamageFactor "FreezerBurn", 0.0
Tag "Ice Spike"
+THRUSPECIES
+DONTHARMSPECIES
+BRIGHT 
}

Actor PlayerCryoGuruSphereSmokeProjectile : PlayerNemesisGuruSphereSmokeProjectile
{
States
	{
	Spawn1:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP4 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn2:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP5 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn3:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP6 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn4:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP4 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn5:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP5 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 A_SetScale(ScaleX -0.002, ScaleY -0.002)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP6 A 4 Bright A_FadeOut(0.0065,1)
		Loop
	}
}

Actor PlayerCryoGuruRailTrail : PlayerNemesisGuruSphereSmokeProjectile
{
States
	{
	Spawn1:
		TNT1 A 0 A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP4 A 1 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn2:
		TNT1 A 0 A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP5 A 1 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn3:
		TNT1 A 0 A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP6 A 1 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn4:
		TNT1 A 0 A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP4 A 1 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn5:
		TNT1 A 0 A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP5 A 1 Bright A_FadeOut(0.0065,1)
		Loop
	Spawn6:
		TNT1 A 0 A_SetScale(ScaleX -0.001, ScaleY -0.001)
		TNT1 A 0 A_JumpIf(Alpha<0.3,2)
		TNT1 A 0 //A_Explode(5,64)
		NHP6 A 1 Bright A_FadeOut(0.0065,1)
		Loop
	}
}

//FantasyStaff
ACTOR HDFantasyStaffToken : Inventory {Inventory.MaxAmount 1}

Actor INFFantasyStaff : FantasyStaff Replaces FantasyStaff
{
Tag "Fantasy Staff"
States
{
  Select:
    TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"SelectSD")
    TNT1 A 0 A_Raise
    FS19 A 1 A_Raise
    Loop
  SelectSD:
    TNT1 A 0 A_Raise
    LTBR M 1 A_Raise
    Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_JumpIfNoAmmo("DeselectLoop")
	TNT1 A 0 A_PlaySound("hdfantasystaff/holster",5)
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"DeselectSD")
    FS19 DCB 3 Bright
    FS19 A 3
  DeselectLoop:
    TNT1 A 0 A_Lower
    FS19 A 1 A_Lower
    Loop
  DeselectSD:
    TNT1 A 0 A_JumpIfNoAmmo("DeselectLoopSD")
    LTBR ON 3 Bright
    LTBR M 3
  DeselectLoopSD:
    TNT1 A 0 A_Lower
    LTBR M 1 A_Lower
    Loop
  Ready:
    TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"ReadySD")
    FS19 A 3 A_JumpIfNoAmmo("Ready2")
    TNT1 A 0 A_PlaySound("FantasyStaff/Recharge",6)
    FS19 BCD 3 Bright
  ReadyLoop:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2")
    TNT1 A 0 A_PlaySound("hdfantasystaff/idle",5,1.0,TRUE)
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"WeaponSkin")
    FS20 AAAA 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"WeaponSkin")
	FS20 BBBB 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"WeaponSkin")
	FS20 CCCC 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"WeaponSkin")
	FS20 DDDD 1 Bright A_WeaponReady
    Loop
  Ready2:
    TNT1 A 0 A_StopSound(7)
	TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_JumpIfInventory("DustMana",1,"Ready")
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"WeaponSkin")
    FS19 A 1 A_WeaponReady
    Loop
  ReadySD:
    LTBR M 3 A_JumpIfNoAmmo("Ready2SD")
    TNT1 A 0 A_PlaySound("FantasyStaff/Recharge",6)
    LTBR "NO" 3 Bright
  ReadyLoopSD:
    TNT1 A 0 A_PlaySound("hdfantasystaff/idle",5,1.0,TRUE)
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,1)
	Goto WeaponSkinSD
    LTBR BBBB 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,1)
	Goto WeaponSkinSD
	LTBR CCCC 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,1)
	Goto WeaponSkinSD
	LTBR DDDD 1 Bright A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,1)
	Goto WeaponSkinSD
	LTBR EEEE 1 Bright A_WeaponReady
	Loop
  Ready2SD:
    TNT1 A 0 A_StopSound(7)
	TNT1 A 0 A_StopSound(5)
    TNT1 A 0 A_JumpIfInventory("DustMana",1,"ReadySD")
	TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,1)
	Goto WeaponSkinSD
    LTBR M 1 A_WeaponReady
    Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"FireSD")
	TNT1 A 0 A_JumpIfNoAmmo("Ready2")
	TNT1 A 0 A_PlaySound("hdfantasystaff/fire",CHAN_WEAPON)
    TNT1 A 0 A_PlaySound("hdfantasystaff/fireloop1",5,1.0,TRUE)
	TNT1 A 0 A_PlaySound("hdfantasystaff/fireloop2",6,1.0,TRUE)
	FS20 EE 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 F 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 FG 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
  FireLoop:
	FS20 G 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 HH 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 I 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 IJ 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 J 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 GG 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 H 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 HI 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	TNT1 A 0 A_JumpIfNoAmmo("StopFire")
	TNT1 A 0 A_Refire(1)
	Goto StopFire
	FS20 I 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 JJ 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 G 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 GH 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 H 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 II 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 J 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	FS20 JG 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	TNT1 A 0 A_JumpIfNoAmmo("StopFire")
    TNT1 A 0 A_Refire("FireLoop")
  StopFire:
	TNT1 A 0 A_PlaySound("hdfantasystaff/firestop",CHAN_WEAPON)
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	FS20 KL 3 Bright
    Goto ReadyLoop
  FireSD:
	TNT1 A 0 A_JumpIfNoAmmo("Ready2SD")
	TNT1 A 0 A_PlaySound("hdfantasystaff/fire",CHAN_WEAPON)
    TNT1 A 0 A_PlaySound("hdfantasystaff/fireloop1",5,1.0,TRUE)
	TNT1 A 0 A_PlaySound("hdfantasystaff/fireloop2",6,1.0,TRUE)
  FireLoopSD:
	LTBR F 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	LTBR FF 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	LTBR G 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	LTBR GG 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	LTBR H 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	LTBR HH 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	LTBR I 1 Bright A_RailAttack(random(8,15),0,FALSE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	LTBR II 1 Bright A_RailAttack(random(8,15),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,20,"INFFantaStaffPuff",0,0,0,0,16,0,"INFFantaStaffRailEffect",-2)
	TNT1 A 0 A_JumpIfNoAmmo("StopFireSD")
	TNT1 A 0 A_Refire("FireLoopSD")
  StopFireSD:
	TNT1 A 0 A_PlaySound("hdfantasystaff/firestop",CHAN_WEAPON)
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	LTBR "NO" 3 Bright
    Goto ReadyLoopSD
  AltFire:
    TNT1 A 0 A_JumpIfInventory("HDFantasyStaffToken",1,"AltFireSD")
    TNT1 A 0 A_JumpIfInventory("DustMana",100,"BetterAlt")
	TNT1 A 0 A_PlaySound("hdfantasystaff/firealt",7)
    FS20 A 2 Bright A_FireCustomMissile("FantasyProjectileWeakPlayer",0,0,0,-4)
	FS20 MNOPQ 2 Bright
    FS20 R 2 Bright A_Refire
    Goto ReadyLoop
  BetterAlt:
	TNT1 A 0 A_JumpIfInventory("PowerDoubleFiringSpeed",1,"BetterAltSpeed")
	TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"BetterAltSpeed")
	TNT1 A 0 A_JumpIfInventory("TrueLegDoubleFiringSpeed",1,"BetterAltSpeed")
	TNT1 A 0 A_JumpIfInventory("PowerFireSpeedee",1,"BetterAltSpeed")
	TNT1 A 0 A_JumpIfInventory("CFSPFirepower",1,"BetterAltSpeed")
	TNT1 A 0 A_JumpIfInventory("DoomSlayerFirepower",1,"BetterAltSpeed")
    TNT1 A 0 A_PlaySound("hdfantasystaff/altcharge",CHAN_WEAPON)
	FS20 ESTU 3 Bright
	FS20 VSTUVSTUVSTUVST 2 Bright
    FS20 UVSTUVSTUVSTUVSTUVSTUVSTUVST 1 Bright
  BetterAltFire:
    TNT1 A 0 A_PlaySound("hdfantasystaff/altfire",CHAN_WEAPON) 
    TNT1 A 0 A_PlaySound("hdfantasystaff/altfire2",7)
    FS20 F 3 Bright Offset(0,48) A_FireCustomMissile("INFFantaSealPlayer",0,0,0,-8)
	TNT1 A 0 A_TakeInventory("DustMana",100,TIF_NOTAKEINFINITE)
	//TNT1 A 0 A_SetPitch (pitch-3)
	TNT1 A 0 A_Recoil(15)
    FS19 A 2 Offset(0,40)
    FS19 A 2 Offset(0,36)
    FS19 A 2 Offset(0,34)
    FS19 A 30 Offset(0,32)
    FS19 A 4 A_JumpIfInventory("Dustmana",1,"Ready")
	Goto Ready2
  BetterAltSpeed:
    TNT1 A 0 A_PlaySound("hdfantasystaff/quickcharge",CHAN_WEAPON)
	FS20 ESTU 3 Bright
	FS20 VSTUVSTUVSTUVSTSTUVST 1 Bright
	Goto BetterAltFire
  AltFireSD:
    TNT1 A 0 A_JumpIfInventory("DustMana",100,"BetterAltSD")
	TNT1 A 0 A_PlaySound("hdfantasystaff/firealt",7)
    LTBR G 4 Bright Offset(0,34) A_FireCustomMissile("FantasyProjectileWeakPlayer",0,0,0,-4)
    LTBR H 4 Bright Offset(0,36)
    LTBR L 4 Bright Offset(0,32)
	LTBR A 0 A_Refire
    Goto ReadyLoopSD
  BetterAltSD:
	TNT1 A 0 A_JumpIfInventory("PowerDoubleFiringSpeed",1,"BetterAltSpeedSD")
	TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"BetterAltSpeedSD")
	TNT1 A 0 A_JumpIfInventory("TrueLegDoubleFiringSpeed",1,"BetterAltSpeedSD")
	TNT1 A 0 A_JumpIfInventory("PowerFireSpeedee",1,"BetterAltSpeedSD")
	TNT1 A 0 A_JumpIfInventory("CFSPFirepower",1,"BetterAltSpeedSD")
	TNT1 A 0 A_JumpIfInventory("DoomSlayerFirepower",1,"BetterAltSpeedSD")
	TNT1 A 0 A_PlaySound("hdfantasystaff/altcharge",CHAN_WEAPON)
    LTBR BCDEBCDEBCDEBCD 2 Bright
    LTBR FGHIFGHIFGHI 2 Bright
	LTBR FGHIFGHIFGHIFGHIFGH 1 Bright
  BetterAltFireSD:
    TNT1 A 0 A_PlaySound("hdfantasystaff/altfire",CHAN_WEAPON) 
    TNT1 A 0 A_PlaySound("hdfantasystaff/altfire2",7)
	LTBR M 3 Bright Offset(0,48) A_FireCustomMissile("INFFantaSealPlayer",0,0,0,-8)
	TNT1 A 0 A_TakeInventory("DustMana",100,TIF_NOTAKEINFINITE)
	//TNT1 A 0 A_SetPitch (pitch-3)
	TNT1 A 0 A_Recoil(15)
    LTBR M 2 Offset(0,40)
    LTBR M 2 Offset(0,36)
    LTBR M 2 Offset(0,34)
    LTBR M 30 Offset(0,32)
    LTBR M 4 A_JumpIfInventory("Dustmana",1,"ReadySD")
	Goto Ready2SD
  BetterAltSpeedSD:
    TNT1 A 0 A_PlaySound("hdfantasystaff/quickcharge",CHAN_WEAPON)
    LTBR BCDEBCDEBCDEBCD 1 Bright
    LTBR FGHIFGHIFGHI 1 Bright
	Goto BetterAltFireSD
  WeaponSkin:
    TNT1 A 0 A_JumpIfNoAmmo("WeaponSkin2")
    TNT1 A 0 A_PlaySound("hdfantasystaff/holster",5)
    FS19 DCB 3 Bright
    FS19 A 3
  WeaponSkin2:
	FS19 A 1 Offset(0,35)
	FS19 A 1 Offset(0,45)
	FS19 A 1 Offset(0,55)
	FS19 A 1 Offset(0,65)
	FS19 A 1 Offset(0,75)
	FS19 A 1 Offset(0,85)
	FS19 A 1 Offset(0,95)
	FS19 A 1 Offset(0,108)
	FS19 A 1 Offset(0,150)
	FS19 A 3
	Goto Select
  WeaponSkinSD:
    TNT1 A 0 A_JumpIfNoAmmo("WeaponSkin2SD")
    TNT1 A 0 A_PlaySound("hdfantasystaff/holster",5)
    LTBR ON 3 Bright
    LTBR M 3
  WeaponSkin2SD:
	LTBR M 1 Offset(0,35)
	LTBR M 1 Offset(0,45)
	LTBR M 1 Offset(0,55)
	LTBR M 1 Offset(0,65)
	LTBR M 1 Offset(0,75)
	LTBR M 1 Offset(0,85)
	LTBR M 1 Offset(0,95)
	LTBR M 1 Offset(0,108)
	LTBR M 1 Offset(0,150)
	LTBR M 3
	Goto Select
	}
}

Actor INFFantaSealPlayer : FantasySealPlayer
{
-NODAMAGETHRUST
MissileType "TSIBrimstoneTrail"
Damage 128 //100
Scale 0.5
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("magicprojectile/flyby")
  Looping:
    1TSC A 1 Bright
    Loop
  Death:
	TNT1 A 0 A_CustomMissile("FantasySealExplosionPlayer",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 A 0 A_CustomMissile("FantasySealExplosionPlayer",0,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 A 0 A_CustomMissile("FantasySealExplosionPlayer",0,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 A 0 A_CustomMissile("FantasySealExplosionPlayer",0,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 A 0 A_CustomMissile("FantasySealExplosionPlayer",0,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 A 0 A_CustomMissile("FantasySealExplosionPlayer",0,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 A 0 A_CustomMissile("FantasySealExplosion2Player",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,0)
	TNT1 A 0 A_SpawnItem("BlueProjExplodeLarge")
	TNT1 A 0 A_SpawnItemEx("INFFantaHugeExplosion",-40)
	TNT1 A 0 A_PlaySound("hdfantasystaff/altexplosion")
	TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFire1", 0,0,0, (0.1)*Random(-80, 80), 0, (0.1)*Random(-80, 80), Random(0, 360), 128)
	TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFire2", 0,0,0, (0.1)*Random(-80, 80), 0, (0.1)*Random(-80, 80), Random(0, 360), 128)
	TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFire3", 0,0,0, (0.1)*Random(-80, 80), 0, (0.1)*Random(-80, 80), Random(0, 360), 128)
  DeathLoop:
    TNT1 A 0 A_Explode(64,550,0)
	TNT1 A 0 A_Explode(92,360)
	TNT1 A 0 A_Explode(128,200)
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TSISerpExpParticle2",Random(-400,400),Random(-400,400),Random(-180,180),0,0,Random(1,2),0,0,128)
	CLBB C 1 Bright A_FadeOut(0.2)
	Loop
	}
}

ACTOR INFFantaHugeExplosion : NemesisHugeExplosion
{
Scale 1.0
States
{
  Spawn:
	FSE2 ABCDEFGHIJKLMNOPQRS 2 Bright
	TNT2 A 15
	TNT3 A 15
	TNT4 A 15
	Stop
	}
}

ACTOR INFFantasySealMiniExplodePlayer : FantasySealMiniExplodePlayer Replaces FantasySealMiniExplodePlayer
{
Scale 0.6
Damagetype "Normal"
Damage 12
-DONTSPLASH
-NOCLIP
+THRUSPECIES
States
{
  Spawn:
	TNT1 A 0 NoDelay A_PlaySound("smallexplosion/sfx")
	FSEX ABCD 1 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(32,100,0)
	FSEX EF 1 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(32,100,0)
	FSEX GH 1 Bright A_FadeOut(0.05)
	TNT1 A 0 A_Explode(32,100,0)
	FSEX IJKLMNOPQRSTUV 1 Bright A_FadeOut(0.05)
	Stop
  }
}

Actor INFFantaStaffRailEffect
{
  Scale 0.14 //Scale 0.08
  +NOINTERACTION
  +CLIENTSIDEONLY
  +NOTIMEFREEZE
  Alpha 0.85
  Renderstyle Add
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("LightningRaySpawnerSmall",Random(1,-1),Random(1,-1),Random(1,-1),0,0,0,0,0,192)
	TNT1 A 0 A_Jump(256,1,2,3,4,5,6)
	PLST ABCDEF 0 A_Jump(256,"Spawn2")
  Spawn2:
	"----" A 1 Bright A_FadeOut
	Wait	 
	}
}

Actor INFFantaStaffPuff : PlayerNemesisRailPuff
{
Damagetype "Player"
-BLOODLESSIMPACT
States
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("INFFantaStaffPuffParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359),SXF_NOCHECKPOSITION)
	TNT1 A 20
	Stop
  XDeath:
	TNT1 A 0 A_SpawnItemEx("FantaTSISerpExpParticle",Random(-12,12),Random(-12,12),Random(-12,12),Random(-4,4),Random(-4,4),Random(-4,4),Random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("TSIFantaLightningEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx("FantaTSIFLare",0,0,0,0,0,0,0,128,192)
	TNT1 A 0 A_CustomMissile("Kaboom6",0,0,random(0,360),2,random(0,360))
	TNT1 A 20
    Stop
	}
}

Actor TSIFantaLightningEffect : TSIFLare
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 1 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,160),0,2.0,0,"FantaBlueParticle",-15)
	Stop
	}
}

ACTOR FantaBlueParticle : OverseerRailParticle
{
Scale 0.06
States
{
Spawn:
	CLBA C 2 Bright
	Stop
	}
}

Actor FantaTSIFLare : TSIFLare { Scale 0.2 }

Actor FantaTSISerpExpParticle : TSISerpExpParticle
{
Scale 0.1
States
{
  Spawn:
   TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
   TNT1 A 0 A_SetUserVar(user_weave,Random(35,90))
  Weave:
   PAO2 A 1 Bright A_ChangeVelocity(Frandom(-0.2,0.2),Frandom(-0.2,0.2),Frandom(-0.2,0.2),0) //A_Weave(1,1,1.0,1.0)
   TNT1 A 0 A_JumpIf(user_weave == 0,"Fade")
   TNT1 A 0 A_SetUserVar(user_weave,user_weave-1)
   Loop
   }
}

Actor INFFantaStaffPuffParticle : HellStaffParticle
{
Scale 0.08 //0.02
States
{
  Spawn:
	TNT1 A 2
	B3FL A 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL A 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL B 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL B 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL C 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL C 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL D 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL D 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL E 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL E 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL F 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	B3FL F 1 Bright A_FadeOut(0.1)
	TNT1 A 0 A_SetScale(Scalex-0.004)
	Stop
	}
}

//Others

Actor ExplosiveNailgun2 : ExplosiveNailgun Replaces ExplosiveNailgun { Tag "Explosive Nailgun" Inventory.PickupSound "misc/w_pkup" }