185 lines
11 KiB
Ucode
185 lines
11 KiB
Ucode
class NiceVetFirebug extends NiceVeterancyTypes
|
|
abstract;
|
|
static function int GetStatValueInt(ClientPerkRepLink StatOther, byte ReqNum)
|
|
{
|
|
return StatOther.RFlameThrowerDamageStat;
|
|
}
|
|
/*
|
|
static function int AddFireDamage(KFPlayerReplicationInfo KFPRI, KFMonster Injured, KFPawn DamageTaker, int InDamage, class<NiceWeaponDamageType> DmgType){
|
|
if(class<NiceDamTypeFire>(DmgType) != none){
|
|
if(GetClientVeteranSkillLevel(KFPRI) == 0)
|
|
return float(InDamage) * 1.2;
|
|
if(GetClientVeteranSkillLevel(KFPRI) <= 6)
|
|
return float(InDamage) * (1.2 + (0.2 * float(GetClientVeteranSkillLevel(KFPRI)))); // Up to 140% extra damage
|
|
return float(InDamage) * 2.4;
|
|
}
|
|
return 0.0;
|
|
}
|
|
static function float GetMagCapacityModStatic(KFPlayerReplicationInfo KFPRI, class<KFWeapon> Other)
|
|
{
|
|
if ( GetClientVeteranSkillLevel(KFPRI) > 0 ) {
|
|
if ( ClassIsChildOf(Other, class'NiceMAC10Z')
|
|
|| ClassIsChildOf(Other, class'NiceThompsonInc')
|
|
|| ClassIsChildOf(Other, class'NiceProtecta')
|
|
|| ClassIsChildOf(Other, class'NiceHFR')
|
|
|| ClassIsChildOf(Other, class'NiceFlameThrower')
|
|
|| ClassIsChildOf(Other, class'NiceHuskGun')
|
|
|| ClassIsInArray(default.PerkedAmmo, Other.default.FiremodeClass[0].default.AmmoClass) //v3 - custom weapon support
|
|
)
|
|
return 1.0 + (0.10 * fmin(6, GetClientVeteranSkillLevel(KFPRI))); // Up to 60% larger fuel canister
|
|
}
|
|
return 1.0;
|
|
}
|
|
// more ammo from ammo boxes
|
|
static function float GetAmmoPickupMod(KFPlayerReplicationInfo KFPRI, KFAmmunition Other)
|
|
{
|
|
return AddExtraAmmoFor(KFPRI, Other.class);
|
|
}
|
|
static function float AddExtraAmmoFor(KFPlayerReplicationInfo KFPRI, Class<Ammunition> AmmoType)
|
|
{
|
|
if ( GetClientVeteranSkillLevel(KFPRI) > 0 ) {
|
|
if ( ClassIsChildOf(AmmoType, class'NiceMAC10Ammo')
|
|
|| ClassIsChildOf(AmmoType, class'NiceThompsonIncAmmo')
|
|
|| ClassIsChildOf(AmmoType, class'NiceFlareRevolverAmmo')
|
|
|| ClassIsChildOf(AmmoType, class'NiceDualFlareRevolverAmmo')
|
|
|| ClassIsChildOf(AmmoType, class'TrenchgunAmmo')
|
|
|| ClassIsChildOf(AmmoType, class'NiceProtectaAmmo')
|
|
|| ClassIsChildOf(AmmoType, class'NiceHFRAmmo')
|
|
|| ClassIsChildOf(AmmoType, class'NiceFlameAmmo')
|
|
|| ClassIsChildOf(AmmoType, class'NiceHuskGunAmmo')
|
|
|| ClassIsInArray(default.PerkedAmmo, AmmoType) //v3 - custom weapon support
|
|
) {
|
|
if ( GetClientVeteranSkillLevel(KFPRI) <= 6 )
|
|
return 1.0 + (0.10 * float(GetClientVeteranSkillLevel(KFPRI))); // Up to 60% larger fuel canister
|
|
return 1.6 + (0.05 * float(GetClientVeteranSkillLevel(KFPRI)-6)); // 5% more total fuel per each perk level above 6
|
|
}
|
|
else if ( GetClientVeteranSkillLevel(KFPRI) >= 4
|
|
&& AmmoType == class'FragAmmo' ) {
|
|
return 1.0 + (0.20 * float(GetClientVeteranSkillLevel(KFPRI) - 3)); // 1 extra nade per level starting with level 4
|
|
}
|
|
else if ( GetClientVeteranSkillLevel(KFPRI) > 6 && ClassIsChildOf(AmmoType, class'ScrnM79IncAmmo') ) {
|
|
return 1.0 + (0.083334 * float(GetClientVeteranSkillLevel(KFPRI)-6)); //+2 M79Inc nades post level 6
|
|
}
|
|
} return 1.0;
|
|
}
|
|
static function int AddDamage(KFPlayerReplicationInfo KFPRI, KFMonster Injured, KFPawn DamageTaker, int InDamage, class<DamageType> DmgType)
|
|
{
|
|
return InDamage;
|
|
}
|
|
// Change effective range on FlameThrower
|
|
static function int ExtraRange(KFPlayerReplicationInfo KFPRI)
|
|
{
|
|
if ( GetClientVeteranSkillLevel(KFPRI) <= 2 )
|
|
return 0;
|
|
else if ( GetClientVeteranSkillLevel(KFPRI) <= 4 )
|
|
return 1; // 50% Longer Range
|
|
return 2; // 100% Longer Range
|
|
}
|
|
static function int ReduceDamage(KFPlayerReplicationInfo KFPRI, KFPawn Injured, Pawn Instigator, int InDamage, class<DamageType> DmgType)
|
|
{
|
|
if ( class<KFWeaponDamageType>(DmgType) != none && class<KFWeaponDamageType>(DmgType).default.bDealBurningDamage )
|
|
{
|
|
if ( GetClientVeteranSkillLevel(KFPRI) <= 4 )
|
|
return max(1, float(InDamage) * (0.50 - (0.10 * float(GetClientVeteranSkillLevel(KFPRI)))));
|
|
|
|
return 0; // 100% reduction in damage from fire
|
|
}
|
|
return InDamage;
|
|
}
|
|
static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI)
|
|
{
|
|
if ( GetClientVeteranSkillLevel(KFPRI) >= 3 ) {
|
|
return class'NicePack.NiceFlameNade';
|
|
}
|
|
return super.GetNadeType(KFPRI);
|
|
}
|
|
//can't cook fire nades
|
|
static function bool CanCookNade(KFPlayerReplicationInfo KFPRI, Weapon Weap)
|
|
{
|
|
return GetNadeType(KFPRI) != class'ScrnBalanceSrv.ScrnFlameNade';
|
|
}
|
|
//v2.60: +60% faster charge with Husk Gun
|
|
static function float GetReloadSpeedModifierStatic(KFPlayerReplicationInfo KFPRI, class<KFWeapon> Other)
|
|
{
|
|
if ( GetClientVeteranSkillLevel(KFPRI) > 0 ) {
|
|
if ( ClassIsChildOf(Other, class'NiceMAC10Z')
|
|
|| ClassIsChildOf(Other, class'NiceThompsonInc')
|
|
|| ClassIsChildOf(Other, class'NiceFlareRevolver')
|
|
|| ClassIsChildOf(Other, class'NiceDualFlareRevolver')
|
|
|| ClassIsChildOf(Other, class'NiceM79Inc')
|
|
|| ClassIsChildOf(Other, class'NiceTrenchgun')
|
|
|| ClassIsChildOf(Other, class'NiceProtecta')
|
|
|| ClassIsChildOf(Other, class'NiceHFR')
|
|
|| ClassIsChildOf(Other, class'NiceFlameThrower')
|
|
|| ClassIsChildOf(Other, class'NiceHuskGun')
|
|
|| ClassIsChildOf(Other, class'HuskGun')
|
|
|| ClassIsChildOf(Other, class'HuskGun')
|
|
|| ClassIsChildOf(Other, class'HuskGun')
|
|
|| ClassIsInArray(default.PerkedWeapons, Other) //v3 - custom weapon support
|
|
)
|
|
return 1.0 + (0.10 * fmin(6, GetClientVeteranSkillLevel(KFPRI))); // Up to 60% faster reload with Flame weapons / Husk Gun charging
|
|
}
|
|
return 1.0;
|
|
}
|
|
// Change the cost of particular items
|
|
static function float GetCostScaling(KFPlayerReplicationInfo KFPRI, class<Pickup> Item)
|
|
{
|
|
//add discount on class descenders as well, e.g. ScrnHuskGun
|
|
if ( ClassIsChildOf(Item, class'NiceThompsonIncPickup')
|
|
|| ClassIsChildOf(Item, class'NiceFlareRevolverPickup')
|
|
|| ClassIsChildOf(Item, class'NiceDualFlareRevolverPickup')
|
|
|| ClassIsChildOf(Item, class'NiceM79IncPickup')
|
|
|| ClassIsChildOf(Item, class'NiceTrenchgunPickup')
|
|
|| ClassIsChildOf(Item, class'NiceProtectaPickup')
|
|
|| ClassIsChildOf(Item, class'NiceHFRPickup')
|
|
|| ClassIsChildOf(Item, class'NiceFlameThrowerPickup')
|
|
|| ClassIsChildOf(Item, class'NiceHuskGunPickup')
|
|
|| ClassIsInArray(default.PerkedPickups, Item) ) //v3 - custom weapon support
|
|
{
|
|
if ( GetClientVeteranSkillLevel(KFPRI) <= 6 )
|
|
return 0.9 - 0.10 * float(GetClientVeteranSkillLevel(KFPRI)); // 10% perk level up to 6
|
|
else
|
|
return FMax(0.1, 0.3 - (0.05 * float(GetClientVeteranSkillLevel(KFPRI)-6))); // 5% post level 6
|
|
}
|
|
return 1.0;
|
|
}
|
|
static function class<DamageType> GetMAC10DamageType(KFPlayerReplicationInfo KFPRI)
|
|
{
|
|
return class'DamTypeMAC10MPInc';
|
|
}
|
|
static function string GetCustomLevelInfo( byte Level )
|
|
{
|
|
local string S;
|
|
local byte BonusLevel;
|
|
S = Default.CustomLevelInfo;
|
|
BonusLevel = GetBonusLevel(Level)-6;
|
|
ReplaceText(S,"%L",string(BonusLevel+6));
|
|
ReplaceText(S,"%m",GetPercentStr(0.6 + 0.10*BonusLevel));
|
|
ReplaceText(S,"%d",GetPercentStr(0.7 + fmin(0.2, 0.05*BonusLevel)));
|
|
return S;
|
|
}*/
|
|
defaultproperties
|
|
{
|
|
DefaultDamageType=Class'NicePack.NiceDamTypeFire'
|
|
DefaultDamageTypeNoBonus=Class'KFMod.DamTypeMAC10MPInc'
|
|
OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Firebug',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255))
|
|
OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Firebug_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_Firebug_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_Firebug_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_Firebug_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_Firebug_Orange',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Orange',DrawColor=(B=255,G=255,R=255,A=255))
|
|
CustomLevelInfo="*** BONUS LEVEL %L|140% extra flame weapon damage|%m faster fire weapon reload|%m faster Husk Gun charging|%s more flame weapon ammo|100% resistance to fire|100% extra Flamethrower range|Grenades set enemies on fire|%d discount on flame weapons|Spawn with an Incendiary Thompson"
|
|
SRLevelEffects(0)="*** BONUS LEVEL 0|20% extra flame weapon damage|50% resistance to fire|10% discount on the flame weapons"
|
|
SRLevelEffects(1)="*** BONUS LEVEL 1|40% extra flame weapon damage|10% faster fire weapon reload|10% faster Husk Gun charging|10% more flame weapon ammo|60% resistance to fire|20% discount on flame weapons"
|
|
SRLevelEffects(2)="*** BONUS LEVEL 2|60% extra flame weapon damage|20% faster fire weapon reload|20% faster Husk Gun charging|20% more flame weapon ammo|70% resistance to fire|30% discount on flame weapons"
|
|
SRLevelEffects(3)="*** BONUS LEVEL 3|80% extra flame weapon damage|30% faster fire weapon reload|30% faster Husk Gun charging|30% more flame weapon ammo|80% resistance to fire|50% extra Flamethrower range|Grenades set enemies on fire|40% discount on flame weapons"
|
|
SRLevelEffects(4)="*** BONUS LEVEL 4|100% extra flame weapon damage|40% faster fire weapon reload|40% faster Husk Gun charging|40% more flame weapon ammo|90% resistance to fire|50% extra Flamethrower range|Grenades set enemies on fire|50% discount on flame weapons"
|
|
SRLevelEffects(5)="*** BONUS LEVEL 5|120% extra flame weapon damage|50% faster fire weapon reload|50% faster Husk Gun charging|50% more flame weapon ammo|100% resistance to fire|100% extra Flamethrower range|Grenades set enemies on fire|60% discount on flame weapons|Spawn with a MAC10"
|
|
SRLevelEffects(6)="*** BONUS LEVEL 6|140% extra flame weapon damage|60% faster fire weapon reload|60% faster Husk Gun charging|60% more flame weapon ammo|100% resistance to fire|100% extra Flamethrower range|Grenades set enemies on fire|70% discount on flame weapons|Spawn with an Incendiary Thompson"
|
|
PerkIndex=5
|
|
OnHUDIcon=Texture'KillingFloorHUD.Perks.Perk_Firebug'
|
|
OnHUDGoldIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Firebug_Gold'
|
|
VeterancyName="[Legacy]Firebug"
|
|
Requirements(0)="Deal %x damage with the Flamethrower"
|
|
}
|