X2CommunityCore / X2WOTCCommunityHighlander

https://steamcommunity.com/workshop/filedetails/?id=1134256495
MIT License
60 stars 68 forks source link

Burning doesn't remove frozen #1377

Open BlackDog86 opened 3 weeks ago

BlackDog86 commented 3 weeks ago

Test case:

  1. Get a viper king to use his frost breath on a soldier
  2. Throw an incendiary grenade at the soldier (or get a purifier to do it)

Unit becomes burning and frozen at the same time.

On the contrary, freezing the unit does remove burning - so my suggestion is that this probably wasn't an 'intentional design choice', though I would welcome arguments to the contrary.

faanlez commented 3 weeks ago

If anything, freeze should provide immunity to all these effects it removes when applied. It is only providing immunity to stun.

static function X2Effect CreateFreezeRemoveEffects()
{
    local X2Effect_RemoveEffectsByDamageType RemoveEffects;

    RemoveEffects = new class'X2Effect_RemoveEffectsByDamageType';
    RemoveEffects.DamageTypesToRemove.AddItem('stun');
    RemoveEffects.DamageTypesToRemove.AddItem('fire');
    RemoveEffects.DamageTypesToRemove.AddItem('poison');
    RemoveEffects.DamageTypesToRemove.AddItem(class'X2Effect_ParthenogenicPoison'.default.ParthenogenicPoisonType);
    RemoveEffects.DamageTypesToRemove.AddItem('acid');

    RemoveEffects.EffectNamesToRemove.AddItem(class'X2AbilityTemplateManager'.default.DisorientedName);
    RemoveEffects.EffectNamesToRemove.AddItem(class'X2AbilityTemplateManager'.default.ConfusedName);
    RemoveEffects.EffectNamesToRemove.AddItem(class'X2AbilityTemplateManager'.default.PanickedName);
    RemoveEffects.EffectNamesToRemove.AddItem(class'X2AbilityTemplateManager'.default.StunnedName);

    return RemoveEffects;
}
function bool ProvidesDamageImmunity(XComGameState_Effect EffectState, name DamageType)
{
    return DamageType == 'stun';
}
BlackDog86 commented 15 hours ago

Given the changes to base-game behaviour & comments in the discussion thread earlier, how's about we just create a simple bFixFrozenInteractions boolean, gate the additional damage immunities behind the boolean value and we'll get someone in the community to set the bool in ON in a common fix mod (e.g. core collection or similar). Failing that I can publish a seperate mod that literally just sets the config value, but seems like a lot of effort for such a tiny change.