NicePack/sources/Perks/FieldMedic/NiceVetFieldMedic.uc
2022-01-21 14:25:59 +04:00

96 lines
4.9 KiB
Ucode

class NiceVetFieldMedic extends NiceVeterancyTypes
abstract;
static function AddCustomStats(ClientPerkRepLink Other){
Other.AddCustomValue(Class'NiceVetFieldMedicExp');
}
static function int GetStatValueInt(ClientPerkRepLink StatOther, byte ReqNum){
return StatOther.GetCustomValueInt(Class'NiceVetFieldMedicExp');
}
static function array<int> GetProgressArray(byte ReqNum, optional out int DoubleScalingBase){
return default.progressArray0;
}
// Allows to increase head-shot check scale for some weapons.
static function float GetHeadshotCheckMultiplier(KFPlayerReplicationInfo KFPRI, class<DamageType> DmgType){
if(KFPRI != none && class'NiceVetFieldMedic'.static.hasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillMedicAimAssistance'))
return class'NiceSkillMedicAimAssistance'.default.headIncrease;
return 1.0;
}
// Give Medic normal hand nades again - he should buy medic nade lauchers for healing nades
static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI){
if(KFPRI != none && class'NiceVetFieldMedic'.static.hasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillMedicArmament'))
return class'NiceMedicNade';
return class'NiceMedicNadePoison';
}
static function float GetAmmoPickupMod(KFPlayerReplicationInfo KFPRI, KFAmmunition Other){
if(other != none && other.class == class'FragAmmo'
&& KFPRI != none && class'NiceVetFieldMedic'.static.hasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillMedicArmament'))
return 0.0;
return 1.0;
}
//can't cook medic nades
static function bool CanCookNade(KFPlayerReplicationInfo KFPRI, Weapon Weap){
return GetNadeType(KFPRI) != class'NiceMedicNade';
}
static function float GetSyringeChargeRate(KFPlayerReplicationInfo KFPRI){
return 3.0;
}
static function float GetHealPotency(KFPlayerReplicationInfo KFPRI){
local float potency, debuff;
potency = 2.0;
debuff = 0.0;
if(KFPRI != none && class'NiceVetFieldMedic'.static.hasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillMedicTranquilizer'))
debuff += class'NiceSkillMedicTranquilizer'.default.healingDebuff;
potency *= (1.0 - debuff);
return potency;
}
static function float GetFireSpeedModStatic(KFPlayerReplicationInfo KFPRI, class<Weapon> Other){
if(ClassIsChildOf(Other, class'Syringe'))
return 1.6;
return 1.0;
}
static function float GetMovementSpeedModifier(KFPlayerReplicationInfo KFPRI, KFGameReplicationInfo KFGRI){
return 1.2;
}
static function float GetCostScaling(KFPlayerReplicationInfo KFPRI, class<Pickup> Item){
local class<NiceWeaponPickup> pickupClass;
pickupClass = class<NiceWeaponPickup>(Item);
if(IsPerkedPickup(class<NiceWeaponPickup>(Item)))
return 0.5;
return 1.0;
}
static function string GetCustomLevelInfo(byte Level){
return default.CustomLevelInfo;
}
defaultproperties
{
SkillGroupA(0)=class'NiceSkillMedicSymbioticHealth'
SkillGroupA(1)=class'NiceSkillMedicArmament'
SkillGroupA(2)=class'NiceSkillMedicAdrenalineShot'
SkillGroupA(3)=class'NiceSkillMedicInjection'
SkillGroupA(4)=class'NiceSkillMedicZEDHeavenCanceller'
SkillGroupB(0)=class'NiceSkillMedicAimAssistance'
SkillGroupB(1)=class'NiceSkillMedicPesticide'
SkillGroupB(2)=class'NiceSkillMedicRegeneration'
SkillGroupB(3)=class'NiceSkillMedicTranquilizer'
SkillGroupB(4)=class'NiceSkillMedicZEDFrenzy'
progressArray0(0)=100
progressArray0(1)=1000
progressArray0(2)=3000
progressArray0(3)=10000
progressArray0(4)=30000
progressArray0(5)=100000
progressArray0(6)=200000
OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Medic',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255))
OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Medic_Gold',StarIcon=Texture'KillingFloor2HUD.Perk_Icons.Hud_Perk_Star_Gold',DrawColor=(B=255,G=255,R=255,A=255))
OnHUDIcons(2)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Medic_Green',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Green',DrawColor=(B=255,G=255,R=255,A=255))
OnHUDIcons(3)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Medic_Blue',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Blue',DrawColor=(B=255,G=255,R=255,A=255))
OnHUDIcons(4)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Medic_Purple',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Purple',DrawColor=(B=255,G=255,R=255,A=255))
OnHUDIcons(5)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Medic_Orange',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Orange',DrawColor=(B=255,G=255,R=255,A=255))
CustomLevelInfo="Level up by doing damage with perked weapons|50% discount on everything|100% more potent medical injections|20% faster movement speed|Better Syringe handling"
PerkIndex=0
OnHUDIcon=Texture'KillingFloorHUD.Perks.Perk_Medic'
OnHUDGoldIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Medic_Gold'
VeterancyName="Field Medic"
Requirements(0)="Required experience for the next level: %x"
}