internal static void OnStripArmor(MechLabPanel mechLabPanel) { if (!MechArmorState.Strip(mechLabPanel.activeMechDef, InputUtils.ControlModifierPressed, out var updates)) { return; } foreach (var update in updates) { var widget = mechLabPanel.GetLocationWidget(update.Location); widget.SetArmor(update.Location.IsRear(), update.Assigned); Control.Logger.Trace?.Log($"OnStripArmor.SetArmor update={update}"); } mechLabPanel.FlagAsModified(); mechLabPanel.ValidateLoadout(false); }
internal static void OnMaxArmor(MechLabPanel mechLabPanel, MechLabMechInfoWidget infoWidget) { if (!MechArmorState.Maximize(mechLabPanel.activeMechDef, InputUtils.ControlModifierPressed, ArmorStructureRatioFeature.ArmorPerStep, out var updates)) { return; } foreach (var update in updates) { var widget = mechLabPanel.GetLocationWidget(update.Location); widget.SetArmor(update.Location.IsRear(), update.Assigned); Control.Logger.Trace?.Log($"OnMaxArmor.SetArmor update={update}"); } infoWidget.RefreshInfo(); mechLabPanel.FlagAsModified(); mechLabPanel.ValidateLoadout(false); }
internal static bool Strip(MechDef mechDef, bool ignoreLocks, out List <ArmorLocationState> updates) { var mechArmorState = new MechArmorState(mechDef, ignoreLocks); return(mechArmorState.Strip(out updates)); }
internal static bool Maximize(MechDef mechDef, bool ignoreLocks, int armorPerStep, out List <ArmorLocationState> updates) { var mechArmorState = new MechArmorState(mechDef, ignoreLocks); return(mechArmorState.Maximize(armorPerStep, out updates)); }