Arma Reforger Script API
|
Public Member Functions | |
override void | OnInit (IEntity owner) |
Called during EOnInit. | |
void | UpdateConsciousness () |
void | ForceUnconsciousness (float resilienceHealth=0) |
Force unconsciousness regardless of health. | |
void | OnLifeStateChanged (ECharacterLifeState previousLifeState, ECharacterLifeState newLifeState) |
void | InsertArmorData (notnull SCR_CharacterHitZone charHitZone, SCR_ArmoredClothItemData attributes) |
Insert armor data from clothing item prefab into map, create map if null. | |
void | RemoveArmorData (notnull SCR_CharacterHitZone charHitZone) |
Remove armor data from clothing item prefab from map, delete map if empty. | |
void | UpdateArmorDataMap (notnull SCR_ArmoredClothItemData armorAttr, bool remove) |
If !remove, take data from prefab and insert to map as class. If remove, remove this hitZone's stored data from map. | |
override GameMaterial | OverrideHitMaterial (HitZone struckHitzone) |
Not all armors are physical so the surface that gets struck by projectiles will not be the one the armor, but the hitzone. | |
SCR_ArmoredClothItemData | GetArmorData (notnull SCR_CharacterHitZone charHitZone) |
Get data from m_mClothItemDataMap. | |
float | GetArmorProtection (notnull SCR_CharacterHitZone charHitZone, EDamageType damageType) |
Get protection value of particular hitZone stored on m_mClothItemDataMap. | |
void | ArmorHitEventEffects (float damage) |
Function called from SCR_ArmorDamageManagerComponent in case player is shot in armor. Applies effects. | |
void | ArmorHitEventDamage (EDamageType type, float damage, IEntity instigator) |
Function called from SCR_ArmorDamageManagerComponent in case player is shot in armor. Applies damage. | |
override void | OnDamageEffectAdded (notnull SCR_DamageEffect dmgEffect) |
Called when a damage effect has been added. | |
override void | OnDamageEffectRemoved (notnull SCR_DamageEffect dmgEffect) |
Called when a damage effect has been removed. | |
override bool | HijackDamageHandling (notnull BaseDamageContext damageContext) |
Hijack collisiondamage in case it's applied to defaultHZ, since that means it's falldamage. | |
void | SoundHit (bool critical, EDamageType damageType) |
void | SoundKnockout () |
Tell m_CommunicationSound to stop character from screaming, otherwise ignore. | |
void | SoundDeath (int previousLifestate) |
Tell m_CommunicationSound that this character is now dead. | |
void | SoundHeal () |
void | RemoveAllBleedingParticlesAfterDeath () |
Clean up blood particle sources after death. | |
void | AddBloodToClothes (notnull SCR_CharacterHitZone hitZone, float immediateBloodEffect) |
override bool | CanBeHealed (bool ignoreHealingDOT=true) |
Return true if there is damage that can be repaired. | |
override void | FullHeal (bool ignoreHealingDOT=true) |
will fully heal the character | |
void | SetBloodHitZone (HitZone hitZone) |
SCR_CharacterBloodHitZone | GetBloodHitZone () |
float | GetResilienceRegenScale () |
void | SetBleedingScale (float rate, bool changed) |
float | GetBleedingScale () |
void | SetRegenScale (float rate, bool changed) |
float | GetRegenScale () |
bool | GetPermitUnconsciousness () |
Returns whether unconsciousness is permitted. Character prefab has highest authority, then gamemaster, then gamemode configuration. | |
void | SetPermitUnconsciousness (bool permit, bool changed) |
void | SetOverrideCharacterMedicalGMAttribute (bool permit) |
bool | GetOverrideCharacterMedicalGMAttribute () |
void | SetResilienceHitZone (HitZone hitZone) |
SCR_CharacterResilienceHitZone | GetResilienceHitZone () |
void | SetHeadHitZone (HitZone hitZone) |
HitZone | GetHeadHitZone () |
float | GetTourniquetStrengthMultiplier () |
void | AddBleedingEffectOnHitZone (notnull SCR_CharacterHitZone hitZone, int colliderDescriptorIndex=-1) |
Add bleeding effect to hitzone. | |
void | AddBleedingToArray (notnull HitZone hitZone) |
Register hitzone in array as bleeding. | |
void | RemoveBleedingFromArray (notnull HitZone hitZone) |
Unregister hitzone from array. | |
array< HitZone > | GetBleedingHitZones () |
void | CreateBleedingParticleEffect (notnull HitZone hitZone, int colliderDescriptorIndex) |
Called to start bleeding effect on a specificied bone. | |
void | RemoveAllBleedingParticles () |
Remove all bleeding particle effects from all bleeding hitZones. | |
void | RemoveBleedingParticleEffect (HitZone hitZone) |
Get particle effect on a specified hitZone. | |
void | RemoveAllBleedings () |
Stop all bleeding. | |
void | RemoveGroupBleeding (ECharacterHitZoneGroup charHZGroup) |
Terminate all bleeding effects on every hitZone of a group. | |
void | AddParticularBleeding (string hitZoneName="Chest", ECharacterDamageState intensityEnum=ECharacterDamageState.WOUNDED, float intensityFloat=-1) |
Add bleeding to a particular physical hitZone. | |
void | AddRandomBleeding () |
Add bleeding to a random physical hitZone. | |
ECharacterHitZoneGroup | FindAssociatedHitZoneGroup (EBandagingAnimationBodyParts bodyPartToBandage) |
EBandagingAnimationBodyParts | FindAssociatedBandagingBodyPart (ECharacterHitZoneGroup hitZoneGroup) |
void | GetHealingAnimHitzones (EBandagingAnimationBodyParts eBandagingAnimBodyParts, out notnull array< HitZone > GroupHitZones) |
float | GetGroupHealthScaled (ECharacterHitZoneGroup hitZoneGroup) |
override float | GetGroupDamageOverTime (ECharacterHitZoneGroup hitZoneGroup, EDamageType damageType) |
Get total damage over time of given hitzone group. | |
bool | GetGroupTourniquetted (ECharacterHitZoneGroup hitZoneGroup) |
void | SetTourniquettedGroup (ECharacterHitZoneGroup hitZoneGroup, bool setTourniquetted) |
bool | GetGroupIsBeingHealed (ECharacterHitZoneGroup hitZoneGroup) |
void | SetGroupIsBeingHealed (ECharacterHitZoneGroup hitZoneGroup, bool setIsBeingHealed) |
bool | GetGroupSalineBagged (ECharacterHitZoneGroup hitZoneGroup) |
void | SetSalineBaggedGroup (ECharacterHitZoneGroup hitZoneGroup, bool setSalineBagged) |
bool | IsBleeding () |
the official and globally used way of checking if bleeding tests for any PERSISTENT damage effects of EDamageType.BLEEDING. | |
HitZone | GetMostDOTHitZone (EDamageType damageType, bool includeVirtualHZs=false, array< EHitZoneGroup > allowedGroups=null) |
void | UpdateCharacterGroupDamage (ECharacterHitZoneGroup hitZoneGroup) |
ECharacterHitZoneGroup | GetCharMostDOTHitzoneGroup (EDamageType damageType, bool onlyExtremities=false, bool ignoreTQdHitZones=false, bool ignoreIfBeingTreated=false) |
Determine which hitZones group is taking highest DOT. | |
string | GetBoneName (ECharacterHitZoneGroup hzGroup) |
Get bone name for given hz group. | |
override void | OnPostInit (IEntity owner) |
Called after all components are initialized. | |
void | RegenPhysicalHitZones (bool skipRegenDelay=false) |
void | RegenVirtualHitZone (SCR_RegeneratingHitZone targetHitZone, float dps=-1, bool skipRegenDelay=false) |
override bool | FilterContact (IEntity owner, IEntity other, Contact contact) |
Filter out any contacts under a reasonable speed for damage. | |
void | HandleFallDamage (float damage) |
void | GetNearestHitZones (vector worldPosition, notnull inout array< HitZone > nearestHitZones, int hitZonesReturnAmount) |
Get nearest hitZones to the point of impact. | |
Public Member Functions inherited from SCR_ExtendedDamageManagerComponent | |
ScriptInvoker | GetOnDamageEffectAdded () |
ScriptInvoker | GetOnDamageEffectRemoved () |
override void | OnDamageEffectAdded (notnull SCR_DamageEffect dmgEffect) |
Called when a damage effect has been added. | |
override void | OnDamageEffectRemoved (notnull SCR_DamageEffect dmgEffect) |
Called when a damage effect has been removed. | |
array< ref PersistentDamageEffect > | GetAllPersistentEffectsOnHitZone (HitZone hitzone) |
array< ref PersistentDamageEffect > | FilterEffectsByHitZone (array< ref PersistentDamageEffect > damageEffects, HitZone hitzone) |
array< ref PersistentDamageEffect > | GetAllPersistentEffectsOfType (TypeName effectTypename) |
array< ref PersistentDamageEffect > | FilterEffectsByType (array< ref PersistentDamageEffect > damageEffects, TypeName effectTypename) |
Public Member Functions inherited from ExtendedDamageManagerComponent | |
proto external void | AddDamageEffect (notnull BaseDamageEffect damageEffect) |
Adds A CLONE of a DamageEffect to this DamageManager. | |
proto external bool | TerminateDamageEffect (notnull PersistentDamageEffect dmgEffect) |
If this persistent effect is contained on the damage manger, it will be removed. | |
proto external void | TerminateDamageEffectsOfType (TypeName typeName) |
Terminates all damage effects of the given type. | |
proto external DamageEffectEvaluator | GetEvaluator () |
Returns the DamageEffectEvaluator this ExtendedDamageManager is using. | |
proto external void | SetEvaluator (notnull DamageEffectEvaluator evaluator) |
Switches the DamageEffectEvaluator this ExtendedDamageManager is using. | |
proto external void | GetPersistentEffects (out notnull array< ref PersistentDamageEffect > persistentEffects) |
Clears passed array (persistentEffects) and fills it with all current PersistentEffects contained in the damage manager. | |
proto external bool | IsDamageEffectPresent (TypeName typeName) |
Returns true if a persistent effect of the type is currently present. | |
proto external SCR_PersistentDamageEffect | FindDamageEffectOfType (TypeName typeName) |
Finds a DamageEffect of the requested type contained on this ExtendedDamageManager. | |
proto external int | FindAllDamageEffectsOfType (TypeName typeName, out notnull array< ref SCR_PersistentDamageEffect > damageEffects) |
Fills damageEffects array with all the DamageEffects of the given type present on this manager. | |
proto external void | FindDamageEffectsOnHitZone (HitZone hitzone, out notnull array< ref BaseDamageEffect > damageEffects) |
Fills passed array with all current persistent DamageEffects affecting the chosen hitzone. | |
proto external SCR_PersistentDamageEffect | FindDamageEffectOnHitZone (TypeName typeName, HitZone hitzone) |
Finds a DamageEffect of the requested type contained on this ExtendedDamageManager, that is being applied to the HitZone. | |
proto external int | FindAllDamageEffectsOfTypeOnHitZone (TypeName typeName, HitZone hitzone, out notnull array< ref SCR_PersistentDamageEffect > damageEffects) |
Finds all the DamageEffects of the requested type contained on this ExtendedDamageManager, that is being applied to the requested HitZone. | |
proto external bool | IsDamageEffectPresentOnHitZones (TypeName typeName, notnull array< HitZone > hitZones) |
Returns true if a persistent effect of the type is currently present in any of the hitzones passed. | |
proto external void | GetDamageHistory (out notnull array< ref BaseDamageEffect > damageHistory) |
Clears passed array (damageHistory) and fills it with all DamageEffects stored in this damage managers damage history. | |
proto external void | ClearDamageHistory () |
Clears the DamageHistory, containing all the DamageEffects applied to this DamageManager. | |
void | OnDamageEffectAdded (notnull SCR_DamageEffect dmgEffect) |
Called when a damage effect has been added. | |
void | OnDamageEffectRemoved (notnull SCR_DamageEffect dmgEffect) |
Called when a damage effect has been removed. | |
Public Member Functions inherited from SCR_DamageManagerComponent | |
bool | IsRplReady () |
Check if replication loading is completed. Important for join in progress and when streaming entities in. | |
HitZone | GetHitZoneByName (string hitZoneName, bool caseSensitive=false) |
Get the HitZone that matches the provided name. | |
void | GetPhysicalHitZones (out notnull array< HitZone > physicalHitZones) |
Return hit zones with colliders assigned. | |
void | GetRegeneratingHitZones (out notnull array< SCR_RegeneratingHitZone > regeneratingHitZones) |
Return hit zones with passive regeneration enabled. | |
void | RpcDo_SetFireState (int hitZoneIndex, SCR_EBurningState fireState) |
Set fire rate of a flammable hitzone. | |
override bool | FilterContact (IEntity owner, IEntity other, Contact contact) |
No contacts for destroyed entities. | |
float | CalculateMomentum (Contact contact, float ownerMass, float otherMass) |
int | GetSurroundingHitzones (vector origin, Physics physics, float maxDistance, out array< HitZone > outHitzones) |
float | GetMinDestroyDamage (EDamageType damageType, array< HitZone > hitzones, int count) |
ScriptInvoker | GetOnDamage () |
ScriptInvoker | GetOnDamageOverTimeAdded () |
ScriptInvoker | GetOnDamageOverTimeRemoved () |
ScriptInvoker | GetOnDamageStateChanged () |
void | ~SCR_DamageManagerComponent () |
int | GetHitZonesOfGroup (EHitZoneGroup hitZoneGroup, out notnull array< HitZone > groupHitZones, bool clearArray=true) |
Get a list of all hitzones of specific hitzone group. | |
int | GetHitZonesOfGroups (notnull array< EHitZoneGroup > hitZoneGroups, out notnull array< HitZone > groupHitZones) |
Get a list of all hitzones of specific hitzone group. | |
float | GetGroupDamageOverTime (ECharacterHitZoneGroup hitZoneGroup, EDamageType damageType) |
Get total damage over time of given hitzone group. | |
void | Kill (notnull Instigator instigator) |
Neutralize the entity with a specific damage type, registering the killer entity. | |
void | DamageRandomHitZones (float damage, EDamageType type, notnull Instigator instigator, bool onlyPhysical=true, vector outMat[3]={}, bool damageDefault=false) |
Damage random physical hit zones up to damage amount. | |
bool | CanBeHealed (bool ignoreHealingDOT=true) |
Return true if there is damage that can be repaired. | |
void | FullHeal (bool ignoreHealingDOT=true) |
Fix all the damage. | |
float | HealHitZones (float healthToDistribute, bool sequential=false, float maxHealThresholdScaled=1, array< HitZone > alternativeHitZones=null) |
Partially heal the hitZones of an entity. | |
void | ReduceSmoke () |
Reduce smoke output based on the total health of hit zones. | |
float | GetHitZonesDamage (float untilThresholdScaled=1, array< HitZone > alternativeHitZones=null) |
Get all damage dealt to hitzones. | |
float | GetHitZonesHealthScaled (array< HitZone > alternativeHitZones=null) |
Get Health scaled of all hitzones. | |
float | GetSingleHitZonesHealthScaled (array< HitZone > alternativeHitZones=null, bool getLowestHealth=true) |
Get single Health scaled from hitzones. | |
ResourceName | GetSecondaryExplosion (float value, SCR_ESecondaryExplosionType explosionType, EResourceType resourceType=EResourceType.SUPPLIES, bool fire=false) |
Determine secondary explosion prefab based on explosion value, type and resource type if defined. | |
SCR_SecondaryExplosion | GetSecondaryExplosionForScale (SCR_ESecondaryExplosionScale scale, SCR_ESecondaryExplosionType explosionType, EResourceType resourceType=EResourceType.SUPPLIES) |
Determine secondary explosion prefab based on explosion scale, type and resource type if defined. | |
SCR_ESecondaryExplosionScale | GetSecondaryExplosionScale (float value, SCR_ESecondaryExplosionType explosionType, EResourceType resourceType=EResourceType.SUPPLIES) |
Determine secondary explosion prefab based on explosion value, type and resource type if defined. | |
ResourceName | GetSecondaryFireParticle (float value, SCR_ESecondaryExplosionType explosionType, EResourceType resourceType=EResourceType.SUPPLIES) |
Determine secondary explosion prefab based on explosion value, type and resource type if defined. | |
bool | IsOnFire (HitZone hitZone=null) |
Determine if provided or any hit zone from this damage manager is on fire. | |
bool | IsOnFire (notnull array< HitZone > hitZones) |
Determine if any hit zone from this damage manager is on fire. | |
void | SecondaryExplosion (ResourceName prefabName, notnull Instigator instigator, notnull EntitySpawnParams spawnParams) |
Spawn secondary explosion. | |
SCR_ResourceEncapsulator | GetResourceEncapsulator (EResourceType suppliesType=EResourceType.SUPPLIES) |
void | SupplySecondaryExplosion (notnull Instigator instigator) |
Spawn supply secondary explosion when vehicle becomes destroyed. | |
vector | GetSecondaryExplosionPosition (TypeName hitZoneType, out float totalWeight=0) |
Get weighed average position of explosion for hitzones of specified type. | |
void | FuelSecondaryExplosion (notnull Instigator instigator) |
Spawn fuel secondary explosion when vehicle becomes destroyed. | |
void | UpdateFireDamage (float timeSlice) |
void | UpdateFireParticles (vector position, out ParticleEffectEntity particles, SCR_ESecondaryExplosionScale state, SCR_ESecondaryExplosionType fireType, EResourceType resourceType=EResourceType.SUPPLIES) |
Update visual effects and store result in particles variable. | |
override void | OnDamageOverTimeAdded (EDamageType dType, float dps, HitZone hz) |
Invoked every time the DoT is added to certain hitzone. | |
override void | OnDamageOverTimeRemoved (EDamageType dType, HitZone hz) |
Invoked when provided damage type is removed from certain hitzone. | |
override bool | HijackDamageHandling (notnull BaseDamageContext damageContext) |
Public Member Functions inherited from DamageManagerComponent | |
proto external int | ComputeStruckHitZones (out notnull array< HitZone > struckHitZones, notnull BaseDamageContext damageContext) |
Clears and fills struckHitZones array with all HZs that should get damaged by this BaseDamageContext. | |
proto external void | EnableDamageHandling (bool enable) |
proto external bool | IsDamageHandlingEnabled () |
proto external float | GetMovementDamage () |
proto external float | GetAimingDamage () |
proto external void | SetMovementDamage (float damage) |
proto external void | SetAimingDamage (float damage) |
proto external float | GetHealthScaled () |
proto external bool | SetHealthScaled (float health) |
proto external float | GetHealth () |
proto external float | GetMaxHealth () |
proto external EDamageState | GetState () |
proto external bool | IsDestroyed () |
proto external void | SetInstigatorEntity (IEntity instigator) |
proto external void | SetInstigator (notnull Instigator instigator) |
proto external notnull Instigator | GetInstigator () |
proto external int | GetAttachedColliderIDs (out notnull array< int > outAttachedColliderIDs) |
Fills colliderIDs with all the colliders attached to hitzones this dmg manager owns. | |
proto external void | HandleDamage (notnull BaseDamageContext damageContext) |
proto external bool | IsDamagedOverTime (EDamageType dType) |
proto external float | GetDamageOverTime (EDamageType dType) |
proto external void | RemoveDamageOverTime (EDamageType dType) |
Removes DOT of provided damageType from all currently affected HitZones. | |
bool | ShouldOverrideInstigator (notnull Instigator currentInstigator, notnull Instigator newInstigator) |
Called whenever an instigator is going to be set. | |
GameMaterial | OverrideHitMaterial (HitZone struckHitzone) |
Not all armors are physical so the surface that gets struck by projectiles will not be the one the armor, but the hitzone. | |
bool | FilterContact (IEntity owner, IEntity other, Contact contact) |
Event when physics engine registered contact with other RigidBody. | |
bool | HijackDamageHandling (notnull BaseDamageContext damageContext) |
Called when this DamageManager is about to handle damage. | |
bool | ShouldCountAsHit (notnull BaseDamageContext damageContext) |
Called after HijackDamageHandling. | |
Public Member Functions inherited from HitZoneContainerComponent | |
proto external IEntity | GetOwner () |
proto external HitZone | GetDefaultHitZone () |
proto external HitZone | GetHitZoneByColliderID (int colliderID) |
proto external int | GetHitZonesByColliderIDs (out notnull array< HitZone > outHitZones, notnull array< int > colliderIDs) |
Clears and fills the specified outHitZones array with all HZs that are attached to colliderIDs. | |
proto external HitZone | GetHitZone (string colliderName) |
proto external int | GetAllHitZones (out notnull array< HitZone > outHitZones) |
Clears and fills the specified outHitZones array with all HZs in this entity Returns the count of elements that were filled into the array. | |
proto external int | GetAllHitZonesInHierarchy (out notnull array< HitZone > outHitZones) |
Clears and fills the specified outHitZones array with all HZs in this entity and its children. | |
proto external HitZoneContainerComponent | GetParentHitZoneContainer () |
Public Member Functions inherited from GameComponent | |
bool | OnTicksOnRemoteProxy () |
Static Public Member Functions | |
static void | GetAllLimbs (notnull out array< ECharacterHitZoneGroup > limbs) |
static void | GetAllExtremities (notnull out array< ECharacterHitZoneGroup > limbs) |
Static Public Member Functions inherited from SCR_DamageManagerComponent | |
static SCR_DamageManagerComponent | GetDamageManager (notnull IEntity owner) |
Get damage manager from given owner. | |
Static Public Attributes | |
static const int | BLOOD_CLOTHES_UPDATE_PERIOD = 1000 |
const float | DEATH_BLEEDOUT_SCALE = 4 |
static ref array< ECharacterHitZoneGroup > | LIMB_GROUPS |
static const ref array< ECharacterHitZoneGroup > | EXTREMITY_LIMB_GROUPS = {ECharacterHitZoneGroup.LEFTARM, ECharacterHitZoneGroup.RIGHTARM, ECharacterHitZoneGroup.LEFTLEG, ECharacterHitZoneGroup.RIGHTLEG} |
static SCR_GameModeHealthSettings | s_HealthSettings |
Static Public Attributes inherited from SCR_DamageManagerComponent | |
static const int | MAX_DESTRUCTION_RESPONSE_INDEX = 10 |
static const string | MAX_DESTRUCTION_RESPONSE_INDEX_NAME = "HugeDestructible" |
static const ref array< EDamageType > | HEALING_DAMAGE_TYPES = {EDamageType.HEALING, EDamageType.REGENERATION} |
Protected Member Functions | |
bool | ShouldBeUnconscious () |
Check whether character health state meets requirements for consciousness. | |
void | TryClearDamageHistory () |
bool | IsIndefinitelyUnconscious (bool onlyPlayers=true) |
Returns whether this character will remain unconscious with no chance to wake up without intervention. | |
void | SetExactMinImpulse (IEntity owner) |
void | OnWaterEnter () |
override void | OnFilteredContact (IEntity owner, IEntity other, Contact contact) |
Calculate damage from collision event based on contact data. | |
void | CalculateCollisionDamage (IEntity owner, IEntity other, vector collisionPosition, bool instantUnconsciousness=true) |
void | ApplyCollisionDamage (IEntity other, vector collisionPosition, float damageValue) |
override bool | ShouldOverrideInstigator (notnull Instigator currentInstigator, notnull Instigator newInstigator) |
Called whenever an instigator is going to be set. | |
override void | OnDamageStateChanged (EDamageState state) |
Invoked when damage state changes. | |
override void | OnDamage (notnull BaseDamageContext damageContext) |
Protected Member Functions inherited from SCR_DamageManagerComponent | |
override bool | OnRplSave (ScriptBitWriter writer) |
override bool | OnRplLoad (ScriptBitReader reader) |
notnull SCR_DamageManagerData | GetScriptedDamageManagerData () |
override void | OnDamage (notnull BaseDamageContext damageContext) |
override bool | ShouldOverrideInstigator (notnull Instigator currentInstigator, notnull Instigator newInstigator) |
Called whenever an instigator is going to be set. | |
float | HealHitZonesInSequence (float healthToDistribute, float maxHealThresholdScaled, array< HitZone > targetHitZones) |
float | HealHitZonesInParallel (float healthToDistribute, float maxHealThresholdScaled, array< HitZone > targetHitZones) |
void | ConnectToFireDamageSystem () |
void | DisconnectFromFireDamageSystem () |
override void | OnDamageStateChanged (EDamageState state) |
Invoked when damage state changes. | |
override void | _WB_AfterWorldUpdate (IEntity owner, float timeSlice) |
Protected Member Functions inherited from DamageManagerComponent | |
void | OnDamageOverTimeAdded (EDamageType dType, float dps, HitZone hz) |
Invoked every time the DoT is added to certain hitzone. | |
void | OnDamageOverTimeRemoved (EDamageType dType, HitZone hz) |
Invoked when provided damage type is removed from certain hitzone. | |
void | OnDamageStateChanged (EDamageState state) |
Called when the damagestate changes. | |
void | OnPostInit (IEntity owner) |
Called after all components are initialized. | |
void | OnInit (IEntity owner) |
Called during EOnInit. | |
void | OnDelete (IEntity owner) |
void | OnFrame (IEntity owner, float timeSlice) |
Called during EOnFrame. | |
void | OnFilteredContact (IEntity owner, IEntity other, Contact contact) |
Only called if FilterContact returned true. | |
void | OnDiag (IEntity owner, float timeSlice) |
Called during EOnDiag. | |
void | OnDamage (notnull BaseDamageContext damageContext) |
bool | OnRplSave (ScriptBitWriter writer) |
bool | OnRplLoad (ScriptBitReader reader) |
Additional Inherited Members | |
Static Protected Attributes inherited from SCR_DamageManagerComponent | |
static const int | MIN_MOMENTUM_RESPONSE_INDEX = 1 |
static const int | MAX_MOMENTUM_RESPONSE_INDEX = 5 |
static const int | MIN_DESTRUCTION_RESPONSE_INDEX = 6 |
const float | SIMULATION_IMPRECISION_MULTIPLIER = 1.1 |
static ref array< ref SCR_DamageManagerData > | s_aDamageManagerData = {} |
void SCR_CharacterDamageManagerComponent.AddBleedingEffectOnHitZone | ( | notnull SCR_CharacterHitZone | hitZone, |
int | colliderDescriptorIndex = -1 |
||
) |
Add bleeding effect to hitzone.
hitZone | Hitzone to get bleeding rate from and add effect to |
colliderDescriptorIndex | Collider descriptor index |
void SCR_CharacterDamageManagerComponent.AddBleedingToArray | ( | notnull HitZone | hitZone | ) |
Register hitzone in array as bleeding.
void SCR_CharacterDamageManagerComponent.AddBloodToClothes | ( | notnull SCR_CharacterHitZone | hitZone, |
float | immediateBloodEffect | ||
) |
[in] | hitZone | Hitzone used to get bleeding areas to visualize |
[in] | immediateBloodEffect | Intensity of effect. Intensity will be rounded to nearest round number. Must be => 1 |
void SCR_CharacterDamageManagerComponent.AddParticularBleeding | ( | string | hitZoneName = "Chest" , |
ECharacterDamageState | intensityEnum = ECharacterDamageState::WOUNDED , |
||
float | intensityFloat = -1 |
||
) |
Add bleeding to a particular physical hitZone.
void SCR_CharacterDamageManagerComponent.AddRandomBleeding | ( | ) |
Add bleeding to a random physical hitZone.
|
protected |
void SCR_CharacterDamageManagerComponent.ArmorHitEventDamage | ( | EDamageType | type, |
float | damage, | ||
IEntity | instigator | ||
) |
Function called from SCR_ArmorDamageManagerComponent in case player is shot in armor. Applies damage.
void SCR_CharacterDamageManagerComponent.ArmorHitEventEffects | ( | float | damage | ) |
Function called from SCR_ArmorDamageManagerComponent in case player is shot in armor. Applies effects.
|
protected |
override bool SCR_CharacterDamageManagerComponent.CanBeHealed | ( | bool | ignoreHealingDOT = true | ) |
Return true if there is damage that can be repaired.
[in] | ignoreHealingDOT | If this is false the method will return that the entity can be healed also if the damageType is positive, such as HEALING |
Implements SCR_DamageManagerComponent.
void SCR_CharacterDamageManagerComponent.CreateBleedingParticleEffect | ( | notnull HitZone | hitZone, |
int | colliderDescriptorIndex | ||
) |
Called to start bleeding effect on a specificied bone.
override bool SCR_CharacterDamageManagerComponent.FilterContact | ( | IEntity | owner, |
IEntity | other, | ||
Contact | contact | ||
) |
Filter out any contacts under a reasonable speed for damage.
Implements SCR_DamageManagerComponent.
EBandagingAnimationBodyParts SCR_CharacterDamageManagerComponent.FindAssociatedBandagingBodyPart | ( | ECharacterHitZoneGroup | hitZoneGroup | ) |
ECharacterHitZoneGroup SCR_CharacterDamageManagerComponent.FindAssociatedHitZoneGroup | ( | EBandagingAnimationBodyParts | bodyPartToBandage | ) |
void SCR_CharacterDamageManagerComponent.ForceUnconsciousness | ( | float | resilienceHealth = 0 | ) |
Force unconsciousness regardless of health.
resilienceHealth | Desired healthScaled of resilienceHZ. Must be below unconscious-threshold to work |
override void SCR_CharacterDamageManagerComponent.FullHeal | ( | bool | ignoreHealingDOT = true | ) |
will fully heal the character
ignoreHealingDOT | Enabling this bool will remove all persistent damage effects, including the ones spawned by healthItems. Otherwise just bleeding is removed and regeneration effects are retained |
Implements SCR_DamageManagerComponent.
|
static |
|
static |
SCR_ArmoredClothItemData SCR_CharacterDamageManagerComponent.GetArmorData | ( | notnull SCR_CharacterHitZone | charHitZone | ) |
Get data from m_mClothItemDataMap.
float SCR_CharacterDamageManagerComponent.GetArmorProtection | ( | notnull SCR_CharacterHitZone | charHitZone, |
EDamageType | damageType | ||
) |
Get protection value of particular hitZone stored on m_mClothItemDataMap.
array< HitZone > SCR_CharacterDamageManagerComponent.GetBleedingHitZones | ( | ) |
float SCR_CharacterDamageManagerComponent.GetBleedingScale | ( | ) |
SCR_CharacterBloodHitZone SCR_CharacterDamageManagerComponent.GetBloodHitZone | ( | ) |
string SCR_CharacterDamageManagerComponent.GetBoneName | ( | ECharacterHitZoneGroup | hzGroup | ) |
Get bone name for given hz group.
ECharacterHitZoneGroup SCR_CharacterDamageManagerComponent.GetCharMostDOTHitzoneGroup | ( | EDamageType | damageType, |
bool | onlyExtremities = false , |
||
bool | ignoreTQdHitZones = false , |
||
bool | ignoreIfBeingTreated = false |
||
) |
Determine which hitZones group is taking highest DOT.
damageTypes | Which damagetype will be checked on the hitZones for highest damage amount |
onlyExtremities | Only compare the 4 extremities (both arms, both legs) |
ignoreTQdHitZones | Ignore tourniquetted limbs when looking for the one most bleeding one |
override float SCR_CharacterDamageManagerComponent.GetGroupDamageOverTime | ( | ECharacterHitZoneGroup | hitZoneGroup, |
EDamageType | damageType | ||
) |
Get total damage over time of given hitzone group.
hitZoneGroup | Hitzone group to get damage over time from |
damageType | Damage type to get damage over time from |
Implements SCR_DamageManagerComponent.
float SCR_CharacterDamageManagerComponent.GetGroupHealthScaled | ( | ECharacterHitZoneGroup | hitZoneGroup | ) |
bool SCR_CharacterDamageManagerComponent.GetGroupIsBeingHealed | ( | ECharacterHitZoneGroup | hitZoneGroup | ) |
bool SCR_CharacterDamageManagerComponent.GetGroupSalineBagged | ( | ECharacterHitZoneGroup | hitZoneGroup | ) |
bool SCR_CharacterDamageManagerComponent.GetGroupTourniquetted | ( | ECharacterHitZoneGroup | hitZoneGroup | ) |
HitZone SCR_CharacterDamageManagerComponent.GetHeadHitZone | ( | ) |
void SCR_CharacterDamageManagerComponent.GetHealingAnimHitzones | ( | EBandagingAnimationBodyParts | eBandagingAnimBodyParts, |
out notnull array< HitZone > | GroupHitZones | ||
) |
HitZone SCR_CharacterDamageManagerComponent.GetMostDOTHitZone | ( | EDamageType | damageType, |
bool | includeVirtualHZs = false , |
||
array< EHitZoneGroup > | allowedGroups = null |
||
) |
void SCR_CharacterDamageManagerComponent.GetNearestHitZones | ( | vector | worldPosition, |
notnull inout array< HitZone > | nearestHitZones, | ||
int | hitZonesReturnAmount | ||
) |
Get nearest hitZones to the point of impact.
worldPosition | Position of the point of impact | |
[in,out] | nearestHitZones | Array of hitZones which colliders' positions will be compared with worldPosition. Returns the nearest hitZones to worldPosition in descending order of distance |
hitZonesReturnAmount | Amount of hitZones that are returned in nearestHitZones. IF all are wanted, set nearestHitZones.Count(). |
bool SCR_CharacterDamageManagerComponent.GetOverrideCharacterMedicalGMAttribute | ( | ) |
bool SCR_CharacterDamageManagerComponent.GetPermitUnconsciousness | ( | ) |
Returns whether unconsciousness is permitted. Character prefab has highest authority, then gamemaster, then gamemode configuration.
float SCR_CharacterDamageManagerComponent.GetRegenScale | ( | ) |
SCR_CharacterResilienceHitZone SCR_CharacterDamageManagerComponent.GetResilienceHitZone | ( | ) |
float SCR_CharacterDamageManagerComponent.GetResilienceRegenScale | ( | ) |
float SCR_CharacterDamageManagerComponent.GetTourniquetStrengthMultiplier | ( | ) |
void SCR_CharacterDamageManagerComponent.HandleFallDamage | ( | float | damage | ) |
override bool SCR_CharacterDamageManagerComponent.HijackDamageHandling | ( | notnull BaseDamageContext | damageContext | ) |
Hijack collisiondamage in case it's applied to defaultHZ, since that means it's falldamage.
Implements SCR_DamageManagerComponent.
void SCR_CharacterDamageManagerComponent.InsertArmorData | ( | notnull SCR_CharacterHitZone | charHitZone, |
SCR_ArmoredClothItemData | attributes | ||
) |
Insert armor data from clothing item prefab into map, create map if null.
bool SCR_CharacterDamageManagerComponent.IsBleeding | ( | ) |
the official and globally used way of checking if bleeding tests for any PERSISTENT damage effects of EDamageType.BLEEDING.
|
protected |
Returns whether this character will remain unconscious with no chance to wake up without intervention.
|
protected |
Implements SCR_DamageManagerComponent.
override void SCR_CharacterDamageManagerComponent.OnDamageEffectAdded | ( | notnull SCR_DamageEffect | dmgEffect | ) |
Called when a damage effect has been added.
BaseDamageEffect | SCR_DamageEffect: The DamageEffect that got added |
Implements SCR_ExtendedDamageManagerComponent.
override void SCR_CharacterDamageManagerComponent.OnDamageEffectRemoved | ( | notnull SCR_DamageEffect | dmgEffect | ) |
Called when a damage effect has been removed.
BaseDamageEffect | SCR_DamageEffect: The DamageEffect that got removed |
Implements SCR_ExtendedDamageManagerComponent.
|
protected |
Invoked when damage state changes.
Implements SCR_DamageManagerComponent.
|
protected |
Calculate damage from collision event based on contact data.
owner | Owner is entity that is parent of this damageManager |
other | Other is the entity that collided with the owner |
contact | Contact data class should contain all collisiondata needed to compute damage |
Implements DamageManagerComponent.
override void SCR_CharacterDamageManagerComponent.OnInit | ( | IEntity | owner | ) |
Called during EOnInit.
owner | Entity this component is attached to. |
Implements DamageManagerComponent.
void SCR_CharacterDamageManagerComponent.OnLifeStateChanged | ( | ECharacterLifeState | previousLifeState, |
ECharacterLifeState | newLifeState | ||
) |
override void SCR_CharacterDamageManagerComponent.OnPostInit | ( | IEntity | owner | ) |
Called after all components are initialized.
owner | Entity this component is attached to. |
Implements DamageManagerComponent.
|
protected |
override GameMaterial SCR_CharacterDamageManagerComponent.OverrideHitMaterial | ( | HitZone | struckHitzone | ) |
Not all armors are physical so the surface that gets struck by projectiles will not be the one the armor, but the hitzone.
This is a workaround to solve that issue. It gets called every time a projectile strikes a hitzone We can override material of the hit with the corresponding one from the armor (if needed)
Implements DamageManagerComponent.
void SCR_CharacterDamageManagerComponent.RegenPhysicalHitZones | ( | bool | skipRegenDelay = false | ) |
void SCR_CharacterDamageManagerComponent.RegenVirtualHitZone | ( | SCR_RegeneratingHitZone | targetHitZone, |
float | dps = -1 , |
||
bool | skipRegenDelay = false |
||
) |
void SCR_CharacterDamageManagerComponent.RemoveAllBleedingParticles | ( | ) |
Remove all bleeding particle effects from all bleeding hitZones.
void SCR_CharacterDamageManagerComponent.RemoveAllBleedingParticlesAfterDeath | ( | ) |
Clean up blood particle sources after death.
void SCR_CharacterDamageManagerComponent.RemoveAllBleedings | ( | ) |
Stop all bleeding.
void SCR_CharacterDamageManagerComponent.RemoveArmorData | ( | notnull SCR_CharacterHitZone | charHitZone | ) |
Remove armor data from clothing item prefab from map, delete map if empty.
void SCR_CharacterDamageManagerComponent.RemoveBleedingFromArray | ( | notnull HitZone | hitZone | ) |
Unregister hitzone from array.
void SCR_CharacterDamageManagerComponent.RemoveBleedingParticleEffect | ( | HitZone | hitZone | ) |
Get particle effect on a specified hitZone.
hitZone | Bleeding HitZone to get particle effect for |
void SCR_CharacterDamageManagerComponent.RemoveGroupBleeding | ( | ECharacterHitZoneGroup | charHZGroup | ) |
Terminate all bleeding effects on every hitZone of a group.
void SCR_CharacterDamageManagerComponent.SetBleedingScale | ( | float | rate, |
bool | changed | ||
) |
void SCR_CharacterDamageManagerComponent.SetBloodHitZone | ( | HitZone | hitZone | ) |
|
protected |
void SCR_CharacterDamageManagerComponent.SetGroupIsBeingHealed | ( | ECharacterHitZoneGroup | hitZoneGroup, |
bool | setIsBeingHealed | ||
) |
void SCR_CharacterDamageManagerComponent.SetHeadHitZone | ( | HitZone | hitZone | ) |
void SCR_CharacterDamageManagerComponent.SetOverrideCharacterMedicalGMAttribute | ( | bool | permit | ) |
void SCR_CharacterDamageManagerComponent.SetPermitUnconsciousness | ( | bool | permit, |
bool | changed | ||
) |
void SCR_CharacterDamageManagerComponent.SetRegenScale | ( | float | rate, |
bool | changed | ||
) |
void SCR_CharacterDamageManagerComponent.SetResilienceHitZone | ( | HitZone | hitZone | ) |
void SCR_CharacterDamageManagerComponent.SetSalineBaggedGroup | ( | ECharacterHitZoneGroup | hitZoneGroup, |
bool | setSalineBagged | ||
) |
[in] | hitZoneGroup | |
[in] | setSalineBagged |
void SCR_CharacterDamageManagerComponent.SetTourniquettedGroup | ( | ECharacterHitZoneGroup | hitZoneGroup, |
bool | setTourniquetted | ||
) |
|
protected |
Check whether character health state meets requirements for consciousness.
|
protected |
Called whenever an instigator is going to be set.
Implements SCR_DamageManagerComponent.
void SCR_CharacterDamageManagerComponent.SoundDeath | ( | int | previousLifestate | ) |
Tell m_CommunicationSound that this character is now dead.
void SCR_CharacterDamageManagerComponent.SoundHeal | ( | ) |
void SCR_CharacterDamageManagerComponent.SoundHit | ( | bool | critical, |
EDamageType | damageType | ||
) |
void SCR_CharacterDamageManagerComponent.SoundKnockout | ( | ) |
Tell m_CommunicationSound to stop character from screaming, otherwise ignore.
|
protected |
void SCR_CharacterDamageManagerComponent.UpdateArmorDataMap | ( | notnull SCR_ArmoredClothItemData | armorAttr, |
bool | remove | ||
) |
If !remove, take data from prefab and insert to map as class. If remove, remove this hitZone's stored data from map.
void SCR_CharacterDamageManagerComponent.UpdateCharacterGroupDamage | ( | ECharacterHitZoneGroup | hitZoneGroup | ) |
void SCR_CharacterDamageManagerComponent.UpdateConsciousness | ( | ) |
|
static |
|
static |
|
static |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |