Arma Reforger Script API
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
SCR_FlammableHitZone Interface Reference
Inheritance diagram for SCR_FlammableHitZone:
[legend]

Public Member Functions

override void OnInit (IEntity pOwnerEntity, GenericComponent pManagerComponent)
 Call OnInit method from script.
 
override EHitZoneGroup GetHitZoneGroup ()
 Hit zone group getter to be overridden.
 
override void OnMaxHealthChanged ()
 Called when max damage changes.
 
void InitFireRates ()
 Compute smoke and fire damage thresholds and rates.
 
override float ComputeEffectiveDamage (notnull BaseDamageContext damageContext, bool isDOT)
 Calculates the amount of damage a hitzone will receive.
 
void HandleIncendiaryDamage (notnull BaseDamageContext damageContext)
 Modify fire rate based on received incendiary impacts.
 
Instigator GetFireInstigator ()
 Inform damage manager about fire instigator.
 
override void OnDamageStateChanged (EDamageState newState, EDamageState previousDamageState, bool isJIP)
 Destruction logic.
 
float GetFireRate ()
 Get rate of fire (dps). If it is below fire damage threshold, no damage will be dealt.
 
void SetFireRate (float fireRate)
 Set rate of fire (dps). If it is below fire damage threshold, no damage will be dealt.
 
float GetFireRateForState (SCR_EBurningState fireState, float weight=-1)
 Get fire rate that will achieve specified fire state.
 
SCR_EBurningState GetFireState ()
 Returns current fire state.
 
void SetFireState (SCR_EBurningState fireState, float weight=-1, bool changeRate=true)
 Set fire rate that will achieve specified fire state.
 
SCR_EBurningState GetFireStateForRate (float fireRate)
 Get fire state that will be achieved for specified fire rate.
 
void StopFireRateUpdate ()
 Stop fire rate updates until requested again.
 
void LockFireRate (bool locked=true)
 Temporarily stop fire rate changes until incendiary damage is received again.
 
void StartDestructionFire ()
 
void StopDestructionFire ()
 
override float GetSecondaryExplosionScale ()
 Get secondary explosion desired scale. It will determine the prefab retrieved from secondary explosion config.
 
void ~SCR_FlammableHitZone ()
 
override EHitZoneGroup GetHitZoneGroup ()
 Hit zone group getter to be overridden.
 
- Public Member Functions inherited from SCR_DestructibleHitzone
ref SCR_DestructionBaseHandler GetDestructionHandler ()
 
override void OnInit (IEntity pOwnerEntity, GenericComponent pManagerComponent)
 Call OnInit method from script.
 
float GetSecondaryExplosionScale ()
 Get secondary explosion desired scale. It will determine the prefab retrieved from secondary explosion config.
 
PointInfo GetSecondaryExplosionPoint ()
 Get secondary explosion desired scale. It will determine the prefab retrieved from secondary explosion config.
 
override void OnDamageStateChanged (EDamageState newState, EDamageState previousDamageState, bool isJIP)
 Kill occupants and start destruction.
 
void StartDestruction (bool immediate=false)
 Start destruction effects.
 
void PlayDestructionParticle (EDamageState state)
 Start destruction particle.
 
- Public Member Functions inherited from SCR_HitZone
EHitZoneGroup GetHitZoneGroup ()
 Hit zone group getter to be overridden.
 
ScriptInvokerVoid GetOnHealthChanged (bool createNew=true)
 Get event called when hitzone damage changes.
 
ScriptInvoker GetOnDamageStateChanged (bool createNew=true)
 Get event called when hitzone damage state changes.
 
IEntity GetOwner ()
 
override float ComputeEffectiveDamage (notnull BaseDamageContext damageContext, bool isDOT)
 Calculates the amount of damage a hitzone will receive.
 
void DrawDebug ()
 
void ApplyDamagePassRules (notnull BaseDamageContext damageContext)
 
void HandlePassedDamage (notnull BaseDamageContext damageContext)
 
- Public Member Functions inherited from HitZone
proto external float GetBaseDamageMultiplier ()
 
proto external bool HasColliderNodes ()
 
proto external int GetColliderDescriptorIndex (int colliderID)
 
proto external float GetDamageMultiplier (EDamageType dmgType)
 
proto external float GetDamageReduction ()
 
proto external float GetDamageThreshold ()
 
