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,16 @@
class NiceCLGL extends NiceWeapon;
simulated function fillSubReloadStages(){
// Loading 4 shells during 94 frames tops, with first shell loaded at frame 13, with 22 frames between load moments
generateReloadStages(3, 94, 13, 22);
}
simulated function SetupReloadVars(optional bool bIsActive, optional int animationIndex){
if(MagAmmoRemainingClient == 0){ generateReloadStages(4, 145, 42, 22); reloadStages[0] = 0.2; ReloadAnim='ReloadLong';
}
else{ generateReloadStages(3, 94, 13, 22); ReloadAnim='Reload';
}
UpdateSingleReloadVars();
super.SetupReloadVars(bIsActive, animationIndex);
}
defaultproperties
{ bChangeClipIcon=True bChangeBulletsIcon=True hudClipTexture=Texture'KillingFloor2HUD.HUD.Hud_M79' hudBulletsTexture=Texture'KillingFloor2HUD.HUD.Hud_M79' reloadType=RTYPE_SINGLE MagCapacity=4 ReloadRate=0.850000 ReloadAnim="Reload" ReloadAnimRate=1.000000 bHoldToReload=True WeaponReloadAnim="Reload_Shotgun" Weight=6.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 SleeveNum=0 TraderInfoTexture=Texture'NicePackT.CLGL.CLGL_HUD_Trader' bIsTier3Weapon=True MeshRef="NicePackA.CLGLMesh1st" SkinRefs(1)="NicePackT.CLGL.CLGL_CMB" SelectSoundRef="NicePackSnd.CLGL.CLGLSelect" HudImageRef="NicePackT.CLGL.CLGL_HUD_UnSelected" SelectedHudImageRef="NicePackT.CLGL.CLGL_HUD_Selected" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceCLGLFire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.650000 CurrentRating=0.650000 Description="A pump-action grenade launcher. Launches high-explosive grenades." DisplayFOV=65.000000 Priority=210 InventoryGroup=4 GroupOffset=6 PickupClass=Class'NicePack.NiceCLGLPickup' PlayerViewOffset=(X=25.000000,Y=20.000000,Z=-6.000000) BobDamping=6.000000 AttachmentClass=Class'NicePack.NiceCLGLAttachment' IconCoords=(X1=253,Y1=146,X2=333,Y2=181) ItemName="China Lake Grenade Launcher" LightType=LT_None LightBrightness=0.000000 LightRadius=0.000000
}

View file

@ -0,0 +1,4 @@
class NiceCLGLAmmo extends NiceAmmo;
defaultproperties
{ AmmoPickupAmount=4 MaxAmmo=36 InitialAmount=9 PickupClass=Class'NicePack.NiceCLGLAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=4,Y1=350,X2=110,Y2=395) ItemName="CLGL Grenades"
}

View file

@ -0,0 +1,4 @@
class NiceCLGLAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=6 InventoryType=Class'NicePack.NiceCLGLAmmo' PickupMessage="CLGL Grenades" StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' CollisionRadius=25.000000
}

View file

@ -0,0 +1,4 @@
class NiceCLGLAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdNadeL' 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.CLGLMesh3rd"
}

View file

@ -0,0 +1,35 @@
class NiceCLGLFire extends NiceFire;
defaultproperties
{
ProjSpawnOffset=(X=5.000000)
EffectiveRange=2500.000000
ProjectileSpeed=3800.000000
bulletClass=Class'NicePack.NiceBallisticNade'
ExplosionDamageType=Class'NicePack.NiceDamTypeCLGLExplosion'
ExplosionDamage=360
ExplosionRadius=400.000000
explosionExponent=1.000000
ExplosionMomentum=75000.000000
explodeOnPawnHit=True
explodeOnWallHit=True
projAffectedByScream=True
FireAimedAnim="Iron_Fire"
maxVerticalRecoilAngle=200
maxHorizontalRecoilAngle=50
FireSoundRef="KF_M32Snd.M32_Fire"
StereoFireSoundRef="KF_M32Snd.M32_FireST"
NoAmmoSoundRef="KF_M79Snd.M79_DryFire"
DamageType=Class'NicePack.NiceDamTypeCLGLBlunt'
DamageMax=175
bWaitForRelease=True
TransientSoundVolume=1.800000
FireForce="AssaultRifleFire"
FireRate=1.100000
AmmoClass=Class'NicePack.NiceCLGLAmmo'
ShakeRotMag=(X=3.000000,Y=4.000000,Z=2.000000)
ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000)
ShakeOffsetMag=(X=3.000000,Y=3.000000,Z=3.000000)
BotRefireRate=1.800000
FlashEmitterClass=Class'ROEffects.MuzzleFlash1stNadeL'
aimerror=42.000000
}

View file

