NicePack/sources/Weapons/BaseWeaponClasses/Pistols/NiceSinglePickup.uc
Anton Tarasenko 12d95e387e Revert weapon conversion
This patch reverts first step of global weapon conversion
that would have halted the release of the next version for too long.
2020-04-17 23:06:41 +07:00

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'NicePack.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
}