84 lines
3.4 KiB
Ucode
84 lines
3.4 KiB
Ucode
class NiceSinglePickup extends NiceWeaponPickup;
|
|
function Inventory SpawnCopy(Pawn other){
|
|
local Inventory CurInv;
|
|
local NiceWeapon PistolInInventory;
|
|
for(CurInv = other.Inventory;CurInv != none;CurInv = CurInv.Inventory){
|
|
PistolInInventory = NiceWeapon(CurInv);
|
|
if(PistolInInventory != none && PistolInInventory.class == default.InventoryType){
|
|
// 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);
|
|
class'NicePlainData'.static.SetInt(weaponData, "leftMag", MagAmmoRemaining);
|
|
class'NicePlainData'.static.SetInt(weaponData, "rightMag", PistolInInventory.MagAmmoRemaining);
|
|
// 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
|
|
if(class<NiceSingle>(default.InventoryType) != none)
|
|
InventoryType = class<NiceSingle>(default.InventoryType).default.DualClass;
|
|
if(CurInv != none){
|
|
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 class<NiceWeapon> dualClass;
|
|
local float AddWeight;
|
|
AddWeight = class<KFWeapon>(default.InventoryType).default.Weight;
|
|
if(class<NiceWeapon>(default.InventoryType) != none)
|
|
dualClass = class<NiceSingle>(default.InventoryType).default.dualClass;
|
|
for(CurInv = Hm.Inventory; CurInv != none; CurInv = CurInv.Inventory){
|
|
if(CurInv.class == dualClass) {
|
|
// 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 && dualClass != none){
|
|
AddWeight = dualClass.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
|
|
{
|
|
Weight=0.000000
|
|
cost=150
|
|
AmmoCost=10
|
|
BuyClipSize=30
|
|
PowerValue=20
|
|
SpeedValue=50
|
|
RangeValue=35
|
|
Description="A 9mm handgun."
|
|
ItemName="!!!"
|
|
ItemShortName="!!!"
|
|
AmmoItemName="9mm Rounds"
|
|
AmmoMesh=StaticMesh'KillingFloorStatics.DualiesAmmo'
|
|
CorrespondingPerkIndex=2
|
|
EquipmentCategoryID=1
|
|
InventoryType=class'NiceSingle'
|
|
PickupMessage="You got the 9mm handgun"
|
|
PickupSound=Sound'KF_9MMSnd.9mm_Pickup'
|
|
PickupForce="AssaultRiflePickup"
|
|
StaticMesh=StaticMesh'KF_pickups_Trip.pistol.9mm_Pickup'
|
|
CollisionHeight=5.000000
|
|
}
|