1
0
This commit is contained in:
GenZmeY 2022-06-14 18:52:40 +03:00
parent df19937a54
commit 513c60070e
17 changed files with 159 additions and 73 deletions

View File

@ -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);

View File

@ -207,7 +207,7 @@ function SendItems(const out Array<ItemProperties> 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++)
{

View File

@ -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);

View File

@ -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"

View File

@ -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;
}

View File

@ -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<int> 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<KFWeapon> 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 );
KFGRI = KFGameReplicationInfo( WorldInfo.GRI );
KFGI = KFGameInfo(WorldInfo.Game);
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;
}
}

View File

@ -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()

View File

@ -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'
)
}
)

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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;
}
}

View File

@ -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]);

View File

@ -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
}

View File

@ -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)
@ -373,6 +385,9 @@ defaultproperties
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

View File

@ -247,7 +247,7 @@ simulated function DetachWeapon()
defaultproperties
{
AltAmmoFullRechargeSeconds=5
AltAmmoFullRechargeSeconds=3.5
// Inventory / Grouping
InventorySize=7

View File

@ -65,7 +65,7 @@ function AdjustDamage(out int InDamage, class<DamageType> 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'