class KFVetFirebug extends KFVeterancyTypes abstract; static function float GetMagCapacityMod(KFPlayerReplicationInfo KFPRI, KFWeapon Other) { if ( Flamethrower(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% larger fuel canister } if ( MAC10MP(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.12 * FMin(float(KFPRI.ClientVeteranSkillLevel), 5.0)); // 60% increase in MAC10 ammo carry } /* Commented out for now, as it looks like this won't work right with weapons that reload with a single bullet if ( Trenchgun(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.12 * FMin(float(KFPRI.ClientVeteranSkillLevel), 5.0)); // 60% increase in Trenchgun ammo carry }*/ return 1.0; } static function float GetAmmoPickupMod(KFPlayerReplicationInfo KFPRI, KFAmmunition Other) { if ( FlameAmmo(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% larger fuel canister } if ( MAC10Ammo(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% increase in MAC10 ammo carry } if ( HuskGunAmmo(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // 60% increase in Husk gun ammo carry } if ( TrenchgunAmmo(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // 60% increase in trench gun ammo carry } if ( FlareRevolverAmmo(Other) != none && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // 60% increase in flare gun ammo carry } return 1.0; } static function float AddExtraAmmoFor(KFPlayerReplicationInfo KFPRI, Class AmmoType) { if ( AmmoType == class'FlameAmmo' && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% larger fuel canister } if ( AmmoType == class'MAC10Ammo' && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% increase in MAC10 ammo carry } if ( AmmoType == class'HuskGunAmmo' && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% increase in Husk gun ammo carry } if ( AmmoType == class'TrenchgunAmmo' && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% increase in Trench gun ammo carry } if ( AmmoType == class'FlareRevolverAmmo' && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% increase in Flare gun ammo carry } if ( AmmoType == class'GoldenFlameAmmo' && KFPRI.ClientVeteranSkillLevel > 0 ) { return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% increase in Flare gun ammo carry } return 1.0; } static function int AddDamage(KFPlayerReplicationInfo KFPRI, KFMonster Injured, KFPawn Instigator, int InDamage, class DmgType) { if ( class(DmgType) != none || class(DmgType) != none || class(DmgType) != none || class(DmgType) != none ) { if ( KFPRI.ClientVeteranSkillLevel == 0 ) { return float(InDamage) * 1.05; } return float(InDamage) * (1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel))); // Up to 60% extra damage } return InDamage; } // Change effective range on FlameThrower static function int ExtraRange(KFPlayerReplicationInfo KFPRI) { if ( KFPRI.ClientVeteranSkillLevel <= 2 ) { return 0; } else if ( KFPRI.ClientVeteranSkillLevel <= 4 ) { return 1; // 50% Longer Range } return 2; // 100% Longer Range } static function int ReduceDamage(KFPlayerReplicationInfo KFPRI, KFPawn Injured, Pawn Instigator, int InDamage, class DmgType) { if ( class(DmgType) != none || class(DmgType) != none || class(DmgType) != none || class(DmgType) != none ) { if ( KFPRI.ClientVeteranSkillLevel <= 3 ) { return float(InDamage) * (0.50 - (0.10 * float(KFPRI.ClientVeteranSkillLevel))); } return 0; // 100% reduction in damage from fire } return InDamage; } static function class GetNadeType(KFPlayerReplicationInfo KFPRI) { if ( KFPRI.ClientVeteranSkillLevel >= 3 ) { return class'FlameNade'; // Grenade detonations cause enemies to catch fire } return super.GetNadeType(KFPRI); } static function float GetReloadSpeedModifier(KFPlayerReplicationInfo KFPRI, KFWeapon Other) { if ( Flamethrower(Other) != none ) { if ( KFPRI.ClientVeteranSkillLevel == 0 ) { return 1.0; } return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% faster reload with Flamethrower } if ( MAC10MP(Other) != none ) { if ( KFPRI.ClientVeteranSkillLevel == 0 ) { return 1.0; } return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% faster reload with MAC-10 } if ( Trenchgun(Other) != none ) { if ( KFPRI.ClientVeteranSkillLevel == 0 ) { return 1.0; } return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% faster reload with Trench gun } if ( FlareRevolver(Other) != none ) { if ( KFPRI.ClientVeteranSkillLevel == 0 ) { return 1.0; } return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% faster reload with FlareRevolver } if ( DualFlareRevolver(Other) != none ) { if ( KFPRI.ClientVeteranSkillLevel == 0 ) { return 1.0; } return 1.0 + (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 60% faster reload with Dual FlareRevolver } return 1.0; } // Change the cost of particular items static function float GetCostScaling(KFPlayerReplicationInfo KFPRI, class Item) { if ( Item == class'FlameThrowerPickup' || Item == class'MAC10Pickup' || Item == class'HuskGunPickup' || Item == class'TrenchgunPickup' || Item == class'FlareRevolverPickup' || Item == class'DualFlareRevolverPickup' || Item == class'GoldenFTPickup' ) { return 0.9 - (0.10 * float(KFPRI.ClientVeteranSkillLevel)); // Up to 70% discount on Flame Weapons } return 1.0; } // Give Extra Items as default static function AddDefaultInventory(KFPlayerReplicationInfo KFPRI, Pawn P) { // If Level 5, give them a Flame Thrower if ( KFPRI.ClientVeteranSkillLevel >= 5 ) { KFHumanPawn(P).CreateInventoryVeterancy("KFMod.FlameThrower", default.StartingWeaponSellPriceLevel5); } // If Level 6, add Body Armor if ( KFPRI.ClientVeteranSkillLevel == 6 ) { P.ShieldStrength = 100; } } static function class GetMAC10DamageType(KFPlayerReplicationInfo KFPRI) { return class'DamTypeMAC10MPInc'; } defaultproperties { PerkIndex=5 OnHUDIcon=Texture'KillingFloorHUD.Perks.Perk_Firebug' OnHUDGoldIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Firebug_Gold' VeterancyName="Firebug" Requirements[0]="Deal %x damage with the flame weapons" LevelEffects[0]="5% extra flame weapon damage|50% resistance to fire|10% discount on the flame weapons" LevelEffects[1]="10% extra flame weapon damage|10% faster Flamethrower reload|10% more flame weapon ammo|60% resistance to fire|20% discount on flame weapons" LevelEffects[2]="20% extra flame weapon damage|20% faster Flamethrower reload|20% more flame weapon ammo|70% resistance to fire|30% discount on flame weapons" LevelEffects[3]="30% extra flame weapon damage|30% faster Flamethrower reload|30% more flame weapon ammo|80% resistance to fire|50% extra Flamethrower range|Grenades set enemies on fire|40% discount on flame weapons" LevelEffects[4]="40% extra flame weapon damage|40% faster Flamethrower reload|40% more flame weapon ammo|90% resistance to fire|50% extra Flamethrower range|Grenades set enemies on fire|50% discount on flame weapons" LevelEffects[5]="50% extra flame weapon damage|50% faster Flamethrower reload|50% more flame weapon ammo|100% resistance to fire|100% extra Flamethrower range|Grenades set enemies on fire|60% discount on flame weapons|Spawn with a Flamethrower" LevelEffects[6]="60% extra flame weapon damage|60% faster Flamethrower reload|60% more flame weapon ammo|100% resistance to fire|100% extra Flamethrower range|Grenades set enemies on fire|70% discount on flame weapons|Spawn with a Flamethrower and Body Armor" }