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