@ -0,0 +1,4 @@
class NiceCLGLPickup extends NiceWeaponPickup;
defaultproperties
{ Weight=6.000000 cost=500 AmmoCost=28 BuyClipSize=4 PowerValue=85 SpeedValue=65 RangeValue=75 Description="A pump-action grenade launcher. Launches high-explosive grenades." ItemName="China Lake Grenade Launcher" ItemShortName="China Lake Launcher" AmmoItemName="CLGL Grenades" AmmoMesh=StaticMesh'KillingFloorStatics.XbowAmmo' CorrespondingPerkIndex=6 EquipmentCategoryID=2 MaxDesireability=0.790000 InventoryType=Class'NicePack.NiceCLGL' PickupMessage="You got the China Lake Grenade Launcher." PickupSound=Sound'NicePackSnd.CLGL.CLGLPickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'NicePackSM.CLGLMeshPickup' DrawScale=1.400000 CollisionRadius=25.000000 CollisionHeight=10.000000
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeCLGLBlunt extends NiceDamTypeDemoBlunt;
defaultproperties
{ WeaponClass=Class'NicePack.NiceCLGL'
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeCLGLExplosion extends NiceDamTypeDemoExplosion;
defaultproperties
{ WeaponClass=Class'NicePack.NiceCLGL'
}

View file

@ -0,0 +1,4 @@
class NiceHRL extends HRL;
defaultproperties
{ FireModeClass(0)=Class'NicePack.NiceHRLFire' PickupClass=Class'NicePack.NiceHRLPickup' ItemName="HRL-1 Rocket Launcher NW"
}

View file

@ -0,0 +1,4 @@
class NiceHRLFire extends HRLFire;
defaultproperties
{ ProjectileClass=Class'NicePack.NiceHRLProj'
}

View file

@ -0,0 +1,4 @@
class NiceHRLPickup extends HRLPickup;
defaultproperties
{ ItemName="HRL-1 Rocket Launcher NW" ItemShortName="HRL-1 NW" InventoryType=Class'NicePack.NiceHRL' PickupMessage="You got the HRL-1 Rocket Launcher NW"
}

View file

@ -0,0 +1,4 @@
class NiceHRLProj extends HRLProj;
defaultproperties
{ ArmDistSquared=180000.000000
}

View file

@ -0,0 +1,4 @@
class NiceHopMineAmmo extends HopMineAmmo;
defaultproperties
{ PickupClass=Class'NicePack.NiceHopMineAmmoPickup'
}

View file

@ -0,0 +1,4 @@
class NiceHopMineAmmoPickup extends HopMineAmmoPickup;
defaultproperties
{ InventoryType=Class'NicePack.NiceHopMineAmmo'
}

View file

@ -0,0 +1,4 @@
class NiceHopMineFire extends HopMineFire;
defaultproperties
{ AmmoClass=Class'NicePack.NiceHopMineAmmo' ProjectileClass=Class'NicePack.NiceHopMineProj'
}

View file

@ -0,0 +1,4 @@
class NiceHopMineLPickup extends HopMineLPickup;
defaultproperties
{ Weight=5.000000 Description="The prototype of Hopmine launcher. But still can be very useful." ItemName="HopMine Launcher NW" ItemShortName="HopMine NW" InventoryType=Class'NicePack.NiceHopMineLchr' PickupMessage="You got the HopMine Launcher NW."
}

View file

@ -0,0 +1,7 @@
//=============================================================================
// HopMineLchr
//=============================================================================
class NiceHopMineLchr extends HopMineLchr;
defaultproperties
{ Weight=5.000000 FireModeClass(0)=Class'NicePack.NiceHopMineFire' Description="The prototype of Hopmine launcher." PickupClass=Class'NicePack.NiceHopMineLPickup' ItemName="HopMine Launcher NW"
}

View file

@ -0,0 +1,23 @@
Class NiceHopMineProj extends HopMineProj;
#exec obj load file="KF_GrenadeSnd.uax"
#exec OBJ LOAD FILE=ScrnWeaponPack_T.utx
#exec OBJ LOAD FILE=ScrnWeaponPack_SND.uax
#exec OBJ LOAD FILE=ScrnWeaponPack_A.ukx
state OnWall
{
simulated function BeginState()
{ if ( SmokeTrail != none ) { SmokeTrail.HandleOwnerDestroyed(); SmokeTrail = none; } bCollideWorld = False; bFixedRotationDir = false; RotationRate = rot(0,0,0); if( Level.NetMode!=NM_DedicatedServer ) { TweenAnim('Down',0.05f); PlaySound(Sound'ScrnWeaponPack_SND.mine.blade_cut'); DotLight = Spawn(Class'HopMineLight',,,Location + (vect(0,0,5) << Rotation)); if( DotLight!=none ) { DotLight.SetBase(Self); DotLight.SetRelativeLocation(vect(0,0,5)); } } if( Level.NetMode!=NM_Client ) { NetUpdateFrequency = 1.f; SetTimer(0.25+FRand()*0.25,true); }
}
simulated function EndState()
{ if( Level.NetMode!=NM_Client ) { SetTimer(0,false); NetUpdateFrequency = Default.NetUpdateFrequency; NetUpdateTime = Level.TimeSeconds-1; }
}
function Timer()
{ local Controller C; local vector X,Y,Z; local float DotP; local int ThreatLevel; local bool bA,bB; GetAxes(Rotation,X,Y,Z); for( C=Level.ControllerList; C!=none; C=C.nextController ) if( C.Pawn!=none && C.Pawn.Health>0 && VSizeSquared(C.Pawn.Location-Location)<1000000.f ) { X = C.Pawn.Location-Location; DotP = (X Dot Z); if( DotP<0 ) continue; DotP = VSizeSquared(X - (Z * DotP)); if( DotP>90000.f || !FastTrace(C.Pawn.Location,Location) ) continue; if( Monster(C.Pawn)!=none ) { bB = true; if( DotP<35500.f ) { Y = C.Pawn.Location; ThreatLevel+=C.Pawn.HealthMax; } } else bA = true; } if( bA!=bWarningTarget || bB!=bCriticalTarget ) { bWarningTarget = bA; bCriticalTarget = bB; if( DotLight!=none ) DotLight.SetMode(bA,bB); NetUpdateTime = Level.TimeSeconds-1; } if( bB && ThreatLevel>400 ) { bWarningTarget = false; bCriticalTarget = false; RepLaunchPos = Y; GoToState('LaunchMine'); } else if( InstigatorController==none || bNeedsDetonate || (WeaponOwner!=none && WeaponOwner.NumMinesOut>WeaponOwner.MaximumMines) ) { bWarningTarget = false; bCriticalTarget = false; RepLaunchPos = Location + Z*(150.f+FRand()*250.f); GoToState('LaunchMine'); }
}
simulated function PostNetReceive()
{ if( RepLaunchPos!=vect(0,0,0) ) GoToState('LaunchMine'); else if( DotLight!=none ) DotLight.SetMode(bWarningTarget,bCriticalTarget);
}
}
defaultproperties
{
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeLAWBlunt extends NiceDamTypeDemoBlunt;
defaultproperties
{ WeaponClass=Class'NicePack.NiceLAW'
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeLAWExplosion extends NiceDamTypeDemoExplosion;
defaultproperties
{ WeaponClass=Class'NicePack.NiceLAW'
}

View file

@ -0,0 +1,25 @@
class NiceLAW extends NiceWeapon;
simulated function ZoomIn(bool bAnimateTransition){
if(Level.TimeSeconds < FireMode[0].NextFireTime) return;
super.ZoomIn(bAnimateTransition);
if(bAnimateTransition){ if(bZoomOutInterrupted) PlayAnim('Raise',1.0,0.1); else PlayAnim('Raise',1.0,0.1);
}
}
simulated function ZoomOut(bool bAnimateTransition){
super.ZoomOut(false);
if(bAnimateTransition) TweenAnim(IdleAnim,FastZoomOutTime);
}
simulated function PostBeginPlay(){
local AutoReloadAnimDesc reloadDesc;
autoReloadsDescriptions.Length = 0;
reloadDesc.canInterruptFrame = 0.07;
reloadDesc.trashStartFrame = 0.601;
reloadDesc.resumeFrame = 0.07;
reloadDesc.speedFrame = 0.07;
reloadDesc.animName = 'AimFire';
autoReloadsDescriptions[0] = reloadDesc;
super.PostBeginPlay();
}
defaultproperties
{ bChangeClipIcon=True bChangeBulletsIcon=True hudClipTexture=Texture'KillingFloorHUD.HUD.Hud_Law_Rocket' hudBulletsTexture=Texture'KillingFloorHUD.HUD.Hud_Law_Rocket' reloadType=RTYPE_AUTO ForceZoomOutOnFireTime=0.100000 MagCapacity=1 ReloadRate=3.000000 bHoldToReload=True WeaponReloadAnim="Reload_LAW" MinimumFireRange=300 Weight=9.000000 bHasAimingMode=True IdleAimAnim="AimIdle" StandardDisplayFOV=75.000000 SleeveNum=3 TraderInfoTexture=Texture'KillingFloorHUD.Trader_Weapon_Images.Trader_Law' bIsTier3Weapon=True MeshRef="KF_Weapons_Trip.LAW_Trip" SkinRefs(0)="KF_Weapons_Trip_T.Supers.law_cmb" SkinRefs(1)="KF_Weapons_Trip_T.Supers.law_reddot_shdr" SkinRefs(2)="KF_Weapons_Trip_T.Supers.rocket_cmb" SelectSoundRef="KF_LAWSnd.LAW_Select" HudImageRef="KillingFloorHUD.WeaponSelect.LAW_unselected" SelectedHudImageRef="KillingFloorHUD.WeaponSelect.LAW" PlayerIronSightFOV=90.000000 ZoomTime=0.260000 ZoomedDisplayFOV=65.000000 FireModeClass(0)=Class'NicePack.NiceLAWFire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" SelectForce="SwitchToRocketLauncher" bSniping=False Description="The Light Anti Tank Weapon is, as its name suggests, a military grade heavy weapons platform designed to disable or outright destroy armored vehicles." EffectOffset=(X=50.000000,Y=1.000000,Z=10.000000) DisplayFOV=75.000000 Priority=195 HudColor=(G=0) InventoryGroup=4 GroupOffset=9 PickupClass=Class'NicePack.NiceLAWPickup' PlayerViewOffset=(X=30.000000,Y=30.000000) BobDamping=7.000000 AttachmentClass=Class'NicePack.NiceLAWAttachment' IconCoords=(X1=429,Y1=212,X2=508,Y2=251) ItemName="L.A.W" AmbientGlow=2
}

View file

@ -0,0 +1,5 @@
class NiceLAWAmmo extends NiceAmmo;
#EXEC OBJ LOAD FILE=KillingFloorHUD.utx
defaultproperties
{ AmmoPickupAmount=2 MaxAmmo=20 InitialAmount=5 IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=458,Y1=34,X2=511,Y2=78) ItemName="L.A.W Rockets"
}

View file

@ -0,0 +1,4 @@
class NiceLAWAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=2 InventoryType=Class'NicePack.NiceLAWAmmo' PickupMessage="HEAT Rockets" StaticMesh=StaticMesh'KillingFloorStatics.LAWAmmo' DrawScale=0.500000 CollisionRadius=40.000000
}

View file

@ -0,0 +1,4 @@
class NiceLAWAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'KFMod.KFLawMuzzFlash' MovementAnims(0)="JogF_LAW" MovementAnims(1)="JogB_LAW" MovementAnims(2)="JogL_LAW" MovementAnims(3)="JogR_LAW" TurnLeftAnim="TurnL_LAW" TurnRightAnim="TurnR_LAW" CrouchAnims(0)="CHwalkF_LAW" CrouchAnims(1)="CHwalkB_LAW" CrouchAnims(2)="CHwalkL_LAW" CrouchAnims(3)="CHwalkR_LAW" WalkAnims(0)="WalkF_LAW" WalkAnims(1)="WalkB_LAW" WalkAnims(2)="WalkL_LAW" WalkAnims(3)="WalkR_LAW" CrouchTurnRightAnim="CH_TurnR_LAW" CrouchTurnLeftAnim="CH_TurnL_LAW" IdleCrouchAnim="CHIdle_LAW" IdleWeaponAnim="Idle_LAW" IdleRestAnim="Idle_LAW" IdleChatAnim="Idle_LAW" IdleHeavyAnim="Idle_LAW" IdleRifleAnim="Idle_LAW" FireAnims(0)="Fire_LAW" FireAnims(1)="Fire_LAW" FireAnims(2)="Fire_LAW" FireAnims(3)="Fire_LAW" FireAltAnims(0)="Fire_LAW" FireAltAnims(1)="Fire_LAW" FireAltAnims(2)="Fire_LAW" FireAltAnims(3)="Fire_LAW" FireCrouchAnims(0)="CHFire_LAW" FireCrouchAnims(1)="CHFire_LAW" FireCrouchAnims(2)="CHFire_LAW" FireCrouchAnims(3)="CHFire_LAW" FireCrouchAltAnims(0)="CHFire_LAW" FireCrouchAltAnims(1)="CHFire_LAW" FireCrouchAltAnims(2)="CHFire_LAW" FireCrouchAltAnims(3)="CHFire_LAW" HitAnims(0)="HitF_LAW" HitAnims(1)="HitB_LAW" HitAnims(2)="HitL_LAW" HitAnims(3)="HitR_LAW" PostFireBlendStandAnim="Blend_LAW" PostFireBlendCrouchAnim="CHBlend_LAW" MeshRef="KF_Weapons3rd_Trip.LAW_3rd" bHeavy=True
}

View file

@ -0,0 +1,40 @@
class NiceLAWFire extends NiceFire;
defaultproperties
{
ProjSpawnOffset=(X=5.000000)
KickMomentum=(X=-45.000000,Z=25.000000)
ProjectileSpeed=7250.000000
bulletClass=Class'NicePack.NiceRocket'
ExplosionDamageType=Class'NicePack.NiceDamTypeLAWExplosion'
ExplosionDamage=1200
ExplosionRadius=400.000000
explosionExponent=1.000000
ExplosionMomentum=75000.000000
explodeOnPawnHit=True
explodeOnWallHit=True
maxVerticalRecoilAngle=1000
maxHorizontalRecoilAngle=250
bRandomPitchFireSound=False
FireSoundRef="KF_LAWSnd.LAW_Fire"
StereoFireSoundRef="KF_LAWSnd.LAW_FireST"
NoAmmoSoundRef="KF_LAWSnd.LAW_DryFire"
DamageType=Class'NicePack.NiceDamTypeLAWBlunt'
DamageMax=750
bSplashDamage=True
bRecommendSplashDamage=True
bWaitForRelease=True
TransientSoundVolume=1.800000
FireAnim="AimFire"
FireForce="redeemer_shoot"
FireRate=0.000000
AmmoClass=Class'NicePack.NiceLAWAmmo'
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=3.250000
FlashEmitterClass=Class'ROEffects.MuzzleFlash1stKar'
Spread=0.100000
}

View file

@ -0,0 +1,5 @@
class NiceLAWPickup extends NiceWeaponPickup;
#exec OBJ LOAD FILE=KillingFloorWeapons.utx
defaultproperties
{ Weight=9.000000 cost=1250 AmmoCost=30 BuyClipSize=1 PowerValue=100 SpeedValue=20 RangeValue=64 Description="Light Anti Tank weapon. Designed to punch through armored vehicles." ItemName="L.A.W" ItemShortName="L.A.W" AmmoItemName="L.A.W Rockets" AmmoMesh=StaticMesh'KillingFloorStatics.LAWAmmo' CorrespondingPerkIndex=6 EquipmentCategoryID=3 MaxDesireability=0.790000 InventoryType=Class'NicePack.NiceLAW' RespawnTime=60.000000 PickupMessage="You got the L.A.W." PickupSound=Sound'KF_LAWSnd.LAW_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups_Trip.Super.LAW_Pickup' CollisionRadius=35.000000 CollisionHeight=10.000000
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeM32Blunt extends NiceDamTypeDemoBlunt;
defaultproperties
{ WeaponClass=Class'NicePack.NiceM32GrenadeLauncher'
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeM32Explosion extends NiceDamTypeDemoExplosion;
defaultproperties
{ WeaponClass=Class'NicePack.NiceM32GrenadeLauncher'
}

View file

@ -0,0 +1,4 @@
class NiceM32Ammo extends NiceAmmo;
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceM32Pickup' AmmoPickupAmount=6 MaxAmmo=36 InitialAmount=9 PickupClass=Class'NicePack.NiceM32AmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=4,Y1=350,X2=110,Y2=395) ItemName="M32 Grenades"
}

View file

@ -0,0 +1,4 @@
class NiceM32AmmoPickup extends KFAmmoPickup;
defaultproperties
{ AmmoAmount=6 InventoryType=Class'NicePack.NiceM32Ammo' PickupMessage="M32 Grenades" StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' CollisionRadius=25.000000
}

View file

@ -0,0 +1,4 @@
class NiceM32Attachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdNadeL' MovementAnims(0)="JogF_M32_MGL" MovementAnims(1)="JogB_M32_MGL" MovementAnims(2)="JogL_M32_MGL" MovementAnims(3)="JogR_M32_MGL" TurnLeftAnim="TurnL_M32_MGL" TurnRightAnim="TurnR_M32_MGL" CrouchAnims(0)="CHWalkF_M32_MGL" CrouchAnims(1)="CHWalkB_M32_MGL" CrouchAnims(2)="CHWalkL_M32_MGL" CrouchAnims(3)="CHWalkR_M32_MGL" WalkAnims(0)="WalkF_M32_MGL" WalkAnims(1)="WalkB_M32_MGL" WalkAnims(2)="WalkL_M32_MGL" WalkAnims(3)="WalkR_M32_MGL" CrouchTurnRightAnim="CH_TurnR_M32_MGL" CrouchTurnLeftAnim="CH_TurnL_M32_MGL" IdleCrouchAnim="CHIdle_M32_MGL" IdleWeaponAnim="Idle_M32_MGL" IdleRestAnim="Idle_M32_MGL" IdleChatAnim="Idle_M32_MGL" IdleHeavyAnim="Idle_M32_MGL" IdleRifleAnim="Idle_M32_MGL" FireAnims(0)="Fire_M32_MGL" FireAnims(1)="Fire_M32_MGL" FireAnims(2)="Fire_M32_MGL" FireAnims(3)="Fire_M32_MGL" FireAltAnims(0)="Fire_M32_MGL" FireAltAnims(1)="Fire_M32_MGL" FireAltAnims(2)="Fire_M32_MGL" FireAltAnims(3)="Fire_M32_MGL" FireCrouchAnims(0)="CHFire_M32_MGL" FireCrouchAnims(1)="CHFire_M32_MGL" FireCrouchAnims(2)="CHFire_M32_MGL" FireCrouchAnims(3)="CHFire_M32_MGL" FireCrouchAltAnims(0)="CHFire_M32_MGL" FireCrouchAltAnims(1)="CHFire_M32_MGL" FireCrouchAltAnims(2)="CHFire_M32_MGL" FireCrouchAltAnims(3)="CHFire_M32_MGL" HitAnims(0)="HitF_M32_MGL" HitAnims(1)="HitB_M32_MGL" HitAnims(2)="HitL_M32_MGL" HitAnims(3)="HitR_M32_MGL" PostFireBlendStandAnim="Blend_M32_MGL" PostFireBlendCrouchAnim="CHBlend_M32_MGL" MeshRef="KF_Weapons3rd2_Trip.M32_MGL_3rd"
}

