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,10 @@
class NiceDamageTypeVetEnforcer 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'NiceVetSupportExp', Int(Float(Amount) * class'NicePack'.default.vetSupportDamageExpCost * getScale(HL)));
}
defaultproperties
{ badDecapMod=1.000000 bIsProjectile=True HeadShotDamageMult=1.500000
}

View file

@ -0,0 +1,7 @@
class NiceDamageTypeVetEnforcerBullets extends NiceDamageTypeVetEnforcer
abstract;
defaultproperties
{
badDecapMod=0.2500000 goodDecapMod=0.500000 bodyDestructionMult=1.000000 HeadShotDamageMult=1.000000
}

View file

@ -0,0 +1,118 @@
class NiceVetEnforcer extends NiceVeterancyTypes
abstract;
static function AddCustomStats(ClientPerkRepLink Other){
Other.AddCustomValue(Class'NiceVetSupportExp');
}
static function int GetStatValueInt(ClientPerkRepLink StatOther, byte ReqNum){
return StatOther.GetCustomValueInt(Class'NiceVetSupportExp');
}
static function array<int> GetProgressArray(byte ReqNum, optional out int DoubleScalingBase){
return default.progressArray0;
}
// Other bonuses
static function float GetPenetrationDamageMulti(KFPlayerReplicationInfo KFPRI, float DefaultPenDamageReduction, class<NiceWeaponDamageType> fireIntance){
local float bonusReduction;
local float PenDamageInverse;
bonusReduction = 0.0;
if(class<NiceDamageTypeVetEnforcerBullets>(fireIntance) != none)
return DefaultPenDamageReduction;
if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillSupportStubbornness')) bonusReduction = class'NiceSkillSupportStubbornness'.default.penLossRed;
PenDamageInverse = (1.0 - FMax(0, DefaultPenDamageReduction));
return DefaultPenDamageReduction + PenDamageInverse * (0.6 + 0.4 * bonusReduction); // 60% better penetrations + bonus
}
static function int AddStunScore(KFPlayerReplicationInfo KFPRI, KFMonster Injured, KFPawn DamageTaker, int InStunScore, class<NiceWeaponDamageType> DmgType){
local class<NiceWeaponPickup> pickupClass;
pickupClass = GetPickupFromDamageType(DmgType);
if(KFPRI != none && IsPerkedPickup(pickupClass) && HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillEnforcerBombard')) return InStunScore * class'NiceSkillEnforcerBombard'.default.stunMult;
return InStunScore;
}
static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI){
/*if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillSupportCautious')) return class'NicePack.NiceDelayedNade';
return class'NicePack.NiceNailNade';*/
return class'NicePack.NiceCryoNade';
}
static function int ReduceDamage(KFPlayerReplicationInfo KFPRI, KFPawn Injured, Pawn Instigator, int InDamage, class<DamageType> DmgType){
if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillEnforcerDetermination') && Injured.Health < class'NiceSkillEnforcerDetermination'.default.healthBound)
InDamage *= (1 - class'NiceSkillEnforcerDetermination'.default.addedResist);
if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillEnforcerUnshakable'))
InDamage *= (1 - class'NiceSkillEnforcerUnshakable'.default.skillResist);
if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillHeavyCoating') && Injured.ShieldStrength > 0){
if( class<KFWeaponDamageType>(DmgType) != none
&& ((class<KFWeaponDamageType>(DmgType).default.bDealBurningDamage && KFMonster(Instigator) != none)
|| DmgType == class'NiceZombieTeslaHusk'.default.MyDamageType) )
InDamage *= (1 - class'NiceSkillHeavyCoating'.default.huskResist);
}
return InDamage;
}
static function float GetFireSpeedModStatic(KFPlayerReplicationInfo KFPRI, class<Weapon> other){
local float fireSpeed;
local NicePlayerController nicePlayer;
local class<NiceWeaponPickup> pickupClass;
pickupClass = GetPickupFromWeapon(other);
if(KFPRI.Owner == none)
return 1.0;
if(IsPerkedPickup(pickupClass) && HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillHeavyOverclocking'))
fireSpeed = class'NiceSkillHeavyOverclocking'.default.fireSpeedMult;
else
fireSpeed = 1.0;
nicePlayer = NicePlayerController(KFPRI.Owner);
/*if(nicePlayer != none && HasSkill(nicePlayer, class'NiceSkillEnforcerZEDBarrage'))
fireSpeed /= (KFPRI.Owner.Level.TimeDilation / 1.1);*/
return fireSpeed;
}
static function float ModifyRecoilSpread(KFPlayerReplicationInfo KFPRI, WeaponFire other, out float Recoil){
local class<NiceWeaponPickup> pickupClass;
pickupClass = GetPickupFromWeaponFire(other);
if(IsPerkedPickup(pickupClass) && HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillHeavyOverclocking'))
Recoil = class'NiceSkillHeavyOverclocking'.default.fireSpeedMult;
else
Recoil = 1.0;
return Recoil;
}
/*static function float GetMagCapacityModStatic(KFPlayerReplicationInfo KFPRI, class<KFWeapon> other){
local class<NiceWeapon> niceWeap;
niceWeap = class<NiceWeapon>(other);
if(niceWeap != none && niceWeap.default.reloadType == RTYPE_MAG)
return 1.5;
if(other == class'NicePack.NiceM41AAssaultRifle' || other == class'NicePack.NiceChainGun' || other == class'NicePack.NiceStinger' )
return 1.5;
return 1.0;
}*/
static function float GetMovementSpeedModifier(KFPlayerReplicationInfo KFPRI, KFGameReplicationInfo KFGRI){
if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillEnforcerUnstoppable'))
return class'NiceSkillEnforcerUnstoppable'.default.speedMult;
return 1.0;
}
static function bool CanBePulled(KFPlayerReplicationInfo KFPRI){
if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillEnforcerUnstoppable'))
return false;
return super.CanBePulled(KFPRI);
}
static function float SlowingModifier(KFPlayerReplicationInfo KFPRI){
if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillEnforcerUnstoppable'))
return 0.0;
return 1.0;
}
static function string GetCustomLevelInfo(byte Level){
return default.CustomLevelInfo;
}
defaultproperties
{ bNewTypePerk=True
SkillGroupA(0)=Class'NicePack.NiceSkillEnforcerUnstoppable' SkillGroupA(1)=Class'NicePack.NiceSkillEnforcerBombard' SkillGroupA(2)=Class'NicePack.NiceSkillEnforcerFullCounter' SkillGroupA(4)=Class'NicePack.NiceSkillEnforcerZEDBarrage'
SkillGroupB(0)=Class'NicePack.NiceSkillEnforcerUnshakable' SkillGroupB(1)=Class'NicePack.NiceSkillEnforcerMultitasker' SkillGroupB(2)=Class'NicePack.NiceSkillEnforcerDetermination' SkillGroupB(4)=Class'NicePack.NiceSkillEnforcerZEDJuggernaut' progressArray0(0)=100 progressArray0(1)=1000 progressArray0(2)=3000 progressArray0(3)=10000 progressArray0(4)=30000 progressArray0(5)=100000 progressArray0(6)=200000 DefaultDamageType=Class'NicePack.NiceDamageTypeVetEnforcer' OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Support',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255)) OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Support_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_Support_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_Support_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_Support_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_Support_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|60% better penetration with all weapons" PerkIndex=1 OnHUDIcon=Texture'KillingFloorHUD.Perks.Perk_Support' OnHUDGoldIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Support_Gold' VeterancyName="Enforcer" Requirements(0)="Required experience for the next level: %x"
}

View file

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

View file

@ -0,0 +1,7 @@
class NiceSkillEnforcerBombard extends NiceSkill
abstract;
var float stunMult;
var float spreadMult;
defaultproperties
{ stunMult=3.000000 spreadMult=0.500000 SkillName="Bombard" SkillEffects="Your perked weapons are 3 times as good at stunning."
}

View file

@ -0,0 +1,6 @@
class NiceSkillEnforcerMultitasker extends NiceSkill
abstract;
var float reloadSlowDown;
defaultproperties
{ reloadSlowDown=5.000000 SkillName="Multitasker" SkillEffects="Reload holstered weapons at five times as much time."
}

View file

@ -0,0 +1,5 @@
class NiceSkillSupportAntiZed extends NiceSkill
abstract;
defaultproperties
{ SkillName="Anti-zed rounds" SkillEffects="When shotgun pellets pass screaming siren, they gain x4 damage boost."
}

View file

@ -0,0 +1,5 @@
class NiceSkillSupportArmory extends NiceSkill
abstract;
defaultproperties
{ bBroadcast=True SkillName="Armory" SkillEffects="Once per wave your team-mates will receive armored jacket when they run out of armor."
}

View file

@ -0,0 +1,6 @@
class NiceSkillSupportBigGameHunter extends NiceSkillGenAmmo
abstract;
var float damageBonus;
defaultproperties
{ damageBonus=1.600000 SkillName="Big-game hunter" SkillEffects="Gain 60% damage bonus with grenades, but carry 5 grenades less."
}

View file

@ -0,0 +1,5 @@
class NiceSkillSupportCautious extends NiceSkill
abstract;
defaultproperties
{ SkillName="Cautious" SkillEffects="Your grenades won't explode if you're too close to them."
}

View file

@ -0,0 +1,18 @@
class NiceSkillSupportDiversity extends NiceSkill
abstract;
var int bonusWeight;
static function UpdateWeight(NicePlayerController nicePlayer){
local NiceHumanPawn nicePawn;
if(nicePawn == none || nicePawn.KFPRI == none) return;
nicePawn.maxCarryWeight = nicePawn.default.maxCarryWeight;
if(nicePawn.KFPRI.clientVeteranSkill != none) nicePawn.maxCarryWeight += nicePawn.KFPRI.clientVeteranSkill.static.AddCarryMaxWeight(nicePawn.KFPRI);
}
function static SkillSelected(NicePlayerController nicePlayer){
UpdateWeight(nicePlayer);
}
function static SkillDeSelected(NicePlayerController nicePlayer){
UpdateWeight(nicePlayer);
}
defaultproperties
{ bonusWeight=5 SkillName="Diversity" SkillEffects="Gain +5 weight slots."
}

View file

@ -0,0 +1,7 @@
class NiceSkillSupportGraze extends NiceSkill
abstract;
var float hsBonusZoneMult;
var float grazeDamageMult;
defaultproperties
{ hsBonusZoneMult=1.500000 grazeDamageMult=0.750000 SkillName="Graze" SkillEffects="Your perked projectile can hit zeds' extended head zone for 75% of damage even if they miss the normal one."
}

View file

@ -0,0 +1,7 @@
class NiceSkillSupportObsessive extends NiceSkill
abstract;
var float reloadLevel;
var float reloadBonus;
defaultproperties
{ reloadLevel=0.650000 ReloadBonus=1.500000 SkillName="Obsessive" SkillEffects="Reload 50% faster when you lack at most 35% of bullets in the magazine."
}

View file

@ -0,0 +1,5 @@
class NiceSkillSupportSlugs extends NiceSkill
abstract;
defaultproperties
{ SkillName="Slugs" SkillEffects="Pellets shots replaced by slugs on shotguns."
}

View file

@ -0,0 +1,6 @@
class NiceSkillSupportStubbornness extends NiceSkillGenAmmo
abstract;
var float penLossRed;
defaultproperties
{ penLossRed=0.500000 SkillName="Stubbornness" SkillEffects="50% better penetration."
}

View file

@ -0,0 +1,6 @@
class NiceSkillSupportZEDBore extends NiceSkill
abstract;
var float minHeadshotPrecision;
defaultproperties
{ minHeadshotPrecision=0.100000 SkillName="Bore" SkillEffects="During zed time your bullets' bounce between a zed's body and head 2 times before leaving it."
}

View file

@ -0,0 +1,7 @@
class NiceSkillSupportZEDBulletStorm extends NiceSkill
abstract;
var float damageCut;
var float projCountMult;
defaultproperties
{ damageCut=0.500000 projCountMult=7.000000 SkillName="Bullet storm" SkillEffects="During zed time you fire seven times as much projectiles, that deal half as much damage."
}