Arma Reforger Script API
Loading...
Searching...
No Matches
SCR_VehicleDamageManagerComponent Interface Reference
Inheritance diagram for SCR_VehicleDamageManagerComponent:
SCR_DamageManagerComponent DamageManagerComponent HitZoneContainerComponent GameComponent SCR_HelicopterDamageManagerComponent SCR_WheeledDamageManagerComponent

Public Member Functions

SCR_VehicleDamageManagerComponentClass GetPrefabData ()
 
float GetTopMultiplier ()
 
float GetRightMultiplier ()
 
float GetLeftMultiplier ()
 
float GetRearMultiplier ()
 
float GetBottomMultiplier ()
 
float GetFrontMultiplier ()
 
float GetMaxSharedDamageDistance ()
 
float GetOccupantsDamageSpeedThreshold ()
 
float GetOccupantsSpeedDeath ()
 
int GetMinCollisionDamageEjectionThreshold ()
 
int GetMinExplosionDamageEjectionThreshold ()
 
float GetCollisionDamageEjectionChance ()
 
float GetExplosionDamageEjectionChance ()
 
vector GetFrontalImpact ()
 
float GetSideDamageMultiplier (SCR_EBoxSide side)
 
override void OnPostInit (IEntity owner)
 Called after all components are initialized.
 
void RegisterVehicleHitZone (notnull HitZone hitZone)
 
void UnregisterVehicleHitZone (HitZone hitZone)
 
void UpdateVehicleState ()
 Compute current simulation state of vehicle Called when hit zone damage states change.
 
void UpdateMovementDamage ()
 
bool GetEngineFunctional ()
 
float GetEngineMalfunctionThreshold ()
 
float GetEngineEfficiency ()
 
bool GetGearboxFunctional ()
 
float GetGearboxEfficiency ()
 
int GetSurroundingHitzones (vector position, notnull Physics physics, float maxDistance, EDamageType damageType, out notnull array< HitZone > outHitZones, out float hitZonesDistancePercentSum=0, out map< HitZone, float > outHitZoneDistanceProcentageMap=null)
 Finds compatible hit zones.
 
float DamageSurroundingHitzones (vector position, float damage, EDamageType damageType, bool dontApply=false)
 Distributes provided damage amongst compatible hit zones.
 
SCR_EBoxSide GetHitDirection (vector position)
 
float CalculateCriticalCollisionDamage ()
 Determines the amount of damage required to destroy the vehicle in case of a frontal collision.
 
override bool FilterContact (IEntity owner, IEntity other, Contact contact)
 Filter out any contacts under a reasonable speed for damage.
 
override void OnFrame (IEntity owner, float timeSlice)
 Called during EOnFrame.
 
void ProcessCollision (notnull SCR_CollisionDamageContainer collision)
 Processing of cached collision data in order to deal damage to the vhehicle and its passengers.
 
override void OnDamageStateChanged (EDamageState newState, EDamageState previousDamageState, bool isJIP)
 Update buoyancy loss rate.
 
override bool CanBeHealed (bool ignoreHealingDOT=true)
 Return true if there is damage that can be repaired.
 
override void FullHeal (bool ignoreHealingDOT=true)
 Fix all the damage.
 
void HandlePassengerDamage (EDamageType damageType, float damage, notnull Instigator instigator)
 Damage and eject passengers based on vehicle taking damage.
 
void TickResponseIndexCheck ()
 
void ToggleResponseIndexTicking (IEntity owner, bool activeState)
 
void EOnPhysicsActive (IEntity owner, bool activeState)
 
void RegisterFlammableHitZone (notnull SCR_FlammableHitZone hitZone)
 
void UnregisterFlammableHitZone (notnull SCR_FlammableHitZone hitZone)
 
override void UpdateFireDamage (float timeSlice)
 
float GetMinImpulse ()
 
void InitStaticMapForIndices ()
 
void SCR_VehicleDamageManagerComponent (IEntityComponentSource src, IEntity ent, IEntity parent)
 
void ~SCR_VehicleDamageManagerComponent ()
 
- Public Member Functions inherited from SCR_DamageManagerComponent
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)
 
int GetSurroundingHitzones (vector origin, Physics physics, float maxDistance, out array< HitZone > outHitzones)
 
float GetMinDestroyDamage (EDamageType damageType, array< HitZone > hitzones)
 
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.
 
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, out bool hasData=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 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)
 
