ACTOR ClassicWeapon : DoomWeapon
{
	VisibleToPlayerClass Purist
	Inventory.ForbiddenTo BDoomer, Doomer2, Doomer3, ArcadeDoomer, ArcadeDoomer2, ArcadeDoomer3, TacticalDoomer
	+Inventory.RestrictAbsolutely
	States
	{
	GoingToReady:
		  TNT1 A 0 A_TakeInventory("BDWEaponACtion", 1)
		  TNT1 A 0 A_TakeInventory("ExecuteDownedEnemy", 1)
		  TNT1 A 0 A_TakeInventory("Kicking",1)
		  TNT1 A 0 A_TakeInventory("Salute1", 1)
		  TNT1 A 0 A_TakeInventory("Salute2", 1)
		  TNT1 A 0 A_TakeInventory("Taunting",1)
		  TNT1 A 0 A_TakeInventory("TossGrenade",1)
		  TNT1 A 0 A_TakeInventory("Reloading",1)
		  TNT1 A 1 A_Raise
		  Goto Ready3

	Steady:
		TNT1 A 0
		TNT1 A 2
		Goto GoingToReady

	Ready3:
		TNT1 A 0
		TNT1 A 2 A_WeaponReady
		Loop

	WEaponActions:
		  TNT1 A 0
		  TNT1 A 0 A_TakeInventory("BDWEaponACtion", 1)
		  TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		  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")
		  TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		  TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		  TNT1 A 2
		  Goto GoingToReady

	Tryuse:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PressedUse", 100)
		RIFF A 0 A_FireCustomMissile("UseAttack", 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("StealthAttack", 0, 0, 0, -7)
		TNT1 A 1
		TNT1 A 0 A_JumpIfInventory("FlashlightOn", 1, "WaitFlashlightOn")
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "Interrupt")
		Goto Flash

	Interrupt:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PRessedUse", 1)
		TNT1 A 4
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "Interrupt")
		Goto Flash

	WaitFlashlightOn:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PRessedUse", 1)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1 BRIGHT
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1 BRIGHT
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "WaitFlashlightOn")
		Goto Flash

	Flash:
		TNT1 A 0
		TNT1 A 0 A_JumpIfHealthLower(1,"LightEnd")
		TNT1 A 0 A_JumpIfInventory("SwitchFlashlight",1,"SwitchFlashlight")
		TNT1 A 0 A_JumpIfInventory("FlashlightOn", 1, "FlashOn")
		TNT1 A 1
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "TryUse")
		TNT1 A 1
		Goto Flash

	LightEnd:
		TNT1 A 0
		Stop

	FlashOn:
	    TNT1 A 0
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1 BRIGHT

		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "TryUse")

		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1 BRIGHT

		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1 BRIGHT
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "TryUse")
		Goto Flash

	SwitchFlashlight:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("SwitchFlashlight", 1)
		TNT1 A 0 A_JumpIfInventory("FlashlightOn",1,"TurnFlashOff")
		TNT1 A 0 A_Giveinventory("FlashlightOn",1)
		TNT1 A 0 A_PlaySound("FLASHON", 5)
        Goto Flash

	TurnFlashOff:
		TNT1 A 0 A_Takeinventory("FlashlightOn",1)
		TNT1 A 0 A_Light0
		TNT1 A 0 A_PlaySound("FLASHOFF", 5)
        Goto Flash

	DoKick:
		TNT1 A 1 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		TNT1 A 1 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 A_Takeinventory("Zoomed",1)
		TNT1 A 0 A_Takeinventory("PowerLightAmp",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")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, "SlideAttack")

        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK BCD 1
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -17)
        KICK H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK I 1
		KICK GFEDCBA 1
		TNT1 A 0 A_JumpIfInventory("IsCurbstompingZombieman", 1, "Steady")
	    TNT1 A 0 A_JumpIfInventory("IsCurbstompingSergeant", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		RIBA A 0 A_Takeinventory("Kicking",1)
		Goto GoingToReady


    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK BCD 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -17)
        KICK H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK I 1
		KICK GFEDCBA 1
		TNT1 A 0 A_JumpIfInventory("IsCurbstompingZombieman", 1, "Steady")
	    TNT1 A 0 A_JumpIfInventory("IsCurbstompingSergeant", 1, "Steady")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		RIBA A 0 A_Takeinventory("Kicking",1)
		Goto GoingToReady

	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, -17)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		RIBA A 0 A_Takeinventory("Kicking",1)
		Goto GoingToReady

	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, -17)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		RIBA A 0 A_Takeinventory("Kicking",1)
		Goto GoingToReady

	SlideAttack:
		TNT1 A 0 SetPlayerProperty(0,1,0)
		KICK A 0 A_Takeinventory("Kicking",1)
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		TNT1 A 0 A_PlaySound("SlideKickStart", 5)
		KICK LMN 1
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("PowerStrength",1,"BerserkSlide")
        RIFF A 0 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
        KICK O 1
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("SlideAttack", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		TNT1 A 0 A_TAkeInventory("KickHasHit", 1)
		Goto FinishSlide

	BerserkSlide:
		TNT1 A 0
		RIFF A 0 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
        KICK O 1
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide
		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		Goto FinishSlide

		KICK O 1 A_FireCustomMissile("BerserkSlide", 0, 0, 0, 10)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_SetPItch(10)
		TNT1 A 0 A_JumpIfInventory("KickHasHit", 1, "FinishSlideHitWall")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, 1)
		TNT1 A 0 A_TAkeInventory("KickHasHit", 1)
		Goto FinishSlide

	FinishSlide:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("SlideKickStop", 5)
		KICK PQRST 2
		RIBA A 0 A_Takeinventory("Kicking",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto GoingToReady

	FinishSlideHitwall:
		TNT1 A 0
		TNT1 A 0 A_Stop
		KICK PQRST 2
		TNT1 A 0 A_TAkeInventory("KickHasHit", 1)
		RIBA A 0 A_Takeinventory("Kicking",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto GoingToReady

    Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
        TNT1 A 10
		FVCK 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)
        FVCK B 1 A_PlaySound("FUCK", 2)
        FVCK CD 1 A_AlertMonsters
		FVCK E 15 A_Takeinventory("Taunting",1)
        FVCK DCBA 1
        TNT1 A 10
		Goto GoingToReady
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_ALertMonsters
		NULL A 0 ACS_NamedExecuteAlways("BDStartCamera", 0, 0, 0, 0)//Start Camera
		TNT1 ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		MARN A 0 ACS_NamedExecuteAlways("BDStopCamera", 0, 0, 0, 0)//Stop Camera
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto GoingToReady
	TossGrenade:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 2)
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto GoingToReady
		TNT1 AAAA 1
		PRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		PRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		PRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", 0, 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		PRTH JKLM 1
		TNT1 A 1
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto GoingToReady

	DoExecution:
		TNT1 A 1
		TNT1 A 0 A_ChangeFLag("NOPAIN", 1)
		TNT1 A 0 A_ChangeFLag("PUSHABLE", 0)
		TNT1 A 0 A_Stop
		TNT1 A 0 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_JumpIfInventory("IsFloating", 1, "ExecuteAirStomp")
		TNT1 A 5 A_SetPitch(70)//up(-) | down(+)
		Goto Execution1

	ExecuteAirStomp:
		TNT1 A 0
		TNT1 A 0 A_Stop
		TNT1 A 0 A_GiveInventory("IsExecutingOnAir", 1)
		TNT1 A 0 ThrustThingZ(0, 10, 0, 1)
		STOM A 5 A_SetPitch(70)
		STOM BCCCC 1 A_CheckFloor("DoAirStomp")
	DoAirStomp:
		RIFF A 0 A_FireCustomMissile("ExecutionAttackKick", 0, 0, 0, 0)
		TNT1 A 0 A_GiveInventory("Kicking",1)
        STOM D 5
		TNT1 A 0 ThrustThingZ(0, 20, 1, 1)
		TNT1 A 0 A_TakeInventory("IsExecutingOnAir", 1)
		Goto FinishExecution

	Execution1:
		KICK BCD 1
		TNT1 A 0 A_GiveInventory("Kicking",1)
		RIFF A 0 A_FireCustomMissile("ExecutionAttackKick", 0, 0, 0, -17)
        KICK H 5
		KICK I 1
		KICK GFEDCBA 1
		TNT1 A 5
		Goto FinishExecution

	FinishExecution:
		TNT1 A 0
		TNT1 AAAAAAA 1 A_SetPitch(Pitch-10)//+70 degree
		TNT1 A 0 A_ChangeFLag("NOPAIN", 0)
		TNT1 A 0 A_ChangeFLag("PUSHABLE", 1)
		TNT1 A 0 SetPlayerProperty(0,0,4)
		KICK A 0 A_Takeinventory("ExecuteBashWall",1)
                KICK A 0 A_Takeinventory("ExecuteDownedEnemy",1)
		KICK A 0 A_Takeinventory("ExecuteDownedZombieman",1)
		KICK A 0 A_Takeinventory("ExecuteDownedShotgunGuy",1)
		KICK A 0 A_Takeinventory("ExecuteDownedImp",1)
		KICK A 0 A_Takeinventory("ExecuteDownedLabguy",1)
                KICK A 0 A_Takeinventory("BDWeaponAction",1)
		TNT1 A 0 A_takeInventory("PressedUSe", 1)
		Goto GoingToReady
	}
}

