First commit

This commit is contained in:
Anton Tarasenko 2020-02-16 19:53:59 +07:00
commit 5b48414900
263 changed files with 24830 additions and 0 deletions

View file

@ -0,0 +1,8 @@
class NiceDamageTypeVetBerserker extends NiceWeaponDamageType
abstract;
static function AwardNiceDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount, int HL){
if(SRStatsBase(KFStatsAndAchievements) != none && SRStatsBase(KFStatsAndAchievements).Rep != none) SRStatsBase(KFStatsAndAchievements).Rep.ProgressCustomValue(Class'NiceVetBerserkerExp', Int(Float(Amount) * class'NicePack'.default.vetZerkDamageExpCost * getScale(HL)));
}
defaultproperties
{ HeadShotDamageMult=1.250000 bIsMeleeDamage=True DeathString="%o was beat down by %k." FemaleSuicide="%o beat herself down." MaleSuicide="%o beat himself down." bRagdollBullet=True bBulletHit=True PawnDamageEmitter=Class'ROEffects.ROBloodPuff' LowGoreDamageEmitter=Class'ROEffects.ROBloodPuffNoGore' LowDetailEmitter=Class'ROEffects.ROBloodPuffSmall' FlashFog=(X=600.000000) KDamageImpulse=2000.000000 KDeathVel=100.000000 KDeathUpKick=25.000000 VehicleDamageScaling=0.600000
}

View file

@ -0,0 +1,88 @@
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 float SlowingModifier(KFPlayerReplicationInfo KFPRI){
return 1.2;
}
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'NicePack.NiceSkillZerkWindCutter' SkillGroupA(1)=Class'NicePack.NiceSkillZerkWhirlwind' SkillGroupA(2)=Class'NicePack.NiceSkillZerkColossus' SkillGroupA(3)=Class'NicePack.NiceSkillZerkUndead' SkillGroupA(4)=Class'NicePack.NiceSkillZerkZEDAccelerate' SkillGroupB(0)=Class'NicePack.NiceSkillZerkCleave' SkillGroupB(1)=Class'NicePack.NiceSkillZerkFury' SkillGroupB(2)=Class'NicePack.NiceSkillZerkGunzerker' SkillGroupB(3)=Class'NicePack.NiceSkillZerkVorpalBlade' SkillGroupB(4)=Class'NicePack.NiceSkillZerkZEDUnbreakable' progressArray0(0)=100 progressArray0(1)=1000 progressArray0(2)=3000 progressArray0(3)=10000 progressArray0(4)=30000 progressArray0(5)=100000 progressArray0(6)=200000 DefaultDamageType=Class'NicePack.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"
}

View file

@ -0,0 +1,4 @@
class NiceVetBerserkerExp extends SRCustomProgressInt;
defaultproperties
{ ProgressName="Berserker exp."
}

View file

@ -0,0 +1,5 @@
class NiceSkillZerkBrawler extends NiceSkill
abstract;
defaultproperties
{ SkillName="Brawler" SkillEffects="Clots can't grab you."
}

View file

@ -0,0 +1,6 @@
class NiceSkillZerkCleave extends NiceSkill
abstract;
var float bonusDegrees;
defaultproperties
{ bonusDegrees=0.523599 SkillName="Cleave" SkillEffects="Add 30 degrees to wide attacks with melee weapons."
}

View file

@ -0,0 +1,6 @@
class NiceSkillZerkColossus extends NiceSkill
abstract;
var float timeBonus;
defaultproperties
{ timeBonus=1.000000 SkillName="Colossus" SkillEffects="Invincibility period lasts 1 second longer."
}

View file

@ -0,0 +1,6 @@
class NiceSkillZerkFury extends NiceSkill
abstract;
var float attackSpeedBonus;
defaultproperties
{ attackSpeedBonus=1.500000 SkillName="Fury" SkillEffects="Attack 50% faster during invincibility."
}

View file

@ -0,0 +1,6 @@
class NiceSkillZerkGunzerker extends NiceSkill
abstract;
var float cooldown;
defaultproperties
{ cooldown=-2.000000 SkillName="Gunzerker" SkillEffects="You're able to activate melee-invincibility with non-melee headshots, but your misses are punished by a 2 second cooldown, during which you cannot activate invincibility."
}

View file

@ -0,0 +1,6 @@
class NiceSkillZerkUndead extends NiceSkill
abstract;
var int addedSafeMisses;
defaultproperties
{ addedSafeMisses=1 SkillName="Undead" SkillEffects="Get additional safe melee-miss during invincibility period."
}

View file

@ -0,0 +1,6 @@
class NiceSkillZerkVorpalBlade extends NiceSkill
abstract;
var float damageBonus;
defaultproperties
{ damageBonus=2.000000 SkillName="Vorpal blade" SkillEffects="Your head-shot deals double damage on your first invincibility extension against the zed."
}

View file

@ -0,0 +1,5 @@
class NiceSkillZerkWhirlwind extends NiceSkill
abstract;
defaultproperties
{ SkillName="Whirlwind" SkillEffects="Move twice as fast during invincibility."
}

View file

@ -0,0 +1,6 @@
class NiceSkillZerkWindCutter extends NiceSkill
abstract;
var float rangeBonus;
defaultproperties
{ rangeBonus=1.500000 SkillName="Wind cutter" SkillEffects="Increase your reach with melee-weapons by 50%."
}

View file

@ -0,0 +1,5 @@
class NiceSkillZerkZEDAccelerate extends NiceSkill
abstract;
defaultproperties
{ SkillName="Accelerate" SkillEffects="Move and attack at the same speed during zed-time."
}

View file

@ -0,0 +1,5 @@
class NiceSkillZerkZEDUnbreakable extends NiceSkill
abstract;
defaultproperties
{ SkillName="Unbreakable" SkillEffects="You resist all damage during zed time."
}