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.
This commit is contained in:
Anton Tarasenko 2020-04-17 23:06:41 +07:00
commit 12d95e387e
757 changed files with 10788 additions and 4046 deletions

View file

@ -0,0 +1,5 @@
class NiceAA12Ammo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceAA12Pickup' AmmoPickupAmount=20 MaxAmmo=100 InitialAmount=25 PickupClass=Class'NicePack.NiceAA12AmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceAA12AmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=20 InventoryType=Class'NicePack.NiceAA12Ammo' PickupMessage="12-Gauge Drum" StaticMesh=None
}

View file

@ -0,0 +1,4 @@
class NiceAA12Attachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdKar' mShellCaseEmitterClass=Class'KFMod.KFShotgunShellSpewer' MovementAnims(0)="JogF_AA12" MovementAnims(1)="JogB_AA12" MovementAnims(2)="JogL_AA12" MovementAnims(3)="JogR_AA12" TurnLeftAnim="TurnL_AA12" TurnRightAnim="TurnR_AA12" CrouchAnims(0)="CHWalkF_AA12" CrouchAnims(1)="CHWalkB_AA12" CrouchAnims(2)="CHWalkL_AA12" CrouchAnims(3)="CHWalkR_AA12" WalkAnims(0)="WalkF_AA12" WalkAnims(1)="WalkB_AA12" WalkAnims(2)="WalkL_AA12" WalkAnims(3)="WalkR_AA12" CrouchTurnRightAnim="CH_TurnR_AA12" CrouchTurnLeftAnim="CH_TurnL_AA12" IdleCrouchAnim="CHIdle_AA12" IdleWeaponAnim="Idle_AA12" IdleRestAnim="Idle_AA12" IdleChatAnim="Idle_AA12" IdleHeavyAnim="Idle_AA12" IdleRifleAnim="Idle_AA12" FireAnims(0)="Fire_AA12" FireAnims(1)="Fire_AA12" FireAnims(2)="Fire_AA12" FireAnims(3)="Fire_AA12" FireAltAnims(0)="Fire_AA12" FireAltAnims(1)="Fire_AA12" FireAltAnims(2)="Fire_AA12" FireAltAnims(3)="Fire_AA12" FireCrouchAnims(0)="CHFire_AA12" FireCrouchAnims(1)="CHFire_AA12" FireCrouchAnims(2)="CHFire_AA12" FireCrouchAnims(3)="CHFire_AA12" FireCrouchAltAnims(0)="CHFire_AA12" FireCrouchAltAnims(1)="CHFire_AA12" FireCrouchAltAnims(2)="CHFire_AA12" FireCrouchAltAnims(3)="CHFire_AA12" HitAnims(0)="HitF_AA12" HitAnims(1)="HitB_AA12" HitAnims(2)="HitL_AA12" HitAnims(3)="HitR_AA12" PostFireBlendStandAnim="Blend_AA12" PostFireBlendCrouchAnim="CHBlend_AA12" MeshRef="KF_Weapons3rd2_Trip.AA12_3rd"
}

View file

@ -0,0 +1,15 @@
class NiceAA12AutoShotgun extends NiceWeapon;
// Use alt fire to switch fire modes
simulated function AltFire(float F){
DoToggle();
}
exec function SwitchModes(){
DoToggle();
}
defaultproperties
{ reloadPreEndFrame=0.473000 reloadEndFrame=0.828000 reloadChargeEndFrame=-1.000000 reloadMagStartFrame=0.591000 reloadChargeStartFrame=-1.000000 MagCapacity=20
Weight=6.000000 ReloadRate=3.133000 ReloadAnim="Reload" ReloadAnimRate=1.000000 WeaponReloadAnim="Reload_AA12" bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_AA12' bIsTier3Weapon=True MeshRef="KF_Weapons2_Trip.AA12_Trip" SkinRefs(0)="KF_Weapons2_Trip_T.Special.AA12_cmb" SelectSoundRef="KF_AA12Snd.AA12_Select" HudImageRef="KillingFloor2HUD.WeaponSelect.AA12_unselected" SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.AA12" PlayerIronSightFOV=80.000000 ZoomedDisplayFOV=45.000000 FireModeClass(0)=Class'NicePack.NiceAA12Fire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.550000 CurrentRating=0.550000 bShowChargingBar=True Description="An advanced fully automatic shotgun." EffectOffset=(X=100.000000,Y=25.000000,Z=-10.000000) DisplayFOV=65.000000 Priority=200 InventoryGroup=4 GroupOffset=10 PickupClass=Class'NicePack.NiceAA12Pickup' PlayerViewOffset=(X=25.000000,Y=20.000000,Z=-2.000000) BobDamping=6.000000 AttachmentClass=Class'NicePack.NiceAA12Attachment' IconCoords=(X1=245,Y1=39,X2=329,Y2=79) ItemName="AA12 Shotgun" TransientSoundVolume=1.250000
}

View file

@ -0,0 +1,4 @@
class NiceAA12Fire extends NiceShotgunFire;
defaultproperties
{ ProjPerFire=5 KickMomentum=(X=-35.000000,Z=5.000000) maxVerticalRecoilAngle=1000 maxHorizontalRecoilAngle=500 ShellEjectClass=Class'ROEffects.KFShellEjectShotty' ShellEjectBoneName="Shell_eject" FireSoundRef="KF_AA12Snd.AA12_Fire" StereoFireSoundRef="KF_AA12Snd.AA12_FireST" NoAmmoSoundRef="KF_AA12Snd.AA12_DryFire" DamageType=Class'NicePack.NiceDamTypeAA12Shotgun' DamageMax=48 Momentum=60000.000000 bWaitForRelease=False FireAnimRate=1.000000 FireRate=0.200000 AmmoClass=Class'NicePack.NiceAA12Ammo' ShakeRotMag=(Z=250.000000) ShakeRotTime=3.000000 ShakeOffsetMag=(Z=6.000000) ShakeOffsetTime=1.250000 BotRefireRate=0.250000
}

View file

@ -0,0 +1,4 @@
class NiceAA12Pickup extends NiceWeaponPickup;
defaultproperties
{ cost=1250 AmmoCost=80 BuyClipSize=20 PowerValue=85 SpeedValue=65 RangeValue=20 Description="An advanced fully automatic shotgun." ItemName="AA12 Shotgun" ItemShortName="AA12 Shotgun" AmmoItemName="12-gauge drum" CorrespondingPerkIndex=1 EquipmentCategoryID=3 VariantClasses(0)=Class'KFMod.GoldenAA12Pickup' InventoryType=Class'NicePack.NiceAA12AutoShotgun' PickupMessage="You got the AA12 auto shotgun." PickupSound=Sound'KF_AA12Snd.AA12_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups2_Trip.Shotguns.AA12_Pickup' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeAA12Shotgun extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ MaxPenetrations=5 PenDmgReduction=0.900000 bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceAA12AutoShotgun' DeathString="%k killed %o (AA12 Shotgun)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,4 @@
class NiceBenelliAmmo extends NiceAmmo;
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceBenelliPickup' AmmoPickupAmount=6 MaxAmmo=60 InitialAmount=15 PickupClass=Class'NicePack.NiceBenelliAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceBenelliAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=6 InventoryType=Class'NicePack.NiceBenelliAmmo' PickupMessage="12-Gauge Shells" StaticMesh=None
}

View file

@ -0,0 +1,4 @@
class NiceBenelliAttachment extends NiceShotgunAttachment;
defaultproperties
{ FireAnims(0)="Fire_Benelli" FireAnims(1)="Fire_Benelli" FireAnims(2)="Fire_Benelli" FireAnims(3)="Fire_Benelli" FireAltAnims(0)="Fire_Benelli" FireAltAnims(1)="Fire_Benelli" FireAltAnims(2)="Fire_Benelli" FireAltAnims(3)="Fire_Benelli" FireCrouchAnims(0)="CHFire_Benelli" FireCrouchAnims(1)="CHFire_Benelli" FireCrouchAnims(2)="CHFire_Benelli" FireCrouchAnims(3)="CHFire_Benelli" FireCrouchAltAnims(0)="CHFire_Benelli" FireCrouchAltAnims(1)="CHFire_Benelli" FireCrouchAltAnims(2)="CHFire_Benelli" FireCrouchAltAnims(3)="CHFire_Benelli" MeshRef="KF_Weapons3rd3_Trip.Benelli_3rd"
}

View file

@ -0,0 +1,4 @@
class NiceBenelliFire extends NiceShotgunFire;
defaultproperties
{ KickMomentum=(X=-45.000000,Z=10.000000) ShellEjectClass=Class'ROEffects.KFShellEjectBenelli' ShellEjectBoneName="Shell_eject" DamageType=Class'NicePack.NiceDamTypeBenelli' FireAnimRate=1.000000 FireRate=0.200000 AmmoClass=Class'NicePack.NiceBenelliAmmo' BotRefireRate=0.200000
}

View file