proto external int GetAllColliderNames (out notnull array< string > colliderNames)
 
proto external void SetDamageOverTime (EDamageType dmgType, float dps)
 Sets damage over time for this particular hitzone.
 
proto external float GetDamageOverTime (EDamageType dmgType)
 
proto external int GetNumColliderDescriptors ()
 
proto external HitZoneContainerComponent GetHitZoneContainer ()
 
proto external void SetHealth (float health)
 
proto external void SetHealthScaled (float health)
 
proto external void SetMaxHealth (float maxHealth, ESetMaxHealthFlags flag=ESetMaxHealthFlags.NONE)
 
proto external float GetHealth ()
 
proto external float GetHealthScaled ()
 
proto external float GetDamageStateThreshold (EDamageState damageState)
 
proto external float GetMaxHealth ()
 
proto external string GetName ()
 
proto external EDamageState GetDamageState ()
 
proto external float GetCriticalDamageThreshold ()
 
proto external EDamageState GetPreviousDamageState ()
 
proto external void HandleDamage (float damage, int damageType, IEntity instigator)
 
proto external bool IsProxy ()
 
proto external int GetColliderIDs (out notnull array< int > outIDs)
 Returns all collider IDs attached to this hitzone.
 
proto bool TryGetColliderDescription (IEntity owner, int descIndex, out vector transformLS[4], out int boneIndex, out int nodeID)
 
proto bool TryGetColliderDescriptionFromName (IEntity owner, string colliderName, out vector transformLS[4], out int boneIndex, out int nodeID)
 
void OnInit (IEntity pOwnerEntity, GenericComponent pManagerComponent)
 Call OnInit method from script.
 
void OnDamage (notnull BaseDamageContext damageContext)
 Called when the damage has been dealt by the server, doesn't get called for DOT.
 
float ComputeEffectiveDamage (notnull BaseDamageContext damageContext, bool isDOT)
 Calculates the amount of damage a hitzone will receive.
 

Protected Member Functions

void SetFireInstigator (Instigator instigator)
 Inform damage manager about fire instigator.
 
float CalculateNewFireRate (float fireRate, float deltaTime)
 Determine new fire rate.
 
void ApplyFireDamage (float fireRate, float deltaTime)
 Apply fire damage to hitzone and to compartment occupants.
 
void UpdateFireRate (bool forceUpdate=false)
 Flammable hitzone is not immediately set on fire.
 
void StartDestructionGroundFire ()
 Attempts to spawn fire effect on the ground under the burning wreck.
 
void UpdateFireEffects (SCR_EBurningState fireState)
 Logic when vehicle is damaged.
 
void FireLightOn ()
 
void FireLightOff ()
 
- Protected Member Functions inherited from SCR_DestructibleHitzone
void StopDestruction ()
 Stop destruction effects.
 
SCR_VehicleDamageManagerComponent FindParentVehicleDamageManager ()
 
void PlayDestructionSound (EDamageState damageState)
 Start destruction sounds.
 
- Protected Member Functions inherited from SCR_HitZone
override void OnHealthSet ()
 Called when damage changes.
 
override void OnDamageStateChanged (EDamageState newState, EDamageState previousDamageState, bool isJIP)
 Called when the damage state changes.
 
void OnHealthSet ()
 Called when damage changes.
 
void OnMaxHealthChanged ()
 Called when max damage changes.
 
void OnDamageStateChanged (EDamageState newState, EDamageState previousDamageState, bool isJIP)
 Called when damage state changes.
 

Protected Attributes

Instigator m_FireInstigator
 
SCR_EBurningState m_eFireState
 
float m_fFireRate
 
float m_fLightSmokeReductionRate
 
float m_fHeavySmokeReductionRate
 
float m_fIgnitingSmokeStokeRate
 
float m_fFireDamageRateMin
 
float m_fFireDamageRateMax
 
float m_fUpdateFireTime
 
bool m_bIsUpdatingFire
 
bool m_bIsFireRateLocked
 
ref array< LightEntity > m_aLightEntities
 
ref array< ref SCR_BaseLightDatam_aLightData
 
float m_fIncendiaryReduction
 
float m_fIncendiaryThreshold
 
float m_fFireDamageOccupants
 
float m_fLightSmokeStopTime
 
float m_fHeavySmokeStopTime
 
float m_fIgnitingSmokeStokeTime
 
