Actor Spin: Inventory
{
inventory.maxamount 1
}

Actor RandomHeadExploder: Inventory
{
inventory.maxamount 1
}

// --------------------------------------------------------------------------
//
// Minigun
//
// --------------------------------------------------------------------------

ACTOR MiniGun : Chaingun Replaces Chaingun
{
Game Doom
SpawnID 28
Weapon.SelectionOrder 700
Weapon.AmmoType1 "Clip2"
//Weapon.AmmoType2 "Clip2"
Weapon.AmmoGive 30
Weapon.AmmoUse1 1
//Weapon.AmmoUse2 1
    +WEAPON.NOAUTOAIM
	+WEAPON.NOAUTOFIRE
	+FORCEXYBILLBOARD
	+WEAPON.NO_AUTO_SWITCH
Inventory.PickupSound "CBOXPKUP"
Inventory.PickupMessage "You got the Minigun!"
Obituary "%o was mowed down by %k's Minigun."
AttackSound "none"
Scale 0.9
States
{
Steady:
	TNT1 A 1
	Goto Ready
	
Flash:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("FlashlightAction", 1, "CheckFlashlight")
	TNT1 A 1
	TNT1 A 0 A_JumpIfInventory("IsFlashlightOn", 1, "FlashOn")
	Goto Flash
	FlashOn:
	TNT1 A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
	TNT1 A 0 A_FireCustomMissile("FlashlightSource", 0, 0, 0, 0, 0, 0)
	Goto Flash 
	CheckFlashLight:
	TNT1 A 1
	TNT1 A 0 A_TakeInventory("FlashlightAction")
	TNT1 A 0 A_JumpIfInventory("IsFlashlightOn", 1, "TurnOffFlashlight")
	TNT1 A 0 A_GiveInventory("IsFlashlightOn", 1)
	Goto Flash
	TurnOffFlashlight:
	TNT1 A 0 A_TakeInventory("IsFlashlightOn", 1)
	Goto Flash
	
Ready: 
      TNT1 A 0
	  TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
      TNT1 A 10
	  TNT1 A 0 A_GunFlash
      CHGS ABCD 1 A_JumpIfInventory("GoFatality", 1, "Steady")
      TNT1 A 0 A_PlaySound("CHGNPKUP")
      TNT1 AAAAAAAAAAA 0
	  Idle:
      TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
	  		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
      CHAG A 1 A_WeaponReady
	  TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
      TNT1 A 0 A_JumpIfInventory("Spin",1,"Ready2")
	  TNT1 A 0 A_JumpIfInventory("Clip2",1,"Idle")
      Goto IdleNoAmmo
	  
	  IdleNoAmmo:
	  CHAE A 1 A_WeaponReady
	  TNT1 A 0 A_TakeInventory ("Spin",1)
	  TNT1 A 0 A_JumpIfInventory("Clip2",1,"Idle")
	  Loop

Ready2:
      TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
      TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
	  TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
      CHAG ABCD 1 A_WeaponReady 
	  TNT1 A 0 A_AlertMonsters
      TNT1 A 0 A_PlaySound("CHAINSPI")
      Loop

	Deselect:
	TNT1 A 0 A_TakeInventory ("Spin",1)
	TNT1 A 0 A_TakeInventory("TossGrenade", 1)
	 TNT1 A 0 A_Takeinventory("RandomHeadExploder",1)
	 TNT1 A 0 SetPlayerProperty(0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		Wait

    Select:
		TNT1 A 0 A_Giveinventory("RandomHeadExploder",1)
		TNT1 A 0 A_Takeinventory("FistsSelected",1)
		TNT1 A 0 A_Takeinventory("SawSelected",1)
		TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
		TNT1 A 0 A_Takeinventory("SSGSelected",1)
		TNT1 A 0 A_Giveinventory("MinigunSelected",1)
		TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
		TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("BFGSelected",1)
		TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
		TNT1 A 0 A_Takeinventory("RailGunSelected",1)
		TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
		TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
		TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
		TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
		TNT1 A 0 A_Takeinventory("HasBarrel",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
		MARN A 0 ACS_ExecuteAlways(728, 0, 0, 0, 0)//Check if penetration is on.
		TNT1 AAAAAAAAAAAAAA 0 A_Raise
		Goto Ready

    NoAmmo:
        CHAE A 10 A_PlaySound("weapons/empty")
        Goto IdleNoAmmo
		
	Fire:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Spin",1,"Fire2")
		TNT1 A 0 A_PlaySound("CHAINSTA", 3)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Alerter", 0, 0, 0, 0)
		CHAG BC 2
		CHAG D 2
		CHAG BC 1
		CHAG D 1
		CHAG BC 1
		CHAG D 1
        TNT1 A 0
    Hold:
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Spin",1,"Fire2")
		
        TNT1 A 0 A_Recoil(0.1)
		TNT1 A 0 A_SetAngle(random(1, -1) + angle)
		TNT1 A 0 A_SetPitch(-0.5 + pitch)
		
		
		//TNT1 A 0 A_CustomMissile ("Rocket", 0, 0, 15, 2)
		
		
	    TNT1 A 0 A_PlaySound("CHAINSPI", 3)
         TNT1 A 0 A_PlaySound("CHGNSHOT", 1)
		 TNT1 A 0 A_SpawnItem("DistantMinigunFireSound", 0, 0, 0)
        TNT1 A 0 A_Recoil(0.1)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAssMinor", 0, 0, 0, 0)
		////TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		RIFF A 0 A_FireCustomMissile("GunFireSmoke", 0, 0, 0, 0, 0, 0)
        CHAF A 1 BRIGHT A_FireBullets(4, 4, 1, 9, "MachineGunBulletPuff", 1)
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
        CHAF A 0 BRIGHT A_FireCustomMissile("MinigunTracer", random(-3,3), 0, -1, -12, 0, random(-3,3))
		TNT1 A 0 A_JumpIfInventory("NoPenetration", 1, 2)
		RIFF A 0 A_FireCustomMissile("WallPenetrationHitscan", random(-3,3), 0, -1, 0, 0, random(-3,3))
		TNT1 A 0
        TNT1 A 0 A_Firecustommissile("50CaseSpawn",0,0,-12,-18)
        CHAF B 1
		
		TNT1 A 0 A_PlaySound("CHGNSHOT", 1)
		TNT1 A 0 A_SpawnItem("DistantMinigunFireSound", 0, 0, 0)
		////TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		
        CHAF J 1 BRIGHT A_FireBullets(4, 4, 1, 9, "MachineGunBulletPuff", 1)
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
        CHAF A 0 BRIGHT A_FireCustomMissile("MinigunTracer", random(-3,3), 0, -1, -12, 0, random(-3,3))
		TNT1 A 0 A_JumpIfInventory("NoPenetration", 1, 2)
		RIFF A 0 A_FireCustomMissile("WallPenetrationHitscan", random(-3,3), 0, -1, 0, 0, random(-3,3))
		TNT1 A 0
        TNT1 A 0 A_Firecustommissile("50CaseSpawn",0,0,-12,-18)
	    CHAF H 1 A_SetAngle(random(1, -1) + angle)
        MNGG B 0 A_ReFire
		
     TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
	 TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
	 TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	 CHAG A 1 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG B 1 A_WeaponReady
	 TNT1 A 0 A_Refire
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG C 1 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG D 1 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)		

     TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
	 TNT1 A 0 A_PlaySound("CHAINSTO", 3)
	 TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
	 TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	 CHAG A 1 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG B 1 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG C 2 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG D 2 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
      
	 TNT1 A 0 A_TakeInventory("Spin", 1)
     TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
	 TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
	 TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	 
	 CHAG A 2
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG B 2
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG C 2 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG D 2 A_WeaponReady
	 TNT1 A 0 A_FireCustomMissile("SmokeSpawner11",0,0,0,0)
	 CHAG ABCD 2 A_WeaponReady
	 CHAG ABCD 3 A_WeaponReady
	 
     goto Ready+13


	
Fire2:
		 TNT1 A 0 A_PlaySound("CHGNSHOT")
        TNT1 A 0 A_Recoil(0.1)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAssMinor", 0, 0, 0, 0)
		////TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		
        CHAF A 1 BRIGHT A_FireBullets(4, 4, 1, 9, "MachineGunBulletPuff", 1)
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
		TNT1 A 0 A_SpawnItem("DistantMinigunFireSound", 0, 0, 0)
        CHAF A 0 BRIGHT A_FireCustomMissile("MinigunTracer", random(-3,3), 0, -1, -12, 0, random(-3,3))
		TNT1 A 0 A_JumpIfInventory("NoPenetration", 1, 2)
		RIFF A 0 A_FireCustomMissile("WallPenetrationHitscan", random(-3,3), 0, -1, 0, 0, random(-3,3))
		TNT1 A 0
        TNT1 A 0 A_Firecustommissile("50CaseSpawn",0,0,-12,-18)
        CHAF B 1 A_SetPitch(-0.5 + pitch)
		TNT1 A 0 A_SetAngle(random(1, -1) + angle)
		RIFF A 0 A_FireCustomMissile("GunFireSmoke", 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_PlaySound("CHGNSHOT")
		////TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		
        CHAF J 1 BRIGHT A_FireBullets(4, 4, 1, 9, "MachineGunBulletPuff", 1)
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
		TNT1 A 0 A_SpawnItem("DistantMinigunFireSound", 0, 0, 0)
        CHAF A 0 BRIGHT A_FireCustomMissile("MinigunTracer", random(-3,3), 0, -1, -12, 0, random(-3,3))
		TNT1 A 0 A_JumpIfInventory("NoPenetration", 1, 2)
		RIFF A 0 A_FireCustomMissile("WallPenetrationHitscan", random(-3,3), 0, -1, 0, 0, random(-3,3))
		TNT1 A 0
        TNT1 A 0 A_Firecustommissile("50CaseSpawn",0,0,-12,-18)
		TNT1 A 0 A_SetAngle(random(1, -1) + angle)
		CHAF B 1

        MNGG B 0 A_ReFire

     CHAG A 1 A_WeaponReady
     TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,0,0)

     CHAG B 1 A_WeaponReady
     TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,0,0)

     CHAG C 1 A_WeaponReady
     TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,0,0)

     CHAG D 1 A_WeaponReady
     TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,0,0)

        goto Ready2





  AltFire:
     
     TNT1 A 0 A_JumpIfInventory("Spin",1,"StopAlt")
     TNT1 A 0 A_GiveInventory ("Spin",1)
     //TNT1 A 0 SetPlayerProperty(0,1,0)
      TNT1 A 0 A_PlaySound("CHAINSTA")
	  TNT1 A 0 A_JumpIfInventory("Clip2",1,1)
	  Goto IdleNoAmmo
     CHAG ABCD 2
     TNT1 A 0
     Goto Ready2

  StopAlt:
	TNT1 A 0
     TNT1 A 0 A_TakeInventory ("Spin",1)
     TNT1 A 0 A_PlaySound("CHAINSTO")
     //TNT1 A 0 SetPlayerProperty(0,0,0)
	 CHAG ABCD 1
     CHAG ABCDABCD 2 A_WeaponReady
	 CHAG ABCD 3 A_WeaponReady
     TNT1 A 0
     Goto Ready+13


 	
    DoKick:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKick")
		NULL A 0 A_JumpIf (momZ < 0, "AirKick")
		NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
		Goto InitializeNormalKick
		
		LowKickChecker1:
		TNT1 A 0
	    NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
		RIFF A 0 A_FireCustomMissile("KickAttackDetectDowned", 0, 0, 0, 0)
		
		InitializeNOrmalKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		MGKI BCD 1
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
        MGKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		MGKI I 1
		MGKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+6
    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		MGKI BCD 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
        MGKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		MGKI I 1
		MGKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+6
	
	AirKick:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+6
		
	SuperAirKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+6
	
	Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
        TNT1 A 10
		FUCK A 1
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 9, 0, -1, 0)
        FUCK B 1 A_PlaySound("FUCK", 2)
        FUCK CD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
        FUCK DCBA 1
        TNT1 A 10
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready
		
	CheckGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
		Goto Ready+6
	CheckDistanceGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfCloser(100, "Grab")
		Goto Ready+6
	CheckIfCanGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
		Goto Ready+6	
	Grab:
	    PKUP ABC 2
		TNT1 A 0 A_CustomMissile("PickupProjectile")
		PKUP DEF 2
		Goto Ready
		
	PuristGun:
		TNT1 A 1
		TNT1 A 0 A_GiveInventory("ClassicChaingun", 1)
		TNT1 A 0 A_TakeInventory("MiniGun", 1)
		TNT1 A 10
		Goto Ready2	
	TossGrenade:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
		Goto NoGrenade
		GRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		GRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		GRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		GRTH JKLM 1
		TNT1 A 1 
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto Ready	
	NoGrenade:
		TNT1 A 0
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto REady+12	
	}
}

