Class AstraHealthConfigSO
- Namespace
- ElectricDrill.AstraHealth.Config
- Assembly
- com.electricdrill.astra-health.Runtime.dll
public class AstraHealthConfigSO : ScriptableObject, IAstraHealthConfig, ITaggable
- Inheritance
-
objectAstraHealthConfigSO
- Implements
-
ITaggable
Properties
DefaultDamageCalculationCalculationStrategy
Gets the default strategy used for calculating net damage when none is explicitly specified in the target entity.
public DamageCalculationStrategySO DefaultDamageCalculationCalculationStrategy { get; }
Property Value
DefaultExpCollectionStrategy
Gets the default strategy used for determining when and how experience is collected from kills. Individual ExpCollector components can override this with a custom strategy.
public ExpCollectionStrategySO DefaultExpCollectionStrategy { get; }
Property Value
DefaultOnDeathGameAction
Gets the default ElectricDrill.AstraRpgFramework.GameActions.GameAction<TContext> to execute when an entity dies, if no specific strategy is defined in the dying entity.
public GameAction<IHasEntity> DefaultOnDeathGameAction { get; }
Property Value
- GameAction<IHasEntity>
DefaultOnResurrectionGameAction
Gets the default ElectricDrill.AstraRpgFramework.GameActions.GameAction<TContext> to execute when an entity is resurrected, if no specific strategy is defined in the resurrected entity.
public GameAction<IHasEntity> DefaultOnResurrectionGameAction { get; }
Property Value
- GameAction<IHasEntity>
DefaultResurrectionSource
Gets the heal source used for resurrections heals.
public HealSourceSO DefaultResurrectionSource { get; }
Property Value
GenericFlatDamageModificationStat
Gets the stat that provides flat damage modification, regardless of type or source. Applied after percentage modifications. Stacks additively with other flat modifications.
public StatSO GenericFlatDamageModificationStat { get; }
Property Value
- StatSO
GenericFlatHealAmountModifierStat
Gets the stat that provides a flat heal amount modification, applied before percentage modifiers.
public StatSO GenericFlatHealAmountModifierStat { get; }
Property Value
- StatSO
GenericLifesteal
Gets the generic lifesteal configuration applied regardless of damage type. When the LifestealStat is set, all damage dealt by an entity triggers lifesteal based on this config, stacking with any type-specific lifesteal from the DamageTypeSO.
public LifestealStatConfig GenericLifesteal { get; }
Property Value
GenericPercentageDamageModificationStat
Gets the stat that modifies any damage received with percentage, regardless of type or source. Stacks additively with other percentage damage modifications.
public StatSO GenericPercentageDamageModificationStat { get; }
Property Value
- StatSO
GenericPercentageHealAmountModifierStat
Gets the stat that modifies the amount of health healed with a percentage (e.g., 25 for +25% healing). Percentage heal modifiers are applied after flat heal modifications.
public StatSO GenericPercentageHealAmountModifierStat { get; }
Property Value
- StatSO
GlobalDamageResolutionEvent
Gets the global event raised after damage is fully resolved for any entity (whether applied or prevented). This event is required: all EntityHealth instances use it as the primary damage-resolution channel, and it drives lifesteal calculations.
public DamageResolutionGameEvent GlobalDamageResolutionEvent { get; }
Property Value
GlobalEntityDiedEvent
Gets the global event raised when any entity dies. This event is required: all EntityHealth instances use it as the primary death-notification channel.
public EntityDiedGameEvent GlobalEntityDiedEvent { get; }
Property Value
GlobalEntityHealedEvent
Gets the global event raised after a heal is successfully applied to any entity. Optional — leave null to skip this notification.
public EntityHealedGameEvent GlobalEntityHealedEvent { get; }
Property Value
GlobalEntityResurrectedEvent
Gets the global event raised when any entity is resurrected. Optional — leave null to skip this notification.
public EntityResurrectedGameEvent GlobalEntityResurrectedEvent { get; }
Property Value
GlobalHealthChangedEvent
Gets the global event raised when any entity's health changes (gained or lost). Optional — leave null to skip this notification.
public EntityHealthChangedGameEvent GlobalHealthChangedEvent { get; }
Property Value
GlobalHealthRatioChangedEvent
Gets the global event raised whenever any entity's HP/MaxHP ratio changes (fires on both HP changes and MaxHP changes, providing a single reliable signal for HP-ratio-based conditions). Optional — leave null to skip this notification.
public HealthRatioChangedGameEvent GlobalHealthRatioChangedEvent { get; }
Property Value
GlobalMaxHealthChangedEvent
Gets the global event raised when any entity's maximum health changes. Optional — leave null to skip this notification.
public EntityMaxHealthChangedGameEvent GlobalMaxHealthChangedEvent { get; }
Property Value
GlobalPreDamageInfoEvent
Gets the global event raised before damage is applied to any entity, allowing listeners to inspect or react to incoming damage before resolution. This event is required: all EntityHealth instances use it as the primary pre-damage channel.
public PreDamageGameEvent GlobalPreDamageInfoEvent { get; }
Property Value
GlobalPreHealEvent
Gets the global event raised before a heal is applied to any entity. Optional — leave null to skip this notification.
public PreHealGameEvent GlobalPreHealEvent { get; }
Property Value
HealthAttributesScaling
Gets the attributes scaling component that determines how health scales based on attributes.
public AttributesScalingComponentSO HealthAttributesScaling { get; }
Property Value
- AttributesScalingComponentSO
HealthRegenerationSource
Gets the heal source used for health regeneration effects.
public HealSourceSO HealthRegenerationSource { get; }
Property Value
ManualHealthRegenerationStat
Gets or sets the stat that determines manual health regeneration amount. Use the API to trigger manual regeneration ticks programmatically.
public StatSO ManualHealthRegenerationStat { get; }
Property Value
- StatSO
PassiveHealthRegenerationInterval
Gets the interval (in seconds) between passive health regeneration ticks. Regenerated health is calculated based on the Passive Health Regeneration Stat.
public float PassiveHealthRegenerationInterval { get; }
Property Value
- float
PassiveHealthRegenerationStat
Gets the stat that determines passive health regeneration amount. Stat value represents health regenerated per 10 seconds.
public StatSO PassiveHealthRegenerationStat { get; }
Property Value
- StatSO
RoundingSettings
Gets the rounding policy used by fractional damage, mitigation, critical and lifesteal calculations.
public HealthRoundingSettings RoundingSettings { get; }
Property Value
SuppressLifestealEvents
Gets whether to suppress PreHeal and ReceivedHeal events for lifesteal healing. When true, lifesteal will not raise heal events, improving performance when many entities deal repeatedly damage with lifesteal. Default is false (events are raised).
public bool SuppressLifestealEvents { get; }
Property Value
- bool
SuppressManualRegenerationEvents
Gets whether to suppress PreHeal and ReceivedHeal events for manual health regeneration. When true, manual regeneration will not raise heal events, improving performance in case of frequent calls. Default is false (events are raised).
public bool SuppressManualRegenerationEvents { get; }
Property Value
- bool
SuppressPassiveRegenerationEvents
Gets whether to suppress PreHeal and ReceivedHeal events for passive health regeneration. When true, passive regeneration will not raise heal events, improving performance for frequent regeneration ticks. Default is false (events are raised).
public bool SuppressPassiveRegenerationEvents { get; }
Property Value
- bool
Tags
The tags associated with this object.
public GameTagSet Tags { get; }
Property Value
- GameTagSet
UnifyLifestealHeals
When true, generic and type-specific lifesteal amounts are summed into a single heal. The HealSource of the damage type takes precedence over the generic one (falls back to the generic source if only generic lifesteal is active or type has no source set). When false (default), each configured lifesteal fires an independent heal with its own HealSource.
public bool UnifyLifestealHeals { get; }
Property Value
- bool