ACTOR ClassicFist : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 3700
	Weapon.Kickback 100
	Obituary "$OB_MPFIST"
	Tag "$TAG_FIST"
	+WEAPON.WIMPY_WEAPON
	+WEAPON.MELEEWEAPON
	+WEAPON.NOALERT
	States
	{

	Ready:
	Ready3:
		PKFS A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		PKFS A 1 A_Lower
		Loop
	Select:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		PKFS A 1 A_Raise
		Loop
	Fire:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"Fire2")
		PKFS BC 2
		TNT1 A 0 A_Giveinventory("Punching",1)
		PKFS DE 2
		TNT1 A 0 A_PlaySound("skeleton/swing")
		TNT1 A 0 A_FireCustomMissile("MeleeStrike2", 0, 0, 0, 0)
		PKFS FGHIJ 2
		PKFS KL 2 A_Refire
		Goto Ready
	Fire2:
		PKFS BC 2
		TNT1 A 0 A_Giveinventory("Punching",1)
		PKFS DE 2
		TNT1 A 0 A_PlaySound("weapons/gswing")
		TNT1 A 0 A_FireCustomMissile("MeleeStrike2Smash", 0, 0, 0, 0)
		PKFS FGHIJ 2
		PKFS KL 2 A_Refire
		Goto Ready
	}
}