@ -0,0 +1,4 @@
class NiceBenelliPickup extends NiceWeaponPickup;
defaultproperties
{ Weight=8.000000 cost=500 BuyClipSize=6 PowerValue=70 SpeedValue=60 RangeValue=15 Description="A military tactical shotgun with semi automatic fire capability. Holds up to 6 shells. " ItemName="Benelli shotgun" ItemShortName="Benelli shotgun" AmmoItemName="12-gauge shells" CorrespondingPerkIndex=1 EquipmentCategoryID=2 VariantClasses(0)=Class'KFMod.GoldenBenelliPickup' InventoryType=Class'NicePack.NiceBenelliShotgun' PickupMessage="You got the Benelli shotgun" PickupSound=Sound'KF_M4ShotgunSnd.foley.WEP_Benelli_Foley_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups3_Trip.Rifles.Benelli_Pickup' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,8 @@
class NiceBenelliShotgun extends NiceWeapon;
simulated function fillSubReloadStages(){
// Loading 6 shells during 174 frames tops, with first shell loaded at frame 22, with 24 frames between load moments
generateReloadStages(6, 174, 22, 24);
}
defaultproperties
{ bChangeClipIcon=True hudClipTexture=Texture'KillingFloorHUD.HUD.Hud_Single_Bullet' reloadType=RTYPE_SINGLE FirstPersonFlashlightOffset=(X=-25.000000,Y=-18.000000,Z=8.000000) MagCapacity=6 ReloadRate=0.750000 ReloadAnim="Reload" ReloadAnimRate=1.200000 bHoldToReload=True WeaponReloadAnim="Reload_Shotgun" Weight=5.000000 bTorchEnabled=True bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 SleeveNum=2 TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_Beneli' bIsTier2Weapon=True MeshRef="KF_Wep_Benelli.Benelli_Trip" SkinRefs(0)="KF_Weapons4_Trip_T.Weapons.Benelli_M4_cmb" SkinRefs(1)="KF_Weapons2_Trip_T.Special.Aimpoint_sight_shdr" SelectSoundRef="KF_M4ShotgunSnd.WEP_Benelli_Foley_Select" HudImageRef="KillingFloor2HUD.WeaponSelect.Beneli_unselected" SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.Beneli" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceBenelliFire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" AIRating=0.600000 CurrentRating=0.600000 bShowChargingBar=True Description="A military tactical shotgun with semi automatic fire capability. Holds up to 6 shells. " DisplayFOV=65.000000 Priority=170 InventoryGroup=3 GroupOffset=9 PickupClass=Class'NicePack.NiceBenelliPickup' PlayerViewOffset=(X=20.000000,Y=18.750000,Z=-7.500000) BobDamping=7.000000 AttachmentClass=Class'NicePack.NiceBenelliAttachment' IconCoords=(X1=169,Y1=172,X2=245,Y2=208) ItemName="Benelli shotgun" TransientSoundVolume=1.000000
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeBenelli extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ MaxPenetrations=3 MediumZedPenDmgReduction=1.000000 bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceBenelliShotgun' DeathString="%k killed %o (Benelli Shotgun)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,52 @@
class NiceBoomStick extends NiceWeapon;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
var float glueTiming;
var float firstShellTiming, secondShellTiming, jumpTiming;
var const string firstShellStr, secondShellStr, jumpStr;
simulated function PostBeginPlay(){
local EventRecord record;
local AutoReloadAnimDesc reloadDesc;
// Setup animation timings
autoReloadsDescriptions.Length = 0;
reloadDesc.canInterruptFrame = 0.056;
reloadDesc.trashStartFrame = secondShellTiming;
reloadDesc.resumeFrame = 0.056;
reloadDesc.speedFrame = 0.056;
// Setup all possible fire animations
reloadDesc.animName = 'Fire_Both';
autoReloadsDescriptions[0] = reloadDesc;
reloadDesc.animName = 'Fire_Both_Iron';
autoReloadsDescriptions[1] = reloadDesc;
reloadDesc.animName = 'Fire_Last';
autoReloadsDescriptions[2] = reloadDesc;
reloadDesc.animName = 'Fire_Last_Iron';
autoReloadsDescriptions[3] = reloadDesc;
// Setup reload events
record.eventName = jumpStr;
record.eventFrame = jumpTiming;
relEvents[relEvents.Length] = record;
record.eventName = firstShellStr;
record.eventFrame = firstShellTiming;
relEvents[relEvents.Length] = record;
record.eventName = secondShellStr;
record.eventFrame = secondShellTiming;
relEvents[relEvents.Length] = record;
super.PostBeginPlay();
}
simulated function ReloadEvent(string eventName){
if(eventName ~= jumpStr && GetMagazineAmmo() > 0) SetAnimFrame(glueTiming);
if(eventName ~= firstShellStr) MagAmmoRemainingClient = Min(1, AmmoAmount(0));
else if(eventName ~= secondShellStr) MagAmmoRemainingClient = Min(2, AmmoAmount(0));
ServerSetMagSize(MagAmmoRemainingClient, bRoundInChamber, Level.TimeSeconds);
}
simulated function AddAutoReloadedAmmo(){
MagAmmoRemainingClient = Min(2, AmmoAmount(0));
ServerSetMagSize(MagAmmoRemainingClient, bRoundInChamber, Level.TimeSeconds);
}
simulated function bool AltFireCanForceInterruptReload(){
return (GetMagazineAmmo() > 0);
}
defaultproperties
{ glueTiming=0.633330 firstShellTiming=0.555550 secondShellTiming=0.733330 jumpTiming=0.388880 firstShellStr="firstShell" secondShellStr="secondShellStr" jumpStr="jumpStr" bChangeClipIcon=True hudClipTexture=Texture'KillingFloorHUD.HUD.Hud_Single_Bullet' reloadType=RTYPE_AUTO ForceZoomOutOnFireTime=0.010000 ForceZoomOutOnAltFireTime=0.010000 MagCapacity=2
Weight=6.000000 ReloadRate=2.250000 ReloadAnim="Reload" ReloadAnimRate=1.100000 bHoldToReload=True WeaponReloadAnim="Reload_HuntingShotgun" bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=55.000000 TraderInfoTexture=Texture'KillingFloorHUD.Trader_Weapon_Images.Trader_Hunting_Shotgun' bIsTier2Weapon=True MeshRef="KF_Weapons_Trip.BoomStick_Trip" SkinRefs(0)="KF_Weapons_Trip_T.Shotguns.boomstick_cmb" SelectSoundRef="KF_DoubleSGSnd.2Barrel_Select" HudImageRef="KillingFloorHUD.WeaponSelect.BoomStic_unselected" SelectedHudImageRef="KillingFloorHUD.WeaponSelect.BoomStick" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceBoomStickAltFire' FireModeClass(1)=Class'NicePack.NiceBoomStickFire' PutDownAnim="PutDown" AIRating=0.900000 CurrentRating=0.900000 bSniping=False Description="A double barreled shotgun used by big game hunters. It fires two slugs simultaneously and can bring down even the largest targets, quickly." DisplayFOV=55.000000 Priority=160 InventoryGroup=4 GroupOffset=2 PickupClass=Class'NicePack.NiceBoomStickPickup' PlayerViewOffset=(X=8.000000,Y=14.000000,Z=-8.000000) BobDamping=6.000000 AttachmentClass=Class'NicePack.NiceBoomStickAttachment' ItemName="Hunting Shotgun" bUseDynamicLights=True TransientSoundVolume=1.000000
}

View file

@ -0,0 +1,26 @@
class NiceBoomStickAltFire extends NiceBoomStickFire;
// Overload to force last shot to have a different animation with reload
// NICETODO: uncomment this
/*function name GetCorrectAnim(bool bLoop, bool bAimed){
if(currentContext.sourceWeapon != none && currentContext.sourceWeapon.MagAmmoRemainingClient > 0)
return super.GetCorrectAnim(bLoop, bAimed);
if(bAimed)
return 'Fire_Last_Iron';
else
return 'Fire_Last';
return FireAnim;
}*/
defaultproperties
{
KickMomentum=(X=-50.000000,Z=22.000000)
FireAimedAnim="Fire_Iron"
maxVerticalRecoilAngle=1500
FireSoundRef="KF_DoubleSGSnd.2Barrel_Fire"
StereoFireSoundRef="KF_DoubleSGSnd.2Barrel_FireST"
TransientSoundVolume=1.800000
FireAnim="Fire"
AmmoPerFire=1
ShakeRotMag=(X=50.000000,Y=50.000000,Z=400.000000)
ShakeRotTime=5.000000
ShakeOffsetTime=3.000000
}

View file

@ -0,0 +1,4 @@
class NiceBoomStickAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdKar' mShellCaseEmitterClass=Class'KFMod.KFShotgunShellSpewer' MovementAnims(0)="JogF_HuntingShotgun" MovementAnims(1)="JogB_HuntingShotgun" MovementAnims(2)="JogL_HuntingShotgun" MovementAnims(3)="JogR_HuntingShotgun" TurnLeftAnim="TurnL_HuntingShotgun" TurnRightAnim="TurnR_HuntingShotgun" CrouchAnims(0)="CHwalkF_HuntingShotgun" CrouchAnims(1)="CHwalkB_HuntingShotgun" CrouchAnims(2)="CHwalkL_HuntingShotgun" CrouchAnims(3)="CHwalkR_HuntingShotgun" WalkAnims(0)="WalkF_HuntingShotgun" WalkAnims(1)="WalkB_HuntingShotgun" WalkAnims(2)="WalkL_HuntingShotgun" WalkAnims(3)="WalkR_HuntingShotgun" CrouchTurnRightAnim="CH_TurnR_HuntingShotgun" CrouchTurnLeftAnim="CH_TurnL_HuntingShotgun" IdleCrouchAnim="CHIdle_HuntingShotgun" IdleWeaponAnim="Idle_HuntingShotgun" IdleRestAnim="Idle_HuntingShotgun" IdleChatAnim="Idle_HuntingShotgun" IdleHeavyAnim="Idle_HuntingShotgun" IdleRifleAnim="Idle_HuntingShotgun" FireAnims(0)="Fire_HuntingShotgun" FireAnims(1)="Fire_HuntingShotgun" FireAnims(2)="Fire_HuntingShotgun" FireAnims(3)="Fire_HuntingShotgun" FireAltAnims(0)="Fire_HuntingShotgun" FireAltAnims(1)="Fire_HuntingShotgun" FireAltAnims(2)="Fire_HuntingShotgun" FireAltAnims(3)="Fire_HuntingShotgun" FireCrouchAnims(0)="CHFire_HuntingShotgun" FireCrouchAnims(1)="CHFire_HuntingShotgun" FireCrouchAnims(2)="CHFire_HuntingShotgun" FireCrouchAnims(3)="CHFire_HuntingShotgun" FireCrouchAltAnims(0)="CHFire_HuntingShotgun" FireCrouchAltAnims(1)="CHFire_HuntingShotgun" FireCrouchAltAnims(2)="CHFire_HuntingShotgun" FireCrouchAltAnims(3)="CHFire_HuntingShotgun" HitAnims(0)="HitF_HuntingShotgun" HitAnims(1)="HitB_HuntingShotgun" HitAnims(2)="HitL_HuntingShotgun" HitAnims(3)="HitR_HuntingShotgun" PostFireBlendStandAnim="Blend_HuntingShotgun" PostFireBlendCrouchAnim="CHBlend_HuntingShotgun" MeshRef="KF_Weapons3rd_Trip.HuntingShot_3rd"
}

View file

@ -0,0 +1,62 @@
class NiceBoomStickFire extends NiceShotgunFire;
var Emitter Flash2Emitter;
var name MuzzleBoneLeft;
var name MuzzleBoneRight;
simulated function InitEffects(){
if((Level.NetMode == NM_DedicatedServer) || (AIController(Instigator.Controller) != none))
return;
if((FlashEmitterClass != none) && ((FlashEmitter == none) || FlashEmitter.bDeleteMe)){
FlashEmitter = Weapon.Spawn(FlashEmitterClass);
Weapon.AttachToBone(FlashEmitter, MuzzleBoneLeft);
}
if((FlashEmitterClass != none) && ((Flash2Emitter == none) || Flash2Emitter.bDeleteMe)){
Flash2Emitter = Weapon.Spawn(FlashEmitterClass);
Weapon.AttachToBone(Flash2Emitter, MuzzleBoneRight);
}
if((SmokeEmitterClass != none) && ((SmokeEmitter == none) || SmokeEmitter.bDeleteMe))
SmokeEmitter = Weapon.Spawn(SmokeEmitterClass);
}
simulated function DestroyEffects(){
super.DestroyEffects();
if(Flash2Emitter != none)
Flash2Emitter.Destroy();
}//MEANTODO
/*function FlashMuzzleFlash(){
if(currentContext.sourceWeapon == none)
return;
if(currentContext.sourceWeapon.MagAmmoRemainingClient == 2){
if(Flash2Emitter != none)
Flash2Emitter.Trigger(Weapon, Instigator);
}
else if(FlashEmitter != none)
FlashEmitter.Trigger(Weapon, Instigator);
}*/
defaultproperties
{
MuzzleBoneLeft="Tip_Left"
MuzzleBoneRight="Tip_Right"
FireIncompleteAnim="Fire_Last"
FireIncompleteAimedAnim="Fire_Last_Iron"
bCanFireIncomplete=True
ProjPerFire=10
KickMomentum=(X=-105.000000,Z=55.000000)
FireAimedAnim="Fire_Both_Iron"
RecoilRate=0.070000
maxVerticalRecoilAngle=3200
FireSoundRef="KF_DoubleSGSnd.2Barrel_Fire_Dual"
StereoFireSoundRef="KF_DoubleSGSnd.2Barrel_Fire_DualST"
NoAmmoSoundRef="KF_DoubleSGSnd.2Barrel_DryFire"
DamageType=Class'NicePack.NiceDamTypeDBShotgun'
DamageMax=63
TransientSoundVolume=1.900000
FireAnim="Fire_Both"
FireRate=0.000000
AmmoClass=Class'NicePack.NiceDBShotgunAmmo'
AmmoPerFire=2
ShakeRotMag=(X=75.000000,Y=75.000000,Z=600.000000)
ShakeRotTime=6.000000
ShakeOffsetTime=3.500000
BotRefireRate=2.500000
aimerror=2.000000
Spread=3000.000000
}

View file

@ -0,0 +1,5 @@
class NiceBoomStickPickup extends NiceWeaponPickup;
var int SingleShotCount;
defaultproperties
{ cost=500 BuyClipSize=2 PowerValue=90 SpeedValue=30 RangeValue=12 Description="A double barreled shotgun used by big game hunters." ItemName="Hunting Shotgun" ItemShortName="Hunting Shotgun" AmmoItemName="12-gauge Hunting shells" CorrespondingPerkIndex=1 EquipmentCategoryID=3 InventoryType=Class'NicePack.NiceBoomStick' PickupMessage="You got the Hunting Shotgun" PickupSound=Sound'KF_DoubleSGSnd.2Barrel_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups_Trip.Shotgun.boomstick_pickup' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,5 @@
class NiceDBShotgunAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceBoomStickPickup' AmmoPickupAmount=6 MaxAmmo=64 InitialAmount=16 PickupClass=Class'NicePack.NiceDBShotgunAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500) ItemName="Shotgun Ammo"
}