override int _WB_GetAfterWorldUpdateSpecs (IEntity owner, IEntitySource src)
 
- 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 void EnableDamageSystemOnFrame ()
 Call to enable damage system's on frame.
 
proto external void DisableDamageSystemOnFrame ()
 Call to disable damage system's on frame.
 
proto external void SetMovementDamage (float damage)
 Sets the movement damage modifier.
 
proto external float GetMovementDamage ()
 Returns the movement damage modifier.
 
proto external void SetAimingDamage (float damage)
 Sets the aiming damage modifier.
 
proto external float GetAimingDamage ()
 Returns aiming damage modifier.
 
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 void SetAndReplicateInstigator (notnull Instigator instigator)
 Sets the instigator and broadcasts the change to clients DO NOT USE THIS METHOD UNLESS YOU KNOW EXACTLY WHEN TO USE IT IF YOU ARE USING THIS YOU PROBABLY SHOULD BE DEALING DAMAGE TO THE PLAYER TO KILL THEM.
 
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.
 
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 ShouldCountAsHit (notnull BaseDamageContext damageContext)
 Called after HijackDamageHandling.
 
- Public Member Functions inherited from HitZoneContainerComponent
proto external IEntity GetOwner ()
 
proto external HitZone GetDefaultHitZone ()
 
proto external HitZone GetHitZoneByName (string hitZoneName)
 Get the HitZone that matches the provided collider name.
 
proto external HitZone GetHitZoneByColliderID (int colliderID)
 Get the HitZone that matches the provided collider ID.
 
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 CountAllHitZones ()
 Counts the number of hitzones in this entity.
 
proto external int CountAllHitZonesInHierarchy ()
 Counts the number of hitzones in this entity and its children.
 
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 ScriptInvokerInt GetOnVehicleDestroyed ()
 
static ScriptInvoker GetOnVehicleDamageStateChanged ()
 
- Static Public Member Functions inherited from SCR_DamageManagerComponent
static SCR_DamageManagerComponent GetDamageManager (notnull IEntity owner)
 Get damage manager from given owner.
 

Public Attributes

SCR_ESecondaryExplosionScale m_eVehicleFireState
 
SCR_ESecondaryExplosionScale m_eFuelTankFireState
 
SCR_ESecondaryExplosionScale m_eSuppliesFireState
 

Static Public Attributes

static ref map< SCR_EPhysicsResponseIndex, float > s_mResponseIndexMomentumMap = new map<SCR_EPhysicsResponseIndex, float>()
 
- 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}
 

Protected Member Functions

void SetEngineFunctional (bool functional)
 
void SetEngineEfficiency (float efficiency)
 
void SetGearboxFunctional (bool functional)
 
void SetGearboxEfficiency (float efficiency)
 
void OnWaterEnter ()
 Determine whether collision into water is severe enough to apply damage, then get velocities an manually call CollisionDamage.
 
override void OnFilteredContact (IEntity owner, IEntity other, Contact contact)
 Handle damage and collision effects of contact Contact must NEVER be passed as variable to external functions.
 
override void OnDamage (notnull BaseDamageContext damageContext)
 On Vehicle being blown up, there is a chance the passengers are ejected.
 
void RPC_OnPhysicsActive (bool activeState)
 
void OnVehicleFireStateChanged ()
 
void SetVehicleFireState (SCR_ESecondaryExplosionScale state, vector origin=vector.Zero)
 
void OnFuelTankFireStateChanged ()
 
void SetFuelTankFireState (SCR_ESecondaryExplosionScale state, vector origin=vector.Zero)
 
void OnSuppliesFireStateChanged ()
 
void SetSuppliesFireState (SCR_ESecondaryExplosionScale state, vector origin=vector.Zero)
 
void UpdateVehicleFireState (out float fireRate, float timeSlice)
 
void UpdateFuelTankFireState (float fireRate, float timeSlice)
 
void UpdateSuppliesFireState (float fireRate, float timeSlice)
 
override bool ShouldOverrideInstigator (notnull Instigator currentInstigator, notnull Instigator newInstigator)
 
- Protected Member Functions inherited from SCR_DamageManagerComponent
void RpcDo_SetFireState_ (int hitZoneIndex, SCR_EBurningState fireState)
 Set fire rate of a flammable hitzone.
 
