From 513c60070e2b700b5c311843754ed0e39b55a14e Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Tue, 14 Jun 2022 18:52:40 +0300 Subject: [PATCH] upload --- .../KFGFxStartGameContainer_FindGame.uc | 37 +++++----- KFGame/Classes/KFGFxStoreContainer_Main.uc | 2 +- .../Classes/KFGFxWeeklyObjectivesContainer.uc | 1 - KFGame/Classes/KFGameReplicationInfo.uc | 6 ++ KFGame/Classes/KFInventoryManager.uc | 8 ++- KFGame/Classes/KFPickupFactory_Item.uc | 67 +++++++++---------- .../Classes/KFGameInfo_WeeklySurvival.uc | 6 +- .../Classes/KFOutbreakEvent_Weekly.uc | 6 +- KFGameContent/Classes/KFPawn_ZedFleshpound.uc | 2 +- .../Classes/KFPawn_ZedFleshpoundMini.uc | 2 +- KFGameContent/Classes/KFPawn_ZedScrake.uc | 2 +- KFGameContent/Classes/KFProj_Dosh.uc | 7 +- .../Classes/KFWeapAttach_AutoTurretWeap.uc | 1 + KFGameContent/Classes/KFWeap_AutoTurret.uc | 64 +++++++++++++++++- .../Classes/KFWeap_AutoTurretWeapon.uc | 17 ++++- .../Classes/KFWeap_HRG_CranialPopper.uc | 2 +- KFGameContent/Classes/KFWeap_HRG_Crossboom.uc | 2 +- 17 files changed, 159 insertions(+), 73 deletions(-) diff --git a/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc b/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc index 823c2d8..0812078 100644 --- a/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc +++ b/KFGame/Classes/KFGFxStartGameContainer_FindGame.uc @@ -184,14 +184,32 @@ function FillWhatsNew() // Latest Update item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_TidalTerror", "LatestUpdate", "http://www.tripwireinteractive.com/redirect/KF2LatestUpdate/"); WhatsNewItems.AddItem(item); +// Featured Ultimate Edition + item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_UltimateEdition_Upgrade", "FeaturedItemBundle", "https://store.steampowered.com/app/1914560/KF2__Ultimate_Edition_Upgrade_DLC/"); + WhatsNewItems.AddItem(item); // KF2 Armory Season Pass 2022 item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_ArmorySeasonPassII", "ArmorySeasonPass", "https://store.steampowered.com/app/1914490/KF2__Season_Pass_2022"); WhatsNewItems.AddItem(item); +// KF2 Armory Season Pass 2021 + item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Spring_Armory_Season_Pass", "ArmorySeasonPass", "https://store.steampowered.com/app/1524820/Killing_Floor_2__Armory_Season_Pass"); + WhatsNewItems.AddItem(item); +// Featured Weapon Bundle + item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_Weaponsbundle", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9369"); + WhatsNewItems.AddItem(item); +// Featured Weapon + item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_ReductoRay", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9367"); + WhatsNewItems.AddItem(item); +// Featured Weapon + item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_Sentinel","FeaturedItemBundle","https://store.steampowered.com/buyitem/232090/9368"); + WhatsNewItems.AddItem(item); +// Featured Outfit Bundle + item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_DeepSea_Explorer_Uniforms", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9366"); + WhatsNewItems.AddItem(item); // Featured Time Limited Item item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_SS_PremiumTicket", "FeaturedEventItem", "https://store.steampowered.com/buyitem/232090/4928"); WhatsNewItems.AddItem(item); -// Featured Full Gear - item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_UltimateEdition", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9283"); +// Featured Weapon Skin Bundle + item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_DeepSea_Weapon_Skin", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9364"); WhatsNewItems.AddItem(item); // Featured Weapon Skin Bundle item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_NeonMKVIII_Weapon_Skin", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9362"); @@ -199,24 +217,9 @@ function FillWhatsNew() // Featured Weapon Skin Bundle item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_Classic_Weapon_Skin", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9363"); WhatsNewItems.AddItem(item); -// Featured Weapon Skin Bundle - item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_DeepSea_Weapon_Skin", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9364"); - WhatsNewItems.AddItem(item); // Featured Weapon Skin Bundle item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_Chameleon_Weapon_Skin", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9365"); WhatsNewItems.AddItem(item); -// Featured Outfit Bundle - item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_DeepSea_Explorer_Uniforms", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9366"); - WhatsNewItems.AddItem(item); -// Featured Weapon - item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_ReductoRay", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9367"); - WhatsNewItems.AddItem(item); -// Featured Weapon - item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_Sentinel","FeaturedItemBundle","https://store.steampowered.com/buyitem/232090/9368"); - WhatsNewItems.AddItem(item); -// Featured Weapon Bundle - item = SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_Summer2022_Weaponsbundle", "FeaturedItemBundle", "https://store.steampowered.com/buyitem/232090/9369"); - WhatsNewItems.AddItem(item); // Misc Community Links item=SetWhatsNewItem("img://UI_WhatsNew.UI_WhatsNew_CommunityHub", "Jaegorhorn", "https://steamcommunity.com/app/232090"); WhatsNewItems.AddItem(item); diff --git a/KFGame/Classes/KFGFxStoreContainer_Main.uc b/KFGame/Classes/KFGFxStoreContainer_Main.uc index a008368..f8c1b8c 100644 --- a/KFGame/Classes/KFGFxStoreContainer_Main.uc +++ b/KFGame/Classes/KFGFxStoreContainer_Main.uc @@ -207,7 +207,7 @@ function SendItems(const out Array StoreItemArray) } else if (CurrentStoreFilter == EStore_Featured) { - if (class'WorldInfo'.static.IsConsoleBuild()) + if (class'WorldInfo'.static.IsConsoleBuild() || class'WorldInfo'.static.IsEOSBuild()) { for (j = 0; j < ConsoleFeaturedItemIDs.length; j++) { diff --git a/KFGame/Classes/KFGFxWeeklyObjectivesContainer.uc b/KFGame/Classes/KFGFxWeeklyObjectivesContainer.uc index 779b6ca..1bc1094 100644 --- a/KFGame/Classes/KFGFxWeeklyObjectivesContainer.uc +++ b/KFGame/Classes/KFGFxWeeklyObjectivesContainer.uc @@ -64,7 +64,6 @@ function bool PopulateData() DataObject.SetString("label", WeeklyInfo.FriendlyName); if(WeeklyInfo.ModifierDescriptions.length > 0) { - `Log("SETTING DESCRIPTION: " $WeeklyInfo.DescriptionStrings[0]); DataObject.SetString("description", WeeklyInfo.DescriptionStrings[0]); } DataObject.SetString("iconPath", "img://"$WeeklyInfo.IconPath); diff --git a/KFGame/Classes/KFGameReplicationInfo.uc b/KFGame/Classes/KFGameReplicationInfo.uc index 77e8c53..6cfcea7 100644 --- a/KFGame/Classes/KFGameReplicationInfo.uc +++ b/KFGame/Classes/KFGameReplicationInfo.uc @@ -2268,6 +2268,12 @@ simulated function NotifyWeeklyEventIndex(int EventIndex) bNetDirty = true; } + +simulated function bool IsGunGameMode() +{ + return bIsWeeklyMode && CurrentWeeklyIndex == 16; +} + defaultproperties { TraderItemsPath="GP_Trader_ARCH.DefaultTraderItems" diff --git a/KFGame/Classes/KFInventoryManager.uc b/KFGame/Classes/KFInventoryManager.uc index e1fd5d0..69947d4 100644 --- a/KFGame/Classes/KFInventoryManager.uc +++ b/KFGame/Classes/KFInventoryManager.uc @@ -500,7 +500,7 @@ function bool ClassNameIsInInventory(name ItemClassName, out Inventory out_Inven */ simulated function Weapon GetBestWeapon( optional bool bForceADifferentWeapon, optional bool allow9mm ) { - local KFWeapon W, BestWeapon; + local KFWeapon W, BestWeapon, BackupGun; local float Rating, BestRating; ForEach InventoryActors( class'KFWeapon', W ) @@ -521,6 +521,7 @@ simulated function Weapon GetBestWeapon( optional bool bForceADifferentWeapon, o { if (W.bIsBackupWeapon && !W.IsMeleeWeapon()) { + BackupGun = W; continue; } } @@ -554,6 +555,11 @@ simulated function Weapon GetBestWeapon( optional bool bForceADifferentWeapon, o } } + if (BestWeapon != none && BestWeapon.bIsBackupWeapon && BestWeapon.IsMeleeWeapon() && BackupGun != none) + { + BestWeapon = BackupGun; + } + return BestWeapon; } diff --git a/KFGame/Classes/KFPickupFactory_Item.uc b/KFGame/Classes/KFPickupFactory_Item.uc index 46e788f..9a390c0 100644 --- a/KFGame/Classes/KFPickupFactory_Item.uc +++ b/KFGame/Classes/KFPickupFactory_Item.uc @@ -51,23 +51,22 @@ replication function bool CanUsePickup() { - local KFGameInfo KFGI; local int i; local bool has_armour; + local KFGameReplicationInfo KFGRI; - KFGI = KFGameInfo( WorldInfo.Game ); + KFGRI = KFGameReplicationInfo( WorldInfo.GRI ); - if (KFGI != none && KFGI.OutbreakEvent != none) + if (KFGRI != none && KFGRI.IsGunGameMode()) { - if (KFGI.OutbreakEvent.ActiveEvent.bOnlyArmorItemPickup) + has_armour = false; + + for (i = 0 ; i < ItemPickups.Length ; i++) { - for (i = 0 ; i < ItemPickups.Length ; i++) + if (ItemPickups[i].ItemClass.Name == ArmorClassName) { - if (ItemPickups[i].ItemClass.Name == ArmorClassName) - { - has_armour = true; - break; - } + has_armour = true; + break; } } @@ -182,23 +181,23 @@ function int ChooseWeaponPickup() local int i, DesiredItemIdx; local float Weight, TotalWeight, RandomWeight; local array IndexList; - local KFGameInfo KFGI; + local KFGameReplicationInfo KFGRI; - KFGI = KFGameInfo(WorldInfo.Game); + KFGRI = KFGameReplicationInfo( WorldInfo.GRI ); - DesiredItemIdx = 255; + if (KFGRI != none && KFGRI.IsGunGameMode()) + { + DesiredItemIdx = 255; + } // Add up the total weight for all valid attacks for(i = 0; i < ItemPickups.Length; i++) { - if (KFGI != none && KFGI.OutbreakEvent != none) + if (KFGRI != none && KFGRI.IsGunGameMode()) { - if (KFGI.OutbreakEvent.ActiveEvent.bOnlyArmorItemPickup) + if (ItemPickups[i].ItemClass.Name != 'KFInventory_Armor') { - if (ItemPickups[i].ItemClass.Name != 'KFInventory_Armor') - { - continue; - } + continue; } } @@ -240,23 +239,20 @@ simulated native function GetPickupMesh(class ItemClass); /** Use the pickups static mesh for this factory */ simulated function SetPickupMesh() { - local KFGameInfo KFGI; - + local KFGameReplicationInfo KFGRI; + if (PickupIndex >= ItemPickups.Length) { return; } - KFGI = KFGameInfo(WorldInfo.Game); + KFGRI = KFGameReplicationInfo( WorldInfo.GRI ); - if (KFGI != none && KFGI.OutbreakEvent != none) + if (KFGRI != none && KFGRI.IsGunGameMode()) { - if (KFGI.OutbreakEvent.ActiveEvent.bOnlyArmorItemPickup) + if (ItemPickups[PickupIndex].ItemClass.Name != ArmorClassName) { - if (ItemPickups[PickupIndex].ItemClass.Name != ArmorClassName) - { - return; - } + return; } } @@ -367,17 +363,16 @@ function GiveWeapon( Pawn P ) function ActivateNewPickup(Pawn P) { local KFGameInfo KFGI; + local KFGameReplicationInfo KFGRI; - KFGI = KFGameInfo( WorldInfo.Game ); - - if (KFGI != none && KFGI.OutbreakEvent != none) + KFGRI = KFGameReplicationInfo( WorldInfo.GRI ); + KFGI = KFGameInfo(WorldInfo.Game); + + if (KFGRI != none && KFGRI.IsGunGameMode()) { - if (KFGI.OutbreakEvent.ActiveEvent.bOnlyArmorItemPickup) + if (ItemPickups[PickupIndex].ItemClass.Name != ArmorClassName) { - if (ItemPickups[PickupIndex].ItemClass.Name != ArmorClassName) - { - return; - } + return; } } diff --git a/KFGameContent/Classes/KFGameInfo_WeeklySurvival.uc b/KFGameContent/Classes/KFGameInfo_WeeklySurvival.uc index 2639284..655c65a 100644 --- a/KFGameContent/Classes/KFGameInfo_WeeklySurvival.uc +++ b/KFGameContent/Classes/KFGameInfo_WeeklySurvival.uc @@ -141,7 +141,7 @@ function SetPickupItemList() local KFPickupFactory_Item ItemFactory; local int Idx; - if (OutbreakEvent.ActiveEvent.bOnlyArmorItemPickup) + if (MyKFGRI.IsGunGameMode()) { foreach AllActors(class'KFPickupFactory_Item', ItemFactory) { @@ -600,8 +600,6 @@ function EndOfMatch(bool bVictory) { local KFPlayerController KFPC; - super.EndOfMatch(bVictory); - if (bVictory) { foreach WorldInfo.AllControllers(class'KFPlayerController', KFPC) @@ -609,6 +607,8 @@ function EndOfMatch(bool bVictory) KFPC.CompletedWeeklySurvival(); } } + + super.EndOfMatch(bVictory); } function StartWave() diff --git a/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc b/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc index bd00b0d..7fc8ab6 100644 --- a/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc +++ b/KFGameContent/Classes/KFOutbreakEvent_Weekly.uc @@ -438,7 +438,7 @@ defaultproperties GoompaStreakMax = 5, GoompaBonusDuration=8.0f, //10.0f, DoshOnKillGlobalModifier=1.0, - SpawnWeaponList=KFGFxObject_TraderItems'GP_Trader_ARCH.AracnophobiaWeeklySpawnList', + //SpawnWeaponList=KFGFxObject_TraderItems'GP_Trader_ARCH.AracnophobiaWeeklySpawnList', bAddSpawnListToLoadout=true, WaveAICountScale=(0.6, 0.6, 0.6, 0.6, 0.6, 0.6), JumpZ=700.f, // 650.0 by default; -1 used for not overriding. @@ -1130,7 +1130,7 @@ defaultproperties , GrantedWeapons= { ( class'KFGame.KFWeapDef_MedicRifle' - , class'KFGame.KFWeapDef_HRG_EMP_ArcGenerator' + , class'KFGame.KFWeapDef_HRG_BarrierRifle' , class'KFGame.KFWeapDef_HRG_Stunner' , class'KFGame.KFWeapDef_SCAR' ) @@ -1182,7 +1182,7 @@ defaultproperties class'KFGame.KFWeapDef_M32' , class'KFGame.KFWeapDef_LazerCutter' , class'KFGame.KFWeapDef_MicrowaveRifle' - , class'KFGame.KFWeapDef_HRG_BarrierRifle' + , class'KFGame.KFWeapDef_HRG_EMP_ArcGenerator' ) } ) diff --git a/KFGameContent/Classes/KFPawn_ZedFleshpound.uc b/KFGameContent/Classes/KFPawn_ZedFleshpound.uc index 5c73cea..fe7d1fb 100644 --- a/KFGameContent/Classes/KFPawn_ZedFleshpound.uc +++ b/KFGameContent/Classes/KFPawn_ZedFleshpound.uc @@ -539,7 +539,7 @@ End Object IncapSettings(AF_Bleed)= (Vulnerability=(0.75)) //0.25 IncapSettings(AF_Shrink)= (Vulnerability=(1.0)) - ShrinkEffectModifier = 0.2f + ShrinkEffectModifier = 0.1f Begin Object Name=Afflictions_0 FireFullyCharredDuration=5 diff --git a/KFGameContent/Classes/KFPawn_ZedFleshpoundMini.uc b/KFGameContent/Classes/KFPawn_ZedFleshpoundMini.uc index 15cf140..8ae8f5a 100644 --- a/KFGameContent/Classes/KFPawn_ZedFleshpoundMini.uc +++ b/KFGameContent/Classes/KFPawn_ZedFleshpoundMini.uc @@ -74,7 +74,7 @@ defaultproperties IncapSettings(AF_Bleed)= (Vulnerability=(0.75)) IncapSettings(AF_Shrink)= (Vulnerability=(1.0)) - ShrinkEffectModifier = 0.3f + ShrinkEffectModifier = 0.2f ZEDCowboyHatAttachName=HEAD_Attach } \ No newline at end of file diff --git a/KFGameContent/Classes/KFPawn_ZedScrake.uc b/KFGameContent/Classes/KFPawn_ZedScrake.uc index b7e2547..c2e98cf 100644 --- a/KFGameContent/Classes/KFPawn_ZedScrake.uc +++ b/KFGameContent/Classes/KFPawn_ZedScrake.uc @@ -286,7 +286,7 @@ defaultproperties IncapSettings(AF_Bleed)= (Vulnerability=(0.75)) //0.5 IncapSettings(AF_Shrink)= (Vulnerability=(1.0)) // Normal Vulnerability - ShrinkEffectModifier = 0.2f + ShrinkEffectModifier = 0.1f Begin Object Name=Afflictions_0 FireFullyCharredDuration=5 diff --git a/KFGameContent/Classes/KFProj_Dosh.uc b/KFGameContent/Classes/KFProj_Dosh.uc index b111c0c..8f9ec81 100644 --- a/KFGameContent/Classes/KFProj_Dosh.uc +++ b/KFGameContent/Classes/KFProj_Dosh.uc @@ -161,6 +161,7 @@ simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNorma local KFPawn KFP; local KFPawn_Human KFPH; local KFPlayerReplicationInfo KFPRI; + local TraceHitInfo HitInfo; KFPH = KFPawn_Human(Other); if ( KFPH != none && KFPH != Instigator) @@ -173,7 +174,7 @@ simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNorma return; } } - else if ( Other != Instigator && Other.bCanBeDamaged && (!Other.bWorldGeometry || !Other.bStatic) ) + else if ( Other != Instigator && Other.bCanBeDamaged ) { KFP = KFPawn( Other ); if ( KFP != None ) @@ -191,7 +192,9 @@ simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNorma } else { - ProcessDestructibleTouchOnBounce( Other, HitLocation, HitNormal ); + HitInfo.HitComponent = LastTouchComponent; + HitInfo.Item = INDEX_None; // force TraceComponent on fractured meshes + Other.TakeDamage(Damage, InstigatorController, HitLocation, MomentumTransfer * Normal(Velocity), MyDamageType, HitInfo, self);// special cases for types of destructibles, bShouldBreakSolidGlassOnBounce return; } } diff --git a/KFGameContent/Classes/KFWeapAttach_AutoTurretWeap.uc b/KFGameContent/Classes/KFWeapAttach_AutoTurretWeap.uc index 40770d2..1463aec 100644 --- a/KFGameContent/Classes/KFWeapAttach_AutoTurretWeap.uc +++ b/KFGameContent/Classes/KFWeapAttach_AutoTurretWeap.uc @@ -256,6 +256,7 @@ simulated event SetWeaponSkin(int ItemId, optional bool bFinishedLoading = false } SkinMICs = class'KFWeaponSkinList'.static.GetWeaponSkin(ItemId, WST_ThirdPerson); + if ( SkinMICs.Length > 0 ) { WeapMesh.SetMaterial(0, SkinMICs[0]); diff --git a/KFGameContent/Classes/KFWeap_AutoTurret.uc b/KFGameContent/Classes/KFWeap_AutoTurret.uc index 60f63a0..3039547 100644 --- a/KFGameContent/Classes/KFWeap_AutoTurret.uc +++ b/KFGameContent/Classes/KFWeap_AutoTurret.uc @@ -38,6 +38,8 @@ var repnotify float CurrentAmmoPercentage; const TransitionParamName = 'transition_full_to_empty'; const EmptyParamName = 'Blinking_0_off___1_on'; +var transient bool bDetonateLocked; + replication { if( bNetDirty ) @@ -270,9 +272,14 @@ simulated function BeginFire( byte FireModeNum ) ClearPendingFire(DETONATE_FIREMODE); } - if (FireModeNum == DETONATE_FIREMODE && NumDeployedTurrets > 0) + if (FireModeNum == DETONATE_FIREMODE ) { - if (bTurretReadyToUse) + if (bDetonateLocked) + { + return; + } + + if (NumDeployedTurrets > 0 && bTurretReadyToUse) { PrepareAndDetonate(); } @@ -567,6 +574,55 @@ simulated function SetWeaponUpgradeLevel(int WeaponUpgradeLevel) } } +/** + * GRENADE FIRING + * There's a bug that alt fire interrupts the grenade anim at any moment, + * This avoids being able to altfire until the throw animation ends or the + * interrupt notify is reached. + */ + +simulated state GrenadeFiring +{ + simulated function EndState(Name NextStateName) + { + ClearDetonateLock(); + Super.EndState(NextStateName); + } +} + + +/** Play animation at the start of the GrenadeFiring state */ +simulated function PlayGrenadeThrow() +{ + local name WeaponFireAnimName; + local float InterruptTime; + + PlayFiringSound(CurrentFireMode); + + if( Instigator != none && Instigator.IsFirstPerson() ) + { + WeaponFireAnimName = GetGrenadeThrowAnim(); + + if ( WeaponFireAnimName != '' ) + { + InterruptTime = MySkelMesh.GetAnimInterruptTime(WeaponFireAnimName); + PlayAnimation(WeaponFireAnimName, MySkelMesh.GetAnimLength(WeaponFireAnimName),,FireTweenTime); + + bDetonateLocked = true; + SetTimer(InterruptTime, false, nameof(ClearDetonateLock)); + } + } +} + +simulated function ClearDetonateLock() +{ + bDetonateLocked = false; + ClearTimer(nameof(ClearDetonateLock)); +} + +/***/ + + /////////////////////////////////////////////////////////////////////////////////////////// // // Trader @@ -645,7 +701,7 @@ defaultproperties InventorySize=3 DetonateAkEvent=AkEvent'ww_wep_autoturret.Play_WEP_AutoTurret_Detonate_Trigger' - DryFireAkEvent=AkEvent'ww_wep_autoturret.Play_WEP_AutoTurret_Dry_Fire' + // Weapon Upgrade stat boosts //WeaponUpgrades[1]=(IncrementDamage=1.05f,IncrementWeight=1) @@ -662,4 +718,6 @@ defaultproperties WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.15f), (Stat=EWUS_Damage1, Scale=1.15f), (Stat=EWUS_Weight, Add=1))) WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Damage1, Scale=1.3f), (Stat=EWUS_Weight, Add=2))) NumBloodMapMaterials=3 + + bDetonateLocked=false } diff --git a/KFGameContent/Classes/KFWeap_AutoTurretWeapon.uc b/KFGameContent/Classes/KFWeap_AutoTurretWeapon.uc index 39fadd2..f7b2409 100644 --- a/KFGameContent/Classes/KFWeap_AutoTurretWeapon.uc +++ b/KFGameContent/Classes/KFWeap_AutoTurretWeapon.uc @@ -293,6 +293,18 @@ simulated function PlayFireEffects( byte FireModeNum, optional vector HitLocatio } } +/** True if we want to override the looping fire sounds with fire sounds from another firemode */ +simulated function bool ShouldForceSingleFireSound() +{ + // If this weapon has a single-shot firemode, disable looping fire sounds during zedtime + if ( `IsInZedTime(Instigator) && SingleFireSoundIndex != 255 ) + { + return true; + } + + return false; +} + defaultproperties { // Shooting Animations @@ -358,7 +370,7 @@ defaultproperties WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_Pistol9mm' InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_AutoTurret' FireInterval(DEFAULT_FIREMODE)=+0.12 // 500 rpm - InstantHitDamage(DEFAULT_FIREMODE)=8 + InstantHitDamage(DEFAULT_FIREMODE)=10 Spread(DEFAULT_FIREMODE)=0.01 FireOffset=(X=30,Y=4.5,Z=-4) @@ -372,6 +384,9 @@ defaultproperties // Fire Effects WeaponFireSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_Autoturret.Play_WEP_AutoTurret_Shot_LP_3P', FirstPersonCue=AkEvent'WW_WEP_Autoturret.Play_WEP_AutoTurret_Shot_LP_1P') WeaponFireLoopEndSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_Autoturret.Play_WEP_AutoTurret_Shot_EndLP_3P', FirstPersonCue=AkEvent'WW_WEP_Autoturret.Play_WEP_AutoTurret_Shot_EndLP_1P') + + WeaponFireSnd(ALTFIRE_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_Autoturret.Play_WEP_AutoTurret_Shoot_3P', FirstPersonCue=AkEvent'WW_WEP_Autoturret.Play_WEP_AutoTurret_Shoot_1P') + SingleFireSoundIndex=ALTFIRE_FIREMODE bLoopingFireSnd(DEFAULT_FIREMODE)=true bLoopingFireAnim(DEFAULT_FIREMODE)=true diff --git a/KFGameContent/Classes/KFWeap_HRG_CranialPopper.uc b/KFGameContent/Classes/KFWeap_HRG_CranialPopper.uc index 3da45fd..b16e1e6 100644 --- a/KFGameContent/Classes/KFWeap_HRG_CranialPopper.uc +++ b/KFGameContent/Classes/KFWeap_HRG_CranialPopper.uc @@ -247,7 +247,7 @@ simulated function DetachWeapon() defaultproperties { - AltAmmoFullRechargeSeconds=5 + AltAmmoFullRechargeSeconds=3.5 // Inventory / Grouping InventorySize=7 diff --git a/KFGameContent/Classes/KFWeap_HRG_Crossboom.uc b/KFGameContent/Classes/KFWeap_HRG_Crossboom.uc index 62d7844..d9f0694 100644 --- a/KFGameContent/Classes/KFWeap_HRG_Crossboom.uc +++ b/KFGameContent/Classes/KFWeap_HRG_Crossboom.uc @@ -65,7 +65,7 @@ function AdjustDamage(out int InDamage, class DamageType, Actor Dama defaultproperties { // Inventory - InventorySize=7 + InventorySize=6 GroupPriority=70 WeaponSelectTexture=Texture2D'WEP_UI_HRG_Crossboom_TEX.UI_WeaponSelect_Crossboom' AssociatedPerkClasses(0)=class'KFPerk_Demolitionist'