diff --git a/sources/Zeds/NiceMonster.uc b/sources/Zeds/NiceMonster.uc index b53123e..59c9b46 100644 --- a/sources/Zeds/NiceMonster.uc +++ b/sources/Zeds/NiceMonster.uc @@ -899,42 +899,46 @@ function BileDamageEffect( int damage, NextBileTime = Level.TimeSeconds + BileFrequency; } } + function float GetDecapDamageModifier( class damageType, NicePlayerController nicePlayer, - KFPlayerReplicationInfo KFPRI){ - local float damageMod; - local bool shouldDoGoodDecap; - local bool hasTrashCleaner; - local bool isPerkedPickup; - local class pickupClass; - local class niceVet; - niceVet = class(KFPRI.ClientVeteranSkill); - isPerkedPickup = false; - if(niceVet != none){ - pickupClass = niceVet.static.GetPickupFromDamageType(damageType); - if(pickupClass != none) - isPerkedPickup = niceVet.static.IsPerkedPickup(pickupClass); - } - shouldDoGoodDecap = false; - shouldDoGoodDecap = (damageType.default.decapType == DB_DROP); - shouldDoGoodDecap = shouldDoGoodDecap || + KFPlayerReplicationInfo KFPRI) +{ + local float damageMod; + local bool shouldDoGoodDecap; + local bool hasTrashCleaner; + local bool isPerkedPickup; + local class pickupClass; + local class niceVet; + + // KFPRI accessed none fix + if (KFPRI != none) + niceVet = class(KFPRI.ClientVeteranSkill); + isPerkedPickup = false; + if (niceVet != none) + { + pickupClass = niceVet.static.GetPickupFromDamageType(damageType); + if (pickupClass != none) + isPerkedPickup = niceVet.static.IsPerkedPickup(pickupClass); + } + shouldDoGoodDecap = false; + shouldDoGoodDecap = (damageType.default.decapType == DB_DROP); + shouldDoGoodDecap = shouldDoGoodDecap || (damageType.default.decapType == DB_PERKED && isPerkedPickup); - if(shouldDoGoodDecap) - damageMod = damageType.default.goodDecapMod; - else - damageMod = damageType.default.badDecapMod; - if(nicePlayer != none) - hasTrashCleaner = class'NiceVeterancyTypes'.static. + if (shouldDoGoodDecap) + damageMod = damageType.default.goodDecapMod; + else + damageMod = damageType.default.badDecapMod; + if (nicePlayer != none) + hasTrashCleaner = class'NiceVeterancyTypes'.static. hasSkill(nicePlayer, class'NiceSkillCommandoTrashCleaner'); - if(hasTrashCleaner){ - damageMod = FMin( - damageMod, - class'NiceSkillCommandoTrashCleaner'.default. - decapitationMultiLimit - ); - } - return damageMod; + if (hasTrashCleaner) + { + damageMod = FMin(damageMod, class'NiceSkillCommandoTrashCleaner'.default.decapitationMultiLimit); + } + return damageMod; } + function DealDecapDamage( int damage, Pawn instigatedBy, Vector hitLocation,