notnull SCR_DamageManagerData GetScriptedDamageManagerData ()
 
float HealHitZonesInSequence (float healthToDistribute, float maxHealThresholdScaled, array< HitZone > targetHitZones)
 
float HealHitZonesInParallel (float healthToDistribute, float maxHealThresholdScaled, array< HitZone > targetHitZones)
 
void ConnectToFireDamageSystem ()
 
void DisconnectFromFireDamageSystem ()
 
override void _WB_AfterWorldUpdate (IEntity owner, float timeSlice)
 
- Protected Member Functions inherited from DamageManagerComponent
void DiagOnlyIfPossessedByPlayerController (notnull IEntity owner)
 Use this to run diag for the character who is currently possessed by player controller.
 
void OnHandleFallDamage (EFallDamageType fallDamageType, vector velocityVector)
 Called when fall related damage is relevant.
 
void OnHealthSet ()
 Called when SetHealth() is used on default hitzone.
 
void OnMaxHealthChanged ()
 Called when SetMaxHealth() is used on default hitzone.
 
void OnDelete (IEntity owner)
 
void OnDiag (IEntity owner, float timeSlice)
 Called during EOnDiag.
 
- Protected Member Functions inherited from HitZoneContainerComponent
bool HasDataToReplicate ()
 Use it to save bandwidth in some default conditions. Use it if Save and Load are overriden.
 
bool OnRplSave (ScriptBitWriter writer)
 
bool OnRplLoad (ScriptBitReader reader)
 

Protected Attributes

float m_fVelocityMultiplierOnWaterEnter = 0.5
 
int m_fMinWaterFallDamageVelocity = 5
 
float m_fEngineMalfunctioningThreshold
 
string m_sVehicleFireStateSignal
 
string m_sFuelTankFireStateSignal
 
string m_sSuppliesFireStateSignal
 
float m_fFuelTankFireDamageRate
 
float m_fSuppliesFireDamageRate
 
float m_fSecondaryFireDamageDelay
 
float m_fMinImpulse
 
SCR_BaseCompartmentManagerComponent m_CompartmentManager
 
ref array< HitZonem_aVehicleHitZones = {}
 Common vehicle features that will influence its simulation.
 
CompartmentControllerComponent m_Controller
 
VehicleBaseSimulation m_Simulation
 
float m_fEngineEfficiency = 1
 
bool m_bEngineFunctional = true
 
float m_fGearboxEfficiency = 1
 
bool m_bGearboxFunctional = true
 
ref array< SCR_FlammableHitZonem_aFlammableHitZones
 
SignalsManagerComponent m_SignalsManager
 
float m_fVehicleFireDamageTimeout
 
ParticleEffectEntity m_FuelTankFireParticle
 
FuelManagerComponent m_FuelManager
 
float m_fFuelTankFireDamageTimeout
 
ParticleEffectEntity m_SuppliesFireParticle
 
float m_fSuppliesFireDamageTimeout
 
int m_iVehicleFireStateSignalIdx
 
int m_iFuelTankFireStateSignalIdx
 
int m_iSuppliesFireStateSignalIdx
 
SCR_ImpactEffectComponent m_ImpactEffectComponent
 
vector m_vVehicleFireOrigin
 
vector m_vFuelTankFireOrigin
 
vector m_vSuppliesFireOrigin
 
ref array< ref SCR_CollisionDamageContainerm_LastFrameCollisions
 
ref array< ref SCR_CollisionDamageContainerm_CurrentCollisions
 
- Protected Attributes inherited from SCR_DamageManagerComponent
SCR_EBurningState m_iMinimumBurningState
 
int m_iTimetickInstigator = System.GetTickCount()
 
int m_iTimeThresholdInstigatorReplacement = 180000
 
int m_iPlayerId = 0
 
int m_iDamageManagerDataIndex = -1
 

Static Protected Attributes

const float MIN_IMPULSE_THRESHOLD = 5
 
const float HITZONE_DAMAGE_VALUE_THRESHOLD = 0.01
 
const int MIN_RESPONSE_INDEX = SCR_EPhysicsResponseIndex.TINY_MOMENTUM
 
const int MAX_RESPONSE_INDEX = SCR_EPhysicsResponseIndex.HUGE_MOMENTUM
 
const int CACHED_COLLISION_PROCESSING_DELAY = 50
 
