1
0
This commit is contained in:
GenZmeY 2021-03-11 22:29:08 +03:00
parent 28f1e3c001
commit 7977e0103d
34 changed files with 92 additions and 128 deletions

View File

@ -1558,6 +1558,7 @@ struct native ExchangeRuleSets
var array<ExchangeRuleSets> ExchangeRuleSetList;
native function OpenMarketPlaceSearch(ItemProperties Item);
native function OpenMarketPlaceSearchBySignedOfferId(string SignedOfferId);
native function OpenItemPurchaseOverlay(int SKU);
native function OpenURL(string WebsiteLink);
native function OpenGameStorePage();

View File

@ -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> DamageType, Actor DamageCauser);
/*
* Queries the PRI and returns our current team index.
*/

View File

@ -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<SWhatsNew> WhatsNewItems;

View File

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

View File

@ -775,7 +775,7 @@ simulated function EndGame()
bMatchHasBegun = false;
bMatchIsOver = true;
class'KFGameEngine'.static.RefreshOnlineGameData();
class'KFGameEngine'.static.RefreshOnlineGameData(false);
}
/* Welcome screen shenanigans */

View File

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

View File

@ -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<KFDamageType>(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> DamageType, Actor DamageCauser)
function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class<KFDamageType> DamageType, Actor DamageCauser)
{
//Handle afflictions
if (AfflictionHandler != None)
{
AfflictionHandler.NotifyTakeHit(DamageInstigator, HitDir, class<KFDamageType>(DamageType), DamageCauser);
AfflictionHandler.NotifyTakeHit(DamageInstigator, HitDir, DamageType, DamageCauser);
}
}

View File

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

View File

@ -189,17 +189,6 @@ var float HeadshotAccuracyHandicap;
var array<string> 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<KFDamageType> DamageType, optional int HitZoneIdx );
function ModifyDamageTaken( out int InDamage, optional class<DamageType> DamageType, optional Controller InstigatedBy );
/** Ammunition capacity and mag count increased */
simulated function ModifyMagSizeAndNumber( KFWeapon KFW, out int MagazineCapacity, optional array< Class<KFPerk> > WeaponPerkClass, optional bool bSecondary=false, optional name WeaponClassname );
@ -1400,12 +1390,6 @@ simulated function class<KFWeaponDefinition> 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<KFDamageType> 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
}

View File

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

View File

@ -75,8 +75,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 )

View File

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

View File

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

View File

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

View File

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

View File

@ -50,6 +50,8 @@ var private const array<Name> 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> DamageType, optional
{
if( IsDamageTypeOnPerk(class<KFDamageType>(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;
}

View File

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

View File

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

View File

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

View File

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

View File

@ -35,7 +35,7 @@ defaultproperties
StumblePower=0
GunHitPower=30
MicrowavePower=75
MicrowavePower=50 //75
bHasToSpawnMicrowaveFire=false
EffectGroup=FXG_MicrowaveBlast

View File

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

View File

@ -170,6 +170,11 @@ function bool TrySetNextWaveSpecial()
function WaveEnded(EWaveEndCondition WinCondition)
{
if(!bWaveStarted)
{
return;
}
WaveMax = WaveNum + 2;
MyKFGRI.WaveMax = WaveMax;

View File

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

View File

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

View File

@ -440,7 +440,7 @@ function AdjustDamage(out int InDamage, out vector Momentum, Controller Instigat
}
}
function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class<DamageType> DamageType, Actor DamageCauser)
function HandleAfflictionsOnHit(Controller DamageInstigator, vector HitDir, class<KFDamageType> DamageType, Actor DamageCauser)
{
if (ShieldHealthPctByte == 0)
{

View File

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

View File

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

View File

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

View File

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

View File

@ -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<KFDT_Piercing_Crossbow> DT;
local KFPerk Perk;
Perk = GetPerk();
if(AfflictionType == AF_Stun && Perk != none && Perk.bWasLastHitAHeadshot)
{
DT = class<KFDT_Piercing_Crossbow>(InstantHitDamageTypes[DEFAULT_FIREMODE]);
if (DT != none)
{
return super.GetUpgradedAfflictionPower(AfflictionType, DT.default.HeadStunPower, FireMode, UpgradeIndex);
}
}
return super.GetUpgradedAfflictionPower(AfflictionType, InPower, FireMode, UpgradeIndex);
}
defaultproperties
{
// Inventory

View File

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

View File

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

View File

@ -348,7 +348,7 @@ cpptext
defaultproperties
{
// as of January 2021
// as of February 2021
ConsumablesCount=80
DurablesCount=54
DurablesCount=60
}