ACTOR ClassicSaw : ClassicWeapon
{
	Game Doom
	Weapon.Kickback 0
	Weapon.SelectionOrder 2200
	Weapon.UpSound "weapons/sawup"
	Weapon.ReadySound "none"
	Inventory.PickupMessage "$GOTCHAINSAW"
	inventory.pickupsound "weapons/chainsaw/draw"
	Obituary "$OB_MPCHAINSAW"
	Tag "$TAG_CHAINSAW"
	+WEAPON.MELEEWEAPON
	+WEAPON.AXEBLOOD
	+WEAPON.NO_AUTO_SWITCH
	DropItem "ChainsawSpawner"
	Scale 0.8
	States
	{
	Ready:
	Ready3:
		TNT1 A 0
		TNT1 A 0 A_Takeinventory("HasCutingWeapon",1)
		TNT1 A 0 A_PlaySound("weapons/sawidle", 2)
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		TNT1 A 0 A_JumpIfInventory("PowerBloodOnVisor",1,"Ready.Blood")
        TNT1 A 0 A_JumpIfInventory("PowerBlueBloodOnVisor",1,"Ready.BlueBlood")
        TNT1 A 0 A_JumpIfInventory("PowerGreenBloodOnVisor",1,"Ready.GreenBlood")
		VSAW AB 4 A_WeaponReady
		Loop

	Ready.Blood:
		VSRW AB 4 A_WeaponReady
		Goto Ready

	Ready.BlueBlood:
		VSBW AB 4 A_WeaponReady
		Goto Ready

	Ready.GreenBlood:
		VSGW AB 4 A_WeaponReady
		Goto Ready

	Deselect:
		VSAW A 1 A_Lower
		AXEG A 0 A_TakeInventory("HasCutingWeapon",1)
		KICK A 0 A_Takeinventory("PowerBloodOnVisor",1)
		KICK A 0 A_Takeinventory("PowerBlueBloodOnVisor",1)
		KICK A 0 A_Takeinventory("PowerGreenBloodOnVisor",1)
		Loop
	Select:
		TNT1 A 0
		KICK A 0 A_Takeinventory("PowerBloodOnVisor",1)
		KICK A 0 A_Takeinventory("PowerBlueBloodOnVisor",1)
		KICK A 0 A_Takeinventory("PowerGreenBloodOnVisor",1)
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_GiveInventory("SawSelected", 1)
		AXEG A 0 A_Giveinventory("HasCutingWeapon",1)
		TNT1 A 0 A_GunFlash
		VSAW A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0
		TNT1 A 0 A_Giveinventory("HasCutingWeapon",1)
		TNT1 A 0 A_JumpIfInventory("PowerBloodOnVisor",1,"Fire.Blood")
        TNT1 A 0 A_JumpIfInventory("PowerBlueBloodOnVisor",1,"Fire.BlueBlood")
        TNT1 A 0 A_JumpIfInventory("PowerGreenBloodOnVisor",1,"Fire.GreenBlood")
		VSAW CD 4 A_Saw("DSSAWHIT","CSAWCUT",20,"SSawPuff2",SF_NORANDOM)
		SAWG B 0 A_ReFire
		Goto Ready

	Fire.Blood:
		TNT1 A 0 A_TakeInventory("PowerBlueBloodOnVisor", 1)
		TNT1 A 0 A_TakeInventory("PowerGreenBloodOnVisor", 1)
		VSRW CD 4 A_Saw("DSSAWHIT","CSAWCUT",20,"SSawPuff2",SF_NORANDOM)
		TNT1 A 0 A_JumpIfInventory("PowerBlueBloodOnVisor",1,"Fire.BlueBlood")
        TNT1 A 0 A_JumpIfInventory("PowerGreenBloodOnVisor",1,"Fire.GreenBlood")
		SAWG B 0 A_ReFire
		Goto Ready

	Fire.BlueBlood:
		TNT1 A 0 A_TakeInventory("PowerBloodOnVisor", 1)
		TNT1 A 0 A_TakeInventory("PowerGreenBloodOnVisor", 1)
		VSBW CD 4 A_Saw("DSSAWHIT","CSAWCUT",20,"SSawPuff2",SF_NORANDOM)
		TNT1 A 0 A_JumpIfInventory("PowerBloodOnVisor",1,"Fire.Blood")
        TNT1 A 0 A_JumpIfInventory("PowerGreenBloodOnVisor",1,"Fire.GreenBlood")
		SAWG B 0 A_ReFire
		Goto Ready

	Fire.GreenBlood:
		TNT1 A 0 A_TakeInventory("PowerBlueBloodOnVisor", 1)
		TNT1 A 0 A_TakeInventory("PowerBloodOnVisor", 1)
		VSGW CD 4 A_Saw("DSSAWHIT","CSAWCUT",20,"SSawPuff2",SF_NORANDOM)
		TNT1 A 0 A_JumpIfInventory("PowerBloodOnVisor",1,"Fire.Blood")
        TNT1 A 0 A_JumpIfInventory("PowerBlueBloodOnVisor",1,"Fire.BlueBlood")
		SAWG B 0 A_ReFire
		Goto Ready

	Spawn:
		CSAW A -1
		Stop
	}
}

