Skip to content

Commit

Permalink
[release] v2.4 Public Release
Browse files Browse the repository at this point in the history
  • Loading branch information
Vel-San committed Nov 26, 2020
1 parent 78f0c42 commit 123d34b
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 53 deletions.
35 changes: 17 additions & 18 deletions KFWeaponStatConfig/Classes/Helper.uc
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,23 @@ static function PrintDefaultStats(optional bool bDebug)
DefaultStats[i].fFireRate = CurrentWeaponShotgunFire.default.FireRate;
DefaultStats[i].fFireAnimRate = CurrentWeaponShotgunFire.default.FireAnimRate;

// TODO: Fix this to be compatible with the above statement
// switch(GetItemName(string(CurrentWeapon)))
// {
// case "CrossbowArrow":
// class'KFMod.CrossbowArrow'.default.HeadShotDamageMult = Weapon[i].HeadShotDamageMult;
// }
// For classes that are either: CrossbowArrow, M99Bullet CrossbuzzsawBlade
// Or children of said classes, we have a different HeadShotMultiplier
if (ClassIsChildOf(CurrentWeaponProjectile, class'CrossbuzzsawBlade'))
{
MutLog(" >Has Special HeadShot Implementation (CrossBuzzsawBlade)");
DefaultStats[i].fHeadShotDamageMult = class<CrossbuzzsawBlade>(CurrentWeaponProjectile).default.HeadShotDamageMult;
}
else if (ClassIsChildOf(CurrentWeaponProjectile, class'CrossbowArrow'))
{
MutLog(" >Has Special HeadShot Implementation (CrossbowArrow)");
DefaultStats[i].fHeadShotDamageMult = class<CrossbowArrow>(CurrentWeaponProjectile).default.HeadShotDamageMult;
}
else if (ClassIsChildOf(CurrentWeaponProjectile, class'M99Bullet'))
{
MutLog(" >Has Special HeadShot Implementation (M99Bullet)");
DefaultStats[i].fHeadShotDamageMult = class<M99Bullet>(CurrentWeaponProjectile).default.HeadShotDamageMult;
}
}

else if (class<ShotgunBullet>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class')) != none)
Expand All @@ -150,12 +161,6 @@ static function PrintDefaultStats(optional bool bDebug)
// DmgType Class Related Changes
DefaultStats[i].fHeadShotDamageMult = CurrentWeaponDmgType.default.HeadShotDamageMult;

// TODO: Fix this to be compatible with the above statement
// switch(GetItemName(string(CurrentWeapon)))
// {
// case "CrossbowArrow":
// class'KFMod.CrossbowArrow'.default.HeadShotDamageMult = Weapon[i].HeadShotDamageMult;
// }
}

else if (class<LAWProj>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class')) != none)
Expand All @@ -177,12 +182,6 @@ static function PrintDefaultStats(optional bool bDebug)
// DmgType Class Related Changes
DefaultStats[i].fHeadShotDamageMult = CurrentWeaponDmgType.default.HeadShotDamageMult;

// TODO: Fix this to be compatible with the above statement
// switch(GetItemName(string(CurrentWeapon)))
// {
// case "CrossbowArrow":
// class'KFMod.CrossbowArrow'.default.HeadShotDamageMult = Weapon[i].HeadShotDamageMult;
// }
}
}