View file

@ -0,0 +1,4 @@
class NiceDBShotgunAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=6 InventoryType=Class'NicePack.NiceDBShotgunAmmo' PickupMessage="12 Gauge Premium Slugs" StaticMesh=None
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeDBShotgun extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ MaxPenetrations=4 MediumZedPenDmgReduction=1.000000 PenDmgReduction=0.800000 bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceBoomStick' DeathString="%k killed %o (Hunting shotgun)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeKSGShotgun extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ MaxPenetrations=3 BigZedPenDmgReduction=0.000000 MediumZedPenDmgReduction=0.250000 PenDmgReduction=0.900000 bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceKSGShotgun' DeathString="%k killed %o (HSG Shotgun)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,4 @@
class NiceKSGAltFire extends NiceKSGFire;
defaultproperties
{ ProjPerFire=18 DamageMax=19 bWaitForRelease=False FireAnimRate=1.000000 FireRate=0.820000 Spread=1500.000000
}

View file

@ -0,0 +1,5 @@
class NiceKSGAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceKSGPickup' AmmoPickupAmount=12 MaxAmmo=84 InitialAmount=15 PickupClass=Class'NicePack.NiceKSGAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceKSGAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=12 InventoryType=Class'KFMod.ShotgunAmmo' PickupMessage="12-Gauge Drum" StaticMesh=None
}

View file

@ -0,0 +1,4 @@
class NiceKSGAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdKar' mShellCaseEmitterClass=Class'KFMod.KFShotgunShellSpewer' MovementAnims(0)="JogF_MP5" MovementAnims(1)="JogB_MP5" MovementAnims(2)="JogL_MP5" MovementAnims(3)="JogR_MP5" TurnLeftAnim="TurnL_MP5" TurnRightAnim="TurnR_MP5" CrouchAnims(0)="CHWalkF_MP5" CrouchAnims(1)="CHWalkB_MP5" CrouchAnims(2)="CHWalkL_MP5" CrouchAnims(3)="CHWalkR_MP5" WalkAnims(0)="WalkF_MP5" WalkAnims(1)="WalkB_MP5" WalkAnims(2)="WalkL_MP5" WalkAnims(3)="WalkR_MP5" CrouchTurnRightAnim="CH_TurnR_MP5" CrouchTurnLeftAnim="CH_TurnL_MP5" IdleCrouchAnim="CHIdle_MP5" IdleWeaponAnim="Idle_MP5" IdleRestAnim="Idle_MP5" IdleChatAnim="Idle_MP5" IdleHeavyAnim="Idle_MP5" IdleRifleAnim="Idle_MP5" FireAnims(0)="Fire_KSG" FireAnims(1)="Fire_KSG" FireAnims(2)="Fire_KSG" FireAnims(3)="Fire_KSG" FireAltAnims(0)="Fire_KSG" FireAltAnims(1)="Fire_KSG" FireAltAnims(2)="Fire_KSG" FireAltAnims(3)="Fire_KSG" FireCrouchAnims(0)="CHFire_KSG" FireCrouchAnims(1)="CHFire_KSG" FireCrouchAnims(2)="CHFire_KSG" FireCrouchAnims(3)="CHFire_KSG" FireCrouchAltAnims(0)="CHFire_KSG" FireCrouchAltAnims(1)="CHFire_KSG" FireCrouchAltAnims(2)="CHFire_KSG" FireCrouchAltAnims(3)="CHFire_KSG" HitAnims(0)="HitF_MP5" HitAnims(1)="HitB_MP5" HitAnims(2)="HitL_MP5" HitAnims(3)="HitR_MP5" PostFireBlendStandAnim="Blend_MP5" PostFireBlendCrouchAnim="CHBlend_MP5" MeshRef="KF_Weapons3rd4_Trip.KSG_3rd"
}

View file

@ -0,0 +1,4 @@
class NiceKSGFire extends NiceShotgunFire;
defaultproperties
{ ProjPerFire=12 maxVerticalRecoilAngle=1000 maxHorizontalRecoilAngle=500 ShellEjectClass=Class'KFMod.KSGShellEject' ShellEjectBoneName="Shell_eject" FireSoundRef="KF_KSGSnd.KSG_Fire_M" StereoFireSoundRef="KF_KSGSnd.KSG_Fire_S" NoAmmoSoundRef="KF_AA12Snd.AA12_DryFire" DamageType=Class'NicePack.NiceDamTypeKSGShotgun' DamageMax=25 FireAnimRate=0.869565 FireRate=0.943000 AmmoClass=Class'NicePack.NiceKSGAmmo' BotRefireRate=0.250000 Spread=1000.000000
}

View file