ACTOR ClassicPistol : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 1900
	Weapon.AmmoUse 1
	Weapon.AmmoGive 10
	Weapon.AmmoType "ClipPurist"
	Obituary "$OB_MPPISTOL"
	+WEAPON.WIMPY_WEAPON
	Inventory.Pickupmessage "$GOTPISTOL"
    Inventory.PickupSound "CLIPIN"
	Tag "$TAG_PISTOL"
	Dropitem "PistolSpawner"
	scale 0.9
	States
	{
	Ready:
	Ready3:
		PKPI A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop

	Deselect:
		PKPI A 1 A_Lower
		Loop

	Select:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_GiveInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		PKPI A 1 A_Raise
		Loop

	Fire:
		PKPI A 4
		PKPI A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("pfire", 1)
		TNT1 A 0 A_FireCustomMissile("DistantFireSoundPistol", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKPI F 6 BRIGHT A_FireBullets(5.6, 0, 1, 15, "WeakPuff", FBF_NORANDOM | FBF_USEAMMO)
		PKPI D 4 A_FireCustomMissile("PistolCaseSpawn",5,0,0,-9)
		PKPI B 5 A_Refire
		Goto Ready

 	Spawn:
		PIST G -1
		Stop
	}
}

ACTOR ClassicSMG : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 1800
	Weapon.AmmoUse 1
	Weapon.AmmoGive 20
	Weapon.AmmoType "ClipPurist"
	Obituary "%o was shot down by %k's SMG."
	Tag "Sub-Machinegun"
	Inventory.Pickupmessage "$GOTSMG"
    Inventory.PickupSound "CLIPIN"
	DropItem "SMGSpawner"
	Scale 0.8
	States
	{
	Ready:
	Ready3:
		VSMG A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		VSMG A 1 A_Lower
		Loop
	Select:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_GiveInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		VSMG A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("pfire", 1)
		TNT1 A 0 A_FireCustomMissile("DistantFireSoundPistol", random(-1,1), 0, 0, -12, 0, random(-1,1))
        VSMG B 1 BRIGHT A_FireBullets (5.6, 0, 1, 9, "WeakPuff", FBF_NORANDOM | FBF_USEAMMO)
		VSMG C 1 BRIGHT
		VSMG E 1 A_FireCustomMissile("PistolCaseSpawn",5,0,0,-9)

		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("pfire", 1)
		TNT1 A 0 A_FireCustomMissile("DistantFireSoundPistol", random(-1,1), 0, 0, -12, 0, random(-1,1))
		VSMG D 1 BRIGHT A_FireBullets (5.6, 0, 1, 9, "WeakPuff", FBF_NORANDOM | FBF_USEAMMO)
		VSMG B 1 BRIGHT
		VSMG E 1 A_FireCustomMissile("PistolCaseSpawn",5,0,0,-9)

		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("pfire", 1)
		TNT1 A 0 A_FireCustomMissile("DistantFireSoundPistol", random(-1,1), 0, 0, -12, 0, random(-1,1))
		VSMG C 1 BRIGHT A_FireBullets (5.6, 0, 1, 9, "WeakPuff", FBF_NORANDOM | FBF_USEAMMO)
		VSMG D 1 BRIGHT
		VSMG E 1 A_FireCustomMissile("PistolCaseSpawn",5,0,0,-9)

		TNT1 A 0 A_ReFire
		Goto Ready
 	Spawn:
		SMGZ A -1
		Stop
	}
}

ACTOR ClassicMP40 : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 1700
	Weapon.AmmoUse 1
	Weapon.AmmoGive 32
	Weapon.AmmoType "Mauser9mm"
	Obituary "%o was shot down by %k's MP40."
	Tag "MP40"
	Inventory.Pickupmessage "$GOTMP40"
    Inventory.PickupSound "CLIPIN"
	DropItem "MP40Spawner"
	Scale 0.9
	States
	{
	Ready:
	Ready3:
		PKMP A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		PKMP A 1 A_Lower
		Loop
	Select:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_GiveInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		PKMP A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("MP40", 1)
		TNT1 A 0 A_FireCustomMissile("DistantFireSoundPistol", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKMP B 2 BRIGHT A_FireBullets(5.6, 0, 1, 12, "WeakPuff", FBF_NORANDOM | FBF_USEAMMO)
		PKMP E 2 A_FireCustomMissile("PistolCaseSpawn",5,0,0,-9)
		PKCG G 0 A_ReFire
		Goto Ready
 	Spawn:
		MP40 I -1
		Stop
	}
}

