DamageSystem
Documents the DamageSystem class and its functions.
NOT DOCUMENTED
We currently don't have information on how these functions work. They are being documented here for visibility.
Invoking DamageSystem
To invoke the damage system, use the following Global function:
ds = Game.GetDamageSystem()
Sub-functions
ApplyStatusEffectByApplicationRate
ApplyStatusEffectByApplicationRate(hitEvent : ref:gameHitEvent, statType : gamedataStatType, effect : TweakDBID);
CacheLocalVars
CacheLocalVars(hitEvent : ref:gameHitEvent, cache : ref:CacheData);
CalculateDamageVariants
CalculateDamageVariants(hitEvent : ref:gameHitEvent);
CalculateGlobalModifiers
CalculateGlobalModifiers(hitEvent : ref:gameHitEvent, cache : ref:CacheData);
CalculateSourceModifiers
CalculateSourceModifiers(hitEvent : ref:gameHitEvent);
CalculateSourceVsTargetModifiers
CalculateSourceVsTargetModifiers(hitEvent : ref:gameHitEvent);
CalculateTargetModifiers
CalculateTargetModifiers(hitEvent : ref:gameHitEvent);
CanTriggerMeleeLeapFinisher
CanTriggerMeleeLeapFinisher(attackData : ref:AttackData, hitEvent : ref:gameHitEvent) : Bool;
CheckForQuickExit
CheckForQuickExit(hitEvent : ref:gameHitEvent, cache : ref:CacheData) : Bool;
CheckProjectionPipelineTargetConditions
CheckProjectionPipelineTargetConditions(hitEvent : ref:gameProjectedHitEvent) : Bool;
ClearPreviewTargetStruct
ClearPreviewTargetStruct();
ConvertDPSToHitDamage
ConvertDPSToHitDamage(hitEvent : ref:gameHitEvent);
ConvertHitDataToDamageInfo
ConvertHitDataToDamageInfo(hitEvent : ref:gameHitEvent) : array:DamageInfo;
DealDamages
DealDamages(hitEvent : ref:gameHitEvent);
DeathCheck
DeathCheck(hitEvent : ref:gameHitEvent);
FillInDamageBlackboard
FillInDamageBlackboard(hitEvent : ref:gameHitEvent);
GatherDebugData
GatherDebugData(hitEvent : ref:gameHitEvent, cache : ref:CacheData, out hitDebugData : ref:HitDebugData);
GatherServerData
GatherServerData(hitEvent : ref:gameHitEvent, cache : ref:CacheData, out serverHitData : ref:ServerHitData);
GetDamageModFromCurve
GetDamageModFromCurve(curve : CName, value : Float) : Float;
GetEffectiveRangeModifierForWeapon
GetEffectiveRangeModifierForWeapon(attackData : ref:AttackData, hitPosition : Vector4) : Float;
GetFinisherNameBasedOnWeapon
GetFinisherNameBasedOnWeapon(hitEvent : ref:gameHitEvent, hasFromFront : Bool, hasFromBack : Bool, out finisherName : CName) : Bool;
GetHitReactionZone
GetHitReactionZone(hitEvent : ref:gameProjectedHitEvent) : EHitReactionZone;
ImmortalityCheck
ImmortalityCheck(hitEvent : ref:gameHitEvent, cache : ref:CacheData);
InvulnerabilityCheck
InvulnerabilityCheck(hitEvent : ref:gameHitEvent, cache : ref:CacheData);
IsImmune
IsImmune(target : ref:GameObject, statusEffectID : TweakDBID) : Bool;
IsPowerLevelDifferentialAcceptable
IsPowerLevelDifferentialAcceptable(hitEvent : ref:gameHitEvent) : Bool;
IsTargetImmortal
IsTargetImmortal(cache : ref:CacheData) : Bool;
IsTargetInvulnerable
IsTargetInvulnerable(cache : ref:CacheData) : Bool;
ModifyHitData
ModifyHitData(hitEvent : ref:gameHitEvent);
ModifyHitFlagsForPlayer
ModifyHitFlagsForPlayer(hitEvent : ref:gameHitEvent, cache : ref:CacheData);
PlayFinisherGameEffect
PlayFinisherGameEffect(hitEvent : ref:gameHitEvent, hasFromFront : Bool, hasFromBack : Bool) : Bool;
PostProcess
PostProcess(hitEvent : ref:gameHitEvent);
PreProcess
PreProcess(hitEvent : ref:gameHitEvent, cache : ref:CacheData) : Bool;
Process
Process(hitEvent : ref:gameHitEvent, cache : ref:CacheData);
ProcessArmor
ProcessArmor(hitEvent : ref:gameHitEvent);
ProcessBlockAndDeflect
ProcessBlockAndDeflect(hitEvent : ref:gameHitEvent);
ProcessChargeAttack
ProcessChargeAttack(hitEvent : ref:gameHitEvent);
ProcessClientHit
ProcessClientHit(serverHitData : ref:ServerHitData);
ProcessClientKill
ProcessClientKill(serverKillData : ref:ServerKillData);
ProcessCriticalHit
ProcessCriticalHit(hitEvent : ref:gameHitEvent);
ProcessCrowdTarget
ProcessCrowdTarget(hitEvent : ref:gameHitEvent);
ProcessDamageReduction
ProcessDamageReduction(hitEvent : ref:gameHitEvent);
ProcessDeviceTarget
ProcessDeviceTarget(hitEvent : ref:gameHitEvent);
ProcessDodge
ProcessDodge(hitEvent : ref:gameHitEvent);
ProcessEffectiveRange
ProcessEffectiveRange(hitEvent : ref:gameHitEvent);
ProcessFinisher
ProcessFinisher(hitEvent : ref:gameHitEvent);
ProcessHitReaction
ProcessHitReaction(hitEvent : ref:gameHitEvent);
ProcessInstantKill
ProcessInstantKill(hitEvent : ref:gameHitEvent);
ProcessLevelDifference
ProcessLevelDifference(hitEvent : ref:gameHitEvent);
ProcessLocalizedDamage
ProcessLocalizedDamage(hitEvent : ref:gameHitEvent);
ProcessOneShotProtection
ProcessOneShotProtection(hitEvent : ref:gameHitEvent);
ProcessPipeline
ProcessPipeline(hitEvent : ref:gameHitEvent, cache : ref:CacheData);
ProcessPlayerIncomingDamageMultiplier
ProcessPlayerIncomingDamageMultiplier(hitEvent : ref:gameHitEvent);
ProcessProjectionPipeline
ProcessProjectionPipeline(hitEvent : ref:gameProjectedHitEvent, cache : ref:CacheData);
ProcessQuickHackModifiers
ProcessQuickHackModifiers(hitEvent : ref:gameHitEvent);
ProcessRagdollHit
ProcessRagdollHit(hitEvent : ref:gameHitEvent);
ProcessResistances
ProcessResistances(hitEvent : ref:gameHitEvent);
ProcessReturnedDamage
ProcessReturnedDamage(hitEvent : ref:gameHitEvent);
ProcessRicochetBonus
ProcessRicochetBonus(hitEvent : ref:gameHitEvent);
ProcessStatusEffectApplicationStats
ProcessStatusEffectApplicationStats(hitEvent : ref:gameHitEvent);
ProcessStatusEffects
ProcessStatusEffects(hitEvent : ref:gameHitEvent);
ProcessStealthAttack
ProcessStealthAttack(hitEvent : ref:gameHitEvent);
ProcessSyncStageCallbacks
ProcessSyncStageCallbacks(stage : gameDamagePipelineStage, hitEvent : ref:gameHitEvent, damagePipelineType : DMGPipelineType);
ProcessTurretAttack
ProcessTurretAttack(hitEvent : ref:gameHitEvent);
ProcessVehicleHit
ProcessVehicleHit(hitEvent : ref:gameHitEvent);
ProcessVehicleTarget
ProcessVehicleTarget(hitEvent : ref:gameHitEvent);
RegisterListener
RegisterListener(damageListener : ref:ScriptedDamageSystemListener, registereeID : EntityID, callbackType : gameDamageCallbackType, optional damagePipelineType : DMGPipelineType);
RegisterSyncListener
RegisterSyncListener(damageListener : ref:ScriptedDamageSystemListener, registereeID : EntityID, callbackType : gameDamageCallbackType, stage : gameDamagePipelineStage, optional damagePipelineType : DMGPipelineType);
ScalePlayerDamage
ScalePlayerDamage(hitEvent : ref:gameHitEvent);
SendDamageEvents
SendDamageEvents(hitEvent : ref:gameHitEvent, resourcesLost : array:SDamageDealt);
SetPreviewLock
SetPreviewLock(newState : Bool);
SetPreviewTargetStruct
SetPreviewTargetStruct(trackedTarget : wref:GameObject, bodyPart : EHitReactionZone);
SetTutorialFact
SetTutorialFact(factName : CName);
StartPipeline
StartPipeline(evt : ref:gameHitEvent);
StartProjectionPipeline
StartProjectionPipeline(evt : ref:gameProjectedHitEvent);
TutorialAddIllegalActionFact
TutorialAddIllegalActionFact(targetPuppet : ref:NPCPuppet);
UnregisterListener
UnregisterListener(damageListener : ref:ScriptedDamageSystemListener, registereeID : EntityID, callbackType : gameDamageCallbackType, optional damagePipelineType : DMGPipelineType);
UnregisterSyncListener
UnregisterSyncListener(damageListener : ref:ScriptedDamageSystemListener, registereeID : EntityID, callbackType : gameDamageCallbackType, stage : gameDamagePipelineStage, optional damagePipelineType : DMGPipelineType);