@ -0,0 +1,4 @@
class NiceKSGPickup extends NiceWeaponPickup;
defaultproperties
{ Weight=7.000000 cost=500 AmmoCost=15 BuyClipSize=12 PowerValue=70 SpeedValue=50 RangeValue=30 Description="An advanced Horzine prototype tactical shotgun. Features a large capacity ammo magazine and selectable tight/wide spread fire modes." ItemName="HSG-1 Shotgun" ItemShortName="HSG-1 Shotgun" AmmoItemName="12-gauge mag" CorrespondingPerkIndex=1 EquipmentCategoryID=3 VariantClasses(0)=Class'KFMod.NeonKSGPickup' InventoryType=Class'NicePack.NiceKSGShotgun' PickupMessage="You got the Horzine HSG-1 shotgun" PickupSound=Sound'KF_KSGSnd.KSG_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups4_Trip.Shotguns.KSG_Pickup' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,4 @@
class NiceKSGShotgun extends NiceWeapon;
defaultproperties
{ reloadPreEndFrame=0.126000 reloadEndFrame=0.650000 reloadChargeEndFrame=0.850000 reloadMagStartFrame=0.316000 reloadChargeStartFrame=0.820000 activeSlowdown=0.800000 activeSpeedup=1.300000 ForceZoomOutOnFireTime=0.010000 MagCapacity=12 ReloadRate=3.160000 ReloadAnim="Reload" ReloadAnimRate=1.000000 WeaponReloadAnim="Reload_KSG" Weight=7.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_KSG' bIsTier2Weapon=True MeshRef="KF_Wep_KSG_Shotgun.KSG_Shotgun" SkinRefs(0)="KF_Weapons5_Trip_T.Weapons.KSG_SHDR" SelectSoundRef="KF_KSGSnd.KSG_Select" HudImageRef="KillingFloor2HUD.WeaponSelect.KSG_unselected" SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.KSG" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceKSGFire' FireModeClass(1)=Class'NicePack.NiceKSGAltFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.550000 CurrentRating=0.550000 bShowChargingBar=True Description="An advanced Horzine prototype tactical shotgun. Features a large capacity ammo magazine and selectable tight/wide spread fire modes." EffectOffset=(X=100.000000,Y=25.000000,Z=-10.000000) DisplayFOV=65.000000 Priority=100 InventoryGroup=3 GroupOffset=12 PickupClass=Class'NicePack.NiceKSGPickup' PlayerViewOffset=(X=15.000000,Y=20.000000,Z=-7.000000) BobDamping=4.500000 AttachmentClass=Class'NicePack.NiceKSGAttachment' IconCoords=(X1=245,Y1=39,X2=329,Y2=79) ItemName="HSG-1 Shotgun" TransientSoundVolume=1.250000
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeMoss12Z extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ MaxPenetrations=3 bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceMoss12Z' DeathString="%k killed %o (Moss 12)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,5 @@
class NiceMoss12Ammo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceMoss12Pickup' AmmoPickupAmount=6 MaxAmmo=60 InitialAmount=16 PickupClass=Class'NicePack.NiceMoss12AmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceMoss12AmmoPickup extends KFAmmoPickup;
defaultproperties
{ AmmoAmount=6 InventoryType=Class'NicePack.NiceMoss12Ammo' PickupMessage="12-Gauge Shells" StaticMesh=None
}

View file

@ -0,0 +1,9 @@
class NiceMoss12Attachment extends NiceAttachment;
simulated function DoFlashEmitter(){
if (mMuzFlash3rd == none){ mMuzFlash3rd = Spawn(mMuzFlashClass); AttachToBone(mMuzFlash3rd, 'tip');
}
if(mMuzFlash3rd != none) mMuzFlash3rd.SpawnParticle(1);
}
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdKar' mShellCaseEmitterClass=Class'KFMod.KFShotgunShellSpewer' MovementAnims(0)="JogF_Shotgun" MovementAnims(1)="JogB_Shotgun" MovementAnims(2)="JogL_Shotgun" MovementAnims(3)="JogR_Shotgun" TurnLeftAnim="TurnL_Shotgun" TurnRightAnim="TurnR_Shotgun" CrouchAnims(0)="CHwalkF_Shotgun" CrouchAnims(1)="CHwalkB_Shotgun" CrouchAnims(2)="CHwalkL_Shotgun" CrouchAnims(3)="CHwalkR_Shotgun" WalkAnims(0)="WalkF_Shotgun" WalkAnims(1)="WalkB_Shotgun" WalkAnims(2)="WalkL_Shotgun" WalkAnims(3)="WalkR_Shotgun" CrouchTurnRightAnim="CH_TurnR_Shotgun" CrouchTurnLeftAnim="CH_TurnL_Shotgun" IdleCrouchAnim="CHIdle_Shotgun" IdleWeaponAnim="Idle_Shotgun" IdleRestAnim="Idle_Shotgun" IdleChatAnim="Idle_Shotgun" IdleHeavyAnim="Idle_Shotgun" IdleRifleAnim="Idle_Shotgun" FireAnims(0)="Fire_Shotgun" FireAnims(1)="Fire_Shotgun" FireAnims(2)="Fire_Shotgun" FireAnims(3)="Fire_Shotgun" FireAltAnims(0)="Fire_Shotgun" FireAltAnims(1)="Fire_Shotgun" FireAltAnims(2)="Fire_Shotgun" FireAltAnims(3)="Fire_Shotgun" FireCrouchAnims(0)="CHFire_Shotgun" FireCrouchAnims(1)="CHFire_Shotgun" FireCrouchAnims(2)="CHFire_Shotgun" FireCrouchAnims(3)="CHFire_Shotgun" FireCrouchAltAnims(0)="CHFire_Shotgun" FireCrouchAltAnims(1)="CHFire_Shotgun" FireCrouchAltAnims(2)="CHFire_Shotgun" FireCrouchAltAnims(3)="CHFire_Shotgun" HitAnims(0)="HitF_Shotgun" HitAnims(1)="HitB_Shotgun" HitAnims(2)="HitL_Shotgun" HitAnims(3)="HitR_Shotgun" PostFireBlendStandAnim="Blend_Shotgun" PostFireBlendCrouchAnim="CHBlend_Shotgun" MeshRef="NicePackA.Moss12_3rd"
}

View file

@ -0,0 +1,4 @@
class NiceMoss12Fire extends NiceShotgunFire;
defaultproperties
{ ProjectileSpeed=3500.000000 FireSoundRef="NicePackSnd.SG_Fire" StereoFireSoundRef="NicePackSnd.SG_FireST" NoAmmoSoundRef="NicePackSnd.SG_DryFire" DamageType=Class'NicePack.NiceDamTypeMoss12Z' DamageMax=25 AmmoClass=Class'NicePack.NiceMoss12Ammo'
}

View file

@ -0,0 +1,4 @@
class NiceMoss12Pickup extends NiceWeaponPickup;
defaultproperties
{ bBackupWeapon=True Weight=6.000000 cost=200 AmmoCost=15 BuyClipSize=6 PowerValue=70 SpeedValue=40 RangeValue=15 Description="Lightened pump shotgun model. Shoots weaker rounds, but is easy to reload." ItemName="Moss 12" ItemShortName="Moss 12" AmmoItemName="12-gauge shells" CorrespondingPerkIndex=1 EquipmentCategoryID=2 InventoryType=Class'NicePack.NiceMoss12Z' PickupMessage="You got the Moss 12" PickupSound=Sound'NicePackSnd.Moss12.SG_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'NicePackSM.Moss12.KF_Moss12' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,15 @@
class NiceMoss12Z extends NiceWeapon;
var() float ThrowGrenadeAnimRate;
var() name ThrowGrenadeAnim;
simulated function fillSubReloadStages(){
// Loading 8 shells during 175 frames tops, with first shell loaded at frame 16, with 17 frames between load moments
generateReloadStages(8, 175, 16, 17);
reloadStages[3] = 69.0 / 175.0;
reloadStages[4] = 87.0 / 175.0;
reloadStages[5] = 105.0 / 175.0;
reloadStages[6] = 123.0 / 175.0;
reloadStages[7] = 140.0 / 175.0;
}
defaultproperties
{ reloadType=RTYPE_SINGLE FirstPersonFlashlightOffset=(X=-25.000000,Y=-18.000000,Z=8.000000) MagCapacity=6 ReloadRate=0.444444 ReloadAnim="Reload" ReloadAnimRate=1.200000 bHoldToReload=True WeaponReloadAnim="Reload_Shotgun" Weight=6.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 SleeveNum=0 TraderInfoTexture=Texture'NicePackT.Moss12.Trader_Moss12' MeshRef="NicePackA.Moss12Weapon" SkinRefs(0)="NicePackT.Moss12.Moss12_2048x2048" SelectSoundRef="NicePackSnd.SG_Select" HudImageRef="NicePackT.Moss12.Trader_Moss12_unselected" SelectedHudImageRef="NicePackT.Moss12.Trader_Moss12_selected" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceMoss12Fire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" AIRating=0.600000 CurrentRating=0.600000 Description="Lightened pump shotgun model. Shoots weaker rounds, but is easy to reload." DisplayFOV=65.000000 Priority=15 InventoryGroup=3 GroupOffset=1 PickupClass=Class'NicePack.NiceMoss12Pickup' PlayerViewOffset=(X=20.000000,Y=18.750000,Z=-7.500000) BobDamping=7.000000 AttachmentClass=Class'NicePack.NiceMoss12Attachment' IconCoords=(X1=169,Y1=172,X2=245,Y2=208) ItemName="Moss 12" TransientSoundVolume=1.000000
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeNailGun extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ MaxPenetrations=3 bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceNailGun' DeathString="%k killed %o (Nail)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,4 @@
class NiceNail extends NiceShotgunPellet;
defaultproperties
{ bDisableComplexMovement=False movementAcceleration=(Z=-300.000000) bShouldBounce=True trailXClass=Class'KFMod.NailGunTracer' regularImpact=(bPlayROEffect=False,decalClass=Class'KFMod.NailGunDecal',EmitterClass=Class'ROEffects.ROBulletHitMetalEffect',emitterShiftWall=20.000000,emitterShiftPawn=20.000000,noiseRef="ProjectileSounds.Bullets.Impact_Metal",noiseVolume=1.000000) StaticMeshRef="EffectsSM.Weapons.Vlad_9000_Nail"
}

View file

@ -0,0 +1,7 @@
class NiceNailGun extends NiceWeapon;
simulated function bool AltFireCanForceInterruptReload(){
return GetMagazineAmmo() > 0;
}
defaultproperties
{ reloadPreEndFrame=0.178000 reloadEndFrame=0.700000 reloadChargeEndFrame=-1.000000 reloadMagStartFrame=0.278000 reloadChargeStartFrame=-1.000000 FirstPersonFlashlightOffset=(X=-20.000000,Y=-22.000000,Z=8.000000) MagCapacity=42 ReloadRate=2.600000 ReloadAnim="Reload" ReloadAnimRate=1.000000 WeaponReloadAnim="Reload_Vlad9000" Weight=5.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_Vlad9000' bIsTier2Weapon=True MeshRef="KF_Wep_Vlad9000.Vlad9000" SkinRefs(0)="KF_Weapons8_Trip_T.Weapons.Vlad_9000_cmb" SelectSoundRef="KF_NailShotgun.KF_NailShotgun_Pickup" HudImageRef="KillingFloor2HUD.WeaponSelect.Vlad9000_unselected" SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.Vlad9000" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceNailGunFire' FireModeClass(1)=Class'NicePack.NiceNailGunAltFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.550000 CurrentRating=0.550000 bShowChargingBar=True Description="The Black and Wrecker Vlad 9000 nail gun. Designed for putting barns together. Or nailing Zeds to them." EffectOffset=(X=100.000000,Y=25.000000,Z=-10.000000) DisplayFOV=65.000000 Priority=150 InventoryGroup=3 GroupOffset=15 PickupClass=Class'NicePack.NiceNailGunPickup' PlayerViewOffset=(X=25.000000,Y=20.000000,Z=-10.000000) BobDamping=4.500000 AttachmentClass=Class'NicePack.NiceNailGunAttachment' IconCoords=(X1=245,Y1=39,X2=329,Y2=79) ItemName="Vlad the Impaler" TransientSoundVolume=1.250000
}

View file

@ -0,0 +1,4 @@
class NiceNailGunAltFire extends NiceNailGunFire;
defaultproperties
{ bCanFireIncomplete=True ProjectileSpeed=3500.000000 AmmoPerFire=7 SpreadStyle=SS_Random
}

View file

@ -0,0 +1,5 @@
class NiceNailGunAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceNailGunPickup' AmmoPickupAmount=42 MaxAmmo=210 InitialAmount=105 IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceNailGunAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdNailGun' TurnLeftAnim="TurnL_Bullpup" TurnRightAnim="TurnR_Bullpup" WalkAnims(0)="WalkF_Bullpup" WalkAnims(1)="WalkB_Bullpup" WalkAnims(2)="WalkL_Bullpup" WalkAnims(3)="WalkR_Bullpup" CrouchTurnRightAnim="CH_TurnR_Bullpup" CrouchTurnLeftAnim="CH_TurnL_Bullpup" MeshRef="KF_Weapons3rd5_Trip.Vlad9000_3rd"
}

View file

@ -0,0 +1,7 @@
class NiceNailGunFire extends NiceShotgunFire;
simulated function bool ShouldBounce(){
return true;
}
defaultproperties
{ ProjPerFire=1 KickMomentum=(X=-25.000000,Z=0.000000) ProjectileSpeed=9260.0 bShouldBounce=True bCausePain=True bulletClass=Class'NicePack.NiceNail' maxVerticalRecoilAngle=1250 maxHorizontalRecoilAngle=750 bRandomPitchFireSound=True FireSoundRef="KF_NailShotgun.NailShotgun_Fire_Single_M" StereoFireSoundRef="KF_NailShotgun.NailShotgun_Fire_Single_S" NoAmmoSoundRef="KF_NailShotgun.KF_NailShotgun_Dryfire" DamageType=Class'NicePack.NiceDamTypeNailGun' DamageMax=66 FireAnimRate=1.250000 FireRate=0.400000 AmmoClass=Class'NicePack.NiceNailGunAmmo' ShakeRotTime=3.000000 ShakeOffsetTime=2.000000 BotRefireRate=0.500000 FlashEmitterClass=Class'ROEffects.MuzzleFlash1stNailGun' SpreadStyle=SS_None
}

View file

@ -0,0 +1,4 @@
class NiceNailGunPickup extends NiceWeaponPickup;
defaultproperties
{ Weight=8.000000 cost=250 AmmoCost=30 BuyClipSize=42 PowerValue=70 SpeedValue=55 RangeValue=25 Description="The Black and Wrecker Vlad 9000 nail gun. Designed for putting barns together. Or nailing Zeds to them." ItemName="Vlad the Impaler" ItemShortName="Vlad 9000" AmmoItemName="Nails" CorrespondingPerkIndex=1 EquipmentCategoryID=3 InventoryType=Class'NicePack.NiceNailGun' PickupMessage="You got the Vlad 9000." PickupSound=Sound'KF_NailShotgun.Handling.KF_NailShotgun_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups5_Trip.Rifles.Vlad9000_Pickup' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,9 @@
class NiceDamTypeShotgun extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ /*MaxPenetrations=3 bIsPowerWeapon=True*/
MaxPenetrations=4
MediumZedPenDmgReduction=1.000000
PenDmgReduction=0.800000
bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceShotgun' DeathString="%k killed %o (Shotgun)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,14 @@
class NiceShotgun extends NiceWeapon;
simulated function fillSubReloadStages(){
// Loading 8 shells during 173 frames tops, with first shell loaded at frame 15, with 18 frames between load moments
generateReloadStages(8, 173, 15, 18);
// Make corrections, based on notify sound positioning
/*reloadStages[0] = 16.0 / 173.0;
reloadStages[2] = 50.0 / 173.0;
reloadStages[7] = 140.0 / 173.0;*/
}
defaultproperties
{ bChangeClipIcon=True hudClipTexture=Texture'KillingFloorHUD.HUD.Hud_Single_Bullet' reloadType=RTYPE_SINGLE FirstPersonFlashlightOffset=(X=-25.000000,Y=-18.000000,Z=8.000000) ForceZoomOutOnFireTime=0.010000 MagCapacity=8 ReloadRate=0.666667 ReloadAnim="Reload" ReloadAnimRate=1.000000 bHoldToReload=True WeaponReloadAnim="Reload_Shotgun" Weight=4.000000 bTorchEnabled=True bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 TraderInfoTexture=Texture'KillingFloorHUD.Trader_Weapon_Images.Trader_Combat_Shotgun' MeshRef="KF_Weapons_Trip.Shotgun_Trip" SkinRefs(0)="KF_Weapons_Trip_T.Shotguns.shotgun_cmb" SelectSoundRef="KF_PumpSGSnd.SG_Select" HudImageRef="KillingFloorHUD.WeaponSelect.combat_shotgun_unselected" SelectedHudImageRef="KillingFloorHUD.WeaponSelect.combat_shotgun" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceShotgunFire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" AIRating=0.600000 CurrentRating=0.600000 bShowChargingBar=True Description="A rugged tactical pump action shotgun common to police divisions the world over. It accepts a maximum of 8 shells and can fire in rapid succession." DisplayFOV=65.000000 Priority=135 InventoryGroup=3 GroupOffset=2 PickupClass=Class'NicePack.NiceShotgunPickup' PlayerViewOffset=(X=20.000000,Y=18.750000,Z=-7.500000) BobDamping=7.000000 AttachmentClass=Class'NicePack.NiceShotgunAttachment' IconCoords=(X1=169,Y1=172,X2=245,Y2=208) ItemName="Shotgun" TransientSoundVolume=1.000000
}

View file

@ -0,0 +1,5 @@
class NiceShotgunAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceShotgunPickup' AmmoPickupAmount=4 MaxAmmo=32 InitialAmount=8 PickupClass=Class'NicePack.NiceShotgunAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceShotgunAmmoPickup extends KFAmmoPickup;
defaultproperties
{ AmmoAmount=4 InventoryType=Class'NicePack.NiceShotgunAmmo' PickupMessage="12-Gauge Shells" StaticMesh=None
}

View file

@ -0,0 +1,29 @@
class NiceShotgunAttachment extends NiceAttachment;
var Actor TacShine;
var Effects TacShineCorona;
var bool bBeamEnabled;
simulated event ThirdPersonEffects(){
if(FiringMode == 1) return;
super.ThirdPersonEffects();
}
simulated function Destroyed()
{
if(TacShineCorona != none) TacShineCorona.Destroy();
if (TacShine != none) TacShine.Destroy();
super.Destroyed();
}
simulated function UpdateTacBeam( float Dist ){
local vector Sc;
if(!bBeamEnabled){ if(TacShine == none){ TacShine = Spawn(Class'Single'.Default.TacShineClass,Owner,,,); AttachToBone(TacShine,'FlashLight'); TacShine.RemoteRole = ROLE_none; } else TacShine.bHidden = False; if(TacShineCorona == none){ TacShineCorona = Spawn(class 'KFTacLightCorona',Owner,,,); AttachToBone(TacShineCorona,'FlashLight'); TacShineCorona.RemoteRole = ROLE_none; } TacShineCorona.bHidden = False; bBeamEnabled = True;
}
Sc = TacShine.DrawScale3D;
Sc.Y = FClamp(Dist/90.f,0.02,1.f);
if(TacShine.DrawScale3D != Sc) TacShine.SetDrawScale3D(Sc);
}
simulated function TacBeamGone(){
if(bBeamEnabled){ if(TacShine != none) TacShine.bHidden = True; if(TacShineCorona != none) TacShineCorona.bHidden = True; bBeamEnabled = False;
}
}
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdKar' mShellCaseEmitterClass=Class'KFMod.KFShotgunShellSpewer' MovementAnims(0)="JogF_Shotgun" MovementAnims(1)="JogB_Shotgun" MovementAnims(2)="JogL_Shotgun" MovementAnims(3)="JogR_Shotgun" TurnLeftAnim="TurnL_Shotgun" TurnRightAnim="TurnR_Shotgun" CrouchAnims(0)="CHwalkF_Shotgun" CrouchAnims(1)="CHwalkB_Shotgun" CrouchAnims(2)="CHwalkL_Shotgun" CrouchAnims(3)="CHwalkR_Shotgun" WalkAnims(0)="WalkF_Shotgun" WalkAnims(1)="WalkB_Shotgun" WalkAnims(2)="WalkL_Shotgun" WalkAnims(3)="WalkR_Shotgun" CrouchTurnRightAnim="CH_TurnR_Shotgun" CrouchTurnLeftAnim="CH_TurnL_Shotgun" IdleCrouchAnim="CHIdle_Shotgun" IdleWeaponAnim="Idle_Shotgun" IdleRestAnim="Idle_Shotgun" IdleChatAnim="Idle_Shotgun" IdleHeavyAnim="Idle_Shotgun" IdleRifleAnim="Idle_Shotgun" FireAnims(0)="Fire_Shotgun" FireAnims(1)="Fire_Shotgun" FireAnims(2)="Fire_Shotgun" FireAnims(3)="Fire_Shotgun" FireAltAnims(0)="Fire_Shotgun" FireAltAnims(1)="Fire_Shotgun" FireAltAnims(2)="Fire_Shotgun" FireAltAnims(3)="Fire_Shotgun" FireCrouchAnims(0)="CHFire_Shotgun" FireCrouchAnims(1)="CHFire_Shotgun" FireCrouchAnims(2)="CHFire_Shotgun" FireCrouchAnims(3)="CHFire_Shotgun" FireCrouchAltAnims(0)="CHFire_Shotgun" FireCrouchAltAnims(1)="CHFire_Shotgun" FireCrouchAltAnims(2)="CHFire_Shotgun" FireCrouchAltAnims(3)="CHFire_Shotgun" HitAnims(0)="HitF_Shotgun" HitAnims(1)="HitB_Shotgun" HitAnims(2)="HitL_Shotgun" HitAnims(3)="HitR_Shotgun" PostFireBlendStandAnim="Blend_Shotgun" PostFireBlendCrouchAnim="CHBlend_Shotgun" MeshRef="KF_Weapons3rd_Trip.Shotgun_3rd"
}

View file

@ -0,0 +1,4 @@
class NiceShotgunFire extends NiceFire;
defaultproperties
{ bProjectileFire=True ProjPerFire=10//7 ProjSpawnOffset=(X=25.000000,Y=5.000000,Z=-6.000000) EffectiveRange=700.000000 KickMomentum=(X=-85.000000,Z=15.000000) LowGravKickMomentumScale=10.000000 ProjectileSpeed=18200.000000 bulletClass=Class'NicePack.NiceShotgunPellet' FireAimedAnim="Fire_Iron" RecoilRate=0.050000 maxVerticalRecoilAngle=1500 maxHorizontalRecoilAngle=900 bRandomPitchFireSound=False FireSoundRef="KF_PumpSGSnd.SG_Fire" StereoFireSoundRef="KF_PumpSGSnd.SG_FireST" NoAmmoSoundRef="KF_PumpSGSnd.SG_DryFire" DamageType=Class'NicePack.NiceDamTypeShotgun' DamageMax=63//56 Momentum=50000.000000 bWaitForRelease=True bAttachSmokeEmitter=True TransientSoundVolume=2.000000 TransientSoundRadius=500.000000 FireEndAnim= FireAnimRate=0.950000 FireForce="FlakCannonFire" FireRate=0.965000 AmmoClass=Class'NicePack.NiceShotgunAmmo' ShakeRotMag=(X=50.000000,Y=50.000000,Z=400.000000) ShakeRotRate=(X=12500.000000,Y=12500.000000,Z=12500.000000) ShakeRotTime=5.000000 ShakeOffsetMag=(X=6.000000,Y=2.000000,Z=10.000000) ShakeOffsetRate=(X=1000.000000,Y=1000.000000,Z=1000.000000) ShakeOffsetTime=3.000000 BotRefireRate=1.500000 FlashEmitterClass=Class'ROEffects.MuzzleFlash1stKar' aimerror=1.000000 Spread=3000.0//1125.000000 SpreadStyle=SS_Random
}

View file

@ -0,0 +1,4 @@
class NiceShotgunPellet extends NiceBullet;
defaultproperties
{ movementAcceleration=(Z=-1200.000000) regularImpact=(decalClass=Class'KFMod.ShotgunDecal')
}

View file

@ -0,0 +1,5 @@
class NiceShotgunPickup extends NiceWeaponPickup;
defaultproperties
{ bBackupWeapon=True Weight=6.000000 cost=200 AmmoCost=15 BuyClipSize=8 PowerValue=70 SpeedValue=40 RangeValue=15 Description="A rugged tactical pump action shotgun common to police divisions the world over. It accepts a maximum of 8 shells and can fire in rapid succession." ItemName="Shotgun" ItemShortName="Shotgun" AmmoItemName="12-gauge shells" CorrespondingPerkIndex=1 EquipmentCategoryID=2 VariantClasses(0)=Class'KFMod.CamoShotgunPickup' InventoryType=Class'NicePack.NiceShotgun' PickupMessage="You got the Shotgun" PickupSound=Sound'KF_PumpSGSnd.SG_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups_Trip.Shotgun.shotgun_pickup' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,4 @@
class NiceSaiga12c extends NiceWeapon;
defaultproperties
{ reloadPreEndFrame=0.250000 reloadEndFrame=0.525000 reloadChargeEndFrame=0.788000 reloadMagStartFrame=0.444000 reloadChargeStartFrame=0.596000 MagazineBone="wpn_mag" MagCapacity=8 ReloadRate=3.133000 ReloadAnim="Reload" ReloadAnimRate=1.000000 WeaponReloadAnim="Reload_AK47" bHasAimingMode=True IdleAimAnim="Iron_Idle" StandardDisplayFOV=65.000000 SleeveNum=2 TraderInfoTexture=Texture'ScrnWeaponPack_T.saiga.Saiga_Trader' bIsTier3Weapon=True MeshRef="ScrnWeaponPack_A.saigacmesh" SkinRefs(0)="ScrnWeaponPack_T.saiga.saiga" SkinRefs(1)="ScrnWeaponPack_T.saiga.saigaparts" SkinRefs(2)="KF_Weapons_Trip_T.hands.hands_1stP_military_cmb" SkinRefs(3)="ScrnWeaponPack_T.saiga.wpn_gilza1" SelectSoundRef="KF_PumpSGSnd.SG_Select" HudImageRef="ScrnWeaponPack_T.saiga.Saiga_Unselected" SelectedHudImageRef="ScrnWeaponPack_T.saiga.Saiga_selected" PlayerIronSightFOV=65.000000 ZoomedDisplayFOV=32.000000 FireModeClass(0)=Class'NicePack.NiceSaiga12cFire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.550000 CurrentRating=0.550000 Description="12-gauge combat shotgun, visually patterned after the Kalashnikov series of assault rifles. Shoots small amount of high-damage projectiles." EffectOffset=(X=100.000000,Y=25.000000,Z=-100.000000) DisplayFOV=65.000000 Priority=160 InventoryGroup=4 GroupOffset=10 PickupClass=Class'NicePack.NiceSaiga12cPickup' PlayerViewOffset=(X=10.000000,Y=8.000000,Z=-4.000000) BobDamping=4.000000 AttachmentClass=Class'NicePack.NiceSaiga12cAttachment' IconCoords=(X1=245,Y1=39,X2=329,Y2=79) ItemName="Saiga-12s" DrawScale=0.850000 TransientSoundVolume=1.250000
}

View file

@ -0,0 +1,5 @@
class NiceSaiga12cAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceSaiga12cPickup' AmmoPickupAmount=8 MaxAmmo=72 InitialAmount=18 PickupClass=Class'NicePack.NiceSaiga12cAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceSaiga12cAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=8 InventoryType=Class'NicePack.NiceSaiga12cAmmo' PickupMessage="12-gauge" StaticMesh=None
}

View file

@ -0,0 +1,4 @@
class NiceSaiga12cAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdMP' mShellCaseEmitterClass=Class'KFMod.KFShotgunShellSpewer' ShellEjectBoneName="wpn_scope" MovementAnims(0)="JogF_AK47" MovementAnims(1)="JogB_AK47" MovementAnims(2)="JogL_AK47" MovementAnims(3)="JogR_AK47" TurnLeftAnim="TurnL_AK47" TurnRightAnim="TurnR_AK47" CrouchAnims(0)="CHWalkF_AK47" CrouchAnims(1)="CHWalkB_AK47" CrouchAnims(2)="CHWalkL_AK47" CrouchAnims(3)="CHWalkR_AK47" WalkAnims(0)="WalkF_AK47" WalkAnims(1)="WalkB_AK47" WalkAnims(2)="WalkL_AK47" WalkAnims(3)="WalkR_AK47" CrouchTurnRightAnim="CH_TurnR_AK47" CrouchTurnLeftAnim="CH_TurnL_AK47" IdleCrouchAnim="CHIdle_AK47" IdleWeaponAnim="Idle_AK47" IdleRestAnim="Idle_AK47" IdleChatAnim="Idle_AK47" IdleHeavyAnim="Idle_AK47" IdleRifleAnim="Idle_AK47" FireAnims(0)="Fire_AK47" FireAnims(1)="Fire_AK47" FireAnims(2)="Fire_AK47" FireAnims(3)="Fire_AK47" FireAltAnims(0)="Fire_AK47" FireAltAnims(1)="Fire_AK47" FireAltAnims(2)="Fire_AK47" FireAltAnims(3)="Fire_AK47" FireCrouchAnims(0)="CHFire_AK47" FireCrouchAnims(1)="CHFire_AK47" FireCrouchAnims(2)="CHFire_AK47" FireCrouchAnims(3)="CHFire_AK47" FireCrouchAltAnims(0)="CHFire_AK47" FireCrouchAltAnims(1)="CHFire_AK47" FireCrouchAltAnims(2)="CHFire_AK47" FireCrouchAltAnims(3)="CHFire_AK47" HitAnims(0)="HitF_AK47" HitAnims(1)="HitB_AK47" HitAnims(2)="HitL_AK47" HitAnims(3)="HitR_AK47" PostFireBlendStandAnim="Blend_AK47" PostFireBlendCrouchAnim="CHBlend_AK47" MeshRef="ScrnWeaponPack_A.saigac3rd" bRapidFire=True bAltRapidFire=True SplashEffect=Class'ROEffects.BulletSplashEmitter' CullDistance=5000.000000 DrawScale=0.650000
}

View file

@ -0,0 +1,9 @@
class NiceSaiga12cFire extends NiceShotgunFire;
function InitEffects()
{
Super.InitEffects();
if(FlashEmitter != none) Weapon.AttachToBone(FlashEmitter, 'tip');
}
defaultproperties
{ ProjPerFire=4 KickMomentum=(X=-95.000000,Z=25.000000) ProjectileSpeed=3500.000000 FireAimedAnim="Fire" maxVerticalRecoilAngle=1300 maxHorizontalRecoilAngle=700 FireSoundRef="ScrnWeaponPack_SND.saiga.shot_mono" StereoFireSoundRef="ScrnWeaponPack_SND.saiga.shot_stereo" NoAmmoSoundRef="ScrnWeaponPack_SND.saiga.Saiga_empty" DamageType=Class'NicePack.NiceDamTypeSaiga12c' DamageMax=66 Momentum=60000.000000 bModeExclusive=False FireRate=0.600000 AmmoClass=Class'NicePack.NiceSaiga12cAmmo' BotRefireRate=0.250000 Spread=825.000000
}

View file

@ -0,0 +1,4 @@
class NiceSaiga12cPickup extends NiceWeaponPickup;
defaultproperties
{ AmmoCost=50 BuyClipSize=8 PowerValue=87 SpeedValue=45 RangeValue=20 Description="12-gauge combat shotgun, visually patterned after the Kalashnikov series of assault rifles. Shoots small amount of high-damage projectiles." ItemName="Saiga-12s" ItemShortName="Saiga-12s" AmmoItemName="12-gauge" CorrespondingPerkIndex=1 EquipmentCategoryID=3 InventoryType=Class'NicePack.NiceSaiga12c' PickupMessage="You've got Saiga-12s" PickupSound=Sound'KF_AA12Snd.AA12_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'ScrnWeaponPack_SM.saiga_sm' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeSpas extends NiceDamTypeShotgun
abstract;
defaultproperties
{ WeaponClass=Class'NicePack.NiceSpas' DeathString="%k killed %o (SPAS-12)."
}

View file

@ -0,0 +1,10 @@
class NiceSpas extends NiceWeapon;
simulated function fillSubReloadStages(){
// Loading 8 shells during 173 frames tops, with first shell loaded at frame 17, with 18 frames between load moments
generateReloadStages(8, 173, 17, 18);
}
defaultproperties
{ bChangeClipIcon=True hudClipTexture=Texture'KillingFloorHUD.HUD.Hud_Single_Bullet' reloadType=RTYPE_SINGLE ForceZoomOutOnFireTime=0.010000 MagCapacity=5 ReloadRate=0.666667 ReloadAnim="Reload" ReloadAnimRate=1.000000 bHoldToReload=True Weight=8.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 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'NicePack.NiceSpasFire' FireModeClass(1)=Class'NicePack.NiceSpasAltFire' PutDownAnim="PutDown" AIRating=0.600000 CurrentRating=0.600000 Description="The SPAS12 is a dual-mode shotgun, that can also be used for firing slugs." DisplayFOV=65.000000 Priority=135 InventoryGroup=3 GroupOffset=2 PickupClass=Class'NicePack.NiceSpasPickup' PlayerViewOffset=(X=20.000000,Y=18.750000,Z=-7.500000) BobDamping=7.000000 AttachmentClass=Class'NicePack.NiceSpasAttachment' IconCoords=(X1=169,Y1=172,X2=245,Y2=208) ItemName="SPAS-12" TransientSoundVolume=1.000000
}

View file

@ -0,0 +1,4 @@
class NiceSpasAltFire extends NiceSpasFire;
defaultproperties
{ maxVerticalRecoilAngle=300 maxHorizontalRecoilAngle=180 FireAnimRate=0.650000 FireRate=1.400000 Spread=0.000000
}

View file

@ -0,0 +1,5 @@
class NiceSpasAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceSpasPickup' AmmoPickupAmount=8 MaxAmmo=64 InitialAmount=16 PickupClass=Class'NicePack.NiceSpasAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceSpasAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=8 InventoryType=Class'NicePack.NiceSpasAmmo' PickupMessage="12-Gauge Shells" StaticMesh=None
}

View file

@ -0,0 +1,4 @@
class NiceSpasAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdKar' mShellCaseEmitterClass=Class'KFMod.KFShotgunShellSpewer' MovementAnims(0)="JogF_Shotgun" MovementAnims(1)="JogB_Shotgun" MovementAnims(2)="JogL_Shotgun" MovementAnims(3)="JogR_Shotgun" TurnLeftAnim="TurnL_Shotgun" TurnRightAnim="TurnR_Shotgun" CrouchAnims(0)="CHwalkF_Shotgun" CrouchAnims(1)="CHwalkB_Shotgun" CrouchAnims(2)="CHwalkL_Shotgun" CrouchAnims(3)="CHwalkR_Shotgun" WalkAnims(0)="WalkF_Shotgun" WalkAnims(1)="WalkB_Shotgun" WalkAnims(2)="WalkL_Shotgun" WalkAnims(3)="WalkR_Shotgun" CrouchTurnRightAnim="CH_TurnR_Shotgun" CrouchTurnLeftAnim="CH_TurnL_Shotgun" IdleCrouchAnim="CHIdle_Shotgun" IdleWeaponAnim="Idle_Shotgun" IdleRestAnim="Idle_Shotgun" IdleChatAnim="Idle_Shotgun" IdleHeavyAnim="Idle_Shotgun" IdleRifleAnim="Idle_Shotgun" FireAnims(0)="Fire_Shotgun" FireAnims(1)="Fire_Shotgun" FireAnims(2)="Fire_Shotgun" FireAnims(3)="Fire_Shotgun" FireAltAnims(0)="Fire_Shotgun" FireAltAnims(1)="Fire_Shotgun" FireAltAnims(2)="Fire_Shotgun" FireAltAnims(3)="Fire_Shotgun" FireCrouchAnims(0)="CHFire_Shotgun" FireCrouchAnims(1)="CHFire_Shotgun" FireCrouchAnims(2)="CHFire_Shotgun" FireCrouchAnims(3)="CHFire_Shotgun" FireCrouchAltAnims(0)="CHFire_Shotgun" FireCrouchAltAnims(1)="CHFire_Shotgun" FireCrouchAltAnims(2)="CHFire_Shotgun" FireCrouchAltAnims(3)="CHFire_Shotgun" HitAnims(0)="HitF_Shotgun" HitAnims(1)="HitB_Shotgun" HitAnims(2)="HitL_Shotgun" HitAnims(3)="HitR_Shotgun" PostFireBlendStandAnim="Blend_Shotgun" PostFireBlendCrouchAnim="CHBlend_Shotgun" MeshRef="ScrnWeaponPack_A.Spas12_3rd"
}