ACTOR ClassicShotgun : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 1300
	Weapon.AmmoUse 1
	Weapon.AmmoGive 8
	Weapon.AmmoType "ShellPurist"
	Tag "Shotgun"
	Inventory.PickupMessage "$GOTSHOTGUN"
	Inventory.PickupSound "weapons/sgpump"
	Obituary "$OB_MPSHOTGUN"
	DropItem "ShotgunSpawner"

	States
	{
	Ready:
	Ready3:
		PKSG A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		PKSG A 1 A_Lower
		Loop
	Select:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_GiveInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		PKSG A 1 A_Raise
		Loop
	Fire:
		PKSG A 3
		TNT1 A 0 A_PlaySound("weapons/sg", 1)
		RIFF A 0 A_FireCustomMissile("DistantFireSoundShotgun", random(-1,1), 0, 0, -12, 0, random(-1,1))
		A12G A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		PKSG B 7 BRIGHT A_FireBullets (5.6, 0, 7, 15, "ShotgunPuff", FBF_NORANDOM | FBF_USEAMMO)
		PKSG GIK 3
		SHTG A 0 A_PlaySound("weapons/sgpump", 3)
		PKSG M 6 A_FireCustomMissile("ShotCaseSpawn",40,0,14,0)
		PKSG KIG 3
		PKSG A 3
		PKSG A 7 A_ReFire
		Goto Ready
	Spawn:
		SHTC B -1
		Stop
	}
}

ACTOR ClassicSSG : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 400
	Weapon.AmmoUse 2
	Weapon.AmmoGive 8
	Weapon.AmmoType "ShellPurist"
	Inventory.PickupMessage "$GOTSHOTGUN2"
	Inventory.PickupSound "CLIPINSS"
	Obituary "$OB_MPSSHOTGUN"
	Tag "Super Shotgun"
	DropItem "SSGSpawner"
	YScale 0.8
	XScale 1.0
	States
	{

	Ready:
	Ready3:
		PKSS A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		PKSS A 1 A_Lower
		Loop
	Select:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_GiveInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		PKSS A 1 A_Raise
		Loop
	Fire:
	    PKSS A 3
		A12G A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_playsound("SSHFIRE", 1)
		SHTZ A 0 A_FireCustomMissile("DistantFireSoundSSG", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKSS B 7 BRIGHT A_FireBullets (11.2, 7.1, 20, 15, "ShotgunPuff", FBF_NORANDOM | FBF_USEAMMO)
		PKSS J 7
		PKSS L 7 A_CheckReload
		PKSS O 7 A_PlaySound("weapons/sshoto", 4)
		TNT1 AA 0 A_FireCustomMissile("SSGCaseSpawner",0,0,-8, -16)
		PKSS U 7
		PKSS W 7 A_PlaySound("weapons/sshotl", 4)
		PKSS O 6
		PKSS H 6 A_PlaySound("weapons/sshotc", 4)
		PKSS A 5 A_ReFire
		Goto Ready
	Spawn:
		SGN2 A -1
		Stop
	}
}

ACTOR ClassicChaingun : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 700
	Weapon.AmmoUse 1
	Weapon.AmmoGive 20
	Weapon.AmmoType "ClipPurist"
	Inventory.PickupMessage "$GOTCHAINGUN"
	Inventory.PickupSound "CBOXPKUP"
	Obituary "$OB_MPCHAINGUN"
	Tag "Chaingun"
	DropItem "ChaingunSpawner"
	Scale 0.9
	States
	{

	Ready:
	Ready3:
		PKCG G 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		PKCG G 1 A_Lower
		TNT1 A 0 A_TakeInventory("HeavyAutomaticWeapon",1)
		TNT1 A 0 A_TakeInventory("RandomHeadExploder", 1)
		Loop
	Select:
		MGN1 A 0
		MGN1 A 0 A_Giveinventory("HeavyAutomaticWeapon",1)
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_GiveInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		MGN1 A 0 A_GiveInventory("RandomHeadExploder", 1)
		TNT1 A 0 A_GunFlash
		PKCG G 1 A_Raise
		Loop
	Fire:
		A12G A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 1)
		RIFF A 0 A_FireCustomMissile("DistantFireSoundMachinegun", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKCG E 1 BRIGHT A_FireBullets(5.6, 0, 1, 15, "MinigunBulletPuff", FBF_NORANDOM | FBF_USEAMMO)
		TNT1 A 0 A_Firecustommissile("50CaseSpawn2",0,0,8,-16)
		PKCG GHD 1

		A12G A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("CHGNSHOT", 1)
		RIFF A 0 A_FireCustomMissile("DistantFireSoundMachinegun", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKCG E 1 BRIGHT A_FireBullets(5.6, 0, 1, 15, "MinigunBulletPuff", FBF_NORANDOM | FBF_USEAMMO)
		TNT1 A 0 A_Firecustommissile("50CaseSpawn2",0,0,8,-16)
		PKCG GHD 1

		PKCG G 0 A_ReFire
		Goto Ready

	Spawn:
		MGUN B -1
		Stop
	}
}

