ACTOR ARifle : ModWeapon
{
	Weapon.SelectionOrder 2500
	Weapon.SlotNumber 2
	Weapon.AmmoType "RifleMag"
	Weapon.AmmoUse 1
	Weapon.AmmoGive 0
	Weapon.AmmoType2 "RifleAmmo"
	Weapon.AmmoGive2 30
	Weapon.UpSound "weapons/rifle/up"
	Inventory.PickupMessage "You got the Assault Rifle!"
	Inventory.PickupSound "weapons/rifle/pkup"
	//Attacksound "weapons/rifle/fire"
	Tag "Assault Rifle"
	+WEAPON.NOAUTOFIRE
	States
	{
	Select:
		TNT1 A 0 A_PlaySound("weapons/rifle/equp", CHAN_AUTO)
		ASLR A 1 A_Raise 
		TNT1 A 0 A_ZoomFactor(1.00)
		ASLR A 1 A_WeaponOffset(54, 81, WOF_INTERPOLATE)
		ASLR A 1 A_WeaponOffset(32, 69, WOF_INTERPOLATE)
		ASLR A 1 A_WeaponOffset(22, 58, WOF_INTERPOLATE)
		ASLR A 1 A_WeaponOffset(10, 47, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(7, 39, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(2, 34, WOF_INTERPOLATE)
		Goto Ready
	Deselect:
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("led_AnimToggle")==1, "DeadSelect")
		TNT1 A 0 A_ZoomFactor(1.00)
		TNT1 A 0 A_TakeInventory("Aiming",1)
		TNT1 A 0 A_Takeinventory("ZoomIn",1)
		TNT1 A 0 A_PlaySound("weapons/rifle/dslct", CHAN_AUTO)
		TNT1 A 0 A_PlaySound("weapons/rifle/foley", CHAN_AUTO)
		TNT1 A 0 A_PlaySound("weapons/deselect", CHAN_AUTO)
		ASLT A 1 A_WeaponOffset(-15,39, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-30,45, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-40,52, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-45,60, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-49,100, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-51,100, WOF_INTERPOLATE)
		ASLT A 1 A_Lower
		Wait
	DeadSelect:
		TNT1 A 0 A_JumpIfHealthLower(1, "Dead")
		Goto Deselect+1
	Dead:
		TNT1 A 0
	Anim:
		TNT1 A 1 A_WeaponOffset(0, 32)
		GRAB ABCD 2
		TNT1 A 0 A_FireProjectile("DitchedRifle", 0, 0, 0, 13)
		GRAB DEF 2
		GRAB GHI 3
	Stopped:
		TNT1 A 1
		Loop
	Ready:
		TNT1 A 0 A_JumpIfInventory("ZoomIn", 1, "Altfire")
		TNT1 A 0 A_JumpIfInventory("Punching", 1, "DoPunch")
		ASLT A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
	AimReady:
		TNT1 A 0 A_JumpIfInventory("Punching", 1, "DoPunch")
		IRON A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
	Fire:
		TNT1 A 0 A_JumpIfInventory("ZoomIn",1,"AimedFire")
		TNT1 A 0 A_JumpIfNoAmmo("Reload")
		TNT1 A 0 A_FireLedRifle
		TNT1 A 0 A_JumpIf(GetCvar("led_ZoomEffects")==0, 2)
		TNT1 A 0 A_ZoomFactor(0.994, ZOOM_INSTANT)
		TNT1 A 0 A_SetAngle(angle + frandom(-0.5, 0.5))
		ASLT A 1 A_WeaponOffset(0, 41, WOF_INTERPOLATE)
		TNT1 A 0 A_SetPitch(pitch-0.5)
		TNT1 A 0 A_JumpIf(GetCvar("led_ZoomEffects")==0, 2)
		TNT1 A 0 A_ZoomFactor(0.996)
		TNT1 A 0 A_FireProjectile("RifleCasingSpawner",0,0,1,-6)
		ASLT A 1 A_WeaponOffset(0, 39, WOF_INTERPOLATE)
		TNT1 AA 0 A_FireProjectile("GunSmokeSpawner",0,0,0,-1)
		TNT1 A 0 A_SetPitch(pitch+0.25)
		TNT1 A 0 A_JumpIf(GetCvar("led_ZoomEffects")==0, 2)
		TNT1 A 0 A_ZoomFactor(0.998)
		ASLT D 1 A_WeaponOffset(0, 37, WOF_INTERPOLATE)
		TNT1 A 0 A_SetPitch(pitch+0.125)
		TNT1 A 0 A_JumpIf(GetCvar("led_ZoomEffects")==0, 2)
		TNT1 A 0 A_ZoomFactor(1.00)
		ASLT B 1 A_WeaponOffset(0, 35, WOF_INTERPOLATE)
		TNT1 A 0 A_SetPitch(pitch+0.125)
		TNT1 A 0 A_ReFire
		Goto Ready
	AimedFire:
		TNT1 A 0 A_JumpIfNoAmmo("AimedReload")
		TNT1 A 0 A_FireLedADSRifle
		TNT1 A 0 A_JumpIf(GetCvar("led_ZoomEffects")==0, 2)
		TNT1 A 0 A_ZoomFactor(1.496, ZOOM_INSTANT)
		TNT1 A 0 A_Light2
		IRFI A 1 Bright A_WeaponOffset(0,41, WOF_INTERPOLATE)
		TNT1 A 0 A_JumpIf(GetCvar("led_ZoomEffects")==0, 2)
		TNT1 A 0 A_ZoomFactor(1.498)
		TNT1 A 0 A_SetPitch(pitch-0.25)
		TNT1 A 0 A_Light1
		TNT1 A 0 A_FireProjectile("RifleCasingSpawner",0,0,4,0)
		IRFI B 1 A_WeaponOffset(0,39, WOF_INTERPOLATE)
		TNT1 A 0 A_JumpIf(GetCvar("led_ZoomEffects")==0, 2)
		TNT1 A 0 A_ZoomFactor(1.5)
		TNT1 A 0 A_SetPitch(pitch-0.1)
		TNT1 A 0 A_Light0
		TNT1 A 0 A_FireProjectile("GunSmokeSpawner",0,0,0,0)
		IRFI C 1 A_WeaponOffset(0,37, WOF_INTERPOLATE)
		TNT1 A 0 A_SetPitch(pitch+0.1)
		IRFI B 1 A_WeaponOffset(0,35, WOF_INTERPOLATE)
		TNT1 A 0 A_SetPitch(pitch+0.25)
		TNT1 A 0 A_Refire
		Goto AimReady
	Altfire:
		TNT1 A 0 A_JumpIf(GetCvar("led_RifleADS")==0, "Ready")
		TNT1 A 0 A_JumpIfInventory("Aiming", 1, "ZoomOut")
		TNT1 A 0 A_Giveinventory("ZoomIn",1)
		TNT1 A 0 A_Giveinventory("Aiming",1)
	ZoomIn:
		TNT1 A 0 A_ZoomFactor(1.5)
		TNT1 A 0 A_PlaySound("weapons/foley", CHAN_AUTO)
		TNT1 A 0 A_PlaySound("weapons/rifle/move")
		IRSW A 1
		IRSW B 1
		Goto AimReady
	ZoomOut:
		TNT1 A 0 A_ClearRefire
		TNT1 A 0 A_PlaySound("weapons/foley", CHAN_AUTO)
		TNT1 A 0 A_PlaySound("weapons/rifle/move")
		TNT1 A 0 A_ZoomFactor(1.0)
		IRSW BA 2 
		TNT1 A 0 A_Takeinventory("ZoomIn",1)
		TNT1 A 0 A_Takeinventory("Aiming",1)
		Goto Ready
	ZoomOutAndReload:
		TNT1 A 0 A_PlaySound("weapons/rifle/move")
		TNT1 A 0 A_ZoomFactor(1.0)
		IRSW BA 2 
	Reload:
		TNT1 A 0 A_JumpIfInventory("ZoomIn", 1, "AimedReload")
		TNT1 A 0 A_ZoomFactor(1.0)
		RIFG A 0 A_JumpIfInventory("RifleMag", 31, 2)
		RIFG A 0 A_JumpIfInventory("RifleAmmo", 1, "ReloadWork")
		RIFG A 0 A_JumpIfInventory("ZoomIn", 1, "ZoomOutAndReload")
		ASLT A 1 A_WeaponReady
		Goto Ready
	AimedReload:
		RIFG A 0 A_JumpIfInventory("RifleMag", 31, 2)
		RIFG A 0 A_JumpIfInventory("RifleAmmo", 1, "ReloadWork")
		IRON A 1 A_WeaponReady
		Goto AimReady
	ReloadWork:
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("led_ToggleRifle")==0, "NoReloadChamberCheck")
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_JumpIfInventory("RifleMag", 1, "ReloadWork2")
		TNT1 A 0 A_PlaySound("weapons/foley", CHAN_AUTO)
		ASLR ABCDMN 1 
		ASLR L 1 A_WeaponOffset( -2, 33, WOF_INTERPOLATE )
		TNT1 A 0 A_PlaySound("weapons/rifle/cout")
		ASLR K 1 A_WeaponOffset( -3, 34, WOF_INTERPOLATE )
		ASLR J 1 A_WeaponOffset( -5, 34, WOF_INTERPOLATE )
		ASLR I 1 A_WeaponOffset( -2, 33, WOF_INTERPOLATE )
		ASLR G 1
		TNT1 A 0 A_FireProjectile("RifleMagDrop", random(-15, 15), 0, 3, -9)
		TNT1 A 0 A_PlaySound("weapons/foley", CHAN_AUTO)
		ASLR G 7
		Goto ChamberCheck
	ReloadWork2:
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("led_ToggleRifle")==0, "NoReloadChamberCheck")
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_PlaySound("weapons/foley", CHAN_AUTO)
		ASLR ABCDMN 1 
		ASLR L 1 A_WeaponOffset( -2, 33, WOF_INTERPOLATE )
		TNT1 A 0 A_PlaySound("weapons/rifle/cout")
		ASLR K 1 A_WeaponOffset( -3, 34, WOF_INTERPOLATE )
		ASLR J 1 A_WeaponOffset( -5, 34, WOF_INTERPOLATE )
		ASLR I 1 A_WeaponOffset( -2, 33, WOF_INTERPOLATE )
		ASLR G 4 
		TNT1 A 0 A_PlaySound("weapons/foley", CHAN_AUTO)
		ASLR G 4 
		Goto ChamberCheck
	ChamberCheck:
		TNT1 A 0 A_JumpIfInventory("RifleMag", 1, "ReloadLoop2")
		Goto ReloadLoop
	NoReloadChamberCheck:
		TNT1 A 0 A_JumpIfInventory("RifleMag", 1, "NoReloadLoop2")
		Goto NoReloadLoop
	ReloadLoop:
		TNT1 A 0 A_TakeInventory("RifleAmmo", 1)
		TNT1 A 0 A_GiveInventory("RifleMag", 1)
		TNT1 A 0 A_JumpIfInventory("RifleMag", 30, "ReloadFinish")
		TNT1 A 0 A_JumpIfInventory("RifleAmmo", 1, "ReloadLoop")
		Goto ReloadFinish
	NoReloadLoop:
		TNT1 A 0 A_TakeInventory("RifleAmmo", 1)
		TNT1 A 0 A_GiveInventory("RifleMag", 1)
		TNT1 A 0 A_JumpIfInventory("RifleMag", 30, "NoReloadFinish")
		TNT1 A 0 A_JumpIfInventory("RifleAmmo", 1, "NoReloadLoop")
		Goto NoReloadFinish
	ReloadLoop2:
		TNT1 A 0 A_TakeInventory("RifleAmmo", 1)
		TNT1 A 0 A_GiveInventory("RifleMag", 1)
		TNT1 A 0 A_JumpIfInventory("RifleMag", 31, "ReloadFinish2")
		TNT1 A 0 A_JumpIfInventory("RifleAmmo", 1, "ReloadLoop2")
		Goto ReloadFinish2
	NoReloadLoop2:
		TNT1 A 0 A_TakeInventory("RifleAmmo", 1)
		TNT1 A 0 A_GiveInventory("RifleMag", 1)
		TNT1 A 0 A_JumpIfInventory("RifleMag", 31, "NoReloadFinish")
		TNT1 A 0 A_JumpIfInventory("RifleAmmo", 1, "NoReloadLoop2")
		Goto NoReloadFinish
	ReloadFinish:
		ASLR HIJK 1 
		TNT1 A 0 A_PlaySound("weapons/rifle/cin")
		ASLR L 1 A_WeaponOffset(2, 33, WOF_INTERPOLATE )
		ASLR N 2 A_WeaponOffset(8, 34, WOF_INTERPOLATE )
		ASLR N 3 A_WeaponOffset(10, 35, WOF_INTERPOLATE )
		ASLR N 1 A_WeaponOffset(5, 33, WOF_INTERPOLATE )
		ASLR O 1 A_PlaySound("weapons/foley", CHAN_AUTO)
		ASLR PQR 1
		TNT1 A 0 A_PlaySound("weapons/rifle/slap")
		ASLR S 1
		ASRL AB 1 
		ASRL C 4
		TNT1 A 0 A_PlaySound("weapons/rifle/click", CHAN_AUTO)
		ASRL D 1
		ASRL E 6
		ASRL D 1
		ASRL C 3
		TNT1 A 0 A_PlaySound("weapons/rifle/foley", CHAN_AUTO)
		ASRL BA 3 
		ASLR TU 1 
		ASLT A 1 A_WeaponOffset(0, 32, WOF_INTERPOLATE )
		TNT1 A 0 A_Refire
		TNT1 A 0 A_JumpIfInventory("ZoomIn", 1, "ZoomIn")
		Goto Ready
	ReloadFinish2:
		ASLR HIJK 1 
		TNT1 A 0 A_PlaySound("weapons/rifle/cin")
		ASLR L 1 A_WeaponOffset(2, 33, WOF_INTERPOLATE )
		ASLR N 2 A_WeaponOffset(8, 34, WOF_INTERPOLATE )
		ASLR N 3 A_WeaponOffset(10, 35, WOF_INTERPOLATE )
		ASLR N 1 A_WeaponOffset(5, 33, WOF_INTERPOLATE )
		ASLR O 1 A_PlaySound("weapons/foley", CHAN_AUTO)
		ASLR P 1
		ASLR Q 1
		ASLR R 1
		TNT1 A 0 A_PlaySound("weapons/rifle/slap")
		ASLR S 1 
		ASLT A 1 A_WeaponOffset( 0, 32, WOF_INTERPOLATE )
		TNT1 A 0 A_Refire
		TNT1 A 0 A_JumpIfInventory("ZoomIn", 1, "ZoomIn")
		Goto Ready
	NoReloadFinish:
		TNT1 A 0 A_JumpIfInventory("ZoomIn", 1, "AimedNoReloadFinish")
		TNT1 A 0 A_ReFire
		Goto Ready
	AimedNoReloadFinish:
		TNT1 A 0 A_ReFire
		Goto AimReady
	DoPunch:
		TNT1 A 0 A_TakeInventory("Aiming", 1)
		TNT1 A 0 A_TakeInventory("ZoomIn", 1)
		TNT1 A 0 A_ZoomFactor(1.00)
		TNT1 A 0 A_PlaySound("weapons/deselect", CHAN_AUTO)
		TNT1 A 0 A_TakeInventory("Punching",1)
		ASLT A 1 A_WeaponOffset(-5, 35, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-30, 45, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-40, 52, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-49, 75, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-51, 90, WOF_INTERPOLATE)
		TNT1 A 1 A_WeaponOffset(0, 32, WOF_INTERPOLATE)
		TNT1 A 0 A_PlaySound("swing")
		Goto ActualPunch
	PunchDone:
		TNT1 A 1 A_WeaponOffset(-90, 79, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-90, 79, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-75, 69, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-60, 60, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-45, 52, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-30, 45, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(-15, 39, WOF_INTERPOLATE)
		ASLT A 1 A_WeaponOffset(0, 32, WOF_INTERPOLATE)
		Goto Ready
	Flash:
		RFLF B 1 Bright A_Light2
		RFLF A 1 Bright A_Light1
		Goto LightDone
	Spawn:
		RIFL A -1
		Stop
	}
}

Actor ZoomIn : Inventory
{
	Inventory.Maxamount 1
}

Actor Aiming : Inventory
{
	Inventory.Maxamount 1
}