View file

@ -0,0 +1,35 @@
class NiceM32Fire extends NiceFire;
defaultproperties
{
ProjSpawnOffset=(X=5.000000)
EffectiveRange=2500.000000
ProjectileSpeed=3800.000000
bulletClass=Class'NicePack.NiceBallisticNade'
ExplosionDamageType=Class'NicePack.NiceDamTypeM32Explosion'
ExplosionDamage=360
ExplosionRadius=400.000000
explosionExponent=1.000000
ExplosionMomentum=75000.000000
explodeOnPawnHit=True
explodeOnWallHit=True
projAffectedByScream=True
FireAimedAnim="Iron_Fire"
maxVerticalRecoilAngle=200
maxHorizontalRecoilAngle=50
FireSoundRef="KF_M32Snd.M32_Fire"
StereoFireSoundRef="KF_M32Snd.M32_FireST"
NoAmmoSoundRef="KF_M79Snd.M79_DryFire"
DamageType=Class'NicePack.NiceDamTypeM32Blunt'
DamageMax=175
bWaitForRelease=True
TransientSoundVolume=1.800000
FireForce="AssaultRifleFire"
FireRate=0.330000
AmmoClass=Class'NicePack.NiceM32Ammo'
ShakeRotMag=(X=3.000000,Y=4.000000,Z=2.000000)
ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000)
ShakeOffsetMag=(X=3.000000,Y=3.000000,Z=3.000000)
BotRefireRate=1.800000
FlashEmitterClass=Class'ROEffects.MuzzleFlash1stNadeL'
aimerror=42.000000
}

