132 lines
6.3 KiB
Ucode
132 lines
6.3 KiB
Ucode
class NiceVetBerserker extends NiceVeterancyTypes
|
|
abstract;
|
|
static function AddCustomStats(ClientPerkRepLink Other){
|
|
other.AddCustomValue(Class'NiceVetBerserkerExp');
|
|
}
|
|
static function int GetStatValueInt(ClientPerkRepLink StatOther, byte ReqNum){
|
|
return StatOther.GetCustomValueInt(Class'NiceVetBerserkerExp');
|
|
}
|
|
static function array<int> GetProgressArray(byte ReqNum, optional out int DoubleScalingBase){
|
|
return default.progressArray0;
|
|
}
|
|
static function int AddDamage(KFPlayerReplicationInfo KFPRI, KFMonster Injured, KFPawn DamageTaker, int InDamage, class<DamageType> DmgType){
|
|
local float perkDamage;
|
|
local class<NiceWeaponPickup> pickupClass;
|
|
pickupClass = GetPickupFromDamageType(DmgType);
|
|
perkDamage = float(InDamage);
|
|
if(IsPerkedPickup(pickupClass))
|
|
perkDamage *= 2;
|
|
return perkDamage;
|
|
}
|
|
static function float GetFireSpeedModStatic(KFPlayerReplicationInfo KFPRI, class<Weapon> other){
|
|
local float bonus;
|
|
local class<NiceWeaponPickup> pickupClass;
|
|
local NiceHumanPawn nicePawn;
|
|
local NicePlayerController nicePlayer;
|
|
pickupClass = GetPickupFromWeapon(other);
|
|
bonus = 1.0;
|
|
nicePlayer = NicePlayerController(KFPRI.Owner);
|
|
if(IsPerkedPickup(pickupClass))
|
|
bonus *= 1.25;
|
|
nicePawn = NiceHumanPawn(nicePlayer.Pawn);
|
|
if(nicePlayer != none && nicePawn != none && HasSkill(nicePlayer, class'NiceSkillZerkFury') && IsPerkedPickup(pickupClass)){
|
|
if(nicePawn != none && nicePawn.invincibilityTimer > 0.0)
|
|
bonus *= class'NiceSkillZerkFury'.default.attackSpeedBonus;
|
|
}
|
|
if(nicePlayer != none && nicePawn != none && nicePlayer.IsZedTimeActive() && IsPerkedPickup(pickupClass)
|
|
&& HasSkill(nicePlayer, class'NiceSkillZerkZEDAccelerate'))
|
|
bonus /= (nicePawn.Level.TimeDilation / 1.1);
|
|
return bonus;
|
|
}
|
|
static function float GetMeleeMovementSpeedModifier(KFPlayerReplicationInfo KFPRI){
|
|
return 0.2;
|
|
}
|
|
static function float GetMovementSpeedModifier(KFPlayerReplicationInfo KFPRI, KFGameReplicationInfo KFGRI)
|
|
{
|
|
local NicePlayerController nicePlayer;
|
|
nicePlayer = NicePlayerController(KFPRI.Owner);
|
|
if(nicePlayer != none && nicePlayer.IsZedTimeActive()
|
|
&& HasSkill(nicePlayer, class'NiceSkillZerkZEDAccelerate'))
|
|
return 1.0 / fmin(1.0, (KFGRI.Level.TimeDilation / 1.1));
|
|
return 1.0;
|
|
}
|
|
static function float GetWeaponMovementSpeedBonus(KFPlayerReplicationInfo KFPRI, Weapon Weap){
|
|
local float bonus;
|
|
local NicePlayerController nicePlayer;
|
|
local NiceHumanPawn nicePawn;
|
|
bonus = 0.0;
|
|
nicePlayer = NicePlayerController(KFPRI.Owner);
|
|
if(nicePlayer != none)
|
|
nicePawn = NiceHumanPawn(nicePlayer.Pawn);
|
|
if(nicePlayer != none && nicePawn != none && HasSkill(nicePlayer, class'NiceSkillZerkWhirlwind')){
|
|
if(nicePawn != none && nicePawn.invincibilityTimer > 0.0)
|
|
bonus = 1.0;
|
|
}
|
|
return bonus;
|
|
}
|
|
static function bool CanBeGrabbed(KFPlayerReplicationInfo KFPRI, KFMonster Other){
|
|
return false;
|
|
}
|
|
// Set number times Zed Time can be extended
|
|
static function int ZedTimeExtensions(KFPlayerReplicationInfo KFPRI){
|
|
return 4;
|
|
}
|
|
static function int GetInvincibilityExtentions(KFPlayerReplicationInfo KFPRI){
|
|
return 3;
|
|
}
|
|
static function int GetInvincibilityDuration(KFPlayerReplicationInfo KFPRI){
|
|
local NicePlayerController nicePlayer;
|
|
nicePlayer = NicePlayerController(KFPRI.Owner);
|
|
if( nicePlayer != none
|
|
&& HasSkill(nicePlayer, class'NiceSkillZerkColossus')){
|
|
return 3.0 + class'NiceSkillZerkColossus'.default.timeBonus;
|
|
}
|
|
return 3.0;
|
|
}
|
|
static function int GetInvincibilitySafeMisses(KFPlayerReplicationInfo KFPRI){
|
|
local NicePlayerController nicePlayer;
|
|
nicePlayer = NicePlayerController(KFPRI.Owner);
|
|
if( nicePlayer != none
|
|
&& HasSkill(nicePlayer, class'NiceSkillZerkUndead')){
|
|
return 1 + class'NiceSkillZerkUndead'.default.addedSafeMisses;
|
|
}
|
|
return 1;
|
|
}
|
|
static function string GetCustomLevelInfo(byte Level){
|
|
return default.CustomLevelInfo;
|
|
}
|
|
defaultproperties
|
|
{
|
|
bNewTypePerk=True
|
|
SkillGroupA(0)=class'NiceSkillZerkWindCutter'
|
|
SkillGroupA(1)=class'NiceSkillZerkWhirlwind'
|
|
SkillGroupA(2)=class'NiceSkillZerkColossus'
|
|
SkillGroupA(3)=class'NiceSkillZerkUndead'
|
|
SkillGroupA(4)=class'NiceSkillZerkZEDAccelerate'
|
|
SkillGroupB(0)=class'NiceSkillZerkCleave'
|
|
SkillGroupB(1)=class'NiceSkillZerkFury'
|
|
SkillGroupB(2)=class'NiceSkillZerkGunzerker'
|
|
SkillGroupB(3)=class'NiceSkillZerkVorpalBlade'
|
|
SkillGroupB(4)=class'NiceSkillZerkZEDUnbreakable'
|
|
progressArray0(0)=100
|
|
progressArray0(1)=1000
|
|
progressArray0(2)=3000
|
|
progressArray0(3)=10000
|
|
progressArray0(4)=30000
|
|
progressArray0(5)=100000
|
|
progressArray0(6)=200000
|
|
DefaultDamageType=class'NiceDamageTypeVetBerserker'
|
|
OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Berserker',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255))
|
|
OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Berserker_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_Berserker_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_Berserker_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_Berserker_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_Berserker_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|100% extra melee damage|25% faster melee attacks|20% faster melee movement|Melee invincibility lasts 3 seconds|Melee invincibility doesn't reset on your first miss|Up to 4 Zed-Time Extensions|Can't be grabbed by clots|Can activate melee-invincibility with non-decapitating head-shots up to 3 times"
|
|
PerkIndex=4
|
|
OnHUDIcon=Texture'KillingFloorHUD.Perks.Perk_Berserker'
|
|
OnHUDGoldIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Berserker_Gold'
|
|
VeterancyName="Berserker"
|
|
Requirements(0)="Required experience for the next level: %x"
|
|
}
|