public static bool Prefix(CombatGameState __instance) { RepairHelper.Clear(); HashSet <string> clearComponents = new HashSet <string>(); foreach (var avfx in ComponentVFXHelper.componentsVFXObjects) { clearComponents.Add(avfx.Key); } foreach (var compGUID in clearComponents) { if (ComponentVFXHelper.componentsVFXObjects.ContainsKey(compGUID)) { ComponentVFXHelper.componentsVFXObjects[compGUID].Clean(); } } ComponentVFXHelper.componentsVFXObjects.Clear(); CAEAuraHelper.ClearBubbles(); CombatHUDWeaponPanelExHelper.Clear(); CombatHUDEquipmentPanel.Clear(); ActivatableComponent.Clear(); CombatHUDEquipmentSlotEx.Clear(); CombatHUDEquipmentPanel.Clear(); AbstractActor_InitAbstractActor.Clear(); C3Helper.Clear(); //DamageHelpers.DamageHelper.Clear(); return(true); }
public static void RecalcEncounterFlag(this StatisticEffect __instance) { if (__instance.Target == null) { return; } if (__instance.EffectData.statisticData.statName.StartsWith(ADD_ENCOUNTER_FLAG_STAT_ID) == false) { return; } string encounter_flag_name = __instance.EffectData.statisticData.statName.Substring(ADD_ENCOUNTER_FLAG_STAT_ID.Length); Log.Debug?.WL(1, "encounter flag name:" + encounter_flag_name); Statistic encStat = __instance.Target.StatCollection.GetStatistic(__instance.EffectData.statisticData.statName); if (encStat == null) { return; } if (encStat.Value <float>() > Core.Epsilon) { Log.Debug?.TWL(0, "Add encounter flag by statistic " + __instance.Target.PilotableActorDef.ChassisID + " " + encounter_flag_name); __instance.Target.EncounterTags.Add(encounter_flag_name); } else { Log.Debug?.TWL(0, "Remove encounter flag by statistic " + __instance.Target.PilotableActorDef.ChassisID + " " + encounter_flag_name); __instance.Target.EncounterTags.Remove(encounter_flag_name); } __instance.Target.UpdateAuras(false); if (Core.Settings._C3NetworkEncounterTags.Contains(encounter_flag_name)) { C3Helper.Clear(); } }