View file

@ -0,0 +1,8 @@
class NiceM32GrenadeLauncher extends NiceWeapon;
simulated function fillSubReloadStages(){
// Loading 6 shells during 300 frames tops, with first shell loaded at frame 40, with 49 frames between load moments
generateReloadStages(6, 300, 40, 49);
}
defaultproperties
{ bChangeClipIcon=True bChangeBulletsIcon=True hudClipTexture=Texture'KillingFloor2HUD.HUD.Hud_M79' hudBulletsTexture=Texture'KillingFloor2HUD.HUD.Hud_M79' reloadType=RTYPE_SINGLE MagCapacity=6 ReloadRate=1.634000 ReloadAnim="Reload" ReloadAnimRate=1.000000 bHoldToReload=True WeaponReloadAnim="Reload_M32_MGL" Weight=7.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 SleeveNum=2 TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_M32' bIsTier3Weapon=True MeshRef="KF_Weapons2_Trip.M32_MGL_Trip" SkinRefs(0)="KF_Weapons2_Trip_T.Special.M32_cmb" SkinRefs(1)="KF_Weapons2_Trip_T.Special.Aimpoint_sight_shdr" SelectSoundRef="KF_M79Snd.M79_Select" HudImageRef="KillingFloor2HUD.WeaponSelect.M32_unselected" SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.M32" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=40.000000 FireModeClass(0)=Class'NicePack.NiceM32Fire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.650000 CurrentRating=0.650000 Description="An advanced semi automatic grenade launcher. Launches high explosive grenades." DisplayFOV=65.000000 Priority=210 InventoryGroup=4 GroupOffset=6 PickupClass=Class'NicePack.NiceM32Pickup' PlayerViewOffset=(X=18.000000,Y=20.000000,Z=-6.000000) BobDamping=6.000000 AttachmentClass=Class'NicePack.NiceM32Attachment' IconCoords=(X1=253,Y1=146,X2=333,Y2=181) ItemName="M32 Grenade Launcher" LightType=LT_None LightBrightness=0.000000 LightRadius=0.000000
}

View file

