//============================================================================= // KFPhysicsDamageByPawnVolume //============================================================================= // PhysicsVolume are, by default, used for traps on all maps. This KFPhysicsDamageByPawnVolume // gives the ability to make different damage values for Humans and Monsters. //============================================================================= // Killing Floor 2 // Copyright (C) 2021 Tripwire Interactive LLC // Roberto Moreno //============================================================================= class KFPhysicsDamageByPawnVolume extends PhysicsVolume placeable; var() float DamagePerSecMultiplierForHuman; var() float DamagePerSecMultiplierForMonster; function CausePainTo(Actor Other) { local float DamagePerSecModified; DamagePerSecModified = DamagePerSec; if (KFPawn_Human(Other) != None) { DamagePerSecModified *= DamagePerSecMultiplierForHuman; } else if (KFPawn_Monster(Other) != None) { DamagePerSecModified *= DamagePerSecMultiplierForMonster; } if (DamagePerSecModified > 0) { if ( WorldInfo.bSoftKillZ && (Other.Physics != PHYS_Walking) ) return; if ( (DamageType == None) || (DamageType == class'DamageType') ) `log("No valid damagetype ("$DamageType$") specified for "$PathName(self)); Other.TakeDamage(DamagePerSecModified*PainInterval, DamageInstigator, Location, vect(0,0,1), DamageType,, self); } else { Other.HealDamage(-DamagePerSecModified * PainInterval, DamageInstigator, DamageType); } } DefaultProperties { DamagePerSecMultiplierForHuman=1.0 DamagePerSecMultiplierForMonster=1.0 }