View file

@ -0,0 +1,4 @@
class NiceSpasFire extends NiceShotgunFire;
defaultproperties
{ DamageType=Class'NicePack.NiceDamTypeSpas' AmmoClass=Class'NicePack.NiceSpasAmmo'
}

View file

@ -0,0 +1,6 @@
class NiceSpasPickup extends NiceWeaponPickup;
defaultproperties
{
cost=750 Weight=8.000000 BuyClipSize=10 PowerValue=55 SpeedValue=40 RangeValue=17 Description="The SPAS12 is a dual-mode shotgun, that can also be used for firing slugs." ItemName="SPAS-12" ItemShortName="SPAS-12" AmmoItemName="12-gauge shells" CorrespondingPerkIndex=1 EquipmentCategoryID=2 InventoryType=Class'NicePack.NiceSpas' PickupMessage="You got the SPAS-12" PickupSound=Sound'KF_PumpSGSnd.SG_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'ScrnWeaponPack_SM.spas12_pickup' CollisionRadius=35.000000 CollisionHeight=5.000000
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeSPShotgun extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{ MaxPenetrations=5 PenDmgReduction=0.900000 bIsPowerWeapon=True WeaponClass=Class'NicePack.NiceSPAutoShotgun' DeathString="%k killed %o (M.C.Z. Thrower)." FemaleSuicide="%o shot herself in the foot." MaleSuicide="%o shot himself in the foot." bRagdollBullet=True bBulletHit=True FlashFog=(X=600.000000) KDamageImpulse=10000.000000 KDeathVel=300.000000 KDeathUpKick=100.000000 VehicleDamageScaling=0.700000
}

View file

@ -0,0 +1,19 @@
class NiceSPAutoShotgun extends NiceWeapon;
// Toggle semi/auto fire
simulated function DoToggle (){}
// Set the new fire mode on the server
function ServerChangeFireMode(bool bNewWaitForRelease){}
exec function SwitchModes(){}
simulated function WeaponTick(float dt)
{
local float SteamCharge;
local rotator DialRot;
super.WeaponTick(dt);
if(Level.NetMode!=NM_DedicatedServer){ if(FireMode[1].NextFireTime >= Level.TimeSeconds) SteamCharge = 1.0 - ((FireMode[1].NextFireTime - Level.TimeSeconds)/FireMode[1].FireRate); else SteamCharge = 1.0;
if(SteamCharge > 0.1 && FireMode[0].NextFireTime >= Level.TimeSeconds) SteamCharge -= 0.1 * ((FireMode[0].NextFireTime - Level.TimeSeconds)/FireMode[0].FireRate);
DialRot.roll = 26500 - ( 53000 * SteamCharge ); SetBoneRotation('Dail2',DialRot,1.0);
}
}
defaultproperties
{ reloadPreEndFrame=0.143000 reloadEndFrame=0.633000 reloadChargeEndFrame=-1.000000 reloadMagStartFrame=0.276000 reloadChargeStartFrame=-1.000000 MagCapacity=10 ReloadRate=2.640000 ReloadAnim="Reload" ReloadAnimRate=1.250000 WeaponReloadAnim="Reload_IJC_spJackHammer" Weight=7.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 SleeveNum=0 TraderInfoTexture=Texture'KF_IJC_HUD.Trader_Weapon_Icons.Trader_Jackhammer' MeshRef="KF_IJC_Summer_Weps1.Jackhammer" SkinRefs(0)="KF_Weapons_Trip_T.hands.hands_1stP_military_cmb" SkinRefs(1)="KF_IJC_Summer_Weapons.Jackhammer.jackhammer_cmb" SkinRefs(2)="KF_Weapons_Trip_T.Rifles.crossbow_cmb" SelectSoundRef="KF_SP_ZEDThrowerSnd.KFO_Shotgun_Select" HudImageRef="KF_IJC_HUD.WeaponSelect.Jackhammer_unselected" SelectedHudImageRef="KF_IJC_HUD.WeaponSelect.Jackhammer" PlayerIronSightFOV=80.000000 ZoomedDisplayFOV=45.000000 FireModeClass(0)=Class'NicePack.NiceSPShotgunFire' FireModeClass(1)=Class'NicePack.NiceSPShotgunAltFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.550000 CurrentRating=0.550000 bShowChargingBar=True Description="A device for throwing lead and getting sodding enemies out of your face." EffectOffset=(X=100.000000,Y=25.000000,Z=-10.000000) DisplayFOV=65.000000 Priority=167 InventoryGroup=4 GroupOffset=15 PickupClass=Class'NicePack.NiceSPShotgunPickup' PlayerViewOffset=(X=20.000000,Y=23.000000,Z=-2.000000) BobDamping=6.000000 AttachmentClass=Class'NicePack.NiceSPShotgunAttachment' IconCoords=(X1=245,Y1=39,X2=329,Y2=79) ItemName="Multichamber ZED Thrower" TransientSoundVolume=1.250000
}

View file

@ -0,0 +1,4 @@
class NiceSPGrenadeAmmo extends SPGrenadeAmmo;
defaultproperties
{ AmmoPickupAmount=2 MaxAmmo=16 InitialAmount=8 PickupClass=Class'NicePack.NiceSPGrenadeAmmoPickup'
}

View file

@ -0,0 +1,4 @@
class NiceSPGrenadeAmmoPickup extends SPGrenadeAmmoPickup;
defaultproperties
{ AmmoAmount=2 InventoryType=Class'NicePack.NiceSPGrenadeAmmo'
}

View file

@ -0,0 +1,4 @@
class NiceSPGrenadeFire extends SPGrenadeFire;
defaultproperties
{ AmmoClass=Class'NicePack.NiceSPGrenadeAmmo' ProjectileClass=Class'NicePack.NiceSPGrenadeProjectile'
}

View file

@ -0,0 +1,4 @@
class NiceSPGrenadeLauncher extends SPGrenadeLauncher;
defaultproperties
{ AppID=0 FireModeClass(0)=Class'NicePack.NiceSPGrenadeFire' PickupClass=Class'NicePack.NiceSPGrenadePickup' ItemName="The Orca Bomb Propeller NW"
}

View file

@ -0,0 +1,4 @@
class NiceSPGrenadePickup extends SPGrenadePickup;
defaultproperties
{ AmmoCost=12 ItemName="The Orca Bomb Propeller NW" ItemShortName="The Orca NW" InventoryType=Class'NicePack.NiceSPGrenadeLauncher'
}

View file

@ -0,0 +1,5 @@
class NiceSPGrenadeProjectile extends SPGrenadeProjectile;
#exec OBJ LOAD FILE=ProjectileSounds.uax
defaultproperties
{ Damage=450.000000
}

View file

@ -0,0 +1,54 @@
class NiceSPShotgunAltFire extends NiceShotgunFire;
var InterpCurve AppliedMomentumCurve; // How much momentum to apply to a zed based on how much mass it has
var float WideDamageMinHitAngle; // The angle to do sweeping strikes in front of the player. If zero do no strikes
var float PushRange; // The range to push zeds away when firing
simulated function bool AllowFire(){
if(currentContext.sourceWeapon == none || KFPawn(Instigator) == none) return false;
if(currentContext.sourceWeapon.bIsReloading) return false;
if(KFPawn(Instigator).SecondaryItem!=none) return false;
if(KFPawn(Instigator).bThrowingNade) return false;
// No ammo so just always fire
return true;
}
// No need to client-side this one
function bool IsClientSide(){
return false;
}
// And there's nothing to force
function bool shouldFireProjectile(){
return false;
}
function DoFireEffect(){
local Vector StartProj, StartTrace, X,Y,Z;
local Rotator Aim;
local Vector HitLocation, HitNormal;
local Actor Other;
local Pawn Victims;
local vector dir, lookdir;
local float DiffAngle, VictimDist;
local float AppliedMomentum;
local vector vMomentum;
Instigator.MakeNoise(1.0);
Weapon.GetViewAxes(X,Y,Z);
StartTrace = Instigator.Location + Instigator.EyePosition();
StartProj = StartTrace + X*ProjSpawnOffset.X;
if (!Weapon.WeaponCentered() && !KFWeap.bAimingRifle) StartProj = StartProj + Weapon.Hand * Y*ProjSpawnOffset.Y + Z*ProjSpawnOffset.Z;
// check if projectile would spawn through a wall and adjust start location accordingly
Other = Weapon.Trace(HitLocation, HitNormal, StartProj, StartTrace, false);
if(Other != none) StartProj = HitLocation;
Aim = AdjustAim(StartProj, AimError);
if(WideDamageMinHitAngle > 0){ foreach Weapon.VisibleCollidingActors(class'Pawn', Victims, (PushRange * 2), StartTrace){ if(Victims.Health <= 0) continue; if(Victims != Instigator){ // Don't push team mates if(Victims.GetTeamNum() == Instigator.GetTeamNum()) continue; VictimDist = VSizeSquared(Instigator.Location - Victims.Location); if(VictimDist > (((PushRange * 1.1) * (PushRange * 1.1)) + (Victims.CollisionRadius * Victims.CollisionRadius))) continue;
lookdir = Normal(Vector(Instigator.GetViewRotation())); dir = Normal(Victims.Location - Instigator.Location); DiffAngle = lookdir dot dir; dir = Normal((Victims.Location + Victims.EyePosition()) - Instigator.Location);
if(DiffAngle > WideDamageMinHitAngle){ AppliedMomentum = InterpCurveEval(AppliedMomentumCurve,Victims.Mass); HandleAchievement( Victims );
vMomentum = (dir * AppliedMomentum)/Victims.Mass; Victims.AddVelocity(vMomentum); if(KFMonster(Victims) != none) KFMonster(Victims).BreakGrapple(); } } }
}
if(Instigator != none && Instigator.Physics == PHYS_Falling && Instigator.PhysicsVolume.Gravity.Z > class'PhysicsVolume'.default.Gravity.Z) Instigator.AddVelocity((KickMomentum * 10.0) >> Instigator.GetViewRotation());
}
function HandleAchievement(Pawn Victim){
local KFSteamStatsAndAchievements KFSteamStats;
if(Victim.IsA('NiceZombieScrake')){ if(PlayerController(Instigator.Controller) != none){ KFSteamStats = KFSteamStatsAndAchievements(PlayerController(Instigator.Controller).SteamStatsAndAchievements); if(KFSteamStats != none) KFSteamStats.CheckAndSetAchievementComplete(KFSteamStats.KFACHIEVEMENT_PushScrakeSPJ); }
}
}
defaultproperties
{ AppliedMomentumCurve=(Points=((OutVal=10000.000000),(InVal=350.000000,OutVal=175000.000000),(InVal=600.000000,OutVal=250000.000000))) WideDamageMinHitAngle=0.600000 PushRange=150.000000 ProjPerFire=0 KickMomentum=(X=-35.000000,Z=5.000000) maxVerticalRecoilAngle=3200 FireSoundRef="KF_SP_ZEDThrowerSnd.KFO_Shotgun_Secondary_Fire_M" StereoFireSoundRef="KF_SP_ZEDThrowerSnd.KFO_Shotgun_Secondary_Fire_S" NoAmmoSoundRef="KF_AA12Snd.AA12_DryFire" bWaitForRelease=False bModeExclusive=False FireAnimRate=1.000000 FireRate=1.200000 AmmoClass=None AmmoPerFire=0 ShakeRotMag=(Z=250.000000) ShakeRotTime=3.000000 ShakeOffsetMag=(Z=6.000000) ShakeOffsetTime=1.250000 BotRefireRate=1.750000 FlashEmitterClass=Class'ROEffects.MuzzleFlash1stSPShotgunAlt' Spread=0.000000
}

View file

@ -0,0 +1,5 @@
class NiceSPShotgunAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceSPShotgunPickup' AmmoPickupAmount=10 MaxAmmo=80 InitialAmount=20 PickupClass=Class'NicePack.NiceSPShotgunAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=451,Y1=445,X2=510,Y2=500)
}