static ref ScriptInvokerInt s_OnVehicleDestroyed
 
static ref ScriptInvoker s_OnVehicleDamageStateChanged
 
const float HACK_DAMAGE_CALCULATION_REDUCTION = 0.9
 The reason for this magic number is that the collision position can be slightly unpredictable.
 
- 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 = {}
 

Constructor & Destructor Documentation

◆ SCR_VehicleDamageManagerComponent()

void SCR_VehicleDamageManagerComponent.SCR_VehicleDamageManagerComponent ( IEntityComponentSource src,
IEntity ent,
IEntity parent )
Parameters
[in]src
[in]ent
[in]parent

◆ ~SCR_VehicleDamageManagerComponent()

void SCR_VehicleDamageManagerComponent.~SCR_VehicleDamageManagerComponent ( )

Member Function Documentation

◆ CalculateCriticalCollisionDamage()

float SCR_VehicleDamageManagerComponent.CalculateCriticalCollisionDamage ( )

Determines the amount of damage required to destroy the vehicle in case of a frontal collision.

◆ CanBeHealed()

override bool SCR_VehicleDamageManagerComponent.CanBeHealed ( bool ignoreHealingDOT = true)

Return true if there is damage that can be repaired.

Implements SCR_DamageManagerComponent.

◆ DamageSurroundingHitzones()

float SCR_VehicleDamageManagerComponent.DamageSurroundingHitzones ( vector position,
float damage,
EDamageType damageType,
bool dontApply = false )

Distributes provided damage amongst compatible hit zones.

Parameters
[in]position
[in]damage
[in]damageType
[in]dontApplyused for debugging the damage handling without actually passing the damage
Returns
leftover damage that wasnt absorbed by compatible hit zones

◆ EOnPhysicsActive()

void SCR_VehicleDamageManagerComponent.EOnPhysicsActive ( IEntity owner,
bool activeState )
Parameters
[in]owner
[in]activeState

◆ FilterContact()

override bool SCR_VehicleDamageManagerComponent.FilterContact ( IEntity owner,
IEntity other,
Contact contact )

Filter out any contacts under a reasonable speed for damage.

Implements SCR_DamageManagerComponent.

◆ FullHeal()

override void SCR_VehicleDamageManagerComponent.FullHeal ( bool ignoreHealingDOT = true)

Fix all the damage.

Parameters
[in]ignoreHealingDOT

Implements SCR_DamageManagerComponent.

◆ GetBottomMultiplier()

float SCR_VehicleDamageManagerComponent.GetBottomMultiplier ( )
Returns

◆ GetCollisionDamageEjectionChance()

float SCR_VehicleDamageManagerComponent.GetCollisionDamageEjectionChance ( )
Returns

◆ GetEngineEfficiency()

float SCR_VehicleDamageManagerComponent.GetEngineEfficiency ( )
Returns

◆ GetEngineFunctional()

bool SCR_VehicleDamageManagerComponent.GetEngineFunctional ( )
Returns

◆ GetEngineMalfunctionThreshold()

float SCR_VehicleDamageManagerComponent.GetEngineMalfunctionThreshold ( )
Returns

◆ GetExplosionDamageEjectionChance()

float SCR_VehicleDamageManagerComponent.GetExplosionDamageEjectionChance ( )
Returns

◆ GetFrontalImpact()

vector SCR_VehicleDamageManagerComponent.GetFrontalImpact ( )
Returns

◆ GetFrontMultiplier()

float SCR_VehicleDamageManagerComponent.GetFrontMultiplier ( )
Returns

◆ GetGearboxEfficiency()

float SCR_VehicleDamageManagerComponent.GetGearboxEfficiency ( )
Returns

◆ GetGearboxFunctional()

bool SCR_VehicleDamageManagerComponent.GetGearboxFunctional ( )
Returns

◆ GetHitDirection()

SCR_EBoxSide SCR_VehicleDamageManagerComponent.GetHitDirection ( vector position)
Parameters
[in]position
Returns

◆ GetLeftMultiplier()

float SCR_VehicleDamageManagerComponent.GetLeftMultiplier ( )
Returns

◆ GetMaxSharedDamageDistance()

float SCR_VehicleDamageManagerComponent.GetMaxSharedDamageDistance ( )
Returns

