diff --git a/sources/Perks/Demolitions/NiceVetDemolitions.uc b/sources/Perks/Demolitions/NiceVetDemolitions.uc index 3193c17..697085e 100644 --- a/sources/Perks/Demolitions/NiceVetDemolitions.uc +++ b/sources/Perks/Demolitions/NiceVetDemolitions.uc @@ -81,15 +81,15 @@ static function string GetCustomLevelInfo(byte Level){ defaultproperties { bNewTypePerk=True - SkillGroupA(0)=Class'NicePack.NiceSkillDemoOnperk' - SkillGroupA(1)=Class'NicePack.NiceSkillDemoDirectApproach' - SkillGroupA(2)=Class'NicePack.NiceSkillDemoConcussion' - SkillGroupA(3)=Class'NicePack.NiceSkillDemoAPShot' + SkillGroupA(0)=Class'NicePack.NiceSkillDemoConcussion' + SkillGroupA(1)=Class'NicePack.NiceSkillDemoOnperk' + SkillGroupA(2)=Class'NicePack.NiceSkillDemoDirectApproach' + SkillGroupA(3)=Class'NicePack.NiceSkillDemoReactiveArmor' SkillGroupA(4)=Class'NicePack.NiceSkillDemoZEDDuckAndCover' SkillGroupB(0)=Class'NicePack.NiceSkillDemoOffperk' - SkillGroupB(1)=Class'NicePack.NiceSkillDemoVolatile' - SkillGroupB(2)=Class'NicePack.NiceSkillDemoReactiveArmor' - SkillGroupB(3)=Class'NicePack.NiceSkillDemoManiac' + SkillGroupB(1)=Class'NicePack.NiceSkillDemoManiac' + SkillGroupB(2)=Class'NicePack.NiceSkillDemoAPShot' + SkillGroupB(3)=Class'NicePack.NiceSkillDemoVolatile' SkillGroupB(4)=Class'NicePack.NiceSkillDemoZEDFullBlast' progressArray0(0)=100 progressArray0(1)=1000 diff --git a/sources/Weapons/NiceFire.uc b/sources/Weapons/NiceFire.uc index ef39bb6..88528ac 100644 --- a/sources/Weapons/NiceFire.uc +++ b/sources/Weapons/NiceFire.uc @@ -458,6 +458,7 @@ simulated function HandleRecoil(float Rec){ local NiceHumanPawn nicePawn; local vector AdjustedVelocity; local float AdjustedSpeed; + local KFWeapon kfWeap; if(Instigator != none){ nicePlayer = NicePlayerController(Instigator.Controller); nicePawn = NiceHumanPawn(Instigator); @@ -468,6 +469,10 @@ simulated function HandleRecoil(float Rec){ Rec = 0.0; bResetRecoil = false; } + kfWeap= KFWeapon(Weapon); + if (kfWeap.bAimingRifle) { + Rec *= 0.5; + } if(nicePawn.stationaryTime > 0.0 && class'NiceVeterancyTypes'.static.hasSkill(nicePlayer, class'NiceSkillHeavyStablePosition')){ stationarySeconds = Ceil(2 * nicePawn.stationaryTime) - 1; Rec *= FMax(0.0, 1.0 - (stationarySeconds * class'NiceSkillHeavyStablePosition'.default.recoilDampeningBonus)); diff --git a/sources/Weapons/NiceScopedWeapon.uc b/sources/Weapons/NiceScopedWeapon.uc deleted file mode 100644 index 9cc382e..0000000 --- a/sources/Weapons/NiceScopedWeapon.uc +++ /dev/null @@ -1,441 +0,0 @@ -class NiceScopedWeapon extends NiceWeapon - abstract; -#exec OBJ LOAD FILE=ScopeShaders.utx -#exec OBJ LOAD FILE=..\Textures\NicePackT.utx -#exec OBJ LOAD FILE=ScrnWeaponPack_T.utx -#exec OBJ LOAD FILE=ScrnWeaponPack_A.ukx -var() Material ZoomMat; -var() Sound ZoomSound; -var() int lenseMaterialID; // used since material id's seem to change alot -var() float scopePortalFOVHigh; // The FOV to zoom the scope portal by. -var() float scopePortalFOV; // The FOV to zoom the scope portal by. -var() vector XoffsetScoped; -var() vector XoffsetHighDetail; -var() int tileSize; -// 3d Scope vars -var ScriptedTexture ScopeScriptedTexture; // Scripted texture for 3d scopes -var Shader ScopeScriptedShader; // The shader that combines the scripted texture with the sight overlay -var Material ScriptedTextureFallback; // The texture to render if the users system doesn't support shaders -// new scope vars -var Combiner ScriptedScopeCombiner; -var texture TexturedScopeTexture; -var bool bInitializedScope; // Set to true when the scope has been initialized -var string ZoomMatRef; -var string ScriptedTextureFallbackRef; -var texture CrosshairTex; -var string CrosshairTexRef; -static function PreloadAssets(Inventory Inv, optional bool bSkipRefCount){ - local NiceScopedWeapon W; - super.PreloadAssets(Inv, bSkipRefCount); - if(default.ZoomMat == none && default.ZoomMatRef != ""){ - // Try to load as various types of materials - default.ZoomMat = FinalBlend(DynamicLoadObject(default.ZoomMatRef, class'FinalBlend', true)); - if(default.ZoomMat == none) - default.ZoomMat = Combiner(DynamicLoadObject(default.ZoomMatRef, class'Combiner', true)); - if(default.ZoomMat == none) - default.ZoomMat = Shader(DynamicLoadObject(default.ZoomMatRef, class'Shader', true)); - if(default.ZoomMat == none) - default.ZoomMat = Texture(DynamicLoadObject(default.ZoomMatRef, class'Texture', true)); - if(default.ZoomMat == none) - default.ZoomMat = Material(DynamicLoadObject(default.ZoomMatRef, class'Material')); - } - if(default.ScriptedTextureFallback == none && default.ScriptedTextureFallbackRef != "") - default.ScriptedTextureFallback = texture(DynamicLoadObject(default.ScriptedTextureFallbackRef, class'texture')); - if(default.CrosshairTex == none && default.CrosshairTexRef != "") - default.CrosshairTex = Texture(DynamicLoadObject(default.CrosshairTexRef, class'texture')); - W = NiceScopedWeapon(Inv); - if(W != none){ - W.ZoomMat = default.ZoomMat; - W.ScriptedTextureFallback = default.ScriptedTextureFallback; - W.CrosshairTex = default.CrosshairTex; - } -} -static function bool UnloadAssets(){ - if(super.UnloadAssets()){ - default.ZoomMat = none; - default.ScriptedTextureFallback = none; - default.CrosshairTex = none; - } - return true; -} -simulated function bool ShouldDrawPortal() -{ - if(bAimingRifle) - return true; - else - return false; -} -simulated function PostBeginPlay() -{ - super.PostBeginPlay(); - // Get new scope detail value from KFWeapon - KFScopeDetail = class'KFMod.KFWeapon'.default.KFScopeDetail; - UpdateScopeMode(); -} -// Handles initializing and swithing between different scope modes -simulated function UpdateScopeMode() -{ - if (Level.NetMode != NM_DedicatedServer && Instigator != none && Instigator.IsLocallyControlled() && Instigator.IsHumanControlled()){ - if(KFScopeDetail == KF_ModelScope){ - scopePortalFOV = default.scopePortalFOV; - ZoomedDisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV); - - if (bUsingSights || bAimingRifle) - PlayerViewOffset = XoffsetScoped; - - if(ScopeScriptedTexture == none) - ScopeScriptedTexture = ScriptedTexture(Level.ObjectPool.AllocateObject(class'ScriptedTexture')); - - ScopeScriptedTexture.FallBackMaterial = ScriptedTextureFallback; - ScopeScriptedTexture.SetSize(512,512); - ScopeScriptedTexture.Client = Self; - - if(ScriptedScopeCombiner == none){ - ScriptedScopeCombiner = Combiner(Level.ObjectPool.AllocateObject(class'Combiner')); - ScriptedScopeCombiner.Material1 = CrosshairTex; - ScriptedScopeCombiner.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader'; - ScriptedScopeCombiner.CombineOperation = CO_Multiply; - ScriptedScopeCombiner.AlphaOperation = AO_Use_Mask; - ScriptedScopeCombiner.Material2 = ScopeScriptedTexture; - } - if(ScopeScriptedShader == none){ - ScopeScriptedShader = Shader(Level.ObjectPool.AllocateObject(class'Shader')); - ScopeScriptedShader.Diffuse = ScriptedScopeCombiner; - ScopeScriptedShader.SelfIllumination = ScriptedScopeCombiner; - ScopeScriptedShader.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader'; - } - - bInitializedScope = true; - } - else if( KFScopeDetail == KF_ModelScopeHigh ) - { - scopePortalFOV = scopePortalFOVHigh; - ZoomedDisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOVHigh); - if(bUsingSights || bAimingRifle) - PlayerViewOffset = XoffsetHighDetail; - - if(ScopeScriptedTexture == none) - ScopeScriptedTexture = ScriptedTexture(Level.ObjectPool.AllocateObject(class'ScriptedTexture')); - ScopeScriptedTexture.FallBackMaterial = ScriptedTextureFallback; - ScopeScriptedTexture.SetSize(1024,1024); - ScopeScriptedTexture.Client = Self; - - if(ScriptedScopeCombiner == none){ - ScriptedScopeCombiner = Combiner(Level.ObjectPool.AllocateObject(class'Combiner')); - ScriptedScopeCombiner.Material1 = CrosshairTex; - ScriptedScopeCombiner.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader'; - ScriptedScopeCombiner.CombineOperation = CO_Multiply; - ScriptedScopeCombiner.AlphaOperation = AO_Use_Mask; - ScriptedScopeCombiner.Material2 = ScopeScriptedTexture; - } - - if(ScopeScriptedShader == none){ - ScopeScriptedShader = Shader(Level.ObjectPool.AllocateObject(class'Shader')); - ScopeScriptedShader.Diffuse = ScriptedScopeCombiner; - ScopeScriptedShader.SelfIllumination = ScriptedScopeCombiner; - ScopeScriptedShader.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader'; - } - - bInitializedScope = true; - } - else if (KFScopeDetail == KF_TextureScope){ - ZoomedDisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV); - PlayerViewOffset.X = default.PlayerViewOffset.X; - - bInitializedScope = true; - } - } -} -simulated event RenderTexture(ScriptedTexture Tex) -{ - local rotator RollMod; - RollMod = Instigator.GetViewRotation(); - if(Owner != none && Instigator != none && Tex != none && Tex.Client != none) - Tex.DrawPortal(0,0,Tex.USize,Tex.VSize,Owner,(Instigator.Location + Instigator.EyePosition()), RollMod, scopePortalFOV ); -} -simulated function SetZoomBlendColor(Canvas c) -{ - local Byte val; - local Color clr; - local Color fog; - clr.R = 255; - clr.G = 255; - clr.B = 255; - clr.A = 255; - if(Instigator.Region.Zone.bDistanceFog){ - fog = Instigator.Region.Zone.DistanceFogColor; - val = 0; - val = Max(val, fog.R); - val = Max(val, fog.G); - val = Max(val, fog.B); - if(val > 128){ - val -= 128; - clr.R -= val; - clr.G -= val; - clr.B -= val; - } - } - c.DrawColor = clr; -} -//Handles all the functionality for zooming in including -// setting the parameters for the weapon, pawn, and playercontroller -simulated function ZoomIn(bool bAnimateTransition) -{ - default.ZoomTime = default.recordedZoomTime; - PlayerIronSightFOV = default.PlayerIronSightFOV; - scopePortalFOVHigh = default.scopePortalFOVHigh; - scopePortalFOV = default.scopePortalFOV; - PlayerIronSightFOV = default.PlayerIronSightFOV; - if(instigator != none && instigator.bIsCrouched && class'NiceVeterancyTypes'.static.hasSkill(NicePlayerController(Instigator.Controller), class'NiceSkillSharpshooterHardWork')){ - default.ZoomTime *= class'NiceSkillSharpshooterControl'.default.zoomSpeedBonus; - if(instigator != none && instigator.bIsCrouched){ - PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - scopePortalFOVHigh *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - scopePortalFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - } - } - super(BaseKFWeapon).ZoomIn(bAnimateTransition); - bAimingRifle = True; - if(KFHumanPawn(Instigator) != none) - KFHumanPawn(Instigator).SetAiming(True); - if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none ){ - if(AimInSound != none) - PlayOwnedSound(AimInSound, SLOT_Interact,,,,, false); - } -} -// Handles all the functionality for zooming out including -// setting the parameters for the weapon, pawn, and playercontroller -simulated function ZoomOut(bool bAnimateTransition) -{ - default.ZoomTime = default.recordedZoomTime; - PlayerIronSightFOV = default.PlayerIronSightFOV; - scopePortalFOVHigh = default.scopePortalFOVHigh; - scopePortalFOV = default.scopePortalFOV; - PlayerIronSightFOV = default.PlayerIronSightFOV; - if(class'NiceVeterancyTypes'.static.hasSkill(NicePlayerController(Instigator.Controller), class'NiceSkillSharpshooterControl')){ - default.ZoomTime *= class'NiceSkillSharpshooterControl'.default.zoomSpeedBonus; - PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - scopePortalFOVHigh *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - scopePortalFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus; - } - super.ZoomOut(bAnimateTransition); - bAimingRifle = False; - if( KFHumanPawn(Instigator)!=none ) - KFHumanPawn(Instigator).SetAiming(False); - if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none ) - { - if( AimOutSound != none ) - { - PlayOwnedSound(AimOutSound, SLOT_Interact,,,,, false); - } - KFPlayerController(Instigator.Controller).TransitionFOV(KFPlayerController(Instigator.Controller).DefaultFOV,0.0); - } -} -simulated function WeaponTick(float dt) -{ - super.WeaponTick(dt); - if(bAimingRifle && ForceZoomOutTime > 0 && Level.TimeSeconds - ForceZoomOutTime > 0) - { - ForceZoomOutTime = 0; - - ZoomOut(false); - - if(Role < ROLE_Authority) - ServerZoomOut(false); - } -} -// Called by the native code when the interpolation of the first person weapon to the zoomed position finishes -simulated event OnZoomInFinished() -{ - local name anim; - local float frame, rate; - GetAnimParams(0, anim, frame, rate); - if (ClientState == WS_ReadyToFire) - { - // Play the iron idle anim when we're finished zooming in - if (anim == IdleAnim) - { - PlayIdle(); - } - } - if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none && - KFScopeDetail == KF_TextureScope ) - { - KFPlayerController(Instigator.Controller).TransitionFOV(PlayerIronSightFOV,0.0); - } -} -simulated function bool CanZoomNow() -{ - Return (!FireMode[0].bIsFiring && !FireMode[1].bIsFiring && Instigator!=none && Instigator.Physics!=PHYS_Falling); -} -simulated event RenderOverlays(Canvas Canvas) -{ - local int m; - local PlayerController PC; - if (Instigator == none) - return; - PC = PlayerController(Instigator.Controller); - if(PC == none) - return; - if(!bInitializedScope && PC != none ) - { - UpdateScopeMode(); - } - Canvas.DrawActor(none, false, true); - for (m = 0; m < NUM_FIRE_MODES; m++) - { - if (FireMode[m] != none) - { - FireMode[m].DrawMuzzleFlash(Canvas); - } - } - - SetLocation( Instigator.Location + Instigator.CalcDrawOffset(self) ); - SetRotation( Instigator.GetViewRotation() + ZoomRotInterp); - PreDrawFPWeapon(); - if(bAimingRifle && PC != none && (KFScopeDetail == KF_ModelScope || KFScopeDetail == KF_ModelScopeHigh)){ - if(ShouldDrawPortal()){ - if(ScopeScriptedTexture != none){ - Skins[LenseMaterialID] = ScopeScriptedShader; - ScopeScriptedTexture.Client = Self; - ScopeScriptedTexture.Revision = (ScopeScriptedTexture.Revision + 1); - } - } - - bDrawingFirstPerson = true; - Canvas.DrawBoundActor(self, false, false,DisplayFOV,PC.Rotation,rot(0,0,0),Instigator.CalcZoomedDrawOffset(self)); - bDrawingFirstPerson = false; - } - else if(KFScopeDetail == KF_TextureScope && PC.DesiredFOV == PlayerIronSightFOV && bAimingRifle){ - Skins[LenseMaterialID] = ScriptedTextureFallback; - - SetZoomBlendColor(Canvas); - - Canvas.Style = ERenderStyle.STY_Normal; - Canvas.SetPos(0, 0); - Canvas.DrawTile(ZoomMat, (Canvas.SizeX - Canvas.SizeY) / 2, Canvas.SizeY, 0.0, 0.0, 8, 8); - Canvas.SetPos(Canvas.SizeX, 0); - Canvas.DrawTile(ZoomMat, -(Canvas.SizeX - Canvas.SizeY) / 2, Canvas.SizeY, 0.0, 0.0, 8, 8); - - Canvas.Style = 255; - Canvas.SetPos((Canvas.SizeX - Canvas.SizeY) / 2,0); - Canvas.DrawTile(ZoomMat, Canvas.SizeY, Canvas.SizeY, 0.0, 0.0, tileSize, tileSize); - - Canvas.Font = Canvas.MedFont; - Canvas.SetDrawColor(200,150,0); - - Canvas.SetPos(Canvas.SizeX * 0.16, Canvas.SizeY * 0.43); - Canvas.DrawText(" "); - - Canvas.SetPos(Canvas.SizeX * 0.16, Canvas.SizeY * 0.47); - } - else{ - Skins[LenseMaterialID] = ScriptedTextureFallback; - bDrawingFirstPerson = true; - Canvas.DrawActor(self, false, false, DisplayFOV); - bDrawingFirstPerson = false; - } -} -// Adjust a single FOV based on the current aspect ratio. Adjust FOV is the default NON-aspect ratio adjusted FOV to adjust -simulated function float CalcAspectRatioAdjustedFOV(float AdjustFOV) -{ - local KFPlayerController KFPC; - local float ResX, ResY; - local float AspectRatio; - KFPC = KFPlayerController(Level.GetLocalPlayerController()); - if( KFPC == none ) - { - return AdjustFOV; - } - ResX = float(GUIController(KFPC.Player.GUIController).ResX); - ResY = float(GUIController(KFPC.Player.GUIController).ResY); - AspectRatio = ResX / ResY; - if ( KFPC.bUseTrueWideScreenFOV && AspectRatio >= 1.60 ) //1.6 = 16/10 which is 16:10 ratio and 16:9 comes to 1.77 - { - return CalcFOVForAspectRatio(AdjustFOV); - } - else - { - return AdjustFOV; - } -} -// AdjustIngameScope(RO) - Takes the changes to the ScopeDetail variable and -// sets the scope to the new detail mode. Called when the player switches the -// scope setting ingame, or when the scope setting is changed from the menu -simulated function AdjustIngameScope() -{ - local PlayerController PC; - if(Instigator == none || PlayerController(Instigator.Controller) == none) - return; - PC = PlayerController(Instigator.Controller); - if(!bHasScope) - return; - switch (KFScopeDetail) - { - case KF_ModelScope: - if(bAimingRifle) - DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV); - if (PC.DesiredFOV == PlayerIronSightFOV && bAimingRifle){ - if(Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none) - KFPlayerController(Instigator.Controller).TransitionFOV(KFPlayerController(Instigator.Controller).DefaultFOV,0.0); - } - break; - - case KF_TextureScope: - if(bAimingRifle) - DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV); - if (bAimingRifle && PC.DesiredFOV != PlayerIronSightFOV){ - if(Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none) - KFPlayerController(Instigator.Controller).TransitionFOV(PlayerIronSightFOV,0.0); - } - break; - - case KF_ModelScopeHigh: - if(bAimingRifle){ - if(default.ZoomedDisplayFOVHigh > 0) - DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOVHigh); - else - DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV); - } - if ( bAimingRifle && PC.DesiredFOV == PlayerIronSightFOV ) - { - if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none ) - { - KFPlayerController(Instigator.Controller).TransitionFOV(KFPlayerController(Instigator.Controller).DefaultFOV,0.0); - } - } - break; - } - // Make any chagned to the scope setup - UpdateScopeMode(); -} -simulated event Destroyed() -{ - PreTravelCleanUp(); - Super.Destroyed(); -} -simulated function PreTravelCleanUp() -{ - if(ScopeScriptedTexture != none){ - ScopeScriptedTexture.Client = none; - Level.ObjectPool.FreeObject(ScopeScriptedTexture); - ScopeScriptedTexture=none; - } - if(ScriptedScopeCombiner != none){ - ScriptedScopeCombiner.Material2 = none; - Level.ObjectPool.FreeObject(ScriptedScopeCombiner); - ScriptedScopeCombiner = none; - } - if(ScopeScriptedShader != none){ - ScopeScriptedShader.Diffuse = none; - ScopeScriptedShader.SelfIllumination = none; - Level.ObjectPool.FreeObject(ScopeScriptedShader); - ScopeScriptedShader = none; - } -} -defaultproperties -{ - tileSize=1024 -} diff --git a/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203Ammo.uc b/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203Ammo.uc index 1f688b9..20e9c36 100644 --- a/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203Ammo.uc +++ b/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203Ammo.uc @@ -4,8 +4,8 @@ defaultproperties { WeaponPickupClass=Class'NicePack.NiceM4Pickup' AmmoPickupAmount=30 - MaxAmmo=120 - InitialAmount=30 + MaxAmmo=180 + InitialAmount=60 PickupClass=Class'NicePack.NiceM4M203AmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=336,Y1=82,X2=382,Y2=125) diff --git a/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmo.uc b/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmo.uc index 31358a4..3759037 100644 --- a/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmo.uc +++ b/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmo.uc @@ -3,8 +3,8 @@ defaultproperties { WeaponPickupClass=Class'NicePack.NiceM4M203Pickup' AmmoPickupAmount=1 - MaxAmmo=15 - InitialAmount=4 + MaxAmmo=8 + InitialAmount=2 PickupClass=Class'NicePack.NiceM4M203AmmoPickup' IconMaterial=Texture'KillingFloorHUD.Generic.HUD' IconCoords=(X1=4,Y1=350,X2=110,Y2=395) diff --git a/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmoPickup.uc b/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmoPickup.uc index 5d26989..0b4587d 100644 --- a/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmoPickup.uc +++ b/sources/Weapons/Playable/AssaultRifles/M4M203/NiceM4M203NadeAmmoPickup.uc @@ -1,7 +1,7 @@ class NiceM4M203NadeAmmoPickup extends NiceAmmoPickup; defaultproperties { - AmmoAmount=2 + AmmoAmount=1 InventoryType=Class'NicePack.NiceM4M203NadeAmmo' PickupMessage="M203 Grenades" } diff --git a/sources/Weapons/Playable/Shotguns/AA12/NiceAA12Fire.uc b/sources/Weapons/Playable/Shotguns/AA12/NiceAA12Fire.uc index ef2374d..8a68624 100644 --- a/sources/Weapons/Playable/Shotguns/AA12/NiceAA12Fire.uc +++ b/sources/Weapons/Playable/Shotguns/AA12/NiceAA12Fire.uc @@ -22,4 +22,5 @@ defaultproperties ShakeOffsetMag=(Z=6.000000) ShakeOffsetTime=1.250000 BotRefireRate=0.250000 + Spread=1125.000000 } diff --git a/sources/Weapons/Playable/Shotguns/KSG/NiceKSGFire.uc b/sources/Weapons/Playable/Shotguns/KSG/NiceKSGFire.uc index b58a9a3..106fd3e 100644 --- a/sources/Weapons/Playable/Shotguns/KSG/NiceKSGFire.uc +++ b/sources/Weapons/Playable/Shotguns/KSG/NiceKSGFire.uc @@ -15,5 +15,5 @@ defaultproperties FireRate=0.943000 AmmoClass=Class'NicePack.NiceKSGAmmo' BotRefireRate=0.250000 - Spread=1000.000000 + Spread=750.000000 } diff --git a/sources/Zeds/Mean/MeanZombieHusk.uc b/sources/Zeds/Mean/MeanZombieHusk.uc index 07dff21..7c27a60 100644 --- a/sources/Zeds/Mean/MeanZombieHusk.uc +++ b/sources/Zeds/Mean/MeanZombieHusk.uc @@ -61,7 +61,7 @@ function RangedAttack(Actor A) { else if((KFDoorMover(A) != none || (!Region.Zone.bDistanceFog && VSize(A.Location-Location) <= 65535) || (Region.Zone.bDistanceFog && VSizeSquared(A.Location-Location) < (Square(Region.Zone.DistanceFogEnd) * 0.8))) // Make him come out of the fog a bit - && !bDecapitated ) { + && !bDecapitated && Physics != PHYS_Falling) { bShotAnim = true; SetAnimAction('ShootBurns'); diff --git a/sources/Zeds/Nice/NiceZombieCrawler.uc b/sources/Zeds/Nice/NiceZombieCrawler.uc index 1a14b2e..027529c 100644 --- a/sources/Zeds/Nice/NiceZombieCrawler.uc +++ b/sources/Zeds/Nice/NiceZombieCrawler.uc @@ -5,7 +5,7 @@ class NiceZombieCrawler extends NiceZombieCrawlerBase; //---------------------------------------------------------------------------- function bool DoPounce() { - if (bZapped || bIsCrouched || bWantsToCrouch || (Physics != PHYS_Walking) || VSize(Location - Controller.Target.Location) > (MeleeRange * 5)) + if (headHealth <= 0 || bZapped || bIsCrouched || bWantsToCrouch || (Physics != PHYS_Walking) || VSize(Location - Controller.Target.Location) > (MeleeRange * 5)) return false; Velocity = Normal(Controller.Target.Location-Location)*PounceSpeed; Velocity.Z = JumpZ; diff --git a/sources/Zeds/Nice/NiceZombieHusk.uc b/sources/Zeds/Nice/NiceZombieHusk.uc index c9d5d19..88cb718 100644 --- a/sources/Zeds/Nice/NiceZombieHusk.uc +++ b/sources/Zeds/Nice/NiceZombieHusk.uc @@ -79,7 +79,7 @@ function RangedAttack(Actor A) else if ( (KFDoorMover(A) != none || (!Region.Zone.bDistanceFog && VSize(A.Location-Location) <= 65535) || (Region.Zone.bDistanceFog && VSizeSquared(A.Location-Location) < (Square(Region.Zone.DistanceFogEnd) * 0.8))) // Make him come out of the fog a bit - && !bDecapitated ) + && !bDecapitated && Physics != PHYS_Falling) { bShotAnim = true; diff --git a/sources/Zeds/Nice/NiceZombieShiverBase.uc b/sources/Zeds/Nice/NiceZombieShiverBase.uc index c84d705..3246b61 100644 --- a/sources/Zeds/Nice/NiceZombieShiverBase.uc +++ b/sources/Zeds/Nice/NiceZombieShiverBase.uc @@ -101,4 +101,5 @@ defaultproperties PrePivot=(Z=5.000000) Skins(0)=Combiner'ScrnZedPack_T.Shiver.CmbRemoveAlpha' RotationRate=(Yaw=45000,Roll=0) + BleedOutDuration=3.0 } diff --git a/sources/Zeds/Nice/NiceZombieSiren.uc b/sources/Zeds/Nice/NiceZombieSiren.uc index a0efd81..c98be06 100644 --- a/sources/Zeds/Nice/NiceZombieSiren.uc +++ b/sources/Zeds/Nice/NiceZombieSiren.uc @@ -116,6 +116,7 @@ function RangedAttack(Actor A) { Acceleration = AccelRate * Normal(A.Location - Location); } + Acceleration.Z = FMin(Acceleration.Z, 0.0f); } } simulated function int DoAnimAction( name AnimName ) diff --git a/sources/Zeds/Nice/NiceZombieTeslaHusk.uc b/sources/Zeds/Nice/NiceZombieTeslaHusk.uc index b6745cb..4362308 100644 --- a/sources/Zeds/Nice/NiceZombieTeslaHusk.uc +++ b/sources/Zeds/Nice/NiceZombieTeslaHusk.uc @@ -137,7 +137,9 @@ function FreePrimaryBeam() PrimaryBeam.EndActor = none; PrimaryBeam.EffectEndTime = Level.TimeSeconds - 1; PrimaryBeam.Instigator = none; // mark to delete - PrimaryBeam = none; }} + PrimaryBeam = none; + } +} function RangedAttack(Actor A) { local float Dist; diff --git a/sources/Zeds/NiceAvoidMarkerFP.uc b/sources/Zeds/NiceAvoidMarkerFP.uc index f2efaa7..57b5a55 100644 --- a/sources/Zeds/NiceAvoidMarkerFP.uc +++ b/sources/Zeds/NiceAvoidMarkerFP.uc @@ -22,7 +22,7 @@ function Touch( actor Other ){ function bool RelevantTo(Pawn P){ local NiceMonster niceZed; niceZed = NiceMonster(P); - if(niceZed != none && niceZed.default.Health >= 1000) + if(niceZed != none && (niceZed.default.Health >= 1000 || NiceZombieJason(niceZed) != none)) return false; return (niceFP != none && VSizeSquared(niceFP.Velocity) >= 75 && Super.RelevantTo(P) && niceFP.Velocity dot (P.Location - niceFP.Location) > 0 ); }