internal static void AddPassiveStatisticEffectIfMissing(this MechComponentDef def, StatisticEffectData statisticData) { if (def.statusEffects != null && def.statusEffects.Any(x => statisticData.statName == x.statisticData.statName)) { // passive effect already exists return; } var effectData = new EffectData { effectType = EffectType.StatisticEffect, nature = EffectNature.Buff }; effectData.durationData = new EffectDurationData { duration = -1, stackLimit = -1 }; effectData.targetingData = new EffectTargetingData { effectTriggerType = EffectTriggerType.Passive, effectTargetType = EffectTargetType.Creator }; var id = def.Description.Id + "_" + statisticData.statName; effectData.Description = new BaseDescriptionDef(id, statisticData.statName, "", null); effectData.statisticData = statisticData; var statusEffects = def.statusEffects == null ? new[] { effectData } : def.statusEffects.Append(effectData).ToArray(); def.SetEffectData(statusEffects); }
internal static void AddPassiveStatisticEffectIfMissing(this MechComponentDef def, StatisticEffectData statisticData) { if (def.statusEffects != null && def.statusEffects.Any(x => statisticData.statName == x.statisticData.statName)) { // passive effect already exists return; } var effectData = CreatePassiveEffectData(def.Description.Id, statisticData); var statusEffects = def.statusEffects == null ? new[] { effectData } : def.statusEffects.Append(effectData).ToArray(); def.SetEffectData(statusEffects); }