Arma Reforger Script API
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
SCR_DestructionMultiPhaseComponent Interface Reference

Multi-Phase destruction component, for objects that go through several destruction states. More...

Inheritance diagram for SCR_DestructionMultiPhaseComponent:
[legend]

Public Member Functions

SCR_DamagePhaseData GetDamagePhaseData (int damagePhase)
 Returns the input damage phase data (null = initial)
 
override bool GetDisablePhysicsOnDestroy ()
 Returns whether the object should disable physics on destruction (before being deleted or changed)
 
bool GetIsInInitialDamagePhase ()
 Returns if the object is in the initial damage phase.
 
int GetDamagePhase ()
 Returns which damage phase the object is currently in (0 = initial)
 
int GetNumDamagePhases ()
 Returns the amount of damage phases (including initial)
 
int CalculateDamagePhase (int damagePhase, float health, float damage)
 Returns the target damage stage for the input current health, current phase and damage.
 
float GetDestructibleSize ()
 
void GoToDamagePhase (int damagePhase, bool delayMeshChange)
 Switches to the input damage phase (or deletes if past last phase)
 
void ApplyDamagePhaseData (SCR_DamagePhaseData damagePhaseData, bool delayMeshChange)
 
override void PlaySound ()
 Plays sounds upon destruction.
 
override bool GetCanBeDamaged ()
 Called when the object receives damage, return false if damage should be ignored.
 
override void SpawnDestroyObjects (SCR_HitInfo hitInfo)
 Spawns objects that are meant to be created when the object is destroyed (particles, debris, etc)
 
override void QueueDestroy ()
 Called when the object should be destroyed and various effects or other things need to be performed (actual destruction handled HandleDestruction())
 
override void HandleDestruction ()
 Handle destruction.
 
override void UpdateResponseIndex ()
 
override void ReplicateDestructibleState (bool forceUpdate=false)
 
override void OnPostInit (IEntity owner)
 Called after all components are initialized.
 
- Public Member Functions inherited from SCR_DestructionDamageManagerComponent
ScriptInvoker GetOnDamageInvoker ()
 Returns the on damage script invoker if one exists, otherwise creates one and returns it.
 
SCR_DestructionHitInfo GetDestructionHitInfo (bool createNew=false)
 
bool ShouldDestroyParent ()
 
bool GetDisablePhysicsOnDestroy ()
 
bool GetUndamaged ()
 
bool GetDestroyed ()
 
void RPC_DoSpawnAllDestroyEffects ()
 Spawns destroy objects of children as well as own.
 
void DeleteParentWithEffects ()
 
void DeleteDestructible ()
 Used in cases where we don't care about effects or anything, e. g. building destruction.
 
void SetHitZoneHealth (float baseHealth, bool clearDamage=true)
 Sets the base health value of the hit zone (does not trigger destruction)
 
void SetHitZoneDamage (float damage)
 Sets damage of the hit zone (does not trigger destruction)
 
void CreateDestructionHitInfo (bool totalDestruction, float lastHealth, float hitDamage, EDamageType damageType, vector hitPosition, vector hitDirection, vector hitNormal)
 Creates and fills destruction hit info for the object.
 
bool GetCanBeDamaged ()
 Called when the object receives damage, return false if damage should be ignored.
 
void QueueDestroy ()
 Called when the object should be destroyed and various effects or other things need to be performed (actual destruction handled HandleDestruction())
 
void SpawnDestroyObjects (SCR_HitInfo hitInfo)
 Spawns objects that are meant to be created when the object is destroyed (particles, debris, etc)
 
void RegenerateNavmeshDelayed ()
 
void HandleDestruction ()
 Handle destruction.
 
void InitDestruction ()
 Initialise destruction.
 
void NetReceiveHitData (int hitIndex, EDamageType damageType, float damage, vector hitPosition, vector hitDirection)
 Receive encoded hit data from server.
 
void NetReadInit (ScriptBitReader reader)
 Called when Item is initialized from replication stream.
 
void NetWriteInit (ScriptBitWriter writer)
 Called when Item is getting replicated from Master to Slave connection.
 
void PlaySound ()
 Plays sounds upon destruction.
 
void SetModel (ResourceName model)
 Sets the model of the object.
 
void ReplicateDestructibleState (bool forceUpdate=false)
 
bool IsProxy ()
 Checks if this entity is locally owned.
 
void UpdateResponseIndex ()
 
