
// *** MODIFIED BY CHEBMASTER
// I mark places modified by me with //***Che 


//***Che: note that BD's weapons use the gun flash mechanics to run tasks in parallel
//    instead of the normal intended use.
//  So all weapons call A_GunFlash once from their Select state,
//   then the flash layer runs in a continuous loop
//   responsible for things like switching flashlight on and off
//   or interacting with the world via the Use button.

//  If you forget including A_GunFlash in the Select state,
//   that weapon becomes crippled: you can't use flashlight nor command NPCs

ACTOR BrutalWeapon : DoomWeapon
{
	Weapon.BobRangeX 0.2
	Weapon.BobRangeY 0.4
	Weapon.BobSpeed 2.9
	Weapon.BobStyle Smooth
	VisibleToPlayerClass FBDoomer, FBDoomer2, TacticalFBDoomer, FBD_Doomgal, FBD_Doomgal2, FBD_TacticalDoomgal, FBD_Nostalgia, FBD_NostalgiaFem, FBD_Mortal, FBD_MortalFem
	Inventory.ForbiddenTo Purist
	States
	{

		GoingToReady:
		SelectingAnimation:
			TNT1 A 2
			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("IsRunning",1)
			TNT1 A 0 A_TakeInventory("Reloading",1)
			TNT1 AAAA 1 A_Jump(256, "Ready3")
			Loop
			
		Steady:
			TNT1 A 1
			Goto GoingToReady
			
		Ready3:
			TNT1 A 1
			
			//TNT1 A 0 A_Jump(256, "Ready3")
			TNT1 A 0 A_Jump(256, "Ready3")
			//***Che I don't know WHY this perversed logic,
			// anywhere else 255 is a solid 1.0 but in A_Jump it is NOT.
			// 255 has a small chance of failure causing all sorts
			// of rare, impossible to catch bugs!
			// NEVER use A_Jump(255, always use A_Jump(256,!
			
			Loop	
			
		HoldFire: //***Che disabling player weapons for cutscenes and for the evacuation center
			"----" A 0 A_JumpIfInventory("Salute1", 1, "Salute")
			"----" A 0 A_JumpIfInventory("Salute2", 1, "Salute")
			"----" A 0 A_JumpIfInventory("Taunting",1,"Taunt")
			"----" A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
			"----" A 0 A_JumpIfInventory("Reloading",1,"Reload")
			"----" A 1 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE | WRF_ALLOWRELOAD)
			"----" A 0 A_JumpIfInventory("DisablePlayerWeapons", 1, "HoldFire")
			"----" A 1 A_JumpIf(true, "Ready")
			Wait
					
		
		//Ready:
			TNT1 A 1
			TNT1 A 0 A_Jump(256, "Ready3")
			Loop
		
		//Fire:
			TNT1 A 1
			TNT1 A 0 A_Jump(256, "Ready3")
			Loop	
			
		//Deselect:
			TNT1 A 1
			TNT1 A 0 A_Jump(256, "Ready3")
			Loop		
			
		//Select:
			TNT1 A 1
			TNT1 A 0 A_Jump(256, "Ready3")
			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("IsRunning",1,"CheckSprint")
			  TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
			  TNT1 A 1
			  TNT1 A 0 A_Jump(256, "Ready3")
			  TNT1 A 1
			Loop
			
			
		Tryuse:
			TNT1 A 0
			TNT1 A 0 A_TakeInventory("PressedUse", 100)
			RIFF A 0 A_FireCustomMissile("StealthAttack", 0, 0, 0, 0, 0, 0)
			RIFF A 0 A_FireCustomMissile("UseAttack", 0, 0, 0, 0, 0, 0)
			RIFF A 0 A_FireCustomMissile("NPCCommandAttack", 0, 0, 0, 0, 0, 0)
			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 10
			TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "Interrupt")
			Goto Flash
			
			
		WaitFlashlightOn:	
			TNT1 A 0
			TNT1 A 0 A_TakeInventory("PRessedUse", 1)
			TNT1 A 1
			RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 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
			RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 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
			RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 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 0 A_JumpIfInventory("PressedUse", 1, "WaitFlashlightOn")
			Goto Flash	
			
		Flash:
			TNT1 A 0
			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
			TNT1 A 0 A_TakeInventory("UsedStamina", 1)
			Goto Flash
		
		FlashOn:
			TNT1 A 1 BRIGHT
			TNT1 A 0 A_SpawnItemEx("FlashlightSource", 32, 8, 30)
			TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "TryUse")
			RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 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
			TNT1 A 0 A_SpawnItemEx("FlashlightSource", 32, 8, 30)
			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_SpawnItemEx("FlashlightSource", 32, 8, 30)
			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 0 A_JumpIfInventory("PressedUse", 1, "TryUse")
			TNT1 A 1 BRIGHT
			TNT1 A 0 A_SpawnItemEx("FlashlightSource", 32, 8, 30)
			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 0 A_TakeInventory("UsedStamina", 1)
			
			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
		
		
		RifleBash:
			TNT1 A 0
			TNT1 A 0 A_Takeinventory("Zoomed",1)
			TNT1 A 0 A_ZoomFactor(1.0)
			TNT1 A 0 A_Takeinventory("ADSmode",1)
			
			TNT1 A 0 A_JumpIfInventory("DisablePlayerWeapons", 1, "HoldFire") //***Che
			
			TNT1 A 0 A_PlaySound("KICK")
			RIBA ACE 1
			RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, 0)
			RIBA G 5
			RIBA A 0 A_Takeinventory("Kicking",1)
			RIBA FEDCBA 1
			TNT1 AAAA 1
			TNT1 A 0 A_JumpIfInventory("Kicking",1,"RifleBash")
			TNT1 A 0 SetPlayerProperty(0,0,0)
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
			RIBA A 0 A_Takeinventory("Kicking",1)
			Goto SelectingAnimation
			
		DoKick:
			TNT1 AA 1 A_JumpIfInventory("GoFatality", 1, "Steady")
			TNT1 A 0 A_Takeinventory("HasPlasmaWeapon",1)
			TNT1 A 0 A_TAkeinventory("HasCutingWeapon",1)
			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)
			
			TNT1 A 0 A_JumpIfInventory("DisablePlayerWeapons", 1, "HoldFire") //***Che
			
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			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_JumpIfInventory("RifleSelected", 1, "RifleBash")
			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, -7)
			KICK H 5
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK I 1
			KICK GFEDCBA 1 
			TNT1 A 0 SetPlayerProperty(0,0,0)
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
			RIBA A 0 A_Takeinventory("Kicking",1)
			Goto SelectingAnimation
			
		
		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, -7)
			KICK H 5
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK I 1
			KICK GFEDCBA 1 
			TNT1 A 0 SetPlayerProperty(0,0,0)
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
			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, -31)
			KICK O 3
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK PQRST 2
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
			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, -31)
			KICK O 3
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK PQRST 2
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
			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)
			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
			
			
		FinishSlide:	
			TNT1 A 0
			TNT1 A 0 A_PlaySound("SlideKickStop", 5)
			KICK PQRST 2
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
			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)
			TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
			TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
			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
			TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "TauntClassic")
			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)
			TNT1 A 0 A_JumpIfInventory("GenderFemale", 1, "TauntFemale")
			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 GoingToReady 
			
		TauntFemale:
			TNT1 A 0
			FUCK B 1 A_PlaySound("FTAUNT", 2)
			FUCK CD 1 A_AlertMonsters
			FUCK E 15 A_Takeinventory("Taunting",1)
			FUCK DCBA 1
			TNT1 A 10
			Goto GoingToReady
			
			
			
		TauntClassic:
			
			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)
			TNT1 A 0 A_JumpIfInventory("GenderFemale", 1, "TauntFemaleClassic")
			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 
			
		TauntFemaleClassic:
			TNT1 A 0
			FVCK B 1 A_PlaySound("FTAUNT", 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
			SALU ABCDEDCDEDCDEDCBA 4
			MARN A 0 ACS_NamedExecuteAlways("BDStopCamera", 0, 0, 0, 0)//Stop Camera
			TNT1 A 0 A_TakeInventory("Salute1",1)
			TNT1 A 0 A_TakeInventory("Salute2",1)
			TNT1 A 0 SetPlayerProperty(0,0,0)
			Goto GoingToReady
		TossGrenade:
			"----" A 0 A_JumpIfInventory("DisablePlayerWeapons", 1, "HoldFire") //***Che
			"----" A 2
			"----" A 0 A_TakeInventory("TossGrenade", 1)
			"----" A 0 A_JumpIfInventory("GrenadeAmmo", 1, 4)
			"----" A 0 A_Print("No Grenades Left.")
			"----" A 0 A_Jump(256, "Ready3")
			"----" AAAAA 0
			"----" A 4
			"----" A 0 A_Takeinventory("HasPlasmaWeapon",1)
			TNT1 A 0 A_TAkeinventory("HasCutingWeapon",1)
			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)
			TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "TossGrenadeClassic")
			GRTH ABCD 1
			TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
			TNT1 A 0 A_Giveinventory("Punching",1)
			TNT1 A 0 A_Giveinventory("GoSpecial",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("FakeGrenade", 0, 0, 0, 0, 0, 0)
			TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
			GRTH J 1 
			TNT1 A 0 A_FireCustomMissile("HandGrenade", 0, 0, 0, 0, 0, 0)
			GRTH KLM 1
			TNT1 A 1 
			TNT1 A 0 A_TakeInventory("TossGrenade", 1)
			Goto GoingToReady	
			
			
			
		TossGrenadeClassic:	
			
			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", random(-2,2), 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 0 A_SetPitch(65)
			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)
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK A 0 A_Takeinventory("ExecuteDownedEnemy",1)
			TNT1 A 0 A_JumpIfInventory("IsFloating", 1, "ExecuteAirStomp")
			TNT1 A 0 A_JumpIfInventory("ExecuteBashWall", 1, "BashWall")
			TNT1 A 0 A_JumpIfInventory("ExecuteStompWall", 1, "StompWall")
			
			TNT1 AAAAA 1 A_SetPitch(70)
			TNT1 A 0 A_Jump(256, "Execution1", "Execution2")
			Goto Execution1
		
		Stompwall:
			TNT1 A 0 A_Stop
			//TTNT1 A 0 A_JumpIfInventory("IsFloating", 1, "ExecuteAirStomp")
			TNT1 A 0 A_SetPitch(10)
			TNT1 A 0 A_Recoil(-1)

			KICK JKLMN 1 A_Recoil(-1)
			RIFF A 0 A_FireCustomMissile("ExecutionAttackStompWall", 0, 0, 0, -7)
			
			KICK OOO 2  A_Recoil(-1)
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK PQRST 1
			
			KICK A 0 A_Takeinventory("ExecuteStompWall",1)
			KICK A 0 A_Takeinventory("ExecuteBashWall",1)
			TNT1 A 5
			Goto FinishExecution+8
			
				
		Bashwall:
			TNT1 A 0
			//TTNT1 A 0 A_JumpIfInventory("IsFloating", 1, "ExecuteAirStomp")
			TNT1 A 0 A_PlaySound("imp/pain", 4)
			TNT1 A 0 A_SetPitch(10)
			TNT1 A 0 A_ZoomFactor(1.3)
			IEHW A 2
			TNT1 A 0 A_ZoomFactor(1.0)
			IEHW A 8
			IEHW AAA 1 A_SetAngle(angle+6)
			IEHW BCDEF 1 A_SetAngle(angle+6)
			IEHW G 3
			TNT1 AA 0 A_CustomMissile("XDeath1", 48, 0, 45, 2)
			TNT1 A 0 A_PlaySound("imp/pain", 4)
			TNT1 A 0 A_CustomMissile("KickAttack", 48, 0, 45, 2)
			
			IEHW HIJKKK 1 A_SetAngle(angle-3)
			IEHW KKKJIH 1 A_SetAngle(angle+3)
			IEHW FG 3
			TNT1 AA 0 A_CustomMissile("XDeath1", 48, 0, 45, 2)
			TNT1 A 0 A_PlaySound("imp/pain", 4)
			TNT1 A 0 A_CustomMissile("KickAttack", 48, 0, 45, 2)
			
			IEHW HIJKKK 1 A_SetAngle(angle-3)
			IEHW KKKJIH 1 A_SetAngle(angle+3)
			IEHW FG 3
			TNT1 AA 0 A_CustomMissile("XDeath1", 48, 0, 45, 2)
			TNT1 A 0 A_PlaySound("imp/pain", 4)
			TNT1 A 0 A_CustomMissile("KickAttack", 48, 0, 45, 2)
			
			IEHW HIJKKK 1 A_SetAngle(angle-3)
			IEHW KKKJIH 1 A_SetAngle(angle+3)
			TNT1 AA 0 A_CustomMissile("XDeath1", 48, 0, 45, 2)
			TNT1 A 0 A_CustomMissile("ImpHeadExplode", 48, 0, 45, 2)
			TNT1 A 0 A_SpawnItemEx("ArmorShardFatalityBonus2", 0, 0, 20, random (-1, 1), random (-1, 1), 8)
			TNT1 A 0 A_CustomMissile("XDeath2", 48, 0, 45, 2)
			TNT1 AAA 0 A_CustomMissile("KickAttack", 48, 0, 45, 2)
			IEHW LMNO 1
			IEHW O 6
			IEHW PQRST 2 A_SetAngle(angle-4)
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_SpawnItem("FBD_DeadImp_NoHead")
			TNT1 AAA 1 A_SetAngle(angle-3)
			
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK A 0 A_Takeinventory("ExecuteBashWall",1)
			KICK A 0 A_Takeinventory("ExecuteStompWall",1)
			
			TNT1 A 5
			Goto FinishExecution+8	
			
		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 ABCCCCC 1 A_SetPitch(80)
			STOM CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 1 A_CheckFloor("DoAirStomp")
		DoAirStomp:
			RIFF AAA 0 A_FireCustomMissile("ExecutionAttackKick", 0, 0, 0, 0)
			STOM D 5
			TNT1 A 0 ThrustThingZ(0, 20, 1, 1)
			TNT1 A 0 A_TakeInventory("IsExecutingOnAir", 1)
			KICK A 0 A_Takeinventory("ExecuteStompWall",1)
			KICK A 0 A_Takeinventory("ExecuteBashWall",1)
			Goto FinishExecution
			
		Execution1:	
			KICK BCD 1
			//TTNT1 A 0 A_JumpIfInventory("IsFloating", 1, "ExecuteAirStomp")
			RIFF A 0 A_FireCustomMissile("ExecutionAttackKick", 0, 0, 0, -7)
			KICK H 5
			KICK A 0 A_Takeinventory("Kicking",1)
			KICK I 1
			KICK GFEDCBA 1
			TNT1 A 5
			Goto FinishExecution
			
		Execution2:
			TNT1 A 0
			TNT1 A 0 A_ZoomFactor(1.2)
			//TTNT1 A 0 A_JumpIfInventory("IsFloating", 1, "ExecuteAirStomp")
			PONG B 1 A_Stop
			PONG C 1 A_PlaySound("skeleton/swing")
			PONG D 1 A_FireCustomMissile("ExecutionAttackMelee", 0, 0, 0, 0)
			PONG E 3 A_Stop
			PONG DCB 2 A_Stop
			PUN3 A 1 A_Stop
			PUN3 B 1 A_PlaySound("skeleton/swing")
			PUN3 C 1 A_FireCustomMissile("ExecutionAttackMelee", 0, 0, 0, 0)
			PUN3 E 3 A_Stop
			PUN3 CBA 2 A_Stop
			
			PONG B 1 A_Stop
			PONG C 1 A_PlaySound("skeleton/swing")
			PONG D 1 A_FireCustomMissile("ExecutionAttackMelee", 0, 0, 0, 0)
			PONG E 3 A_Stop
			PONG DCB 2 A_Stop
			PUN3 A 1 A_Stop
			PUN3 B 1 A_PlaySound("skeleton/swing")
			PUN3 C 1 A_FireCustomMissile("ExecutionAttackMelee", 0, 0, 0, 0)
			PUN3 E 3 A_Stop
			PUN3 CBA 2 A_Stop
			
			PONG B 1 A_Stop
			PONG C 1 A_PlaySound("skeleton/swing")
			PONG D 1 A_FireCustomMissile("ExecutionAttackMelee", 0, 0, 0, 0)
			PONG E 3 A_Stop
			PONG DCB 2 A_Stop
			
			TNT1 A 1
			PUN3 A 1 A_Stop
			PUN3 B 1 A_PlaySound("skeleton/swing")
			PUN3 C 1 
			TNT1 AAA 0 A_FireCustomMissile("ExecutionAttackKick", 0, 0, 0, 0)
			PUN3 E 6 A_Stop
			PUN3 CBA 2 A_Stop
			TNT1 A 0 A_ZoomFactor(1.0)
			
			TNT1 A 5
			Goto FinishExecution
			
			
		Execution3:
			
			KIKF ABC 1
			//TTNT1 A 0 A_JumpIfInventory("IsFloating", 1, "ExecuteAirStomp")
			TNT1 A 0 A_PlaySound("KICK")
			KIKF D 1
			TNT1 AAA 0 A_FireCustomMissile("ExecutionAttackFatality", 0, 0, 0, 0)
			KIKF DDDDDDD 1 A_SetPitch(Pitch-10)
			KIKF ECBA 2
			TNT1 A 0 SetPlayerProperty(0,0,4)
			TNT1 A 0 A_ChangeFLag("NOPAIN", 0)
			TNT1 A 0 A_ChangeFLag("PUSHABLE", 1)
			TNT1 A 5 
			KICK A 0 A_Takeinventory("ExecuteDownedEnemy",1)
			TNT1 A 0 A_takeInventory("PressedUSe", 1)
			Goto Ready3
			
		FinishExecution:
			TNT1 A 0
			TNT1 AAAAAAAA 1 A_SetPitch(Pitch-10)
			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("ExecuteDownedEnemy",1)
			TNT1 A 0 A_takeInventory("PressedUSe", 1)
			Goto Ready3
	}
}



