Class Ext_PerkCommando extends Ext_PerkBase; var bool bUseProfessional,bUseMachineGunner; var float ZTExtCount; replication { // Things the server should send to the client. if ( true ) bUseProfessional,bUseMachineGunner; } simulated function bool GetUsingTactialReload( KFWeapon KFW ) { return (IsWeaponOnPerk(KFW) ? Modifiers[5]<0.65 : false); } simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class DamageType, optional int HitZoneIdx ) { if( (DamageType!=None && DamageType.Default.ModifierPerkList.Find(BasePerk)>=0) || (KFWeapon(DamageCauser)!=None && IsWeaponOnPerk(KFWeapon(DamageCauser))) ) { if( bUseMachineGunner && WorldInfo.TimeDilation < 1.f ) InDamage += InDamage * 0.03; } Super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); } simulated function float GetZedTimeModifier( KFWeapon W ) { local name StateName; StateName = W.GetStateName(); if( bUseProfessional && IsWeaponOnPerk( W ) ) { if( StateName == 'Reloading' || StateName == 'AltReloading' ) return 1.f; else if( StateName == 'WeaponPuttingDown' || StateName == 'WeaponEquipping' ) return 0.3f; } if( bUseMachineGunner && IsWeaponOnPerk( W ) && BasePerk.Default.ZedTimeModifyingStates.Find( StateName ) != INDEX_NONE ) return 0.5f; return 0.f; } simulated function float GetZedTimeExtensions( byte Level ) { return ZTExtCount; } defaultproperties { PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Commando' DefTraitList.Add(class'Ext_TraitWPComm') DefTraitList.Add(class'Ext_TraitUnCloak') DefTraitList.Add(class'Ext_TraitZedTExt') DefTraitList.Add(class'Ext_TraitEnemyHP') DefTraitList.Add(class'Ext_TraitEliteReload') DefTraitList.Add(class'Ext_TraitTactician') DefTraitList.Add(class'Ext_TraitMachineGunner') BasePerk=class'KFPerk_Commando' ZTExtCount=1.f; PrimaryMelee=class'KFWeap_Knife_Commando' PrimaryWeapon=class'KFWeap_AssaultRifle_AR15' PerkGrenade=class'KFProj_HEGrenade' PrimaryWeaponDef=class'KFWeapDef_AR15' KnifeWeaponDef=class'KFweapDef_Knife_Commando' GrenadeWeaponDef=class'KFWeapDef_Grenade_Commando' AutoBuyLoadOutPath=(class'KFWeapDef_AR15', class'KFWeapDef_Bullpup', class'KFWeapDef_AK12', class'KFWeapDef_SCAR') }