View file

@ -0,0 +1,4 @@
class NiceSPShotgunAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=10 InventoryType=Class'NicePack.NiceSPShotgunAmmo' PickupMessage="12-Gauge Drum" StaticMesh=None
}

View file

@ -0,0 +1,4 @@
class NiceSPShotgunAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdSPShotgun' MovementAnims(0)="JogF_AA12" MovementAnims(1)="JogB_AA12" MovementAnims(2)="JogL_AA12" MovementAnims(3)="JogR_AA12" TurnLeftAnim="TurnL_AA12" TurnRightAnim="TurnR_AA12" CrouchAnims(0)="CHWalkF_AA12" CrouchAnims(1)="CHWalkB_AA12" CrouchAnims(2)="CHWalkL_AA12" CrouchAnims(3)="CHWalkR_AA12" WalkAnims(0)="WalkF_AA12" WalkAnims(1)="WalkB_AA12" WalkAnims(2)="WalkL_AA12" WalkAnims(3)="WalkR_AA12" CrouchTurnRightAnim="CH_TurnR_AA12" CrouchTurnLeftAnim="CH_TurnL_AA12" IdleCrouchAnim="CHIdle_AA12" IdleWeaponAnim="Idle_AA12" IdleRestAnim="Idle_AA12" IdleChatAnim="Idle_AA12" IdleHeavyAnim="Idle_AA12" IdleRifleAnim="Idle_AA12" FireAnims(0)="Fire_AA12" FireAnims(1)="Fire_AA12" FireAnims(2)="Fire_AA12" FireAnims(3)="Fire_AA12" FireAltAnims(0)="Fire_AA12" FireAltAnims(1)="Fire_AA12" FireAltAnims(2)="Fire_AA12" FireAltAnims(3)="Fire_AA12" FireCrouchAnims(0)="CHFire_AA12" FireCrouchAnims(1)="CHFire_AA12" FireCrouchAnims(2)="CHFire_AA12" FireCrouchAnims(3)="CHFire_AA12" FireCrouchAltAnims(0)="CHFire_AA12" FireCrouchAltAnims(1)="CHFire_AA12" FireCrouchAltAnims(2)="CHFire_AA12" FireCrouchAltAnims(3)="CHFire_AA12" HitAnims(0)="HitF_AA12" HitAnims(1)="HitB_AA12" HitAnims(2)="HitL_AA12" HitAnims(3)="HitR_AA12" PostFireBlendStandAnim="Blend_AA12" PostFireBlendCrouchAnim="CHBlend_AA12" MeshRef="KF_Weapons3rd2_IJC.spJackHammer_3rd"
}

