136 lines
3.2 KiB
Ucode
136 lines
3.2 KiB
Ucode
//=============================================================================
|
|
// Dual golden 50 Cal Inventory class
|
|
//=============================================================================
|
|
class GoldenDualDeagle extends DualDeagle;
|
|
|
|
function GiveTo( pawn Other, optional Pickup Pickup )
|
|
{
|
|
local Inventory I;
|
|
local int OldAmmo;
|
|
local bool bNoPickup;
|
|
|
|
MagAmmoRemaining = 0;
|
|
|
|
For( I = Other.Inventory; I != None; I =I.Inventory )
|
|
{
|
|
if ( Deagle(I) != none )
|
|
{
|
|
if( WeaponPickup(Pickup)!= none )
|
|
{
|
|
WeaponPickup(Pickup).AmmoAmount[0] += Weapon(I).AmmoAmount(0);
|
|
}
|
|
else
|
|
{
|
|
OldAmmo = Weapon(I).AmmoAmount(0);
|
|
bNoPickup = true;
|
|
}
|
|
|
|
MagAmmoRemaining = Deagle(I).MagAmmoRemaining;
|
|
|
|
I.Destroyed();
|
|
I.Destroy();
|
|
|
|
Break;
|
|
}
|
|
}
|
|
|
|
if ( KFWeaponPickup(Pickup) != None && Pickup.bDropped )
|
|
{
|
|
MagAmmoRemaining = Clamp(MagAmmoRemaining + KFWeaponPickup(Pickup).MagAmmoRemaining, 0, MagCapacity);
|
|
}
|
|
else
|
|
{
|
|
MagAmmoRemaining = Clamp(MagAmmoRemaining + Class'GoldenDeagle'.Default.MagCapacity, 0, MagCapacity);
|
|
}
|
|
|
|
Super(Weapon).GiveTo(Other, Pickup);
|
|
|
|
if ( bNoPickup )
|
|
{
|
|
AddAmmo(OldAmmo, 0);
|
|
Clamp(Ammo[0].AmmoAmount, 0, MaxAmmo(0));
|
|
}
|
|
}
|
|
|
|
function DropFrom(vector StartLocation)
|
|
{
|
|
local int m;
|
|
local Pickup Pickup;
|
|
local Inventory I;
|
|
local int AmmoThrown, OtherAmmo;
|
|
|
|
if( !bCanThrow )
|
|
return;
|
|
|
|
AmmoThrown = AmmoAmount(0);
|
|
ClientWeaponThrown();
|
|
|
|
for (m = 0; m < NUM_FIRE_MODES; m++)
|
|
{
|
|
if (FireMode[m].bIsFiring)
|
|
StopFire(m);
|
|
}
|
|
|
|
if ( Instigator != None )
|
|
DetachFromPawn(Instigator);
|
|
|
|
if( Instigator.Health > 0 )
|
|
{
|
|
OtherAmmo = AmmoThrown / 2;
|
|
AmmoThrown -= OtherAmmo;
|
|
I = Spawn(Class'GoldenDeagle');
|
|
I.GiveTo(Instigator);
|
|
Weapon(I).Ammo[0].AmmoAmount = OtherAmmo;
|
|
GoldenDeagle(I).MagAmmoRemaining = MagAmmoRemaining / 2;
|
|
MagAmmoRemaining = Max(MagAmmoRemaining-GoldenDeagle(I).MagAmmoRemaining,0);
|
|
}
|
|
|
|
Pickup = Spawn(Class'GoldenDeaglePickup',,, StartLocation);
|
|
|
|
if ( Pickup != None )
|
|
{
|
|
Pickup.InitDroppedPickupFor(self);
|
|
Pickup.Velocity = Velocity;
|
|
WeaponPickup(Pickup).AmmoAmount[0] = AmmoThrown;
|
|
if( KFWeaponPickup(Pickup)!=None )
|
|
KFWeaponPickup(Pickup).MagAmmoRemaining = MagAmmoRemaining;
|
|
if (Instigator.Health > 0)
|
|
WeaponPickup(Pickup).bThrown = true;
|
|
}
|
|
|
|
Destroyed();
|
|
Destroy();
|
|
}
|
|
|
|
simulated function bool PutDown()
|
|
{
|
|
if ( Instigator.PendingWeapon.class == class'GoldenDeagle' )
|
|
{
|
|
bIsReloading = false;
|
|
}
|
|
|
|
return super.PutDown();
|
|
}
|
|
|
|
|
|
defaultproperties
|
|
{
|
|
skins(0)=Combiner'KF_Weapons_Gold_T.Weapons.Gold_deagle_cmb'
|
|
|
|
FireModeClass(0)=Class'KFMod.GoldenDualDeagleFire'
|
|
|
|
Description="Dual golden .50 calibre action express handgun. Dual golden 50's is double the fun."
|
|
|
|
PickupClass=Class'KFMod.GoldenDualDeaglePickup'
|
|
|
|
AttachmentClass=Class'KFMod.GoldenDualDeagleAttachment'
|
|
ItemName="Dual Golden Handcannons"
|
|
Mesh=SkeletalMesh'KF_Weapons_Trip.Dual50_Trip'
|
|
|
|
HudImage=Texture'KillingFloor2HUD.WeaponSelect.Gold_Dual_Deagle_unselected'
|
|
SelectedHudImage=Texture'KillingFloor2HUD.WeaponSelect.Gold_Dual_Deagle'
|
|
TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_Gold_Dual_Deagle'
|
|
|
|
appID=210944
|
|
}
|