◆ GetMinCollisionDamageEjectionThreshold()

int SCR_VehicleDamageManagerComponent.GetMinCollisionDamageEjectionThreshold ( )
Returns

◆ GetMinExplosionDamageEjectionThreshold()

int SCR_VehicleDamageManagerComponent.GetMinExplosionDamageEjectionThreshold ( )
Returns

◆ GetMinImpulse()

float SCR_VehicleDamageManagerComponent.GetMinImpulse ( )
Returns

◆ GetOccupantsDamageSpeedThreshold()

float SCR_VehicleDamageManagerComponent.GetOccupantsDamageSpeedThreshold ( )
Returns

◆ GetOccupantsSpeedDeath()

float SCR_VehicleDamageManagerComponent.GetOccupantsSpeedDeath ( )
Returns

◆ GetOnVehicleDamageStateChanged()

static ScriptInvoker SCR_VehicleDamageManagerComponent.GetOnVehicleDamageStateChanged ( )
static
Returns

◆ GetOnVehicleDestroyed()

static ScriptInvokerInt SCR_VehicleDamageManagerComponent.GetOnVehicleDestroyed ( )
static
Returns

◆ GetPrefabData()

SCR_VehicleDamageManagerComponentClass SCR_VehicleDamageManagerComponent.GetPrefabData ( )
Returns

◆ GetRearMultiplier()

float SCR_VehicleDamageManagerComponent.GetRearMultiplier ( )
Returns

◆ GetRightMultiplier()

float SCR_VehicleDamageManagerComponent.GetRightMultiplier ( )
Returns

◆ GetSideDamageMultiplier()

float SCR_VehicleDamageManagerComponent.GetSideDamageMultiplier ( SCR_EBoxSide side)
Parameters
[in]side
Returns

◆ GetSurroundingHitzones()

int SCR_VehicleDamageManagerComponent.GetSurroundingHitzones ( vector position,
notnull Physics physics,
float maxDistance,
EDamageType damageType,
out notnull array< HitZone > outHitZones,
out float hitZonesDistancePercentSum = 0,
out map< HitZone, float > outHitZoneDistanceProcentageMap = null )

Finds compatible hit zones.

Parameters
[in]positionin world space
[in]physics
[in]maxDistancedistance form the provided position up to which hit zones searched for
[in]damageTypefitler that ensures that hit zones can accept provided damage type
[out]outHitZones
[out]outHitZoneDistanceProcentageMapmap of hit zones and how far they are from the provided position
[out]hitZonesDistancePercentSum
Returns
number of found hit zones

◆ GetTopMultiplier()

float SCR_VehicleDamageManagerComponent.GetTopMultiplier ( )
Returns

◆ HandlePassengerDamage()

void SCR_VehicleDamageManagerComponent.HandlePassengerDamage ( EDamageType damageType,
float damage,
notnull Instigator instigator )

Damage and eject passengers based on vehicle taking damage.

◆ InitStaticMapForIndices()

void SCR_VehicleDamageManagerComponent.InitStaticMapForIndices ( )

◆ OnDamage()

override void SCR_VehicleDamageManagerComponent.OnDamage ( notnull BaseDamageContext damageContext)
protected

On Vehicle being blown up, there is a chance the passengers are ejected.

Implements SCR_DamageManagerComponent.

◆ OnDamageStateChanged()

override void SCR_VehicleDamageManagerComponent.OnDamageStateChanged ( EDamageState newState,
EDamageState previousDamageState,
bool isJIP )

Update buoyancy loss rate.

Implements SCR_DamageManagerComponent.

Implemented in SCR_HelicopterDamageManagerComponent.

◆ OnFilteredContact()

override void SCR_VehicleDamageManagerComponent.OnFilteredContact ( IEntity owner,
IEntity other,
Contact contact )
protected

Handle damage and collision effects of contact Contact must NEVER be passed as variable to external functions.

Implements DamageManagerComponent.

◆ OnFrame()

override void SCR_VehicleDamageManagerComponent.OnFrame ( IEntity owner,
float timeSlice )

Called during EOnFrame.

Parameters
ownerEntity this component is attached to.
timeSliceDelta time since last update.

Implements DamageManagerComponent.

◆ OnFuelTankFireStateChanged()

void SCR_VehicleDamageManagerComponent.OnFuelTankFireStateChanged ( )
protected