ACTOR ClassicBuzzsaw : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 600
	Weapon.AmmoUse 1
	Weapon.AmmoGive 50
	Weapon.AmmoType "BuzzsawAmmo"
	Inventory.PickupMessage "$GOTMG42"
	Inventory.PickupSound "CBOXPKUP"
	Obituary "%o was cut in half by %k's MG42"
	Tag "Hitler's Buzzsaw"
	DropItem "BuzzsawSpawner"
	Scale 1.0
	States
	{

	Ready:
	Ready3:
		PKBZ A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		PKBZ A 1 A_Lower
		TNT1 A 0 A_TakeInventory("HeavyAutomaticWeapon",1)
		TNT1 A 0 A_TakeInventory("RandomHeadExploder", 1)
		Loop
	Select:
		MGN1 A 0
		MGN1 A 0 A_Giveinventory("HeavyAutomaticWeapon",1)
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_GiveInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		MGN1 A 0 A_GiveInventory("RandomHeadExploder", 1)
		TNT1 A 0 A_GunFlash
		PKBZ A 1 A_Raise
		Loop
	Fire:
		A12G A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("MP40", 1)
		TNT1 A 0 A_FireCustomMissile("DistantFireSoundHMG", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKBZ B 1 BRIGHT A_FireBullets(5.6, 0, 1, 15, "MachineGunBulletPuff", FBF_NORANDOM | FBF_USEAMMO)
		PKBZ A 1 A_FireCustomMissile("50CaseSpawn2",0,0,9,-12)

		A12G A 0 A_SpawnItemEx("PlayerMuzzle1",32,0,28)
		TNT1 A 0 A_PlaySound("MP40", 1)
		TNT1 A 0 A_FireCustomMissile("DistantFireSoundHMG", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKBZ C 1 BRIGHT A_FireBullets(5.6, 0, 1, 15, "MachineGunBulletPuff", FBF_NORANDOM | FBF_USEAMMO)
		PKBZ A 1 A_Firecustommissile("50CaseSpawn2",0,0,9,-12)

		PKCG G 0 A_ReFire
		Goto Ready
	Spawn:
		HBUS D -1
		Stop
	}
}

ACTOR ClassicRocketLauncher : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 2500
	Weapon.AmmoUse 1
	Weapon.AmmoGive 2
	Weapon.AmmoType "RocketPurist"
	+WEAPON.NOAUTOFIRE
	+WEAPON.EXPLOSIVE
	Tag "Rocket Launcher"
	Inventory.PickupMessage "$GOTLAUNCHER"
    Inventory.PickupSound "ROCKPKUP"
	DropItem "RocketLauncherSpawner"
	Scale 0.8
	States
	{

	Ready:
	Ready3:
		PKRL A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
		PKRL A 1 A_Lower
		Loop
	Select:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_GiveInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		PKRL A 1 A_Raise
		Loop
	Fire:
		PKRL BCD 2 BRIGHT
		PKRL E 2 A_SpawnItemEx("PlayerMuzzle2",32,0,28)
		RIFF A 0 A_FireCustomMissile("DistantFireSoundRocket", random(-1,1), 0, 0, -12, 0, random(-1,1))
		PKRL G 12 BRIGHT A_FireCustomMissile("ClassicRocket", 0, 1, 0, 0)
		PKRL A 0 A_Refire
		Goto Ready
	Spawn:
		RLAU B -1
		Stop
	}
}

ACTOR VanillaRocket Replaces Rocket//for vanilla a_cyberattack
{
	Game Doom
	SpawnID 127
	Radius 11
	Height 8
	Speed 20
	Damage 20
	DamageType Explosive
	Projectile
	+RANDOMIZE
	+DEHEXPLOSION
	+ROCKETTRAIL
	SeeSound "weapons/rocklf"
	DeathSound "weapons/rocklx"
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
		MISL E 1 Bright
		Loop
	Death:
		MISL B 8 Bright A_Explode
		MISL C 6 Bright
		MISL D 4 Bright
		Stop
	}
}