@ -0,0 +1,5 @@
class NiceM32Pickup extends NiceWeaponPickup;
defaultproperties
{ Weight=7.000000 AmmoCost=60
cost=1000 BuyClipSize=6 PowerValue=85 SpeedValue=65 RangeValue=75 Description="An advanced semi automatic grenade launcher. Launches high explosive grenades." ItemName="M32 Grenade Launcher" ItemShortName="M32 Launcher" AmmoItemName="M32 Grenades" AmmoMesh=StaticMesh'KillingFloorStatics.XbowAmmo' CorrespondingPerkIndex=6 EquipmentCategoryID=2 VariantClasses(0)=Class'KFMod.CamoM32Pickup' MaxDesireability=0.790000 InventoryType=Class'NicePack.NiceM32GrenadeLauncher' PickupMessage="You got the M32 Multiple Grenade Launcher." PickupSound=Sound'KF_M79Snd.M79_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups2_Trip.Supers.M32_MGL_Pickup' CollisionRadius=25.000000 CollisionHeight=10.000000
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeM79Blunt extends NiceDamTypeDemoBlunt;
defaultproperties
{ WeaponClass=Class'NicePack.NiceM79GrenadeLauncher'
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeM79Explosion extends NiceDamTypeDemoExplosion;
defaultproperties
{ WeaponClass=Class'NicePack.NiceM79GrenadeLauncher'
}

View file

@ -0,0 +1,4 @@
class NiceM79Ammo extends NiceAmmo;
defaultproperties
{ WeaponPickupClass=Class'NicePack.NiceM79Pickup' AmmoPickupAmount=3 MaxAmmo=24 InitialAmount=6 PickupClass=Class'NicePack.NiceM79AmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=4,Y1=350,X2=110,Y2=395) ItemName="M79 Incendiary Grenades"
}

View file

@ -0,0 +1,4 @@
class NiceM79AmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=3 InventoryType=Class'NicePack.NiceM79Ammo' PickupMessage="M79 Incendiary Grenades" StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' CollisionRadius=25.000000
}

View file

@ -0,0 +1,4 @@
class NiceM79Attachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'ROEffects.MuzzleFlash3rdNadeL' MovementAnims(0)="JogF_M79" MovementAnims(1)="JogB_M79" MovementAnims(2)="JogL_M79" MovementAnims(3)="JogR_M79" TurnLeftAnim="TurnL_M79" TurnRightAnim="TurnR_M79" CrouchAnims(0)="CHWalkF_M79" CrouchAnims(1)="CHWalkB_M79" CrouchAnims(2)="CHWalkL_M79" CrouchAnims(3)="CHWalkR_M79" WalkAnims(0)="WalkF_M79" WalkAnims(1)="WalkB_M79" WalkAnims(2)="WalkL_M79" WalkAnims(3)="WalkR_M79" CrouchTurnRightAnim="CH_TurnR_M79" CrouchTurnLeftAnim="CH_TurnL_M79" IdleCrouchAnim="CHIdle_M79" IdleWeaponAnim="Idle_M79" IdleRestAnim="Idle_M79" IdleChatAnim="Idle_M79" IdleHeavyAnim="Idle_M79" IdleRifleAnim="Idle_M79" FireAnims(0)="Fire_M79" FireAnims(1)="Fire_M79" FireAnims(2)="Fire_M79" FireAnims(3)="Fire_M79" FireAltAnims(0)="Fire_M79" FireAltAnims(1)="Fire_M79" FireAltAnims(2)="Fire_M79" FireAltAnims(3)="Fire_M79" FireCrouchAnims(0)="CHFire_M79" FireCrouchAnims(1)="CHFire_M79" FireCrouchAnims(2)="CHFire_M79" FireCrouchAnims(3)="CHFire_M79" FireCrouchAltAnims(0)="CHFire_M79" FireCrouchAltAnims(1)="CHFire_M79" FireCrouchAltAnims(2)="CHFire_M79" FireCrouchAltAnims(3)="CHFire_M79" HitAnims(0)="HitF_M79" HitAnims(1)="HitB_M79" HitAnims(2)="HitL_M79" HitAnims(3)="HitR_M79" PostFireBlendStandAnim="Blend_M79" PostFireBlendCrouchAnim="CHBlend_M79" MeshRef="KF_Weapons3rd2_Trip.M79_3rd"
}

View file

@ -0,0 +1,36 @@
class NiceM79Fire extends NiceFire;
defaultproperties
{
ProjSpawnOffset=(X=5.000000)
EffectiveRange=2500.000000
ProjectileSpeed=3800.000000
bulletClass=Class'NicePack.NiceBallisticNade'
ExplosionDamageType=Class'NicePack.NiceDamTypeM79Explosion'
ExplosionDamage=360
ExplosionRadius=400.000000
explosionExponent=1.000000
ExplosionMomentum=75000.000000
explodeOnPawnHit=True
explodeOnWallHit=True
projAffectedByScream=True
FireAimedAnim="Iron_Fire"
RecoilRate=0.100000
maxVerticalRecoilAngle=200
maxHorizontalRecoilAngle=50
FireSoundRef="KF_M79Snd.M79_Fire"
StereoFireSoundRef="KF_M79Snd.M79_FireST"
NoAmmoSoundRef="KF_M79Snd.M79_DryFire"
DamageType=Class'NicePack.NiceDamTypeM79Blunt'
DamageMax=175
bWaitForRelease=True
TransientSoundVolume=1.800000
FireForce="AssaultRifleFire"
FireRate=0.000000
AmmoClass=Class'NicePack.NiceM79Ammo'
ShakeRotMag=(X=3.000000,Y=4.000000,Z=2.000000)
ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000)
ShakeOffsetMag=(X=3.000000,Y=3.000000,Z=3.000000)
BotRefireRate=1.800000
FlashEmitterClass=Class'ROEffects.MuzzleFlash1stNadeL'
aimerror=42.000000
}

View file

@ -0,0 +1,17 @@
class NiceM79GrenadeLauncher extends NiceWeapon;
simulated function PostBeginPlay(){
local AutoReloadAnimDesc reloadDesc;
autoReloadsDescriptions.Length = 0;
reloadDesc.canInterruptFrame = 0.101;
reloadDesc.trashStartFrame = 0.65;//0.869;
reloadDesc.resumeFrame = 0.101;
reloadDesc.speedFrame = 0.101;
reloadDesc.animName = 'Fire';
autoReloadsDescriptions[0] = reloadDesc;
reloadDesc.animName = 'Iron_Fire';
autoReloadsDescriptions[1] = reloadDesc;
super.PostBeginPlay();
}
defaultproperties
{ bChangeClipIcon=True bChangeBulletsIcon=True hudClipTexture=Texture'KillingFloor2HUD.HUD.Hud_M79' hudBulletsTexture=Texture'KillingFloor2HUD.HUD.Hud_M79' reloadType=RTYPE_AUTO ForceZoomOutOnFireTime=0.400000 MagCapacity=1 ReloadRate=0.010000 ReloadAnimRate=1.000000 bHoldToReload=True Weight=4.000000 bHasAimingMode=True IdleAimAnim="Idle_Iron" StandardDisplayFOV=65.000000 TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_M79' bIsTier2Weapon=True MeshRef="KF_Weapons2_Trip.M79_Trip" SkinRefs(0)="KF_Weapons2_Trip_T.Special.M79_cmb" SelectSoundRef="KF_M79Snd.M79_Select" HudImageRef="KillingFloor2HUD.WeaponSelect.M79_unselected" SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.M79" PlayerIronSightFOV=70.000000 ZoomedDisplayFOV=45.000000 FireModeClass(0)=Class'NicePack.NiceM79Fire' FireModeClass(1)=Class'KFMod.NoFire' PutDownAnim="PutDown" SelectForce="SwitchToAssaultRifle" AIRating=0.650000 CurrentRating=0.650000 Description="A classic Vietnam era grenade launcher. Launches single high explosive grenades." DisplayFOV=65.000000 Priority=162 InventoryGroup=3 GroupOffset=11 PickupClass=Class'NicePack.NiceM79Pickup' PlayerViewOffset=(X=18.000000,Y=20.000000,Z=-6.000000) BobDamping=6.000000 AttachmentClass=Class'NicePack.NiceM79Attachment' IconCoords=(X1=253,Y1=146,X2=333,Y2=181) ItemName="M79 Grenade Launcher" LightType=LT_None LightBrightness=0.000000 LightRadius=0.000000
}