float m_fMinFireBurningTime
 
float m_fMaxFireBurningTime
 
float m_fBurningTime
 
float m_fLightSmokeThreshold
 
float m_fHeavySmokeThreshold
 
float m_fIgnitingSmokeThreshold
 
ResourceName m_sDamagedParticle
 
ResourceName m_sDamagedParticleHeavy
 
ResourceName m_sBurningParticle
 
ResourceName m_sBurningGroundParticle
 
float m_fWaterDepthThreshold
 
string m_sFireStateSignal
 
SignalsManagerComponent m_SignalsManager
 
int m_iFireStateSignalIdx = -1
 
ParticleEffectEntity m_DamagedParticleLight
 
ParticleEffectEntity m_DamagedParticleHeavy
 
ParticleEffectEntity m_BurningParticle
 
ParticleEffectEntity m_BurningGroundParticle
 
- Protected Attributes inherited from SCR_VehicleHitZone
EVehicleHitZoneGroup m_eHitZoneGroup
 
- Protected Attributes inherited from SCR_DestructibleHitzone
ref PointInfo m_SecondaryExplosionPoint
 
ref SCR_DestructionBaseHandler m_pDestructionHandler
 
string m_sDestructionSoundEvent
 
ResourceName m_sDestructionParticle
 
vector m_vParticleOffset
 
ParticleEffectEntity m_DstParticle
 
SCR_DamageManagerComponent m_ParentDamageManager
 
SCR_DamageManagerComponent m_RootDamageManager
 
SCR_BaseCompartmentManagerComponent m_CompartmentManager
 
- Protected Attributes inherited from SCR_HitZone
ref array< ref SCR_DamagePassRulem_aDamagePassRules
 
float m_fFireMultiplier
 
ref ScriptInvokerVoid m_OnHealthChanged
 
ref ScriptInvoker m_OnDamageStateChanged
 

Static Protected Attributes

static const float FIRE_TERRAIN_HEIGHT_TOLERANCE = 2.2
 
static const float LIGHT_EMISSIVITY_START = 5
 

Constructor & Destructor Documentation

◆ ~SCR_FlammableHitZone()

void SCR_FlammableHitZone.~SCR_FlammableHitZone ( )

Member Function Documentation

◆ ApplyFireDamage()

void SCR_FlammableHitZone.ApplyFireDamage ( float  fireRate,
float  deltaTime 
)
protected

Apply fire damage to hitzone and to compartment occupants.

Parameters
fireRateCurrent rate of fire
deltaTimeTime passed in seconds since last update

◆ CalculateNewFireRate()

float SCR_FlammableHitZone.CalculateNewFireRate ( float  fireRate,
float  deltaTime 
)
protected

Determine new fire rate.

Parameters
fireRateCurrent rate of fire
deltaTimeTime passed in seconds since last update
Returns
fireRate

◆ ComputeEffectiveDamage()

override float SCR_FlammableHitZone.ComputeEffectiveDamage ( notnull BaseDamageContext  damageContext,
bool  isDOT 
)

Calculates the amount of damage a hitzone will receive.

Parameters
damageTypeDamage type
rawDamageIncoming damage, without any modifiers taken into account
hitEntityDamaged entity
struckHitZoneHitzone to be damaged
damageSourceProjectile
instigatorInstigator
hitMaterialSurface physics material
colliderIDCollider ID if provided
hitTransformPosition, direction and normal
impactVelocityProjectile velocity at impact
nodeIDBone index in mesh object
isDOTTrue if this is a calculation for DamageOverTime

Implements SCR_HitZone.

◆ FireLightOff()

void SCR_FlammableHitZone.FireLightOff ( )
protected

◆ FireLightOn()

void SCR_FlammableHitZone.FireLightOn ( )
protected

◆ GetFireInstigator()

Instigator SCR_FlammableHitZone.GetFireInstigator ( )

Inform damage manager about fire instigator.

◆ GetFireRate()

float SCR_FlammableHitZone.GetFireRate ( )

Get rate of fire (dps). If it is below fire damage threshold, no damage will be dealt.

◆ GetFireRateForState()

float SCR_FlammableHitZone.GetFireRateForState ( SCR_EBurningState  fireState,
float  weight = -1 
)

Get fire rate that will achieve specified fire state.

Parameters
fireStateNew fire state to be set
weightPart of fire state zone to aim for. Default: -1 (becomes 0.5)