◆ OnPostInit()

override void SCR_VehicleDamageManagerComponent.OnPostInit ( IEntity owner)

Called after all components are initialized.

Parameters
ownerEntity this component is attached to.

Implements DamageManagerComponent.

◆ OnSuppliesFireStateChanged()

void SCR_VehicleDamageManagerComponent.OnSuppliesFireStateChanged ( )
protected

◆ OnVehicleFireStateChanged()

void SCR_VehicleDamageManagerComponent.OnVehicleFireStateChanged ( )
protected

◆ OnWaterEnter()

void SCR_VehicleDamageManagerComponent.OnWaterEnter ( )
protected

Determine whether collision into water is severe enough to apply damage, then get velocities an manually call CollisionDamage.

◆ ProcessCollision()

void SCR_VehicleDamageManagerComponent.ProcessCollision ( notnull SCR_CollisionDamageContainer collision)

Processing of cached collision data in order to deal damage to the vhehicle and its passengers.

◆ RegisterFlammableHitZone()

void SCR_VehicleDamageManagerComponent.RegisterFlammableHitZone ( notnull SCR_FlammableHitZone hitZone)
Parameters
[in]hitZone

◆ RegisterVehicleHitZone()

void SCR_VehicleDamageManagerComponent.RegisterVehicleHitZone ( notnull HitZone hitZone)
Parameters
[in]hitZone

Implemented in SCR_HelicopterDamageManagerComponent.

◆ RPC_OnPhysicsActive()

void SCR_VehicleDamageManagerComponent.RPC_OnPhysicsActive ( bool activeState)
protected

◆ SetEngineEfficiency()

void SCR_VehicleDamageManagerComponent.SetEngineEfficiency ( float efficiency)
protected

◆ SetEngineFunctional()

void SCR_VehicleDamageManagerComponent.SetEngineFunctional ( bool functional)
protected

◆ SetFuelTankFireState()

void SCR_VehicleDamageManagerComponent.SetFuelTankFireState ( SCR_ESecondaryExplosionScale state,
vector origin = vector::Zero )
protected

◆ SetGearboxEfficiency()

void SCR_VehicleDamageManagerComponent.SetGearboxEfficiency ( float efficiency)
protected

◆ SetGearboxFunctional()

void SCR_VehicleDamageManagerComponent.SetGearboxFunctional ( bool functional)
protected

◆ SetSuppliesFireState()

void SCR_VehicleDamageManagerComponent.SetSuppliesFireState ( SCR_ESecondaryExplosionScale state,
vector origin = vector::Zero )
protected

◆ SetVehicleFireState()

void SCR_VehicleDamageManagerComponent.SetVehicleFireState ( SCR_ESecondaryExplosionScale state,
vector origin = vector::Zero )
protected

◆ ShouldOverrideInstigator()

override bool SCR_VehicleDamageManagerComponent.ShouldOverrideInstigator ( notnull Instigator currentInstigator,
notnull Instigator newInstigator )
protected
Called whenever an instigator is going to be set.

!

Parameters
[in]currentInstigatorThis damage manager's last instigator !
[in]newInstigatorThe new instigator for this damage manager !
Returns
If it returns true, newInstigator will become the new current instigator for the damage manager and it will receive kill credit.

Implements SCR_DamageManagerComponent.

◆ TickResponseIndexCheck()

void SCR_VehicleDamageManagerComponent.TickResponseIndexCheck ( )

◆ ToggleResponseIndexTicking()

void SCR_VehicleDamageManagerComponent.ToggleResponseIndexTicking ( IEntity owner,
bool activeState )
Parameters
[in]owner
[in]activeState

◆ UnregisterFlammableHitZone()

void SCR_VehicleDamageManagerComponent.UnregisterFlammableHitZone ( notnull SCR_FlammableHitZone hitZone)
Parameters
[in]hitZone

◆ UnregisterVehicleHitZone()

void SCR_VehicleDamageManagerComponent.UnregisterVehicleHitZone ( HitZone hitZone)
Parameters
[in]hitZone

Implemented in SCR_HelicopterDamageManagerComponent.

◆ UpdateFireDamage()

override void SCR_VehicleDamageManagerComponent.UpdateFireDamage ( float timeSlice)

◆ UpdateFuelTankFireState()

void SCR_VehicleDamageManagerComponent.UpdateFuelTankFireState ( float fireRate,
float timeSlice )
protected