View file

@ -0,0 +1,4 @@
class NiceM79Pickup extends NiceWeaponPickup;
defaultproperties
{ crossPerkIndecies(0)=10 Weight=4.000000 cost=250 AmmoCost=10 BuyClipSize=3 PowerValue=85 SpeedValue=5 RangeValue=75 Description="A classic Vietnam era grenade launcher. Launches single high explosive grenades." ItemName="M79 Grenade Launcher" ItemShortName="M79 Launcher" AmmoItemName="M79 Grenades" AmmoMesh=StaticMesh'KillingFloorStatics.XbowAmmo' CorrespondingPerkIndex=6 EquipmentCategoryID=2 VariantClasses(0)=Class'KFMod.GoldenM79Pickup' MaxDesireability=0.790000 InventoryType=Class'NicePack.NiceM79GrenadeLauncher' PickupMessage="You got the M79 Grenade Launcher." PickupSound=Sound'KF_M79Snd.M79_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_pickups2_Trip.Supers.M79_Pickup' CollisionRadius=25.000000 CollisionHeight=10.000000
}

View file

@ -0,0 +1,12 @@
class NiceDamTypePipeBomb extends NiceWeaponDamageType;
static function GetHitEffects(out class<xEmitter> HitEffects[4], int VictimHealth)
{
HitEffects[0] = class'HitSmoke';
if(VictimHealth <= 0)
HitEffects[1] = class'KFHitFlame';
else if (FRand() < 0.8)
HitEffects[1] = class'KFHitFlame';
}
defaultproperties
{ bIsExplosive=True bCheckForHeadShots=False WeaponClass=Class'NicePack.NicePipeBombExplosive' DeathString="%o filled %k's body with shrapnel." FemaleSuicide="%o blew up." MaleSuicide="%o blew up." bLocationalHit=False bThrowRagdoll=True bExtraMomentumZ=True DamageThreshold=1 DeathOverlayMaterial=Combiner'Effects_Tex.GoreDecals.PlayerDeathOverlay' DeathOverlayTime=999.000000 KDamageImpulse=4000.000000 KDeathVel=300.000000 KDeathUpKick=800.000000 HumanObliterationThreshhold=600
}

View file

@ -0,0 +1,4 @@
class NicePipeBombExplosive extends ScrnPipeBombExplosive;
defaultproperties
{ FireModeClass(0)=Class'NicePack.NicePipeBombFire' PickupClass=Class'NicePack.NicePipeBombPickup' ItemName="PipeBomb NW"
}

View file

@ -0,0 +1,4 @@
class NicePipeBombFire extends ScrnPipeBombFire;
defaultproperties
{ ProjectileClass=Class'NicePack.NicePipeBombProjectile'
}

View file

@ -0,0 +1,4 @@
class NicePipeBombPickup extends ScrnPipeBombPickup;
defaultproperties
{ cost=100 AmmoCost=100 ItemName="Pipe Bomb NW" ItemShortName="Pipe Bomb NW" AmmoItemName="Pipe Bomb NW" InventoryType=Class'NicePack.NicePipeBombExplosive'
}

View file

@ -0,0 +1,15 @@
class NicePipeBombProjectile extends ScrnPipeBombProjectile;
function TakeDamage(int Damage, Pawn instigatedBy, Vector Hitlocation, Vector Momentum, class<DamageType> damageType, optional int HitIndex){
local bool bIsFakePlayer;
if(KFMonster(instigatedBy) != none && KFMonster(instigatedBy).Health <= 0) return;
if(damageType == class'NiceDamTypePipeBomb' || Damage < 5 || (Damage < 25 && damageType.IsA('SirenScreamDamage'))) return;
bIsFakePlayer = (KFPawn(instigatedBy) != none || FakePlayerPawn(instigatedBy) != none) && (instigatedBy.PlayerReplicationInfo == none || instigatedBy.PlayerReplicationInfo.bOnlySpectator);
bIsFakePlayer = bIsFakePlayer || (instigatedBy == none && !DamageType.default.bCausedByWorld);
// Don't let our own explosives blow this up!!!
if(bIsFakePlayer || (KFPawn(instigatedBy) != none && Instigator != none && Instigator != instigatedBy)) return;
if(damageType == class'SirenScreamDamage') Disintegrate(HitLocation, vect(0,0,1));
else Explode(HitLocation, vect(0,0,1));
}
defaultproperties
{ Damage=2000.000000 MyDamageType=Class'NicePack.NiceDamTypePipeBomb'
}

View file

@ -0,0 +1,38 @@
class NiceBallisticHarpoon extends NiceBullet;
// Have we added this harpoon to a stuck projectiles list?
var bool bAddedMyself;
/*simulated function Tick(float delta){
local NiceSealSquealHarpoonBomber harpoonWeap;
if(bInitFinished && !bAddedMyself && bStuck && nicePlayer == localPlayer){
bAddedMyself = true;
harpoonWeap = NiceSealSquealHarpoonBomber(sourceWeapon);
harpoonWeap.stuckProjectiles[harpoonWeap.stuckProjectiles.Length] = stuckID;
}
super.Tick(delta);
}
function KillBullet(){
local int index;
local NiceSealSquealHarpoonBomber harpoonWeap;
if(bStuck && sourceWeapon != none){
harpoonWeap = NiceSealSquealHarpoonBomber(sourceWeapon);
for(index = 0;index < harpoonWeap.stuckProjectiles.Length;index ++)
if(harpoonWeap.stuckProjectiles[index] == stuckID){
NiceSealSquealHarpoonBomber(sourceWeapon).stuckProjectiles[index] = -1;
break;
}
}
super.KillBullet();
}*/
defaultproperties
{
charMinExplosionDist=300.000000
bDisableComplexMovement=False
movementFallTime=1.000000
TrailClass=Class'KFMod.SealSquealFuseEmitter'
trailXClass=None
regularImpact=(noiseRef="KF_FY_SealSquealSND.WEP_Harpoon_Hit_Flesh")
explosionImpact=(bImportanEffect=True,decalClass=Class'KFMod.KFScorchMark',EmitterClass=Class'KFMod.KFNadeLExplosion',emitterShiftWall=20.000000,emitterShiftPawn=20.000000,noiseRef="KF_FY_SealSquealSND.WEP_Harpoon_Explode",noiseVolume=2.000000)
disintegrationImpact=(EmitterClass=Class'KFMod.SirenNadeDeflect',noiseRef="Inf_Weapons.faust_explode_distant02",noiseVolume=2.000000)
StaticMeshRef="KF_IJC_Halloween_Weps2.Harpoon_Projectile"
AmbientSoundRef="KF_IJC_HalloweenSnd.KF_FlarePistol_Projectile_Loop"
}

View file

@ -0,0 +1,5 @@
class NiceDamTypeSealSquealBlunt extends NiceDamTypeDemoBlunt
abstract;
defaultproperties
{ WeaponClass=Class'NicePack.NiceSealSquealHarpoonBomber'
}

View file

@ -0,0 +1,4 @@
class NiceDamTypeSealSquealExplosion extends NiceDamTypeDemoExplosion;
defaultproperties
{ HeadShotDamageMult=1.500000 WeaponClass=Class'NicePack.NiceSealSquealHarpoonBomber'
}

View file

