//==============================================================================
// Karabinner 82a2k
//==============================================================================

ACTOR SniperZoomed : Inventory { Inventory.MaxAmount 1 }

ACTOR HDRifle : KriegslandHeavyWeapon
{
	+WEAPON.NOAUTOFIRE
	+INVENTORY.UNDROPPABLE
	Weapon.SelectionOrder 	1100
	Weapon.SlotNumber 		8
	Weapon.AmmoUse 			5
	Weapon.AmmoGive 		10
	Weapon.AmmoType 		"BOHC1"
	Inventory.Pickupmessage "You got the Karabinner 82a-2K!"
	Inventory.PickupSound 	"weapons/generic/pickup2"
	Tag 					"KAR 82a-2K"
	Scale 0.65
	States
	{ 
	Select:
		TNT1 A 0 A_Playsound("weapons/generic/select5",7)
		WP8G A 1 Offset(67, 100)
		WP8G A 1 Offset(54, 81)
		WP8G A 1 Offset(32, 69)
		WP8G A 1 Offset(22, 58)
		WP8G A 1 Offset(10, 47)
		WP8G A 1 Offset(7, 39)
		WP8G A 1 Offset(2, 34)
		WP8G A 1 A_Raise
		Wait
	Ready:
		TNT1 A 0 A_Playsound("weapons/K82/idle",1,1,1)
		TNT1 A 0 A_JumpIfInventory("SniperZoomed",1,"ReadyZoomed")
		WP8G C 6 A_WeaponReady(WRF_ALLOWZOOM)
		NULL A 0 A_TakeInventory("IAmUnzooming",1)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G C 6 A_WeaponReady(WRF_ALLOWZOOM)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G C 6 A_WeaponReady(WRF_ALLOWZOOM)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G C 6 A_WeaponReady(WRF_ALLOWZOOM)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G C 6 A_WeaponReady(WRF_ALLOWZOOM)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G D 1 A_WeaponReady(WRF_ALLOWZOOM)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G E 1 A_WeaponReady(WRF_ALLOWZOOM)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G A 1 A_WeaponReady(WRF_ALLOWZOOM)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpIfInventory("IsKnifing",1,"Knife")
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"IsSliding")
		TNT1 A 0 A_JumpifInventory("IsBombing",1,"ThrowGrenade")
		WP8G B 1 A_WeaponReady(WRF_ALLOWZOOM)
		Loop
	ReadyZoomed:
		NULL A 0 A_Playsound("weapons/K82/idle",1,1,1)
		NULL A 0 A_JumpIfInventory("SlidePlayer",1,"Unzoom")
		NULL A 0 A_JumpifInventory("IsKicking",  1,"Unzoom")
		NULL A 0 A_JumpIfInventory("IsKnifing",  1,"Unzoom")
		NULL A 0 A_JumpifInventory("IsBombing",  1,"Unzoom")
		NULL A 0 A_PlaySound("FKPlayer/breath",6,0.7,1)
		WP8B A 1 BRIGHT A_WeaponReady(WRF_ALLOWZOOM)
		NULL A 0 A_SetAngle(angle-frandom(-0.12,0.12))
		NULL A 0 A_SetPitch(pitch-frandom(-0.12,0.12))
		WP8B A 1 BRIGHT A_WeaponReady(WRF_ALLOWZOOM)
		NULL A 0 A_SetAngle(angle+frandom(-0.12,0.12))
		NULL A 0 A_SetPitch(pitch-frandom(-0.12,0.12))
		NULL A 0 A_TakeInventory("IAmZooming",1)
		Goto Ready
	Deselect:
		TNT1 A 0 A_TakeInventory("SniperZoomed",1)
		TNT1 A 0 A_ZoomFactor(1)
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_StopSound(7)
		TNT1 A 0 A_StopSound(1)
		WP8G A 1 Offset(2, 34)
		WP8G A 1 Offset(7, 39)
		WP8G A 1 Offset(10, 47)
		WP8G A 1 Offset(22, 58)
		WP8G A 1 Offset(32, 69)
		WP8G A 1 Offset(54, 81)
		WP8G A 1 Offset(67, 100)
		WP8G A 1 A_Lower
		Wait
	Fire:	
		TNT1 A 0 A_JumpIfInventory("BOHC1",5,1)
		Goto Dryfire
		TNT1 A 0 A_JumpIfInventory("SniperZoomed",1,"FireZoomed")
		TNT1 A 0 A_Playsound("weapons/K82/fire",5)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_FireBullets(4.3, 8.6, 1, 60, "Bullet_Puff")
		TNT1 A 0 A_FireCustomMissile("FKHeavyCasingSpawn",345+random(-8,8),0,-4,-5,0)
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0)
		TNT1 A 0 A_Gunflash
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8F A 1 BRIGHT
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RecoilToggle")==0,2)
		TNT1 A 0 A_SetPitch(pitch -0.9)
		WP8F B 1 Offset(8,38)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8F B 1 Offset(15,46)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8F B 1 Offset(12,42)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8F C 1 Offset(8,38)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8F C 1 Offset(4,36)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8F C 1 Offset(0,33)
		TNT1 A 0 A_Playsound("weapons/K82/charge",7)
		WP8G F 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G F 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G G 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G G 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G H 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G H 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G I 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G I 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G J 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G J 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G K 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G K 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G L 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G L 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G M 2 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G M 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G N 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G N 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G O 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G O 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G P 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8G P 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_Playsound("weapons/K82/ready",7)
		Goto Ready
	FireZoomed:
		NULL A 0 A_JumpIfInventory("BOHC1",5,1)
		Goto Dryfire
		NULL A 0 A_Playsound("weapons/K82/fire",5)
		NULL A 0 A_AlertMonsters
		NULL A 0 A_FireBullets(4.3, 8.6, 1, 60,"Bullet_Puff")
		NULL A 0 A_FireCustomMissile("FKHeavyCasingSpawn",345+random(-8,8),0,-4,-5,0)
		NULL A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0)
		NULL A 0 A_Gunflash
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B J 1 BRIGHT
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		NULL A 0 A_JumpIf(ACS_NamedExecuteWithResult("RecoilToggle")==0,2)
		NULL A 0 A_SetPitch(pitch -0.9)
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT Offset(0,36) A_ZoomFactor(3.2)
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT Offset(0,35) A_ZoomFactor(3.25)
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT Offset(0,34) A_ZoomFactor(3.1)
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT Offset(0,33) A_ZoomFactor(3.15)
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 2 BRIGHT Offset(0,32) A_ZoomFactor(3.0)
		NULL A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		NULL A 0 A_Print("\n\n\n\n\n\n\n\nAufladen...\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCharging...",3)
		NULL A 0 A_Playsound("weapons/K82/charge",7)
		WP8B I 3 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B H 3 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B G 3 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B F 3 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B E 3 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B D 3 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B C 2 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B C 2 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B B 2 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B B 2 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 2 BRIGHT A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		NULL A 0 BRIGHT A_Playsound("weapons/K82/ready",7)
		WP8B A 2 BRIGHT A_Print("\n\n\n\n\n\n\n\nBereit zum Feuer.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nReady to Fire.",3)
		Goto Ready
	Dryfire:
		TNT1 A 0 A_Print("No ammo",1)
		Goto Ready
	Zoom:
		TNT1 A 0 A_JumpIfInventory("IAmUnzooming",1,"Ready")
		TNT1 A 0 A_JumpIfInventory("IAmZooming",1,"ReadyZoomed")
		TNT1 A 0 A_JumpIfInventory("SniperZoomed",1,"UnZoom")
		TNT1 A 0 A_GiveInventory("SniperZoomed",1)
		TNT1 A 0 A_Playsound("weapons/K82/zoom",7)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(1.4)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(1.8)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(2.2)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(2.6)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(3.0)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		NULL A 0 A_GiveInventory("IAmZooming",3)
		Goto Ready
	UnZoom:
		TNT1 A 0 BRIGHT A_Playsound("weapons/K82/zoom",7)
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_StopSound(1)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(2.6)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(2.2)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(1.8)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(1.4)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		WP8B A 1 BRIGHT A_ZoomFactor(1.0)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 BRIGHT A_TakeInventory("SniperZoomed",1)
		TNT1 A 0 BRIGHT A_StopSound(7)
		NULL A 0 A_GiveInventory("IAmUnzooming",1)
		Goto Ready
	Kick:
		TNT1 A 0 A_JumpIfInventory("SniperZoomed",1,"UnZoom")
		WP8T AB 1
		TNT1 A 3
		KICF A 1 Offset(-10,32)
		KICF CE 1
		KICF FG 1 A_Recoil(-1)
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_PlaySound("FKPlayer/Grunt")
		KICF H 5 A_CustomPunch(6,0,0,"FightPuff") 
		KICF IGFEDC 1 
		KICF BA 1 A_Recoil(+0.5)
		TNT1 A 3
		WP8T BA 1
		Goto Ready
	Knife:
		TNT1 A 0 A_JumpIfInventory("SniperZoomed",1,"UnZoom")
		WP8T AB 1
 		NULL A 0 Offset(-10,32)
		NULL A 5
		WP1L AB 1
		NULL A 0 A_Jump(86,2)
		NULL A 0 A_PlaySound("FKPlayer/Grunt")
		WP1L C 1 A_CustomPunch(8,0,0,"KnifePuff")
		WP1L DEF 1
		NULL A 5
		WP8T BA 1
		Goto Ready
	IsSliding:
		TNT1 A 0 A_JumpIfInventory("SniperZoomed",1,"UnZoom")
		TNT1 A 0 A_TakeInventory("SlidePlayer",1)
		TNT1 A 0 A_JumpIfInventory("CrouchPlayer",1,"Ready")
		WP8T AB 1
		TNT1 A 0 A_PlaySound("FKPlayer/slide/start",4)
		TNT1 A 0 A_PlaySound("FKPlayer/slide/loop",5,0.5,TRUE)
		TNT1 A 0 A_SetPitch(pitch+0.8)
		SLDK ABCDEF 2
		TNT1 A 0 A_SetPitch(pitch-0.8)
		SLDK G 6 A_FireCustomMissile("KickAttack",0,0,0,0)
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_PlaySound("FKPlayer/slide/end",6)
		SLDK HI 2
		Goto Ready
	Throwgrenade:
		TNT1 A 0 A_JumpIfInventory("SniperZoomed",1,"UnZoom")
		TNT1 A 0 A_JumpIf(waterlevel>2,"Dryfire")
		TNT1 A 0 A_JumpIfInventory("BOGR1",1,1)
		Goto Dryfire
		WP8T AB 1
		TNT1 A 0 A_StopSound(1)
		TNT1 A 0 Offset(-20,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 A 1 Offset(0,28)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 B 1 Offset(0,24)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 C 1 Offset(0,23)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 D 1 Offset(0,26) A_PlaySound("weapons/SHG/throw")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 D 1 Offset(0,28)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_SpawnItemEx("RealGrenade",0,1,24,cos(pitch)*40,0,sin(-pitch)*40,3,SXF_TRANSFERPITCH|SXF_NOCHECKPOSITION)
		TNT1 A 0 A_TakeInventory("BOGR1",1)
		MND2 E 1 Offset(-3,30)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 E 1 Offset(-6,31)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 F 1 Offset(-9,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MND2 F 1 Offset(-12,33)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_TakeInventory("GetOnWithIt", 100)
		TNT1 A 0 A_JumpIfNoAmmo("Dryfire")
		TNT1 A 7 Offset (75, 152)
		TNT1 A 1 Offset (6,42)
		Goto Ready
	Flash:
		TNT1 A 7 BRIGHT A_Light1
		Goto LightDone
		TNT1 A 7 BRIGHT A_Light1
		Goto LightDone
 	Spawn:
		WP8P A -1
		Stop
	}
}