override bool FilterContact (IEntity owner, IEntity other, Contact contact)
 No contacts for chimeraCharacters.
 
override void OnFilteredContact (IEntity owner, IEntity other, Contact contact)
 Only called if FilterContact returned true.
 
override void OnDamage (notnull BaseDamageContext damageContext)
 
bool IsDestructionQueued ()
 
float GetTotalDestructionThreshold ()
 
override void OnPostInit (IEntity owner)
 Called after all components are initialized.
 
void ~SCR_DestructionDamageManagerComponent ()
 
- 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 Attributes

static const string DAMAGE_PHASE_SIGNAL_NAME = "DamagePhase"
 
- 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< EDamageTypeHEALING_DAMAGE_TYPES = {EDamageType.HEALING, EDamageType.REGENERATION}
 
static const float KM_PER_H_TO_M_PER_S = 0.277777
 

Protected Member Functions

notnull SCR_DestructionMultiPhaseData GetDestructionMultiPhaseData ()
 
void SetDamagePhaseSignal ()
 
void SetOriginalResourceName (ResourceName originalResourceName)
 
ResourceName GetOriginalResourceName ()
 
int GetTargetDamagePhase ()
 
void SetTargetDamagePhase (int targetDamagePhase)
 
void SetDamagePhase (int damagePhase)
 
void RPC_ReplicateMultiPhaseDestructionState (int phase)
 
override bool OnRplSave (ScriptBitWriter writer)
 
override bool OnRplLoad (ScriptBitReader reader)
 
- Protected Member Functions inherited from SCR_DestructionDamageManagerComponent
notnull SCR_DestructionBaseData GetDestructionBaseData ()
 
RplComponent FindParentRplComponent ()
 
void PassDamageToChildren (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)
 

Protected Attributes

int m_iOriginalHealth
 
- Protected Attributes inherited from SCR_DamageManagerComponent
int m_iTimetickInstigator = System.GetTickCount()
 
int m_iTimeThresholdInstigatorReplacement = 180000
 
int m_iPlayerId = 0
 
int m_iDamageManagerDataIndex = -1
 
bool m_bRplReady
 

Additional Inherited Members

- Static Public Member Functions inherited from SCR_DestructionDamageManagerComponent
static ScriptInvoker GetOnDestructibleDestroyedInvoker ()
 
static bool GetReadingInit (bool readingInit)
 
static void SetReadingInit (bool readingInit)
 
- Static Public Member Functions inherited from SCR_DamageManagerComponent
static SCR_DamageManagerComponent GetDamageManager (notnull IEntity owner)
 Get damage manager from given owner.
 
- Static Protected Attributes inherited from SCR_DestructionDamageManagerComponent
static ref ScriptInvoker s_OnDestructibleDestroyed = new ScriptInvoker()
 
static bool s_bReadingInit = false
 
static bool s_bPrintMissingComponent
 
static bool s_bPrintMissingPlayerController
 
static bool s_bPrintInitializationFailed
 
- 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_DamageManagerDatas_aDamageManagerData = {}
 

Detailed Description

Multi-Phase destruction component, for objects that go through several destruction states.

Member Function Documentation

◆ ApplyDamagePhaseData()

void SCR_DestructionMultiPhaseComponent.ApplyDamagePhaseData ( SCR_DamagePhaseData  damagePhaseData,
bool  delayMeshChange 
)

◆ CalculateDamagePhase()

int SCR_DestructionMultiPhaseComponent.CalculateDamagePhase ( int  damagePhase,
float  health,
float  damage 
)

Returns the target damage stage for the input current health, current phase and damage.

◆ GetCanBeDamaged()

override bool SCR_DestructionMultiPhaseComponent.GetCanBeDamaged ( )

Called when the object receives damage, return false if damage should be ignored.

Implements SCR_DestructionDamageManagerComponent.

◆ GetDamagePhase()

int SCR_DestructionMultiPhaseComponent.GetDamagePhase ( )

Returns which damage phase the object is currently in (0 = initial)

◆ GetDamagePhaseData()

SCR_DamagePhaseData SCR_DestructionMultiPhaseComponent.GetDamagePhaseData ( int  damagePhase)

Returns the input damage phase data (null = initial)

◆ GetDestructibleSize()

float SCR_DestructionMultiPhaseComponent.GetDestructibleSize ( )

◆ GetDestructionMultiPhaseData()