@ -0,0 +1,4 @@
class NiceSealSquealAmmo extends NiceAmmo;
defaultproperties
{ AmmoPickupAmount=3 MaxAmmo=24 InitialAmount=6 PickupClass=Class'NicePack.NiceSealSquealAmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=4,Y1=350,X2=110,Y2=395) ItemName="SealSqueal Harpoon Bombs"
}

View file

@ -0,0 +1,4 @@
class NiceSealSquealAmmoPickup extends NiceAmmoPickup;
defaultproperties
{ AmmoAmount=3 InventoryType=Class'NicePack.NiceSealSquealAmmo' PickupMessage="SealSqueal Harpoon Bombs" StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' CollisionRadius=25.000000
}

View file

@ -0,0 +1,4 @@
class NiceSealSquealAttachment extends NiceAttachment;
defaultproperties
{ mMuzFlashClass=Class'KFMod.SealSquealMuzzleFlash3P' MovementAnims(0)="JogF_IJC_SealSqueal" MovementAnims(1)="JogB_IJC_SealSqueal" MovementAnims(2)="JogL_IJC_SealSqueal" MovementAnims(3)="JogR_IJC_SealSqueal" TurnLeftAnim="TurnL_IJC_SealSqueal" TurnRightAnim="TurnR_IJC_SealSqueal" CrouchAnims(0)="CHWalkF_IJC_SealSqueal" CrouchAnims(1)="CHWalkB_IJC_SealSqueal" CrouchAnims(2)="CHWalkL_IJC_SealSqueal" CrouchAnims(3)="CHWalkR_IJC_SealSqueal" WalkAnims(0)="WalkF_IJC_SealSqueal" WalkAnims(1)="WalkB_IJC_SealSqueal" WalkAnims(2)="WalkL_IJC_SealSqueal" WalkAnims(3)="WalkR_IJC_SealSqueal" CrouchTurnRightAnim="CH_TurnR_IJC_SealSqueal" CrouchTurnLeftAnim="CH_TurnL_IJC_SealSqueal" IdleCrouchAnim="CHIdle_IJC_SealSqueal" IdleWeaponAnim="Idle_IJC_SealSqueal" IdleRestAnim="Idle_IJC_SealSqueal" IdleChatAnim="Idle_IJC_SealSqueal" IdleHeavyAnim="Idle_IJC_SealSqueal" IdleRifleAnim="Idle_IJC_SealSqueal" FireAnims(0)="Fire_IJC_SealSqueal" FireAnims(1)="Fire_IJC_SealSqueal" FireAnims(2)="Fire_IJC_SealSqueal" FireAnims(3)="Fire_IJC_SealSqueal" FireAltAnims(0)="Fire_IJC_SealSqueal" FireAltAnims(1)="Fire_IJC_SealSqueal" FireAltAnims(2)="Fire_IJC_SealSqueal" FireAltAnims(3)="Fire_IJC_SealSqueal" FireCrouchAnims(0)="CHFire_IJC_SealSqueal" FireCrouchAnims(1)="CHFire_IJC_SealSqueal" FireCrouchAnims(2)="CHFire_IJC_SealSqueal" FireCrouchAnims(3)="CHFire_IJC_SealSqueal" FireCrouchAltAnims(0)="CHFire_IJC_SealSqueal" FireCrouchAltAnims(1)="CHFire_IJC_SealSqueal" FireCrouchAltAnims(2)="CHFire_IJC_SealSqueal" FireCrouchAltAnims(3)="CHFire_IJC_SealSqueal" HitAnims(0)="HitF_IJC_SealSqueal" HitAnims(1)="HitB_IJC_SealSqueal" HitAnims(2)="HitL_IJC_SealSqueal" HitAnims(3)="HitR_IJC_SealSqueal" PostFireBlendStandAnim="Blend_IJC_SealSqueal" PostFireBlendCrouchAnim="CHBlend_IJC_SealSqueal" MeshRef="KF_Weapons3rd3_IJC.SealSqueal_3rd"
}

View file

@ -0,0 +1,38 @@
class NiceSealSquealFire extends NiceFire;
defaultproperties
{
ProjSpawnOffset=(X=5.000000)
EffectiveRange=2500.000000
ProjectileSpeed=3000.000000
bulletClass=Class'NicePack.NiceBallisticHarpoon'
ExplosionDamageType=Class'NicePack.NiceDamTypeSealSquealExplosion'
ExplosionDamage=480
ExplosionRadius=200.000000
explosionExponent=1.000000
ExplosionMomentum=75000.000000
fuseTime=15.000000
explodeOnFuse=True
bShouldStick=True
FireAimedAnim="Iron_Fire"
maxVerticalRecoilAngle=1500
maxHorizontalRecoilAngle=250
FireSoundRef="KF_FY_SealSquealSND.WEP_Harpoon_Fire_M"
StereoFireSoundRef="KF_FY_SealSquealSND.WEP_Harpoon_Fire"
NoAmmoSoundRef="KF_M79Snd.M79_DryFire"
DamageType=Class'NicePack.NiceDamTypeSealSquealBlunt'
DamageMax=150
bWaitForRelease=True
TransientSoundVolume=1.800000
FireForce="AssaultRifleFire"
FireRate=0.750000
AmmoClass=Class'NicePack.NiceSealSquealAmmo'
ShakeRotMag=(X=75.000000,Y=75.000000,Z=400.000000)
ShakeRotRate=(X=12500.000000,Y=12500.000000,Z=10000.000000)
ShakeRotTime=3.500000
ShakeOffsetMag=(X=6.000000,Y=1.000000,Z=8.000000)
ShakeOffsetRate=(X=1000.000000,Y=1000.000000,Z=1000.000000)
ShakeOffsetTime=2.500000
BotRefireRate=1.800000
FlashEmitterClass=Class'KFMod.SealSquealMuzzleFlash1P'
aimerror=42.000000
}

View file