◆ UpdateMovementDamage()

void SCR_VehicleDamageManagerComponent.UpdateMovementDamage ( )

◆ UpdateSuppliesFireState()

void SCR_VehicleDamageManagerComponent.UpdateSuppliesFireState ( float fireRate,
float timeSlice )
protected

◆ UpdateVehicleFireState()

void SCR_VehicleDamageManagerComponent.UpdateVehicleFireState ( out float fireRate,
float timeSlice )
protected

◆ UpdateVehicleState()

void SCR_VehicleDamageManagerComponent.UpdateVehicleState ( )

Compute current simulation state of vehicle Called when hit zone damage states change.

Implemented in SCR_HelicopterDamageManagerComponent, and SCR_WheeledDamageManagerComponent.

Member Data Documentation

◆ CACHED_COLLISION_PROCESSING_DELAY

const int SCR_VehicleDamageManagerComponent.CACHED_COLLISION_PROCESSING_DELAY = 50
staticprotected

◆ HACK_DAMAGE_CALCULATION_REDUCTION

const float SCR_VehicleDamageManagerComponent.HACK_DAMAGE_CALCULATION_REDUCTION = 0.9
staticprotected

The reason for this magic number is that the collision position can be slightly unpredictable.

Because of that, what may end up happening is that the distribution of the damage won't have enough hit zone health to absorb the impact, which in turn means that more damage will be passed to the hull hit zone, resulting in a vehicle explosion at a lower speed. Thus, the precomputed damage is reduced by 10% to accommodate this bit of randomness.

◆ HITZONE_DAMAGE_VALUE_THRESHOLD

const float SCR_VehicleDamageManagerComponent.HITZONE_DAMAGE_VALUE_THRESHOLD = 0.01
staticprotected

◆ m_aFlammableHitZones

ref array<SCR_FlammableHitZone> SCR_VehicleDamageManagerComponent.m_aFlammableHitZones
protected

◆ m_aVehicleHitZones

ref array<HitZone> SCR_VehicleDamageManagerComponent.m_aVehicleHitZones = {}
protected

Common vehicle features that will influence its simulation.

◆ m_bEngineFunctional

bool SCR_VehicleDamageManagerComponent.m_bEngineFunctional = true
protected

◆ m_bGearboxFunctional

bool SCR_VehicleDamageManagerComponent.m_bGearboxFunctional = true
protected

◆ m_CompartmentManager

SCR_BaseCompartmentManagerComponent SCR_VehicleDamageManagerComponent.m_CompartmentManager
protected

◆ m_Controller

CompartmentControllerComponent SCR_VehicleDamageManagerComponent.m_Controller
protected

◆ m_CurrentCollisions

ref array<ref SCR_CollisionDamageContainer> SCR_VehicleDamageManagerComponent.m_CurrentCollisions
protected

◆ m_eFuelTankFireState

SCR_ESecondaryExplosionScale SCR_VehicleDamageManagerComponent.m_eFuelTankFireState

◆ m_eSuppliesFireState

SCR_ESecondaryExplosionScale SCR_VehicleDamageManagerComponent.m_eSuppliesFireState

◆ m_eVehicleFireState

SCR_ESecondaryExplosionScale SCR_VehicleDamageManagerComponent.m_eVehicleFireState

◆ m_fEngineEfficiency

float SCR_VehicleDamageManagerComponent.m_fEngineEfficiency = 1
protected

◆ m_fEngineMalfunctioningThreshold

float SCR_VehicleDamageManagerComponent.m_fEngineMalfunctioningThreshold
protected

◆ m_fFuelTankFireDamageRate

float SCR_VehicleDamageManagerComponent.m_fFuelTankFireDamageRate
protected

◆ m_fFuelTankFireDamageTimeout

float SCR_VehicleDamageManagerComponent.m_fFuelTankFireDamageTimeout
protected

◆ m_fGearboxEfficiency

float SCR_VehicleDamageManagerComponent.m_fGearboxEfficiency = 1
protected

◆ m_fMinImpulse

float SCR_VehicleDamageManagerComponent.m_fMinImpulse
protected

◆ m_fMinWaterFallDamageVelocity

int SCR_VehicleDamageManagerComponent.m_fMinWaterFallDamageVelocity = 5
protected

