ModifyProjectileEnvironmentDamage

Tracking Issue: #1547

Tags: events

This event allows to modify the environmental damage a projectile event will deal to XComTileFracLevelActor actors, which are walls/floors that will fracture in chunks

If OverrideDamage is true, damage will be overridden by DamageAmount, if OverrideDamage is false, then DamageAmount will be added to the damage

ModifyProjectileEnvironmentDamage event

Param Value
EventID ModifyProjectileEnvironmentDamage
EventData XComLWTuple
EventSource none
NewGameState yes

Tuple contents

Index Name Type Direction
0 OverrideDamage bool inout
1 DamageAmount int inout
2 AbilityStateObject XComGameState_Ability in

Listener template

static function EventListenerReturn OnModifyProjectileEnvironmentDamage(Object EventData, Object EventSource, XComGameState GameState, Name EventID, Object CallbackObject)
{
    local XComLWTuple Tuple;
    local bool OverrideDamage;
    local int DamageAmount;
    local XComGameState_Ability AbilityStateObject;

    Tuple = XComLWTuple(EventData);

    OverrideDamage = Tuple.Data[0].b;
    DamageAmount = Tuple.Data[1].i;
    AbilityStateObject = XComGameState_Ability(Tuple.Data[2].o);

    // Your code here

    Tuple.Data[0].b = OverrideDamage;
    Tuple.Data[1].i = DamageAmount;

    return ELR_NoInterrupt;
}

Source code references