//=============================================================================
// KFWeapAttach_AltAmmo
//=============================================================================
// A custom 3rd person weapon template for weapons that use multiple different ammo types.
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//=============================================================================
class KFWeapAttach_MultiAmmo extends KFWeaponAttachment;

/** Secondary Weapon Reloads */
const SecondaryReloadAnim			= 'Reload_Secondary';
const CH_SecondaryReloadAnim		= 'Reload_Secondary_CH';
const SecondaryReloadEliteAnim		= 'Reload_Secondary_Elite';
const CH_SecondaryReloadEliteAnim	= 'Reload_Secondary_Elite_CH';

/**
 * Don't allow secondary fire to make a primary fire shell particle come out of the gun.
 */
simulated function CauseMuzzleFlash(byte FireModeNum)
{
	local bool AutoShellEject;

	if(FireModeNum != 0)
	{
		if (MuzzleFlash == None && MuzzleFlashTemplate != None)
		{
			AttachMuzzleFlash();
		}

		AutoShellEject = MuzzleFlash.bAutoActivateShellEject;

		MuzzleFlash.bAutoActivateShellEject = false;

		Super.CauseMuzzleFlash(FireModeNum);

		MuzzleFlash.bAutoActivateShellEject = AutoShellEject;
	}
	else
	{
		Super.CauseMuzzleFlash(FireModeNum);
	}
}

/** Play a 3rd person reload animation */
simulated function PlayReloadMagazineAnim(EWeaponState NewWeaponState, KFPawn P)
{
	local name AnimName;

	if(NewWeaponState == WEP_ReloadSecondary || NewWeaponState == WEP_ReloadSecondary_Elite)
	{
		switch (NewWeaponState)
		{
		case WEP_ReloadSecondary:
			AnimName = (!P.bIsCrouched) ? SecondaryReloadAnim : CH_SecondaryReloadAnim;
			break;
		case WEP_ReloadSecondary_Elite:
			AnimName = (!P.bIsCrouched) ? SecondaryReloadEliteAnim : CH_SecondaryReloadEliteAnim;
			break;
		}

		PlayCharacterMeshAnim(P, AnimName, true);
	}
	else
	{
		Super.PlayReloadMagazineAnim(NewWeaponState, P);
	}
}

defaultproperties
{}