◆ GetFireState()

SCR_EBurningState SCR_FlammableHitZone.GetFireState ( )

Returns current fire state.

◆ GetFireStateForRate()

SCR_EBurningState SCR_FlammableHitZone.GetFireStateForRate ( float  fireRate)

Get fire state that will be achieved for specified fire rate.

Parameters
fireRateFire rate to test for
Returns
fireState New fire state

◆ GetHitZoneGroup()

override EHitZoneGroup SCR_FlammableHitZone.GetHitZoneGroup ( )

Hit zone group getter to be overridden.

Returns
Hit zone group

Implements SCR_VehicleHitZone.

◆ GetSecondaryExplosionScale()

override float SCR_FlammableHitZone.GetSecondaryExplosionScale ( )

Get secondary explosion desired scale. It will determine the prefab retrieved from secondary explosion config.

Implements SCR_DestructibleHitzone.

◆ HandleIncendiaryDamage()

void SCR_FlammableHitZone.HandleIncendiaryDamage ( notnull BaseDamageContext  damageContext)

Modify fire rate based on received incendiary impacts.

Parameters
damageIncendiary damage to be handled
instigatorInstigator of the incendiary damage

◆ InitFireRates()

void SCR_FlammableHitZone.InitFireRates ( )

Compute smoke and fire damage thresholds and rates.

◆ LockFireRate()

void SCR_FlammableHitZone.LockFireRate ( bool  locked = true)

Temporarily stop fire rate changes until incendiary damage is received again.

◆ OnDamageStateChanged()

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

Destruction logic.

Implements SCR_DestructibleHitzone.

◆ OnInit()

override void SCR_FlammableHitZone.OnInit ( IEntity  pOwnerEntity,
GenericComponent  pManagerComponent 
)

Call OnInit method from script.

Implements SCR_DestructibleHitzone.

◆ OnMaxHealthChanged()

override void SCR_FlammableHitZone.OnMaxHealthChanged ( )

Called when max damage changes.

Implements HitZone.

◆ SetFireInstigator()

void SCR_FlammableHitZone.SetFireInstigator ( Instigator  instigator)
protected

Inform damage manager about fire instigator.

◆ SetFireRate()

void SCR_FlammableHitZone.SetFireRate ( float  fireRate)

Set rate of fire (dps). If it is below fire damage threshold, no damage will be dealt.

◆ SetFireState()

void SCR_FlammableHitZone.SetFireState ( SCR_EBurningState  fireState,
float  weight = -1,
bool  changeRate = true 
)

Set fire rate that will achieve specified fire state.

Parameters
fireStateNew fire state to be set
weightPart of fire state zone to aim for. Default: -1 (if state is different, becomes 0.5, otherwise no change)
rateAllow changing fire rate. Default: true

◆ StartDestructionFire()

void SCR_FlammableHitZone.StartDestructionFire ( )

◆ StartDestructionGroundFire()

void SCR_FlammableHitZone.StartDestructionGroundFire ( )
protected

Attempts to spawn fire effect on the ground under the burning wreck.

◆ StopDestructionFire()

void SCR_FlammableHitZone.StopDestructionFire ( )

◆ StopFireRateUpdate()

void SCR_FlammableHitZone.StopFireRateUpdate ( )

Stop fire rate updates until requested again.

◆ UpdateFireEffects()

void SCR_FlammableHitZone.UpdateFireEffects ( SCR_EBurningState  fireState)
protected

Logic when vehicle is damaged.

◆ UpdateFireRate()

void SCR_FlammableHitZone.UpdateFireRate ( bool  forceUpdate = false)
protected

Flammable hitzone is not immediately set on fire.

At first it generates smoke which can spontaneously extinguish or ignite itself. Damage is applied once fire rate exceeds damage threshold.

Member Data Documentation

◆ FIRE_TERRAIN_HEIGHT_TOLERANCE

const float SCR_FlammableHitZone.FIRE_TERRAIN_HEIGHT_TOLERANCE = 2.2
staticprotected

◆ LIGHT_EMISSIVITY_START

const float SCR_FlammableHitZone.LIGHT_EMISSIVITY_START = 5
staticprotected

◆ m_aLightData

ref array<ref SCR_BaseLightData> SCR_FlammableHitZone.m_aLightData
protected

