//============================================================================= // KFPickupFactory_Ammo //============================================================================= // Pickup that gives some ammo for all weapons in inventory //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC // - Andrew "Strago" Ladenberger //============================================================================= class KFPickupFactory_Ammo extends KFPickupFactory; /** Sound to play when picking up ammo */ var() AkEvent AmmoPickupSound; /** Overloaded to add this pickup to its proper list in the gameinfo */ simulated function InitializePickup() { local KFGameInfo KFGI; if( bKismetDriven ) { return; } KFGI = KFGameInfo( WorldInfo.Game ); if ( KFGI != none ) { KFGI.AmmoPickups.AddItem( self ); } } /** Bypass PickupFactory implementation. This class doesn't use InventoryType. */ simulated event SetInitialState() { super.SetInitialState(); bScriptInitialized = true; } /** give pickup to player */ function GiveTo( Pawn P ) { local KFInventoryManager KFIM; KFIM = KFInventoryManager(P.InvManager); if ( KFIM != None ) { if( KFIM.GiveWeaponsAmmo( true ) ) { `BalanceLog(class'KFGameInfo'.const.GBE_Pickup, P.PlayerReplicationInfo, "Ammo"); `AnalyticsLog(( "pickup", P.PlayerReplicationInfo, "ammo")); PickedUpBy( P ); } } } /** Activate a different pickup after the 'RespawnDelay' has finished */ function PickedUpBy(Pawn P) { local KFGameInfo KFGI; if( bKismetDriven ) { super.PickedUpBy( P ); return; } KFGI = KFGameInfo( WorldInfo.Game ); if ( KFGI != none ) { KFGI.EnableNewPickup( KFGI.AmmoPickups, KFGI.DifficultyInfo.GetAmmoPickupInterval(KFGI.GetLivingPlayerCount()), self ); } } /** Determine what kind of pickup is visible. Used for dialog. */ function bool CurrentPickupIsAmmo() { return true; } defaultproperties { AmmoPickupSound=AkEvent'WW_UI_PlayerCharacter.Play_UI_Pickup_Ammo' Begin Object Class=StaticMeshComponent Name=StaticMeshComponent0 StaticMesh=StaticMesh'ENV_Horzine_MESH.crates.ENV_Horzine_Equiptment_Crate_02' Materials(0)=MaterialInstanceConstant'GP_Mat_Lib.GP_Ammo_MIC' Scale=0.5f bCastDynamicShadow=FALSE CollideActors=FALSE Translation=(Z=-50) End Object PickupMesh=StaticMeshComponent0 Components.Add(StaticMeshComponent0) Begin Object NAME=CollisionCylinder CollisionRadius=100.f CollisionHeight=50.f End Object bNotBased=TRUE }