Expand Down
73 changes: 41 additions & 32 deletions KFWeaponStatConfig/Classes/KFWeaponStatConfig.uc
Original file line number Diff line number Diff line change
Expand Up @@ -147,36 +147,47 @@ simulated function ModifyWeapon(int TmpCount)
&& class<ShotgunBullet>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class')) == none
&& class<LAWProj>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class')) == none)
{
CurrentWeaponProjectile = class<Projectile>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class'));
if (class<KFProjectileWeaponDamageType>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class')) != none )
{
CurrentWeaponDmgType = class<KFProjectileWeaponDamageType>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class'));
// DmgType Class Related Changes
CurrentWeaponDmgType.default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}
else if (class<DamTypeM79Grenade>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class')) != none)
{
CurrentWeaponM79DmgType = class<DamTypeM79Grenade>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class'));
// DmgType Class Related Changes
CurrentWeaponM79DmgType.default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}

MutLog(" >" $GetItemName(string(CurrentWeapon))$ " Has A Projectile Class");
MutLog(" >Special Class: " $string(CurrentWeaponProjectile));

// WeaponFire Class Related Changes
CurrentWeaponProjectile.default.Damage = Weapon[i].iDamageMax;
if(Weapon[i].fSpread != 999) CurrentWeaponShotgunFire.default.Spread = Weapon[i].fSpread;
if(Weapon[i].iProjPerFire != 0) CurrentWeaponShotgunFire.default.ProjPerFire = Weapon[i].iProjPerFire;
CurrentWeaponShotgunFire.default.FireRate = Weapon[i].fFireRate;
CurrentWeaponShotgunFire.default.FireAnimRate = Weapon[i].fFireAnimRate;

// TODO: Find a way to get rid of this ugly hack.. some weapons
// have 2 fHeadShotDamageMult, one in the base class and another in the DmgType
switch(GetItemName(string(CurrentWeapon))){
case "CrossbowArrow":
class'KFMod.CrossbowArrow'.default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}
CurrentWeaponProjectile = class<Projectile>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class'));
if (class<KFProjectileWeaponDamageType>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class')) != none )
{
CurrentWeaponDmgType = class<KFProjectileWeaponDamageType>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class'));
// DmgType Class Related Changes
CurrentWeaponDmgType.default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}
else if (class<DamTypeM79Grenade>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class')) != none)
{
CurrentWeaponM79DmgType = class<DamTypeM79Grenade>(DynamicLoadObject(string(CurrentWeaponProjectile.default.MyDamageType), class'Class'));
// DmgType Class Related Changes
CurrentWeaponM79DmgType.default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}

MutLog(" >" $GetItemName(string(CurrentWeapon))$ " Has A Projectile Class");
MutLog(" >Special Class: " $string(CurrentWeaponProjectile));

// WeaponFire Class Related Changes
CurrentWeaponProjectile.default.Damage = Weapon[i].iDamageMax;
if(Weapon[i].fSpread != 999) CurrentWeaponShotgunFire.default.Spread = Weapon[i].fSpread;
if(Weapon[i].iProjPerFire != 0) CurrentWeaponShotgunFire.default.ProjPerFire = Weapon[i].iProjPerFire;
CurrentWeaponShotgunFire.default.FireRate = Weapon[i].fFireRate;
CurrentWeaponShotgunFire.default.FireAnimRate = Weapon[i].fFireAnimRate;

// For classes that are either: CrossbowArrow, M99Bullet CrossbuzzsawBlade
// Or children of said classes, we have a different HeadShotMultiplier
if (ClassIsChildOf(CurrentWeaponProjectile, class'CrossbuzzsawBlade'))
{
MutLog(" >Has Special HeadShot Implementation (CrossBuzzsawBlade)");
class<CrossbuzzsawBlade>(CurrentWeaponProjectile).default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}
else if (ClassIsChildOf(CurrentWeaponProjectile, class'CrossbowArrow'))
{
MutLog(" >Has Special HeadShot Implementation (CrossbowArrow)");
class<CrossbowArrow>(CurrentWeaponProjectile).default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}
else if (ClassIsChildOf(CurrentWeaponProjectile, class'M99Bullet'))
{
MutLog(" >Has Special HeadShot Implementation (M99Bullet)");
class<M99Bullet>(CurrentWeaponProjectile).default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;
}
}

else if (class<ShotgunBullet>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class')) != none){
Expand All @@ -196,7 +207,6 @@ simulated function ModifyWeapon(int TmpCount)
// DmgType Class Related Changes
CurrentWeaponDmgType.default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;

// TODO: Add Switch statement to manually change fHeadShotDamageMult like the above switch
}
else if (class<LAWProj>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class')) != none){
CurrentWeaponLAWProj = class<LAWProj>(DynamicLoadObject(string(CurrentWeaponShotgunFire.default.ProjectileClass), class'Class'));
Expand All @@ -216,7 +226,6 @@ simulated function ModifyWeapon(int TmpCount)
// DmgType Class Related Changes
CurrentWeaponDmgType.default.HeadShotDamageMult = Weapon[i].fHeadShotDamageMult;

// TODO: Add Switch statement to manually change fHeadShotDamageMult like the above switch
}
}

Expand Down
11 changes: 9 additions & 2 deletions Sample_Config/KFWeaponStatConfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ aWeapon[7]=(sWeaponClassName="KFMod.NeonKrissMMedicGun",iInventoryGroup=3,iWeigh
aWeapon[8]=(sWeaponClassName="KFMod.M7A3MMedicGun",iInventoryGroup=3,iWeight=5,iCost=2050,iDamageMax=70,iMagCapacity=20,iAmmoCost=10,iImpactDamage=0,iProjPerFire=0,fHeadShotDamageMult=1.5,fSpread=0.01,fFireRate=0.12,fFireAnimRate=1.2,fReloadRate=1.3,fReloadAnimRate=2.5)
aWeapon[9]=(sWeaponClassName="KFEnhancedMusket.EnhancedMusket",iInventoryGroup=4,iWeight=5,iCost=1500,iDamageMax=180,iMagCapacity=10,iAmmoCost=20,iImpactDamage=0,iProjPerFire=0,fHeadShotDamageMult=2,fSpread=0,fFireRate=0.94,fFireAnimRate=1.0,fReloadRate=2.87,fReloadAnimRate=1)


[KFWeaponStatConfig.Helper]
# This list is to 'Print' default stats for a weapon
# If bDebug=True --> Stats will be printed in your server.log (or Killingfloor.log)
Expand All @@ -31,4 +30,12 @@ PrintStatsFor="KFMod.CamoMP5MMedicGun"
PrintStatsFor="KFMod.KrissMMedicGun"
PrintStatsFor="KFMod.NeonKrissMMedicGun"
PrintStatsFor="KFMod.M7A3MMedicGun"
PrintStatsFor="KFEnhancedMusket.EnhancedMusket"
PrintStatsFor="KFEnhancedMusket.EnhancedMusket"
PrintStatsFor="KFMod.LAW"
PrintStatsFor="KFMod.SealSquealHarpoonBomber"
PrintStatsFor="KFMod.SeekerSixRocketLauncher"
PrintStatsFor="KFMod.Crossbuzzsaw"
PrintStatsFor="KFMod.BoomStick"
PrintStatsFor="KFMod.ZEDMKIIWeapon"
PrintStatsFor="KFMod.ZEDGun"
PrintStatsFor="KFMod.Crossbow"
9 changes: 8 additions & 1 deletion Steam_WorkShop_Description/Workshop-Text
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ aWeapon[7]=(sWeaponClassName="KFMod.NeonKrissMMedicGun",iInventoryGroup=3,iWeigh
aWeapon[8]=(sWeaponClassName="KFMod.M7A3MMedicGun",iInventoryGroup=3,iWeight=5,iCost=2050,iDamageMax=70,iMagCapacity=20,iAmmoCost=10,iImpactDamage=0,iProjPerFire=0,fHeadShotDamageMult=1.5,fSpread=0.01,fFireRate=0.12,fFireAnimRate=1.2,fReloadRate=1.3,fReloadAnimRate=2.5)
aWeapon[9]=(sWeaponClassName="KFEnhancedMusket.EnhancedMusket",iInventoryGroup=4,iWeight=5,iCost=1500,iDamageMax=180,iMagCapacity=10,iAmmoCost=20,iImpactDamage=0,iProjPerFire=0,fHeadShotDamageMult=2,fSpread=0,fFireRate=0.94,fFireAnimRate=1.0,fReloadRate=2.87,fReloadAnimRate=1)


[KFWeaponStatConfig.Helper]
# This list is to 'Print' default stats for a weapon
# If bDebug=True --> Stats will be printed in your server.log (or Killingfloor.log)
Expand All @@ -74,6 +73,14 @@ PrintStatsFor="KFMod.KrissMMedicGun"
PrintStatsFor="KFMod.NeonKrissMMedicGun"
PrintStatsFor="KFMod.M7A3MMedicGun"
PrintStatsFor="KFEnhancedMusket.EnhancedMusket"
PrintStatsFor="KFMod.LAW"
PrintStatsFor="KFMod.SealSquealHarpoonBomber"
PrintStatsFor="KFMod.SeekerSixRocketLauncher"
PrintStatsFor="KFMod.Crossbuzzsaw"
PrintStatsFor="KFMod.BoomStick"
PrintStatsFor="KFMod.ZEDMKIIWeapon"
PrintStatsFor="KFMod.ZEDGun"
PrintStatsFor="KFMod.Crossbow"
[/code]

[code]
Expand Down

0 comments on commit 123d34b

Please sign in to comment.