diff --git a/Engine/Classes/OnlineSubsystem.uc b/Engine/Classes/OnlineSubsystem.uc index 0a9e94e..643d6c7 100644 --- a/Engine/Classes/OnlineSubsystem.uc +++ b/Engine/Classes/OnlineSubsystem.uc @@ -1558,6 +1558,7 @@ struct native ExchangeRuleSets var array ExchangeRuleSetList; native function OpenMarketPlaceSearch(ItemProperties Item); +native function OpenMarketPlaceSearchBySignedOfferId(string SignedOfferId); native function OpenItemPurchaseOverlay(int SKU); native function OpenURL(string WebsiteLink); native function OpenGameStorePage(); diff --git a/Engine/Classes/Pawn.uc b/Engine/Classes/Pawn.uc index e5dceca..6c8ddda 100644 --- a/Engine/Classes/Pawn.uc +++ b/Engine/Classes/Pawn.uc @@ -2596,17 +2596,10 @@ event TakeDamage(int Damage, Controller InstigatedBy, vector HitLocation, vector Killer = SetKillInstigator(InstigatedBy, DamageType); TearOffMomentum = momentum; Died(Killer, damageType, HitLocation); - - // using the passed in damage type instead of the hitfxinfo since that doesn't get updated when zero damage is done - HandleAfflictionsOnHit(InstigatedBy, Normal(Momentum), DamageType, DamageCauser); } else { HandleMomentum( momentum, HitLocation, DamageType, HitInfo ); - - // using the passed in damage type instead of the hitfxinfo since that doesn't get updated when zero damage is done - HandleAfflictionsOnHit(InstigatedBy, Normal(Momentum), DamageType, DamageCauser); - NotifyTakeHit(InstigatedBy, HitLocation, ActualDamage, DamageType, Momentum, DamageCauser); if (DrivenVehicle != None) { @@ -2626,8 +2619,6 @@ event TakeDamage(int Damage, Controller InstigatedBy, vector HitLocation, vector `endif } -function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class DamageType, Actor DamageCauser); - /* * Queries the PRI and returns our current team index. */ diff --git a/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc b/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc index 7cc800d..87efa45 100644 --- a/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc +++ b/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc @@ -19,6 +19,13 @@ struct SWhatsNew var string TextField; var string RedirectURL; var string PSNProductId; + /** Used for those entitlements which does not have a "linked" Playfab item (like Armory Season Pass 2021)*/ + var bool bPlayfabItemPairedUp; + + structdefaultproperties + { + bPlayfabItemPairedUp=true + } }; var array WhatsNewItems; diff --git a/KFGame/Classes/KFGameEngine.uc b/KFGame/Classes/KFGameEngine.uc index c4af57b..470290a 100644 --- a/KFGame/Classes/KFGameEngine.uc +++ b/KFGame/Classes/KFGameEngine.uc @@ -219,7 +219,7 @@ native static function InitEventContent(); native static function RefreshEventContent(); // make sure our current tweak values are up-to-date with global -native static function RefreshOnlineGameData(); +native static function RefreshOnlineGameData(bool RefreshTimeEvent = true); native static function ApplyTweaks(string MapName); native static function bool IsLastRefreshTweakParamsSuccessful(); diff --git a/KFGame/Classes/KFGameReplicationInfo.uc b/KFGame/Classes/KFGameReplicationInfo.uc index 67ec017..dd8338b 100644 --- a/KFGame/Classes/KFGameReplicationInfo.uc +++ b/KFGame/Classes/KFGameReplicationInfo.uc @@ -775,7 +775,7 @@ simulated function EndGame() bMatchHasBegun = false; bMatchIsOver = true; - class'KFGameEngine'.static.RefreshOnlineGameData(); + class'KFGameEngine'.static.RefreshOnlineGameData(false); } /* Welcome screen shenanigans */ diff --git a/KFGame/Classes/KFGfxMenu_StartGame.uc b/KFGame/Classes/KFGfxMenu_StartGame.uc index 4a44965..612edff 100644 --- a/KFGame/Classes/KFGfxMenu_StartGame.uc +++ b/KFGame/Classes/KFGfxMenu_StartGame.uc @@ -764,8 +764,21 @@ function Callback_OnWhatsNewClicked(int Index, string URL) Manager.OnBuyGamePressed(); return; } + //We skip looking in the catalog for the linked Playfab item to this entitlement. We open up directly the store + if ( !FindGameContainer.PS4ActiveWhatsNewItems[Index].bPlayfabItemPairedUp ) + { + `log(`location@" Product ID: "@FindGameContainer.PS4ActiveWhatsNewItems[Index].PSNProductId@" does not have a playfab item paired up. Opening up directly store."); + if( class'WorldInfo'.static.IsConsoleBuild( CONSOLE_Orbis ) ) + { + OnlineSub.OpenMarketPlaceSearchBySignedOfferId( FindGameContainer.PS4ActiveWhatsNewItems[Index].PSNProductId ); + } + else + { + OnlineSub.PlayerInterfaceEx.ShowProductDetailsUI( GetLP().ControllerId, FindGameContainer.PS4ActiveWhatsNewItems[Index].PSNProductId ); + } + } // If this is attached to a PSN product ID, we need to look up the signed offer Id - if( FindGameContainer.PS4ActiveWhatsNewItems[Index].PSNProductId != "" ) + else if( FindGameContainer.PS4ActiveWhatsNewItems[Index].PSNProductId != "" ) { for( i = 0; i < OnlineSub.ItemPropertiesList.Length; i++ ) { @@ -1918,9 +1931,9 @@ defaultproperties SubWidgetBindings.Add((WidgetName ="newsPage",WidgetClass=class'KFGFxStartContainer_NewsImageHolder')) - WhatsNewPS="http://www.killingfloor2.com/psnews" - WhatsNewMS="http://www.killingfloor2.com/xboxnews" - WhatsNewSteam="http://www.killingfloor2.com/pcnews" + WhatsNewPS="https://www.killingfloor2.com/psnews" + WhatsNewMS="https://www.killingfloor2.com/xboxnews" + WhatsNewSteam="https://www.killingfloor2.com/pcnews" } diff --git a/KFGame/Classes/KFPawn.uc b/KFGame/Classes/KFPawn.uc index 4b1b495..36c6feb 100644 --- a/KFGame/Classes/KFPawn.uc +++ b/KFGame/Classes/KFPawn.uc @@ -2672,6 +2672,9 @@ event TakeDamage(int Damage, Controller InstigatedBy, vector HitLocation, vector OldHealth = Health; Super.TakeDamage(Damage, InstigatedBy, HitLocation, Momentum, DamageType, HitInfo, DamageCauser); + // using the passed in damage type instead of the hitfxinfo since that doesn't get updated when zero damage is done + HandleAfflictionsOnHit(InstigatedBy, Normal(Momentum), class(DamageType), DamageCauser); + ActualDamage = OldHealth - Health; if( ActualDamage > 0 ) { @@ -3996,12 +3999,12 @@ simulated function KFSkinTypeEffects GetHitZoneSkinTypeEffects( int HitZoneIdx ) */ simulated function AdjustAffliction(out float AfflictionPower); -function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class DamageType, Actor DamageCauser) +function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class DamageType, Actor DamageCauser) { //Handle afflictions if (AfflictionHandler != None) { - AfflictionHandler.NotifyTakeHit(DamageInstigator, HitDir, class(DamageType), DamageCauser); + AfflictionHandler.NotifyTakeHit(DamageInstigator, HitDir, DamageType, DamageCauser); } } diff --git a/KFGame/Classes/KFPawn_Human.uc b/KFGame/Classes/KFPawn_Human.uc index 3c5724a..4838ac6 100644 --- a/KFGame/Classes/KFPawn_Human.uc +++ b/KFGame/Classes/KFPawn_Human.uc @@ -1287,14 +1287,14 @@ function AdjustDamage(out int InDamage, out vector Momentum, Controller Instigat event TakeDamage(int Damage, Controller InstigatedBy, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { - local int ActualDamageTaken, OldHealth; + local int ActualDamageTaken, OldHealth, OldArmor; //local KFGameInfo KFGI; local KFGameReplicationInfo KFGRI; local KFPlayerReplicationInfo KFPRI; local KFAIController_ZedBoss InstigatedByBoss; OldHealth = Health; - + OldArmor = Armor; `log(GetFuncName()@"Damage BEFORE ="$Damage$" DamageType: "$DamageType$" DamageCauser: "$DamageCauser, bLogTakeDamage); Super.TakeDamage(Damage, InstigatedBy, HitLocation, Momentum, DamageType, HitInfo, DamageCauser); @@ -1303,7 +1303,12 @@ event TakeDamage(int Damage, Controller InstigatedBy, vector HitLocation, vector `log(GetFuncName()@"Damage AFTER ="$ActualDamageTaken$" DamageType: "$DamageType$" DamageCauser: "$DamageCauser, bLogTakeDamage); KFGRI = KFGameReplicationInfo(KFGameInfo(WorldInfo.Game).GameReplicationInfo); - if( Damage > 0 && IsAliveAndWell() && !KFGRI.bTraderIsOpen ) + + `Log("ARMOR OLD: " $ OldArmor); + `Log("ARMOR NEW: " $ Armor); + `Log("ARMOR diff: " $ OldArmor - Armor); + + if( (ActualDamageTaken > 0 || OldArmor - Armor > 0) && IsAliveAndWell() && !KFGRI.bTraderIsOpen ) { KFPlayerController(Controller).NotifyHitTaken(); } diff --git a/KFGame/Classes/KFPerk.uc b/KFGame/Classes/KFPerk.uc index ed6be35..a6c4e25 100644 --- a/KFGame/Classes/KFPerk.uc +++ b/KFGame/Classes/KFPerk.uc @@ -189,17 +189,6 @@ var float HeadshotAccuracyHandicap; var array PrestigeRewardItemIconPaths; -/********************************************************************************************* -* Transient vars -********************************************************************************************* */ -/** - Indicates if the last hit was a headshot. - This is added for the crossbow to apply the stun on enemies only if hit in the head. - Afflictions are calculated after adjusting the damage, so the bone is not necessary - indicating a headshot anymore. - */ -var transient bool bWasLastHitAHeadshot; - /********************************************************************************************* * Caching ********************************************************************************************* */ @@ -1100,7 +1089,8 @@ simulated function ModifySprintSpeed( out float Speed ){ ModifySpeed( Speed ); } function FinalizeSpeedVariables(); /** Kickback - recaoil bonus */ simulated function ModifyRecoil( out float CurrentRecoilModifier, KFWeapon KFW ); -/** Allows to modify the damage taken */ +/** Allow perk to adjust damage given */ +function ModifyDamageGiven( out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class DamageType, optional int HitZoneIdx ); function ModifyDamageTaken( out int InDamage, optional class DamageType, optional Controller InstigatedBy ); /** Ammunition capacity and mag count increased */ simulated function ModifyMagSizeAndNumber( KFWeapon KFW, out int MagazineCapacity, optional array< Class > WeaponPerkClass, optional bool bSecondary=false, optional name WeaponClassname ); @@ -1400,12 +1390,6 @@ simulated function class GetGrenadeWeaponDef() return default.GrenadeWeaponDef; } -/** Allow perk to adjust damage given */ -function ModifyDamageGiven( out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class DamageType, optional int HitZoneIdx ) -{ - bWasLastHitAHeadshot = MyKFPM != none && HitZoneIdx == HZI_HEAD; -} - /********************************************************************************************* * @name Debug ********************************************************************************************* */ @@ -1519,6 +1503,4 @@ DefaultProperties AssistDoshModifier=1.f PrestigeRewardItemIconPaths[0]="Xmas_UI.UI_Objectives_Xmas_Krampus" - - bWasLastHitAHeadshot=false } diff --git a/KFGame/Classes/KFPerk_Berserker.uc b/KFGame/Classes/KFPerk_Berserker.uc index aa14206..34185a3 100644 --- a/KFGame/Classes/KFPerk_Berserker.uc +++ b/KFGame/Classes/KFPerk_Berserker.uc @@ -145,8 +145,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon MyKFWeapon; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - TempDamage = InDamage; if( DamageCauser != none ) diff --git a/KFGame/Classes/KFPerk_Commando.uc b/KFGame/Classes/KFPerk_Commando.uc index ae2c1d4..a937102 100644 --- a/KFGame/Classes/KFPerk_Commando.uc +++ b/KFGame/Classes/KFPerk_Commando.uc @@ -74,8 +74,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau { local KFWeapon KFW; local float TempDamage; - - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); TempDamage = InDamage; diff --git a/KFGame/Classes/KFPerk_Demolitionist.uc b/KFGame/Classes/KFPerk_Demolitionist.uc index 3c7ce6b..e4f73e8 100644 --- a/KFGame/Classes/KFPerk_Demolitionist.uc +++ b/KFGame/Classes/KFPerk_Demolitionist.uc @@ -127,8 +127,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - if( DamageType != none && IsDamageIgnoredDT( DamageType ) ) { return; diff --git a/KFGame/Classes/KFPerk_FieldMedic.uc b/KFGame/Classes/KFPerk_FieldMedic.uc index fb524f4..5554a21 100644 --- a/KFGame/Classes/KFPerk_FieldMedic.uc +++ b/KFGame/Classes/KFPerk_FieldMedic.uc @@ -298,8 +298,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - TempDamage = InDamage; if( DamageCauser != none ) @@ -648,7 +646,7 @@ DefaultProperties PerkBuildStatID=STATID_Medic_Build SelfHealingSurgePct=0.1f - MaxSurvivalistResistance=0.70f //0.5f //0.8 + MaxSurvivalistResistance=0.60f //0.70f //0.5f //0.8 CombatantSpeedModifier=0.1f MaxHealingSpeedBoost=30 //15 //50 diff --git a/KFGame/Classes/KFPerk_Firebug.uc b/KFGame/Classes/KFPerk_Firebug.uc index b1324d8..3164a71 100644 --- a/KFGame/Classes/KFPerk_Firebug.uc +++ b/KFGame/Classes/KFPerk_Firebug.uc @@ -82,8 +82,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - TempDamage = InDamage; if( DamageCauser != none ) diff --git a/KFGame/Classes/KFPerk_Gunslinger.uc b/KFGame/Classes/KFPerk_Gunslinger.uc index cb7e6c8..672d239 100644 --- a/KFGame/Classes/KFPerk_Gunslinger.uc +++ b/KFGame/Classes/KFPerk_Gunslinger.uc @@ -133,8 +133,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - TempDamage = InDamage; if( DamageCauser != none ) { diff --git a/KFGame/Classes/KFPerk_Sharpshooter.uc b/KFGame/Classes/KFPerk_Sharpshooter.uc index c44eb41..f705298 100644 --- a/KFGame/Classes/KFPerk_Sharpshooter.uc +++ b/KFGame/Classes/KFPerk_Sharpshooter.uc @@ -50,6 +50,8 @@ var private const array AdditionalOnPerkDTNames; /** The % chance that zed time will be activated when damage is done when the Zed Time perk skills are active */ var float SkillZedTimeChance; +var private transient bool bWasHeadshot; + /********************************************************************************************* * @name Stats/XP ********************************************************************************************* */ @@ -125,8 +127,7 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - + bWasHeadshot = false; TempDamage = InDamage; if( DamageCauser != none ) @@ -138,6 +139,8 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau { if( MyKFPM != none && HitZoneIdx == HZI_HEAD ) { + bWasHeadshot = true; + `QALog( "(Headshot), damage mod=" $GetPassiveValue( HeadshotDamage, CurrentLevel ), bLogPerk ); TempDamage += InDamage * GetPassiveValue( HeadshotDamage, CurrentLevel ); @@ -343,7 +346,9 @@ function bool IsStunGuaranteed( optional class DamageType, optional { if( IsDamageTypeOnPerk(class(DamageType)) && GetZTStunActive()) { - return bWasLastHitAHeadshot; + // At this point, HitZoneIdx is already modified to point to the armor rather the pawn's body part. + // Caching in ModifyDamageGiven if it was a headshot will be based on the original bone index. + return bWasHeadshot; } return false; @@ -725,4 +730,6 @@ DefaultProperties CameraViewShakeScale=0.5 AutoBuyLoadOutPath=(class'KFWeapDef_Winchester1894', class'KFWeapDef_Crossbow', class'KFWeapDef_M14EBR', class'KFWeapDef_RailGun', class'KFWeapDef_M99') AssistDoshModifier=1.1f + + bWasHeadshot = false; } diff --git a/KFGame/Classes/KFPerk_Support.uc b/KFGame/Classes/KFPerk_Support.uc index 716ff4e..465286c 100644 --- a/KFGame/Classes/KFPerk_Support.uc +++ b/KFGame/Classes/KFPerk_Support.uc @@ -155,8 +155,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - TempDamage = InDamage; `QALog( GetFuncName() @ "BaseDamage =" @ InDamage, bLogPerk ); diff --git a/KFGame/Classes/KFPerk_Survivalist.uc b/KFGame/Classes/KFPerk_Survivalist.uc index b5a6383..5a135fb 100644 --- a/KFGame/Classes/KFPerk_Survivalist.uc +++ b/KFGame/Classes/KFPerk_Survivalist.uc @@ -142,8 +142,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - TempDamage = InDamage; TempDamage += InDamage * GetPassiveValue( WeaponDamage, CurrentLevel ); diff --git a/KFGame/Classes/KFPerk_Swat.uc b/KFGame/Classes/KFPerk_Swat.uc index 8c60073..3a7030e 100644 --- a/KFGame/Classes/KFPerk_Swat.uc +++ b/KFGame/Classes/KFPerk_Swat.uc @@ -268,8 +268,6 @@ simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCau local KFWeapon KFW; local float TempDamage; - super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); - TempDamage = InDamage; if( DamageCauser != none ) diff --git a/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastFullyCharged.uc b/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastFullyCharged.uc index c1cf38e..4096f98 100644 --- a/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastFullyCharged.uc +++ b/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastFullyCharged.uc @@ -26,17 +26,17 @@ defaultproperties { OverrideImpactEffect=ParticleSystem'WEP_HRG_SonicGun_EMIT.FX_SonicGun_Impact_AltFire' OverrideImpactSound=AkEvent'WW_WEP_HRG_SonicGun.Play_WEP_HRG_SonicGun_Hit_Surface' - ArmorDamageModifier=1.5f + ArmorDamageModifier=1.0f - KDamageImpulse=0 - KDeathUpKick=0 - KDeathVel=0 + KDamageImpulse=1750 //0 + KDeathUpKick=400 //0 + KDeathVel=325 //0 RadialDamageImpulse=5000 bExtraMomentumZ=True StumblePower=250 GunHitPower=120 - MicrowavePower=25 + MicrowavePower=0 //25 bHasToSpawnMicrowaveFire=false EffectGroup=FXG_MicrowaveBlast diff --git a/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastUncharged.uc b/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastUncharged.uc index 69a78d6..f3f3376 100644 --- a/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastUncharged.uc +++ b/KFGameContent/Classes/KFDT_Ballistic_HRG_SonicGun_SonicBlastUncharged.uc @@ -35,7 +35,7 @@ defaultproperties StumblePower=0 GunHitPower=30 - MicrowavePower=75 + MicrowavePower=50 //75 bHasToSpawnMicrowaveFire=false EffectGroup=FXG_MicrowaveBlast diff --git a/KFGameContent/Classes/KFDT_Piercing_Crossbow.uc b/KFGameContent/Classes/KFDT_Piercing_Crossbow.uc index eba9ae3..dcfa0ec 100644 --- a/KFGameContent/Classes/KFDT_Piercing_Crossbow.uc +++ b/KFGameContent/Classes/KFDT_Piercing_Crossbow.uc @@ -11,17 +11,16 @@ class KFDT_Piercing_Crossbow extends KFDT_Piercing abstract hidedropdown; -var float HeadStunPower; - defaultproperties { KDamageImpulse=1500 KDeathUpKick=250 KDeathVel=150 + + KnockdownPower=20 - HeadStunPower=1000 // Stun ensured when hit in the head - StunPower=30 // Stun used otherwise + StunPower=101 //90 StumblePower=250 GunHitPower=100 MeleeHitPower=40 diff --git a/KFGameContent/Classes/KFGameInfo_Endless.uc b/KFGameContent/Classes/KFGameInfo_Endless.uc index c2ff70a..0ae5b32 100644 --- a/KFGameContent/Classes/KFGameInfo_Endless.uc +++ b/KFGameContent/Classes/KFGameInfo_Endless.uc @@ -170,6 +170,11 @@ function bool TrySetNextWaveSpecial() function WaveEnded(EWaveEndCondition WinCondition) { + if(!bWaveStarted) + { + return; + } + WaveMax = WaveNum + 2; MyKFGRI.WaveMax = WaveMax; diff --git a/KFGameContent/Classes/KFGameInfo_Survival.uc b/KFGameContent/Classes/KFGameInfo_Survival.uc index c51ace8..1bb6db6 100644 --- a/KFGameContent/Classes/KFGameInfo_Survival.uc +++ b/KFGameContent/Classes/KFGameInfo_Survival.uc @@ -1117,7 +1117,7 @@ function WaveEnded(EWaveEndCondition WinCondition) local int i; local KFPlayerController KFPC; - if(!bWaveStarted) + if(!bWaveStarted && !MyKFGRI.bTraderIsOpen) return; if (WorldInfo.NetMode == NM_DedicatedServer) diff --git a/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc b/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc index 2bdaa0c..be0e0fb 100644 --- a/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc +++ b/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc @@ -351,7 +351,8 @@ defaultproperties (ClassToAdjust=class'KFGameContent.KFPawn_ZedDAR_Rocket',HealByKill=10,HealByAssistance=7, InitialGroundSpeedModifierScale=1.20), (ClassToAdjust=class'KFGameContent.KFPawn_ZedScrake',HealByKill=50,HealByAssistance=35, InitialGroundSpeedModifierScale=1.20), (ClassToAdjust=class'KFGameContent.KFPawn_ZedFleshpound',HealByKill=60,HealByAssistance=42, InitialGroundSpeedModifierScale=1.20), - (ClassToAdjust=class'KFGameContent.KFPawn_ZedFleshpoundMini',HealByKill=36,HealByAssistance=25, InitialGroundSpeedModifierScale=1.20) + (ClassToAdjust=class'KFGameContent.KFPawn_ZedFleshpoundMini',HealByKill=36,HealByAssistance=25, InitialGroundSpeedModifierScale=1.20), + (ClassToAdjust=class'KFGameContent.KFPawn_ZedBloatKingSubspawn',HealByKill=7,HealByAssistance=5) )} )} diff --git a/KFGameContent/Classes/KFPawn_ZedFleshpoundKing.uc b/KFGameContent/Classes/KFPawn_ZedFleshpoundKing.uc index b5ba917..50bb9f4 100644 --- a/KFGameContent/Classes/KFPawn_ZedFleshpoundKing.uc +++ b/KFGameContent/Classes/KFPawn_ZedFleshpoundKing.uc @@ -440,7 +440,7 @@ function AdjustDamage(out int InDamage, out vector Momentum, Controller Instigat } } -function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class DamageType, Actor DamageCauser) +function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class DamageType, Actor DamageCauser) { if (ShieldHealthPctByte == 0) { diff --git a/KFGameContent/Classes/KFProj_Grenade_GravityImploder.uc b/KFGameContent/Classes/KFProj_Grenade_GravityImploder.uc index e2c453f..b533198 100644 --- a/KFGameContent/Classes/KFProj_Grenade_GravityImploder.uc +++ b/KFGameContent/Classes/KFProj_Grenade_GravityImploder.uc @@ -143,8 +143,8 @@ defaultproperties // Explosion Begin Object Class=KFGameExplosion Name=ImploTemplate0 - Damage=350 //150 - DamageRadius=375 //425 + Damage=320 //150 + DamageRadius=280 //375 DamageFalloffExponent=0.2 //0.25 DamageDelay=0.f MomentumTransferScale=-10000 diff --git a/KFGameContent/Classes/KFProj_LightingFlare_HRGScorcher.uc b/KFGameContent/Classes/KFProj_LightingFlare_HRGScorcher.uc index 44d03dd..cce2992 100644 --- a/KFGameContent/Classes/KFProj_LightingFlare_HRGScorcher.uc +++ b/KFGameContent/Classes/KFProj_LightingFlare_HRGScorcher.uc @@ -24,8 +24,6 @@ var LightPoolPriority ProjStickedLightPriority; /** Time before particle system parameter is set */ var float FlameDisperalDelay; -/** Last hit normal from Touch() or HitWall() */ -var vector LastHitNormal; /** Impact effects to use when projectile hits a zed */ var KFImpactEffectInfo ImpactEffectsOnZed; @@ -119,7 +117,6 @@ simulated event HitWall( vector HitNormal, actor Wall, PrimitiveComponent WallCo // Overriding functions where StickHelper.TryStick is called to start timer to delete the proyectile simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal) { - LastHitNormal = HitNormal; if (Other != Instigator && !Other.bStatic && DamageRadius == 0.0 ) { ProcessBulletTouch(Other, HitLocation, HitNormal); @@ -169,21 +166,9 @@ simulated event Tick( float DeltaTime ) } } -// Last location needs to be correct, even on first tick. simulated function SyncOriginalLocation() { - local Actor HitActor; - local vector HitLocation, HitNormal; - local TraceHitInfo HitInfo; - - if (Role < ROLE_Authority && Instigator != none && Instigator.IsLocallyControlled()) - { - HitActor = Trace(HitLocation, HitNormal, OriginalLocation, Location,,, HitInfo, TRACEFLAG_Bullet); - if (HitActor != none) - { - StickHelper.TryStick(HitNormal, HitLocation, HitActor); - } - } + super.SyncOriginalLocation(); } defaultproperties @@ -227,7 +212,7 @@ defaultproperties NetUpdateFrequency=200 bNoReplicationToInstigator=false bUseClientSideHitDetection=true - bUpdateSimulatedPosition=true + bUpdateSimulatedPosition=false bSyncToOriginalLocation=true bSyncToThirdPersonMuzzleLocation=true @@ -235,12 +220,13 @@ defaultproperties bCanBeDamaged=false bCanDisintegrate=true +/* Begin Object Name=CollisionCylinder BlockNonZeroExtent=false // for siren scream CollideActors=true End Object - +*/ Begin Object Class=KFProjectileStickHelper_HRGScorcher Name=StickHelper0 End Object StickHelper=StickHelper0 diff --git a/KFGameContent/Classes/KFProj_SonicBlastFullyCharged_HRG_SonicGun.uc b/KFGameContent/Classes/KFProj_SonicBlastFullyCharged_HRG_SonicGun.uc index 8d7d3b7..05aa171 100644 --- a/KFGameContent/Classes/KFProj_SonicBlastFullyCharged_HRG_SonicGun.uc +++ b/KFGameContent/Classes/KFProj_SonicBlastFullyCharged_HRG_SonicGun.uc @@ -43,9 +43,9 @@ defaultproperties Lifespan=10.0 - MaxSpeed=10000.0 //7200.0 - Speed=10000.0 //7200.0 - TerminalVelocity=7200 + MaxSpeed=12000.0 //10000.0 //7200.0 + Speed=12000.0 //10000.0 //7200.0 + TerminalVelocity=12000.0 //7200 GravityScale=0.0//0.7 diff --git a/KFGameContent/Classes/KFProj_SonicBlastUncharged_HRG_SonicGun.uc b/KFGameContent/Classes/KFProj_SonicBlastUncharged_HRG_SonicGun.uc index 05c99de..5f5fb69 100644 --- a/KFGameContent/Classes/KFProj_SonicBlastUncharged_HRG_SonicGun.uc +++ b/KFGameContent/Classes/KFProj_SonicBlastUncharged_HRG_SonicGun.uc @@ -58,7 +58,7 @@ defaultproperties bWarnAIWhenFired=true - Lifespan=1.5 //1.25 + Lifespan=1.3 //1.5 //1.25 TouchTimeThreshhold=0.4 MaxSpeed=2000.0 //1400.0 diff --git a/KFGameContent/Classes/KFWeap_Bow_Crossbow.uc b/KFGameContent/Classes/KFWeap_Bow_Crossbow.uc index 0550fad..918b16b 100644 --- a/KFGameContent/Classes/KFWeap_Bow_Crossbow.uc +++ b/KFGameContent/Classes/KFWeap_Bow_Crossbow.uc @@ -39,24 +39,6 @@ static simulated event EFilterTypeUI GetTraderFilter() return FT_Projectile; } -simulated function float GetUpgradedAfflictionPower(EAfflictionType AfflictionType, float InPower, optional int FireMode = INDEX_NONE, optional int UpgradeIndex = INDEX_NONE) -{ - local class DT; - local KFPerk Perk; - - Perk = GetPerk(); - if(AfflictionType == AF_Stun && Perk != none && Perk.bWasLastHitAHeadshot) - { - DT = class(InstantHitDamageTypes[DEFAULT_FIREMODE]); - if (DT != none) - { - return super.GetUpgradedAfflictionPower(AfflictionType, DT.default.HeadStunPower, FireMode, UpgradeIndex); - } - } - - return super.GetUpgradedAfflictionPower(AfflictionType, InPower, FireMode, UpgradeIndex); -} - defaultproperties { // Inventory diff --git a/KFGameContent/Classes/KFWeap_GravityImploder.uc b/KFGameContent/Classes/KFWeap_GravityImploder.uc index c2a0826..83ef378 100644 --- a/KFGameContent/Classes/KFWeap_GravityImploder.uc +++ b/KFGameContent/Classes/KFWeap_GravityImploder.uc @@ -87,7 +87,7 @@ defaultproperties MuzzleFlashTemplateName="WEP_Gravity_Imploder_ARCH.Wep_Gravity_Imploder_MuzzleFlash" // Inventory / Grouping - InventorySize=7 //8 + InventorySize=8 //7 GroupPriority=125 //75 WeaponSelectTexture=Texture2D'WEP_UI_Gravity_Imploder_TEX.UI_WeaponSelect_Gravity_Imploder' AssociatedPerkClasses(0)=class'KFPerk_Demolitionist' @@ -175,7 +175,7 @@ defaultproperties WeaponFireWaveForm=ForceFeedbackWaveform'FX_ForceFeedback_ARCH.Gunfire.Medium_Recoil' - SelfDamageReductionValue=0.f //0.25f + SelfDamageReductionValue=0.075f //0.f bLastFireWasAlt=false DefaultFireMaterialColor = (R = 0.965f,G = 0.2972f, B = 0.0f) diff --git a/KFGameContent/Classes/KFWeap_HRG_SonicGun.uc b/KFGameContent/Classes/KFWeap_HRG_SonicGun.uc index 2abeeb1..e8525c6 100644 --- a/KFGameContent/Classes/KFWeap_HRG_SonicGun.uc +++ b/KFGameContent/Classes/KFWeap_HRG_SonicGun.uc @@ -529,8 +529,8 @@ defaultproperties ChargeAnimIron=Alt_Fire_Iron ChargeAnimIronLast=Alt_Fire_Iron_Last - WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.15f), (Stat=EWUS_Weight, Add=1))) - WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Weight, Add=2))) + WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.1f), (Stat=EWUS_Weight, Add=1))) + WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.2f), (Stat=EWUS_Weight, Add=2))) ForceReloadTime=0.3 bAllowClientAmmoTracking=true @@ -539,9 +539,9 @@ defaultproperties MuzzleEffectDefaultFire=ParticleSystem'WEP_HRG_SonicGun_EMIT.FX_SonicGun_Muzzle' MuzzleEffectChargedFire=ParticleSystem'WEP_HRG_SonicGun_EMIT.FX_SonicGun_Muzzle_AltFire' - SonicBlastDamageByChargeLevel(0)=110 //100 + SonicBlastDamageByChargeLevel(0)=100 //110 //100 //SonicBlastDamageByChargeLevel(1)=170 //160 - SonicBlastDamageByChargeLevel(1)=280 //310 //280 + SonicBlastDamageByChargeLevel(1)=240 //280 //310 //280 SonicBlastPenetrationPowerByChargeLevel(0)=4.0 //SonicBlastPenetrationPowerByChargeLevel(1)=3.0 //1.0 @@ -579,9 +579,9 @@ defaultproperties MomentumMultiplierByZedArray(3)=(ZedClassName="KFPawn_ZedCrawler", MomentumMultiplier=1.0) MomentumMultiplierByZedArray(4)=(ZedClassName="KFPawn_ZedGorefast", MomentumMultiplier=1.2) MomentumMultiplierByZedArray(5)=(ZedClassName="KFPawn_ZedStalker", MomentumMultiplier=1.0) - MomentumMultiplierByZedArray(6)=(ZedClassName="KFPawn_ZedScrake", MomentumMultiplier=1.2) - MomentumMultiplierByZedArray(7)=(ZedClassName="KFPawn_ZedFleshpound", MomentumMultiplier=1.3) - MomentumMultiplierByZedArray(8)=(ZedClassName="KFPawn_ZedFleshpoundMini", MomentumMultiplier=1.3) + MomentumMultiplierByZedArray(6)=(ZedClassName="KFPawn_ZedScrake", MomentumMultiplier=0.8) //1.2 + MomentumMultiplierByZedArray(7)=(ZedClassName="KFPawn_ZedFleshpound", MomentumMultiplier=0.7) //1.3 + MomentumMultiplierByZedArray(8)=(ZedClassName="KFPawn_ZedFleshpoundMini", MomentumMultiplier=0.7) //1.3 MomentumMultiplierByZedArray(9)=(ZedClassName="KFPawn_ZedBloat", MomentumMultiplier=1.7) MomentumMultiplierByZedArray(10)=(ZedClassName="KFPawn_ZedSiren", MomentumMultiplier=0.8) MomentumMultiplierByZedArray(11)=(ZedClassName="KFPawn_ZedHusk", MomentumMultiplier=0.8) diff --git a/OnlineSubsystemDingo/Classes/OnlineMarketplaceInterfaceDingo.uc b/OnlineSubsystemDingo/Classes/OnlineMarketplaceInterfaceDingo.uc index 8e1b298..fdf733e 100644 --- a/OnlineSubsystemDingo/Classes/OnlineMarketplaceInterfaceDingo.uc +++ b/OnlineSubsystemDingo/Classes/OnlineMarketplaceInterfaceDingo.uc @@ -348,7 +348,7 @@ cpptext defaultproperties { - // as of January 2021 + // as of February 2021 ConsumablesCount=80 - DurablesCount=54 + DurablesCount=60 } \ No newline at end of file