ACTOR FlashlightProjectile: FastProjectile
{
	Radius 36
	Height 36
	Speed 600
	Damage 0
	Mass 0
	+DONTSPLASH
	+NOTIMEFREEZE
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	States
	{
	Spawn:
        TNT1 A 2
		Stop

    Death:
	XDeath:
	    TNT2 A 3
		Stop
	}
}



ACTOR FlashlightAlerter: FastProjectile
{
	Radius 2
	Height 2
	Speed 600
	Damage 0
	Mass 0
	+DONTSPLASH
	+NOTIMEFREEZE
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	States
	{
	Spawn:
        TNT1 A 2
		Stop

    Death:
	XDeath:
	    TNT2 A 3
		TNT1 A 0 A_AlertMonsters(150)
		Stop
	}
}


ACTOR FlashlightProjectile2: FlashlightProjectile
{
	Radius 22
	Height 2
	+CLIENTSIDEONLY
}


ACTOR FlashlightProjectile3: FlashlightProjectile
{
	Radius 1
	Height 1
	+CLIENTSIDEONLY
	Speed 600
}


ACTOR FlashlightSource: FlashlightProjectile
{
	Radius 2
	Height 2
	Speed 0
	Renderstyle Add
	YScale 0.3
	XScale 0.5
	Alpha 0.9
	
	States
	{
	Spawn:
	PLFL A 2
	Stop
	Death:
	Xdeath:
	Stop
	}
}