117 lines
3.7 KiB
Ucode
117 lines
3.7 KiB
Ucode
//=============================================================================
|
|
// Shotgun Inventory class
|
|
//=============================================================================
|
|
class Spas extends KFWeaponShotgun;
|
|
|
|
var bool bChamberThisReload; //if full reload is uninterrupted, play chambering animation
|
|
var ScrnFakedProjectile FakedShell;
|
|
|
|
simulated function PostBeginPlay()
|
|
{
|
|
Super.PostBeginPlay();
|
|
if ( !Instigator.IsLocallyControlled() )
|
|
return;
|
|
|
|
if ( FakedShell == none ) //only spawn fakedshell once
|
|
FakedShell = spawn(class'ScrnFakedShell',self);
|
|
if ( FakedShell != none )
|
|
{
|
|
AttachToBone(FakedShell, 'bullet_shell'); //attach faked shell
|
|
FakedShell.SetDrawScale(4.7); //4.7
|
|
FakedShell.SetRelativeRotation(rot(0,32768,0));
|
|
}
|
|
}
|
|
|
|
simulated function Destroyed()
|
|
{
|
|
if ( FakedShell != none && !FakedShell.bDeleteMe )
|
|
FakedShell.Destroy();
|
|
|
|
super.Destroyed();
|
|
}
|
|
|
|
//add notify triggered shell eject
|
|
simulated function Notify_EjectShell()
|
|
{
|
|
if ( SpasFire(FireMode[0]).ShellEjectEmitter != None )
|
|
{
|
|
SpasFire(FireMode[0]).ShellEjectEmitter.Trigger(Self, Instigator);
|
|
}
|
|
}
|
|
|
|
|
|
simulated function ClientReload()
|
|
{
|
|
bChamberThisReload = ( MagAmmoRemaining == 0 && (AmmoAmount(0) - MagAmmoRemaining > MagCapacity) ); //for chambering animation
|
|
Super.ClientReload();
|
|
}
|
|
|
|
simulated function ClientFinishReloading()
|
|
{
|
|
bIsReloading = false;
|
|
|
|
//play chambering animation if finished reloading from empty
|
|
if ( !bChamberThisReload )
|
|
{
|
|
PlayIdle();
|
|
}
|
|
bChamberThisReload = false;
|
|
|
|
if(Instigator.PendingWeapon != none && Instigator.PendingWeapon != self)
|
|
Instigator.Controller.ClientSwitchToBestWeapon();
|
|
}
|
|
|
|
// Allow this weapon to auto reload on alt fire
|
|
simulated function AltFire(float F)
|
|
{
|
|
if( MagAmmoRemaining < FireMode[1].AmmoPerFire && !bIsReloading &&
|
|
FireMode[1].NextFireTime <= Level.TimeSeconds )
|
|
{
|
|
// We're dry, ask the server to autoreload
|
|
ServerRequestAutoReload();
|
|
|
|
PlayOwnedSound(FireMode[1].NoAmmoSound,SLOT_None,2.0,,,,false);
|
|
}
|
|
|
|
super.AltFire(F);
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
ForceZoomOutOnFireTime=0.010000
|
|
MagCapacity=8
|
|
ReloadRate=0.666667
|
|
ReloadAnim="Reload"
|
|
ReloadAnimRate=0.920000
|
|
Weight=9.000000
|
|
bHasAimingMode=True
|
|
IdleAimAnim="Idle_Iron"
|
|
StandardDisplayFOV=65.000000
|
|
bModeZeroCanDryFire=True
|
|
TraderInfoTexture=Texture'ScrnWeaponPack_T.Spas.Spas_Unselected'
|
|
MeshRef="ScrnWeaponPack_A.spas12_1st"
|
|
SkinRefs(0)="ScrnWeaponPack_T.SPAS.shotgun_cmb"
|
|
SelectSoundRef="KF_PumpSGSnd.SG_Select"
|
|
HudImageRef="ScrnWeaponPack_T.SPAS.Spas_Unselected"
|
|
SelectedHudImageRef="ScrnWeaponPack_T.SPAS.Spas_Selected"
|
|
PlayerIronSightFOV=70.000000
|
|
ZoomedDisplayFOV=40.000000
|
|
FireModeClass(0)=Class'ScrnWeaponPack.SpasFire'
|
|
FireModeClass(1)=Class'ScrnWeaponPack.SpasAltFire'
|
|
PutDownAnim="PutDown"
|
|
AIRating=0.600000
|
|
CurrentRating=0.600000
|
|
Description="The Franchi SPAS12 is a combat shotgun manufactured by Italian firearms company Franchi from 1979 to 2000. The SPAS12 is a dual-mode shotgun, adjustable for semi-automatic or pump-action operation."
|
|
DisplayFOV=65.000000
|
|
Priority=135
|
|
InventoryGroup=3
|
|
GroupOffset=2
|
|
PickupClass=Class'ScrnWeaponPack.SpasPickup'
|
|
PlayerViewOffset=(X=5.000000,Y=17.000000,Z=-7.000000)
|
|
BobDamping=7.000000
|
|
AttachmentClass=Class'ScrnWeaponPack.SpasAttachment'
|
|
IconCoords=(X1=169,Y1=172,X2=245,Y2=208)
|
|
ItemName="SPAS-12 SE"
|
|
TransientSoundVolume=1.000000
|
|
}
|