◆ m_fSecondaryFireDamageDelay

float SCR_VehicleDamageManagerComponent.m_fSecondaryFireDamageDelay
protected

◆ m_fSuppliesFireDamageRate

float SCR_VehicleDamageManagerComponent.m_fSuppliesFireDamageRate
protected

◆ m_fSuppliesFireDamageTimeout

float SCR_VehicleDamageManagerComponent.m_fSuppliesFireDamageTimeout
protected

◆ m_FuelManager

FuelManagerComponent SCR_VehicleDamageManagerComponent.m_FuelManager
protected

◆ m_FuelTankFireParticle

ParticleEffectEntity SCR_VehicleDamageManagerComponent.m_FuelTankFireParticle
protected

◆ m_fVehicleFireDamageTimeout

float SCR_VehicleDamageManagerComponent.m_fVehicleFireDamageTimeout
protected

◆ m_fVelocityMultiplierOnWaterEnter

float SCR_VehicleDamageManagerComponent.m_fVelocityMultiplierOnWaterEnter = 0.5
protected

◆ m_iFuelTankFireStateSignalIdx

int SCR_VehicleDamageManagerComponent.m_iFuelTankFireStateSignalIdx
protected

◆ m_ImpactEffectComponent

SCR_ImpactEffectComponent SCR_VehicleDamageManagerComponent.m_ImpactEffectComponent
protected

◆ m_iSuppliesFireStateSignalIdx

int SCR_VehicleDamageManagerComponent.m_iSuppliesFireStateSignalIdx
protected

◆ m_iVehicleFireStateSignalIdx

int SCR_VehicleDamageManagerComponent.m_iVehicleFireStateSignalIdx
protected

◆ m_LastFrameCollisions

ref array<ref SCR_CollisionDamageContainer> SCR_VehicleDamageManagerComponent.m_LastFrameCollisions
protected

◆ m_sFuelTankFireStateSignal

string SCR_VehicleDamageManagerComponent.m_sFuelTankFireStateSignal
protected

◆ m_SignalsManager

SignalsManagerComponent SCR_VehicleDamageManagerComponent.m_SignalsManager
protected

◆ m_Simulation

VehicleBaseSimulation SCR_VehicleDamageManagerComponent.m_Simulation
protected

◆ m_sSuppliesFireStateSignal

string SCR_VehicleDamageManagerComponent.m_sSuppliesFireStateSignal
protected

◆ m_SuppliesFireParticle

ParticleEffectEntity SCR_VehicleDamageManagerComponent.m_SuppliesFireParticle
protected

◆ m_sVehicleFireStateSignal

string SCR_VehicleDamageManagerComponent.m_sVehicleFireStateSignal
protected

◆ m_vFuelTankFireOrigin

vector SCR_VehicleDamageManagerComponent.m_vFuelTankFireOrigin
protected

◆ m_vSuppliesFireOrigin

vector SCR_VehicleDamageManagerComponent.m_vSuppliesFireOrigin
protected

◆ m_vVehicleFireOrigin

vector SCR_VehicleDamageManagerComponent.m_vVehicleFireOrigin
protected

◆ MAX_RESPONSE_INDEX

const int SCR_VehicleDamageManagerComponent.MAX_RESPONSE_INDEX = SCR_EPhysicsResponseIndex.HUGE_MOMENTUM
staticprotected

◆ MIN_IMPULSE_THRESHOLD

const float SCR_VehicleDamageManagerComponent.MIN_IMPULSE_THRESHOLD = 5
staticprotected

◆ MIN_RESPONSE_INDEX

const int SCR_VehicleDamageManagerComponent.MIN_RESPONSE_INDEX = SCR_EPhysicsResponseIndex.TINY_MOMENTUM
staticprotected

◆ s_mResponseIndexMomentumMap

ref map<SCR_EPhysicsResponseIndex, float> SCR_VehicleDamageManagerComponent.s_mResponseIndexMomentumMap = new map<SCR_EPhysicsResponseIndex, float>()
static

◆ s_OnVehicleDamageStateChanged

ref ScriptInvoker SCR_VehicleDamageManagerComponent.s_OnVehicleDamageStateChanged
staticprotected

◆ s_OnVehicleDestroyed

ref ScriptInvokerInt SCR_VehicleDamageManagerComponent.s_OnVehicleDestroyed
staticprotected

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