@ -0,0 +1,71 @@
class NiceSealSquealHarpoonBomber extends NiceWeapon;
// Stuck projectiles, fired from this weapon
var array<int> stuckProjectiles;
/*simulated function ExplodeAllHarpoons(){
local int i;
for(i = 0;i < stuckProjectiles.Length;i ++){
if(stuckProjectiles[i] < 0)
continue;
NicePlayerController(instigator.controller).ExplodeStuckBullet(stuckProjectiles[i]);
}
stuckProjectiles.Length = 0;
}
simulated function SetupReloadVars(optional bool bIsActive, optional int animationIndex){
if(Role < ROLE_Authority)
ExplodeAllHarpoons();
super.SetupReloadVars(bIsActive, animationIndex);
}
simulated function AltFire(float f){
ExplodeAllHarpoons();
}
simulated function Destroyed(){
if(Role < ROLE_Authority)
ExplodeAllHarpoons();
super.Destroyed();
}*/
defaultproperties
{
reloadPreEndFrame=0.195000
reloadEndFrame=0.537000
reloadChargeEndFrame=0.861000
reloadMagStartFrame=0.325000
reloadChargeStartFrame=0.724000
MagCapacity=3
ReloadRate=4.000000
ReloadAnim="Reload"
ReloadAnimRate=1.000000
WeaponReloadAnim="Reload_IJC_SealSqueal"
Weight=6.000000
bHasAimingMode=True
IdleAimAnim="Idle_Iron"
StandardDisplayFOV=70.000000
TraderInfoTexture=Texture'KF_IJC_HUD.Trader_Weapon_Icons.Trader_SealSqueal'
bIsTier2Weapon=True
MeshRef="KF_IJC_Halloween_Weps_2.SealSqueal"
SkinRefs(0)="KF_IJC_Halloween_Weapons2.SealSqueal.SealSqueal_cmb"
SelectSoundRef="KF_FY_SealSquealSND.WEP_Harpoon_Foley_Select"
HudImageRef="KF_IJC_HUD.WeaponSelect.SealSqueal_unselected"
SelectedHudImageRef="KF_IJC_HUD.WeaponSelect.SealSqueal"
PlayerIronSightFOV=70.000000
ZoomedDisplayFOV=60.000000
FireModeClass(0)=Class'NicePack.NiceSealSquealFire'
FireModeClass(1)=Class'KFMod.NoFire'
PutDownAnim="PutDown"
SelectForce="SwitchToAssaultRifle"
AIRating=0.650000
CurrentRating=0.650000
Description="Shoot the zeds with this harpoon gun and watch them squeal.. and then explode!"
DisplayFOV=70.000000
Priority=171
InventoryGroup=4
GroupOffset=22
PickupClass=Class'NicePack.NiceSealSquealPickup'
PlayerViewOffset=(X=15.000000,Y=20.000000,Z=-8.000000)
BobDamping=6.000000
AttachmentClass=Class'NicePack.NiceSealSquealAttachment'
IconCoords=(X1=253,Y1=146,X2=333,Y2=181)
ItemName="SealSqueal Harpoon Bomber"
LightType=LT_None
LightBrightness=0.000000
LightRadius=0.000000
}

View file

@ -0,0 +1,4 @@
class NiceSealSquealPickup extends NiceWeaponPickup;
defaultproperties
{ Weight=6.000000 cost=750 AmmoCost=30 BuyClipSize=3 PowerValue=90 SpeedValue=35 RangeValue=85 Description="Shoot the zeds with this harpoon gun and watch them squeal.. and then explode!" ItemName="SealSqueal Harpoon Bomber" ItemShortName="SealSqueal" AmmoItemName="SealSqueal Harpoon Bombs" CorrespondingPerkIndex=6 EquipmentCategoryID=2 MaxDesireability=0.790000 InventoryType=Class'NicePack.NiceSealSquealHarpoonBomber' PickupMessage="You got the SealSqueal Harpoon Bomb Launcher." PickupSound=Sound'KF_FY_SealSquealSND.foley.WEP_Harpoon_Foley_Pickup' PickupForce="AssaultRiflePickup" StaticMesh=StaticMesh'KF_IJC_Halloween_Weps2.SealSqueal_Pickup' CollisionRadius=25.000000 CollisionHeight=10.000000
}

View file

@ -0,0 +1,13 @@
//=============================================================================
// SeekerSixAmmo
//=============================================================================
// Ammunition class for the SeekerSix mini rocket launcher
//=============================================================================
// Killing Floor Source
// Copyright (C) 2013 Tripwire Interactive LLC
// - John "Ramm-Jaeger" Gibson
//=============================================================================
class NiceSeekerSixAmmo extends SeekerSixAmmo;
defaultproperties
{ MaxAmmo=66 InitialAmount=30 PickupClass=Class'NicePack.NiceSeekerSixAmmoPickup'
}

View file

@ -0,0 +1,4 @@
class NiceSeekerSixAmmoPickup extends SeekerSixAmmoPickup;
defaultproperties
{ InventoryType=Class'NicePack.NiceSeekerSixAmmo'
}

View file

@ -0,0 +1,13 @@
//=============================================================================
// SeekerSixFire
//=============================================================================
// Primary fire class for the SeekerSix mini rocket launcher
//=============================================================================
// Killing Floor Source
// Copyright (C) 2013 Tripwire Interactive LLC
// - John "Ramm-Jaeger" Gibson
//=============================================================================
class NiceSeekerSixFire extends SeekerSixFire;
defaultproperties
{ AmmoClass=Class'NicePack.NiceSeekerSixAmmo' ProjectileClass=Class'NicePack.NiceSeekerSixRocketProjectile'
}

View file

@ -0,0 +1,4 @@
class NiceSeekerSixMultiFire extends SeekerSixMultiFire;
defaultproperties
{ AmmoClass=Class'NicePack.NiceSeekerSixAmmo' ProjectileClass=Class'NicePack.NiceSeekerSixRocketProjectile'
}

View file

@ -0,0 +1,4 @@
class NiceSeekerSixPickup extends SeekerSixPickup;
defaultproperties
{ AmmoCost=20 ItemName="SeekerSix Rocket Launcher NW" ItemShortName="SeekerSix NW" InventoryType=Class'NicePack.NiceSeekerSixRocketLauncher' PickupMessage="You got the SeekerSix Mini Rocket Launcher NW."
}

View file

@ -0,0 +1,19 @@
class NiceSeekerSixRocketLauncher extends SeekerSixRocketLauncher;
//=============================================================================
// Functions
//=============================================================================
function Projectile SpawnProjectile(Vector Start, Rotator Dir)
{
local NiceSeekerSixRocketProjectile Rocket;
local NiceSeekerSixSeekingRocketProjectile SeekingRocket;
bBreakLock = true;
if (bLockedOn && SeekTarget != none)
{ SeekingRocket = Spawn(class'NiceSeekerSixSeekingRocketProjectile',,, Start, Dir); SeekingRocket.Seeking = SeekTarget; return SeekingRocket;
}
else
{ Rocket = Spawn(class'NiceSeekerSixRocketProjectile',,, Start, Dir); return Rocket;
}
}
defaultproperties
{ AppID=0 FireModeClass(0)=Class'NicePack.NiceSeekerSixFire' FireModeClass(1)=Class'NicePack.NiceSeekerSixMultiFire' PickupClass=Class'NicePack.NiceSeekerSixPickup' ItemName="SeekerSix Rocket Launcher NW"
}

View file

@ -0,0 +1,4 @@
class NiceSeekerSixRocketProjectile extends SeekerSixRocketProjectile;
defaultproperties
{ ImpactDamage=150 Damage=250.000000
}

View file

@ -0,0 +1,27 @@
class NiceSeekerSixSeekingRocketProjectile extends NiceSeekerSixRocketProjectile;
var Actor Seeking;
var vector InitialDir;
replication
{
reliable if( bNetInitial && (Role==ROLE_Authority) ) Seeking, InitialDir;
}
simulated function Timer()
{
local vector ForceDir;
local float VelMag;
if ( InitialDir == vect(0,0,0) ) InitialDir = Normal(Velocity);
Acceleration = vect(0,0,0);
Super.Timer();
if ( (Seeking != none) && (Seeking != Instigator) )
{ // Do normal guidance to target. ForceDir = Normal(Seeking.Location - Location);
if( (ForceDir Dot InitialDir) > 0 ) { VelMag = VSize(Velocity); // Increase the multiplier that is currently 0.8 to make the rocket track better if you need to ForceDir = Normal(ForceDir * 0.8 * VelMag + Velocity); Velocity = VelMag * ForceDir; Acceleration += 5 * ForceDir; } // Update rocket so it faces in the direction its going. SetRotation(rotator(Velocity));
}
}
simulated function PostBeginPlay()
{
Super.PostBeginPlay();
SetTimer(0.1, true);
}
defaultproperties
{
}