KF2-Server-Extension/ServerExt/Classes/Ext_PerkSupport.uc

63 lines
1.8 KiB
Ucode

Class Ext_PerkSupport extends Ext_PerkBase;
var bool bUseAPShot,bUsePerforate,bCanRepairDoors;
var float APShotMul;
replication
{
// Things the server should send to the client.
if ( true )
bCanRepairDoors, bUseAPShot, bUsePerforate, APShotMul;
}
simulated function bool GetUsingTactialReload( KFWeapon KFW )
{
return (IsWeaponOnPerk(KFW) ? Modifiers[5]<0.75 : false);
}
simulated function bool CanRepairDoors()
{
return bCanRepairDoors;
}
simulated function float GetPenetrationModifier( byte Level, class<KFDamageType> DamageType, optional bool bForce )
{
local float PenetrationPower;
if( !bForce && (DamageType == none || ( DamageType!=None && DamageType.Default.ModifierPerkList.Find(BasePerk) == INDEX_NONE )))
return 0;
PenetrationPower = bUseAPShot ? APShotMul : 0.f;
PenetrationPower = IsPerforateActive() ? 40.f : PenetrationPower;
return PenetrationPower;
}
simulated function bool IsPerforateActive()
{
return bUsePerforate && WorldInfo.TimeDilation < 1.f;
}
defaultproperties
{
PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Support'
DefTraitList.Add(class'Ext_TraitGrenadeSUpg')
DefTraitList.Add(class'Ext_TraitWPSupp')
DefTraitList.Add(class'Ext_TraitSupply')
DefTraitList.Add(class'Ext_TraitAPShots')
DefTraitList.Add(class'Ext_TraitDoorRepair')
DefTraitList.Add(class'Ext_TraitPenetrator')
BasePerk=class'KFPerk_Support'
WeldExpUpNum=80
DefPerkStats(0)=(MaxValue=20,CostPerValue=2)
DefPerkStats(8)=(bHiddenConfig=false)
PrimaryMelee=class'KFWeap_Knife_Support'
PrimaryWeapon=class'KFWeap_Shotgun_MB500'
PrimaryWeaponDef=class'KFWeapDef_MB500'
KnifeWeaponDef=class'KFWeapDef_Knife_Support'
GrenadeWeaponDef=class'KFWeapDef_Grenade_Support'
AutoBuyLoadOutPath=(class'KFWeapDef_MB500', class'KFWeapDef_DoubleBarrel', class'KFWeapDef_M4', class'KFWeapDef_AA12')
}