View file

@ -0,0 +1,4 @@
class NiceSPShotgunFire extends NiceShotgunFire;
defaultproperties
{ KickMomentum=(X=-35.000000,Z=5.000000) ProjectileSpeed=3500.000000 maxVerticalRecoilAngle=1000 maxHorizontalRecoilAngle=500 ShellEjectClass=Class'ROEffects.KFShellEjectShotty' ShellEjectBoneName="Shell_eject" FireSoundRef="KF_SP_ZEDThrowerSnd.KFO_Shotgun_Primary_Fire_M" StereoFireSoundRef="KF_SP_ZEDThrowerSnd.KFO_Shotgun_Primary_Fire_S" NoAmmoSoundRef="KF_AA12Snd.AA12_DryFire" DamageType=Class'NicePack.NiceDamTypeSPShotgun' DamageMax=30 Momentum=60000.000000 bWaitForRelease=False FireAnimRate=1.200000 FireRate=0.292000 AmmoClass=Class'NicePack.NiceSPShotgunAmmo' ShakeRotMag=(Z=250.000000) ShakeRotTime=3.000000 ShakeOffsetMag=(Z=6.000000) ShakeOffsetTime=1.250000 BotRefireRate=0.250000 Spread=1500.000000
}

View file

@ -0,0 +1,4 @@
class NiceSPShotgunPickup extends NiceWeaponPickup;
defaultproperties
{ Weight=7.000000 AmmoCost=30 BuyClipSize=8 PowerValue=60 SpeedValue=50 RangeValue=20 Description="A device for throwing lead and getting sodding enemies out of your face." ItemName="Multichamber ZED Thrower" ItemShortName="M.C.Z. Thrower" AmmoItemName="M.C.Z. Drum" CorrespondingPerkIndex=1 EquipmentCategoryID=3 InventoryType=Class'NicePack.NiceSPAutoShotgun' PickupMessage="You got the Multichamber Lead Thrower." PickupSound=Sound'KF_SP_ZEDThrowerSnd.KFO_Shotgun_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_IJC_Summer_Weps.Jackhammer' CollisionRadius=35.000000 CollisionHeight=5.000000
}