notnull SCR_DestructionMultiPhaseData SCR_DestructionMultiPhaseComponent.GetDestructionMultiPhaseData ( )
protected

◆ GetDisablePhysicsOnDestroy()

override bool SCR_DestructionMultiPhaseComponent.GetDisablePhysicsOnDestroy ( )

Returns whether the object should disable physics on destruction (before being deleted or changed)

Implements SCR_DestructionDamageManagerComponent.

◆ GetIsInInitialDamagePhase()

bool SCR_DestructionMultiPhaseComponent.GetIsInInitialDamagePhase ( )

Returns if the object is in the initial damage phase.

◆ GetNumDamagePhases()

int SCR_DestructionMultiPhaseComponent.GetNumDamagePhases ( )

Returns the amount of damage phases (including initial)

◆ GetOriginalResourceName()

ResourceName SCR_DestructionMultiPhaseComponent.GetOriginalResourceName ( )
protected

◆ GetTargetDamagePhase()

int SCR_DestructionMultiPhaseComponent.GetTargetDamagePhase ( )
protected

◆ GoToDamagePhase()

void SCR_DestructionMultiPhaseComponent.GoToDamagePhase ( int  damagePhase,
bool  delayMeshChange 
)

Switches to the input damage phase (or deletes if past last phase)

Implemented in SCR_DestructionTireComponent.

◆ HandleDestruction()

override void SCR_DestructionMultiPhaseComponent.HandleDestruction ( )

Handle destruction.

Implements SCR_DestructionDamageManagerComponent.

◆ OnPostInit()

override void SCR_DestructionMultiPhaseComponent.OnPostInit ( IEntity  owner)

Called after all components are initialized.

Parameters
ownerEntity this component is attached to.

Implements SCR_DestructionDamageManagerComponent.

Implemented in SCR_DestructionTireComponent.

◆ OnRplLoad()

override bool SCR_DestructionMultiPhaseComponent.OnRplLoad ( ScriptBitReader  reader)
protected

◆ OnRplSave()

override bool SCR_DestructionMultiPhaseComponent.OnRplSave ( ScriptBitWriter  writer)
protected

◆ PlaySound()

override void SCR_DestructionMultiPhaseComponent.PlaySound ( )

Plays sounds upon destruction.

Implements SCR_DestructionDamageManagerComponent.

◆ QueueDestroy()

override void SCR_DestructionMultiPhaseComponent.QueueDestroy ( )

Called when the object should be destroyed and various effects or other things need to be performed (actual destruction handled HandleDestruction())

Implements SCR_DestructionDamageManagerComponent.

◆ ReplicateDestructibleState()

override void SCR_DestructionMultiPhaseComponent.ReplicateDestructibleState ( bool  forceUpdate = false)
Parameters
[in]forceUpdate

Implements SCR_DestructionDamageManagerComponent.

◆ RPC_ReplicateMultiPhaseDestructionState()

void SCR_DestructionMultiPhaseComponent.RPC_ReplicateMultiPhaseDestructionState ( int  phase)
protected

◆ SetDamagePhase()

void SCR_DestructionMultiPhaseComponent.SetDamagePhase ( int  damagePhase)
protected

◆ SetDamagePhaseSignal()

void SCR_DestructionMultiPhaseComponent.SetDamagePhaseSignal ( )
protected

◆ SetOriginalResourceName()

void SCR_DestructionMultiPhaseComponent.SetOriginalResourceName ( ResourceName  originalResourceName)
protected

◆ SetTargetDamagePhase()

void SCR_DestructionMultiPhaseComponent.SetTargetDamagePhase ( int  targetDamagePhase)
protected

◆ SpawnDestroyObjects()

override void SCR_DestructionMultiPhaseComponent.SpawnDestroyObjects ( SCR_HitInfo  hitInfo)

Spawns objects that are meant to be created when the object is destroyed (particles, debris, etc)

Implements SCR_DestructionDamageManagerComponent.

◆ UpdateResponseIndex()

override void SCR_DestructionMultiPhaseComponent.UpdateResponseIndex ( )

Member Data Documentation

◆ DAMAGE_PHASE_SIGNAL_NAME

const string SCR_DestructionMultiPhaseComponent.DAMAGE_PHASE_SIGNAL_NAME = "DamagePhase"
static

◆ m_iOriginalHealth

int SCR_DestructionMultiPhaseComponent.m_iOriginalHealth
protected

The documentation for this interface was generated from the following file: