diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index 3e1d577..c4a5a9f 100644 Binary files a/Localization/INT/ServerExt.int and b/Localization/INT/ServerExt.int differ diff --git a/ServerExt/Classes/Ext_PerkBase.uc b/ServerExt/Classes/Ext_PerkBase.uc index bb27173..9c8cb95 100644 --- a/ServerExt/Classes/Ext_PerkBase.uc +++ b/ServerExt/Classes/Ext_PerkBase.uc @@ -1171,10 +1171,10 @@ simulated function float ApplyEffect(name Type, float Value, float Progress) Modifiers[1] = 1.f + (Value*Progress); break; case 'Recoil': - Modifiers[2] = 1.f / (1.f+Value*Progress); + Modifiers[2] = 1.f - (Value*Progress); break; case 'Spread': - Modifiers[3] = 1.f / (1.f+Value*Progress); + Modifiers[3] = 1.f - (Value*Progress); break; case 'Rate': Modifiers[4] = 1.f / (1.f+Value*Progress); @@ -1191,8 +1191,8 @@ simulated function float ApplyEffect(name Type, float Value, float Progress) } break; case 'KnockDown': - Modifiers[7] = FMin(1.f + (Value*Progress),2.f); - return (Modifiers[7]-1.f); + Modifiers[7] = 1.f + (Value*Progress); + break; case 'Welder': Modifiers[8] = 1.f + (Value*Progress); break; @@ -1556,8 +1556,8 @@ defaultproperties DefPerkStats(0)=(MaxValue=50,CostPerValue=1,StatType="Speed",Progress=0.4) DefPerkStats(1)=(MaxValue=1000,CostPerValue=1,StatType="Damage",Progress=0.5) - DefPerkStats(2)=(MaxValue=90,CostPerValue=1,StatType="Recoil",Progress=1) - DefPerkStats(3)=(MaxValue=80,CostPerValue=1,StatType="Spread",Progress=0.75) + DefPerkStats(2)=(MaxValue=100,CostPerValue=1,StatType="Recoil",Progress=1) + DefPerkStats(3)=(MaxValue=100,CostPerValue=1,StatType="Spread",Progress=1) DefPerkStats(4)=(MaxValue=1000,CostPerValue=1,StatType="Rate",Progress=0.5) DefPerkStats(5)=(MaxValue=1000,CostPerValue=1,StatType="Reload",Progress=0.5) DefPerkStats(6)=(MaxValue=150,CostPerValue=1,StatType="Health",Progress=1) diff --git a/ServerExt/Classes/Ext_PerkFirebug.uc b/ServerExt/Classes/Ext_PerkFirebug.uc index 15a8e38..0e7b7af 100644 --- a/ServerExt/Classes/Ext_PerkFirebug.uc +++ b/ServerExt/Classes/Ext_PerkFirebug.uc @@ -1,5 +1,48 @@ Class Ext_PerkFirebug extends Ext_PerkBase; +var bool bUseInferno,bUsePyromaniac,bUseGroundFire,bUseHeatWave; + +replication +{ + // Things the server should send to the client. + if (true) + bUseInferno,bUsePyromaniac,bUseGroundFire,bUseHeatWave; +} + +simulated final private function bool IsInfernoActive() +{ + return bUseInferno && WorldInfo.TimeDilation < 1.f; +} + +simulated function bool GetIsUberAmmoActive(KFWeapon KFW) +{ + return bUsePyromaniac && IsWeaponOnPerk(KFW) && WorldInfo.TimeDilation < 1.f; +} + +simulated function float GetZedTimeModifier(KFWeapon W) +{ + local name StateName; + + if (bUsePyromaniac && IsWeaponOnPerk(W)) + { + StateName = W.GetStateName(); + if (BasePerk.Default.ZedTimeModifyingStates.Find(StateName) != INDEX_NONE || StateName == 'Reloading') + return 1.f; + } + + return 0.f; +} + +simulated final private function bool IsGroundFireActive() +{ + return bUseGroundFire; +} + +simulated final private function bool IsHeatWaveActive() +{ + return bUseHeatWave; +} + defaultproperties { PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Firebug' @@ -7,6 +50,10 @@ defaultproperties DefTraitList.Add(class'Ext_TraitNapalm') DefTraitList.Add(class'Ext_TraitFireExplode') DefTraitList.Add(class'Ext_TraitFireRange') + DefTraitList.Add(class'Ext_TraitInferno') + DefTraitList.Add(class'Ext_TraitPyromaniac') + DefTraitList.Add(class'Ext_TraitGroundFire') + DefTraitList.Add(class'Ext_TraitHeatWave') BasePerk=class'KFPerk_Firebug' PrimaryMelee=class'KFWeap_Knife_Firebug' diff --git a/ServerExt/Classes/Ext_TraitGroundFire.uc b/ServerExt/Classes/Ext_TraitGroundFire.uc new file mode 100644 index 0000000..96054ab --- /dev/null +++ b/ServerExt/Classes/Ext_TraitGroundFire.uc @@ -0,0 +1,16 @@ +Class Ext_TraitGroundFire extends Ext_TraitBase; + +static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUseGroundFire = true; +} + +static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUseGroundFire = false; +} + +defaultproperties +{ + DefLevelCosts(0)=50 +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitHeatWave.uc b/ServerExt/Classes/Ext_TraitHeatWave.uc new file mode 100644 index 0000000..b764b29 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitHeatWave.uc @@ -0,0 +1,16 @@ +Class Ext_TraitHeatWave extends Ext_TraitBase; + +static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUseHeatWave = true; +} + +static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUseHeatWave = false; +} + +defaultproperties +{ + DefLevelCosts(0)=50 +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitInferno.uc b/ServerExt/Classes/Ext_TraitInferno.uc new file mode 100644 index 0000000..221cad3 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitInferno.uc @@ -0,0 +1,31 @@ +Class Ext_TraitInferno extends Ext_TraitBase; + +var localized string GroupDescription; + +function string GetPerkDescription() +{ + local string S; + + S = Super.GetPerkDescription(); + S $= "|"$GroupDescription; + return S; +} + +static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUseInferno = true; +} + +static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUseInferno = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkFirebug' + TraitGroup=class'Ext_TGroupZEDTime' + NumLevels=1 + DefLevelCosts(0)=50 + //DefMinLevel=65 +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitPyromaniac.uc b/ServerExt/Classes/Ext_TraitPyromaniac.uc new file mode 100644 index 0000000..87bad6a --- /dev/null +++ b/ServerExt/Classes/Ext_TraitPyromaniac.uc @@ -0,0 +1,31 @@ +Class Ext_TraitPyromaniac extends Ext_TraitBase; + +var localized string GroupDescription; + +function string GetPerkDescription() +{ + local string S; + + S = Super.GetPerkDescription(); + S $= "|"$GroupDescription; + return S; +} + +static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUsePyromaniac = true; +} + +static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) +{ + Ext_PerkFirebug(Perk).bUsePyromaniac = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkFirebug' + TraitGroup=class'Ext_TGroupZEDTime' + NumLevels=1 + DefLevelCosts(0)=50 + //DefMinLevel=65 +} \ No newline at end of file