ACTOR ClassicRocket: Rocket
{
	Game Doom
	Radius 11
	Height 8
	Speed 20
	Damage (random(160,160))
	DamageType Explosive
	Decal "Scorch"
	Projectile
	+RANDOMIZE
	+DEHEXPLOSION
	+THRUSPECIES
	-ROCKETTRAIL
	SeeSound "weapons/rocklf"
	DeathSound "Explosion"
	Obituary "$OB_MPROCKET"
	Species "Marines"
	States
	{
	Spawn:
		MISL EE 1 Bright A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		Loop
	Death:
		EXPL A 0 Radius_Quake (2, 35, 0, 5, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_CustomMissile("ExplosionSplashSpawner")
        TNT1 A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 AAAAAA 0 A_CustomMissile ("BDExplosionparticles", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAA 0 A_CustomMissile ("BDExplosionparticles2", 0, 0, random (0, 360), 2, random (0, 90))
		TNT1 AAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_Explode
		TNT1 A 2
		TNT1 A 0 A_SpawnItemEx ("LiquidExplosionEffectSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 A 15
		TNT1 A 0 A_PlaySound("distantexp", 5)
		Stop
	}
}

ACTOR ClassicPlasmaRifle : ClassicWeapon
{
	Game Doom
	Weapon.SelectionOrder 100
	Weapon.AmmoUse 1
	Weapon.AmmoGive 40
	Weapon.AmmoType "CellPurist"
	Tag "Plasma Rifle"
	Inventory.PickupMessage "$GOTPLASMA"
    Inventory.PickupSound "PLSDRAW"
	DropItem "PLasmagunSpawner"
	scale 0.9
	States
	{
	Ready:
	Ready3:
		3LSG A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop
	Deselect:
	    TNT1 A 0 A_Takeinventory("HasPlasmaWeapon",1)
		3LSG A 1 A_Lower
		Loop
	Select:
		DUPL A 0
	    DUPL A 0 A_Giveinventory("HasPlasmaWeapon",1)
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_GiveInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_TakeInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		3LSG A 1 A_Raise
		Loop
	Fire:
		3LSF CEF 1 BRIGHT
		TNT1 A 0 A_FireCustomMissile("ClassicPlasmaBall", 0, 1, 0, 0)
		PLSN A 0 A_FireCustomMissile("PlasmaFlareSpawn", 0, 0, 0, 0)
		3KPL D 20 A_Refire
		Goto Ready

	Spawn:
		PLAS A -1
		Stop
	}
}

ACTOR ClassicPlasmaBall : Plasmaball
{
	Game Doom
	SpawnID 51
	Radius 13
	Height 8
	Speed 25
	Damage (random(40,40))
	damagetype Plasma
	Projectile
	+RANDOMIZE
	+THRUSPECIES
	RenderStyle Add
	Alpha 0.75
	SeeSound "weapons/plasmaf"
	DeathSound "weapons/plasmax"
	Obituary "$OB_MPPLASMARIFLE"
	Species "Marines"
	States
	{
	Spawn:
		PLSS AB 1 Bright A_SpawnItem("BlueFlareSmall")
		Loop

	Death:
	    TNT1 A 0
		TNT1 A 0 A_CustomMissile ("BluePlasmaFire", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random (0, 360), 2, random (0, 360))
		PLSE ABC 2 BRIGHT A_SpawnItem("BlueFlare")
		PLSE DE 2 Bright A_SpawnItem("BlueFlareSmall")
		Stop
	}
}

ACTOR VanillaBFG9000 : ClassicWeapon
{
	Game Doom
	Height 20
	Weapon.SelectionOrder 2800
	Weapon.AmmoUse 40
	Weapon.AmmoGive 40
	Weapon.AmmoType "CellPurist"
	+WEAPON.NOAUTOFIRE
	+WEAPON.BFG
	+WEAPON.EXPLOSIVE
	Tag "BFG 9000"
	Inventory.PickupMessage "$GOTBFG9000"
    Inventory.PickupSound "BFGREADY"
	DropItem "BFG9000Spawner"
	Scale 0.8
	States
	{

	Ready3:
	Ready:
		BFGN A 1 A_WeaponReady
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		Loop

	Deselect:
		BFGN A 1 A_Lower
		Loop

	Select:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("FistsSelected", 1)
		TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
		TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
		TNT1 A 0 A_TakeInventory("SSGSelected", 1)
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
		TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
		TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
		TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
		TNT1 A 0 A_GiveInventory("BFGSelected", 1)
		TNT1 A 0 A_TakeInventory("FlameCannonSelected", 1)
		TNT1 A 0 A_TakeInventory("SawSelected", 1)
		TNT1 A 0 A_GunFlash
		BFGN A 1 A_Raise
		Loop
	Fire:
		BFGN A 20 A_PlaySound("BFGCHARGE")
		BFGC ABCD 2 BRIGHT A_FireCustomMissile("GreenFlareSpawn", 0, 0, 0, 0)
		BFGA A 2 BRIGHT A_FireCustomMissile("GreenFlareSpawn", 0, 0, 0, 0)
		TNT1 A 0 A_PlaySound("BFGFIRE")
		BFGA ABCDE 2 BRIGHT
		TNT1 A 0 A_FireCustomMissile("ClassicBFGBall")
		BFGN A 20 A_Refire
		Goto Ready

	Spawn:
		BFUG B -1
		Stop
	}
}

ACTOR ClassicBFGBall : BFGBall
{
	Game Doom
	SpawnID 128
	Radius 13
	Height 8
	Speed 25
	Damage (random(800,800))
	Damagetype Desintegrate
	Decal BFGLightning
	Projectile
	+RANDOMIZE
	RenderStyle Add
	Alpha 0.75
	DeathSound "BFGEXPLO"
	Obituary "$OB_MPBFG_BOOM"
	Species "Marines"
	+THRUSPECIES
	States
	{
	Spawn:
		BFS1 AB 4 Bright A_SpawnItemEx("BFGTrailParticle", Random(-13, 13), Random(-13, 13), Random(0, 18), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
		Loop
	Death:
		BFGN A 0
		BFGN A 0 Radius_Quake(4,35,0,10,0)
		BFGN A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
		BFGN A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 AA 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		BFGN A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_PlaySOund("BFGEXPL2", 1)
		BFGN A 0 Bright A_SpawnItem("GreenShockWave",0,0,0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 0, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 50, 0, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", -50, 0, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, 50, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 0, -50, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 50, 50, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", 50, -50, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", -50, 50, 0)
		EXPL A 0 A_SpawnItemEx("BFGBigFlare", -50, -50, 0)
		EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleSuperFast", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BFGDeathParticleFast", 0, 0, random (0, 360), 2, random (0, 360))

		BFGB A 2 BRIGHT A_BFGSpray
		BFGB BCDEFG 2 Bright
		BFGN A 0 A_SPawnItem("SuperBFGExtraGiant")
		TNT1 A 12
		Stop
	}
}

/* --- UNMAKER -------------------------------------------------------------- */

ACTOR ClassicUnmaker : ClassicWeapon
{
	Game Doom
	Radius 20
	Height 20
	Weapon.SelectionOrder 3000
	Weapon.SlotNumber 8
	Weapon.AmmoUse 1
	Weapon.AmmoGive 40
	Weapon.AmmoType "CellPurist"
	Inventory.PickupMessage "What the !@#%* is this!"
	Inventory.PickupSound "BFGREADY"
	AttackSound "NULL"
	Inventory.Icon "LGUNA0"
	Tag "Unmaker"
	DropItem "UnmakerSpawner"
	+WEAPON.BFG
	+WEAPON.NOAUTOFIRE
	+WEAPON.EXPLOSIVE
	States
	{
		Spawn:
			LGUN A -1
			Stop
		Ready3:
		Ready:
			UNMA A 1 A_WeaponReady
			TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
			TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
			TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
			TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
			TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			Loop
		Deselect:
			UNMA A 1 A_Lower
			Loop
		Select:
			TNT1 A 0
			TNT1 A 0 A_TakeInventory("FistsSelected", 1)
			TNT1 A 0 A_TakeInventory("ShotgunSelected", 1)
			TNT1 A 0 A_TakeInventory("MinigunSelected", 1)
			TNT1 A 0 A_TakeInventory("SSGSelected", 1)
			TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
			TNT1 A 0 A_TakeInventory("GrenadeLauncherSelected", 1)
			TNT1 A 0 A_TakeInventory("PlasmaGunSelected", 1)
			TNT1 A 0 A_TakeInventory("RailGunSelected", 1)
			TNT1 A 0 A_TakeInventory("RevenantLauncherSelected", 1)
			TNT1 A 0 A_TakeInventory("SubMachineGunSelected", 1)
			TNT1 A 0 A_TakeInventory("BFG10KSelected", 1)
			TNT1 A 0 A_TakeInventory("BFGSelected", 1)
			TNT1 A 0 A_GiveInventory("FlameCannonSelected", 1)
			TNT1 A 0 A_TakeInventory("SawSelected", 1)
			TNT1 A 0 A_GunFlash
			UNMA A 1 A_Raise
			Loop
		Fire:

		/* --- UPGRADES INFORMATION: -------------------------------------------
		No upgrade level = standard single shot (10 tics)
		1st upgrade level = slightly faster single shot (7 tics)
		2nd upgrade level = two beams and much faster fire rate (5 tics)
		3rd upgrade level = beams fire outward from middle, 4 each side
		--------------------------------------------------------------------- */

		// This will be used if the player has no upgrades
			UNMA A 0 A_JumpIfInventory("UnmakerUpgrades", 1, "FireUpgradeOne")
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA B 3 BRIGHT A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 7
			UNMA A 0 A_ReFire
			Goto Ready

		// This will be used if the player has one upgrade
		FireUpgradeOne:
			UNMA A 0 A_JumpIfInventory("UnmakerUpgrades", 2, "FireUpgradeTwo")
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA B 3 BRIGHT A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 4
			UNMA A 0 A_ReFire
			Goto Ready

		// This will be used if the player has two upgrades
		FireUpgradeTwo:
			UNMA A 0 A_JumpIfInventory("UnmakerUpgrades", 3, "FireUpgradeThree")
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA B 3 BRIGHT
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 1.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", -1.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 2
			UNMA A 0 A_ReFire
			Goto Ready

		// This will be used if the player has three upgrades
		FireUpgradeThree:
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA B 3 BRIGHT
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 3.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", -3.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 2
			UNMA A 0 A_ReFire("Hold1")
			Goto Ready
		Hold1:
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA B 3 BRIGHT
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 6.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", -6.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 2
			UNMA A 0 A_ReFire("Hold2")
			Goto Ready
		Hold2:
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA B 3 BRIGHT
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 9.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", -9.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 2
			UNMA A 0 A_ReFire("Hold3")
			Goto Ready
		Hold3:
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA B 3 BRIGHT
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", 12.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_RailAttack((random(50,50)), 0, 1, "none", "red", RGF_NOPIERCING | RGF_SILENT | RGF_EXPLICITANGLE | RGF_FULLBRIGHT, 0, "UnmakerLaserPuff", -12.0, 0, 0, 1, 32.0, 0, "UnmakerLaserTrail", -16)
			UNMA A 2
			UNMA A 0 A_CheckReload
			Goto Ready
	}
}