◆ m_aLightEntities

ref array<LightEntity> SCR_FlammableHitZone.m_aLightEntities
protected

◆ m_bIsFireRateLocked

bool SCR_FlammableHitZone.m_bIsFireRateLocked
protected

◆ m_bIsUpdatingFire

bool SCR_FlammableHitZone.m_bIsUpdatingFire
protected

◆ m_BurningGroundParticle

ParticleEffectEntity SCR_FlammableHitZone.m_BurningGroundParticle
protected

◆ m_BurningParticle

ParticleEffectEntity SCR_FlammableHitZone.m_BurningParticle
protected

◆ m_DamagedParticleHeavy

ParticleEffectEntity SCR_FlammableHitZone.m_DamagedParticleHeavy
protected

◆ m_DamagedParticleLight

ParticleEffectEntity SCR_FlammableHitZone.m_DamagedParticleLight
protected

◆ m_eFireState

SCR_EBurningState SCR_FlammableHitZone.m_eFireState
protected

◆ m_fBurningTime

float SCR_FlammableHitZone.m_fBurningTime
protected

◆ m_fFireDamageOccupants

float SCR_FlammableHitZone.m_fFireDamageOccupants
protected

◆ m_fFireDamageRateMax

float SCR_FlammableHitZone.m_fFireDamageRateMax
protected

◆ m_fFireDamageRateMin

float SCR_FlammableHitZone.m_fFireDamageRateMin
protected

◆ m_fFireRate

float SCR_FlammableHitZone.m_fFireRate
protected

◆ m_fHeavySmokeReductionRate

float SCR_FlammableHitZone.m_fHeavySmokeReductionRate
protected

◆ m_fHeavySmokeStopTime

float SCR_FlammableHitZone.m_fHeavySmokeStopTime
protected

◆ m_fHeavySmokeThreshold

float SCR_FlammableHitZone.m_fHeavySmokeThreshold
protected

◆ m_fIgnitingSmokeStokeRate

float SCR_FlammableHitZone.m_fIgnitingSmokeStokeRate
protected

◆ m_fIgnitingSmokeStokeTime

float SCR_FlammableHitZone.m_fIgnitingSmokeStokeTime
protected

◆ m_fIgnitingSmokeThreshold

float SCR_FlammableHitZone.m_fIgnitingSmokeThreshold
protected

◆ m_fIncendiaryReduction

float SCR_FlammableHitZone.m_fIncendiaryReduction
protected

◆ m_fIncendiaryThreshold

float SCR_FlammableHitZone.m_fIncendiaryThreshold
protected

◆ m_FireInstigator

Instigator SCR_FlammableHitZone.m_FireInstigator
protected

◆ m_fLightSmokeReductionRate

float SCR_FlammableHitZone.m_fLightSmokeReductionRate
protected

◆ m_fLightSmokeStopTime

float SCR_FlammableHitZone.m_fLightSmokeStopTime
protected

◆ m_fLightSmokeThreshold

float SCR_FlammableHitZone.m_fLightSmokeThreshold
protected

◆ m_fMaxFireBurningTime

float SCR_FlammableHitZone.m_fMaxFireBurningTime
protected

◆ m_fMinFireBurningTime

float SCR_FlammableHitZone.m_fMinFireBurningTime
protected

◆ m_fUpdateFireTime

float SCR_FlammableHitZone.m_fUpdateFireTime
protected

◆ m_fWaterDepthThreshold

float SCR_FlammableHitZone.m_fWaterDepthThreshold
protected

◆ m_iFireStateSignalIdx

int SCR_FlammableHitZone.m_iFireStateSignalIdx = -1
protected

◆ m_sBurningGroundParticle

ResourceName SCR_FlammableHitZone.m_sBurningGroundParticle
protected

◆ m_sBurningParticle

ResourceName SCR_FlammableHitZone.m_sBurningParticle
protected

◆ m_sDamagedParticle

ResourceName SCR_FlammableHitZone.m_sDamagedParticle
protected

◆ m_sDamagedParticleHeavy

ResourceName SCR_FlammableHitZone.m_sDamagedParticleHeavy
protected

◆ m_sFireStateSignal

string SCR_FlammableHitZone.m_sFireStateSignal
protected

◆ m_SignalsManager

SignalsManagerComponent SCR_FlammableHitZone.m_SignalsManager
protected

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