class NiceFlareRevolverPickup extends ScrnFlareRevolverPickup; function inventory SpawnCopy( pawn Other ) { local Inventory CurInv; local KFWeapon PistolInInventory; For( CurInv=Other.Inventory; CurInv!=none; CurInv=CurInv.Inventory ) { PistolInInventory = KFWeapon(CurInv); if( PistolInInventory != none && PistolInInventory.class == default.InventoryType ) { // destroy the inventory to force parent SpawnCopy() to make a new instance of class // we specified below if( Inventory!=none ) Inventory.Destroy(); // spawn dual guns instead of another instance of single InventoryType = DualInventoryType; // Make dualies to cost twice of lowest value in case of PERKED+UNPERKED pistols SellValue = 2 * min(SellValue, PistolInInventory.SellValue); AmmoAmount[0]+= PistolInInventory.AmmoAmount(0); MagAmmoRemaining+= PistolInInventory.MagAmmoRemaining; CurInv.Destroyed(); CurInv.Destroy(); Return Super(KFWeaponPickup).SpawnCopy(Other); } } InventoryType = Default.InventoryType; Return Super(KFWeaponPickup).SpawnCopy(Other); } function bool CheckCanCarry(KFHumanPawn Hm) { local Inventory CurInv; local bool bHasSinglePistol; local float AddWeight; AddWeight = class(default.InventoryType).default.Weight; for ( CurInv = Hm.Inventory; CurInv != none; CurInv = CurInv.Inventory ) { if ( CurInv.class == default.DualInventoryType ) { //already have duals, can't carry a single if ( LastCantCarryTime < Level.TimeSeconds && PlayerController(Hm.Controller) != none ) { LastCantCarryTime = Level.TimeSeconds + 0.5; PlayerController(Hm.Controller).ReceiveLocalizedMessage(Class'KFMainMessages', 2); } return false; } else if ( CurInv.class == default.InventoryType ) { bHasSinglePistol = true; AddWeight = default.DualInventoryType.default.Weight - AddWeight; break; } } if ( !Hm.CanCarry(AddWeight) ) { if ( LastCantCarryTime < Level.TimeSeconds && PlayerController(Hm.Controller) != none ) { LastCantCarryTime = Level.TimeSeconds + 0.5; PlayerController(Hm.Controller).ReceiveLocalizedMessage(Class'KFMainMessages', 2); } return false; } return true; } defaultproperties { DualInventoryType=class'NiceDualFlareRevolver' ItemName="Flare Revolver NW" ItemShortName="Flare Rev. NW" InventoryType=class'NiceFlareRevolver' }