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);

Last updated