//============================================================================= // KF Ammo. //============================================================================= class KFAmmunition extends Ammunition; var bool bAcceptsAmmoPickups; var int AmmoPickupAmount; simulated function CheckOutOfAmmo() { if( AmmoAmount<=0 && Pawn(Owner)!=None && Pawn(Owner).Weapon!=None ) Pawn(Owner).Weapon.OutOfAmmo(); } simulated function PostNetReceive() { //log(self$"AmmoAmount = "$AmmoAmount); CheckOutOfAmmo(); } function bool HandlePickupQuery( pickup Item ) { if ( class == item.InventoryType ) { MaxAmmo = Default.MaxAmmo; if ( KFPawn(Owner) != none && KFPlayerReplicationInfo(KFPawn(Owner).PlayerReplicationInfo) != none && KFPlayerReplicationInfo(KFPawn(Owner).PlayerReplicationInfo).ClientVeteranSkill != none ) { MaxAmmo = float(MaxAmmo) * KFPlayerReplicationInfo(KFPawn(Owner).PlayerReplicationInfo).ClientVeteranSkill.Static.AddExtraAmmoFor(KFPlayerReplicationInfo(KFPawn(Owner).PlayerReplicationInfo), Class); } if ( AmmoAmount == MaxAmmo ) { return true; } item.AnnouncePickup(Pawn(Owner)); AddAmmo(Ammo(item).AmmoAmount); item.SetRespawn(); return true; } if ( Inventory == None ) return false; return Inventory.HandlePickupQuery(Item); } defaultproperties { bNetNotify=true bAcceptsAmmoPickups=true AmmoPickupAmount=40 }