public void AdjustTooltip(TooltipPrefab_Equipment tooltip, MechComponentDef componentDef) { var adapter = new TooltipPrefab_EquipmentAdapter(tooltip); //GUILogUtils.LogHierarchy(tooltip.transform); adapter.ShowBonuses = false; }
// shared between Weights and DynamicSlots public void AdjustTooltipEquipment(TooltipPrefab_Equipment tooltipInstance, MechComponentDef mechComponentDef) { var tooltip = new TooltipPrefab_EquipmentAdapter(tooltipInstance); var reservedSlots = 0; if (mechComponentDef.Is <Weights>(out var weights)) { reservedSlots += weights.ReservedSlots; var mechDef = Global.ActiveMechDef; if (mechDef != null) { var tonnageChanges = CalculateWeightChanges(mechDef, weights); tooltip.tonnageText.text = FormatChanges(mechComponentDef.Tonnage, tonnageChanges); } } if (mechComponentDef.Is <DynamicSlots.DynamicSlots>(out var dynamicSlots)) { reservedSlots += dynamicSlots.ReservedSlots; } if (reservedSlots > 0) { tooltip.slotsText.text = $"{mechComponentDef.InventorySize} + {reservedSlots}"; } }
public void AdjustTooltip(TooltipPrefab_Equipment tooltipInstance, MechComponentDef mechComponentDef) { var coreDef = mechComponentDef.GetComponent <EngineCoreDef>(); if (coreDef == null) { return; } var panel = Global.ActiveMechLabPanel; if (panel == null) { return; } var engine = panel.GetEngine(); if (engine == null) { return; } engine.CoreDef = coreDef; var movement = coreDef.GetMovement(panel.activeMechDef.Chassis.Tonnage); var tooltip = new TooltipPrefab_EquipmentAdapter(tooltipInstance); var originalText = tooltip.detailText.text; tooltip.detailText.text = ""; tooltip.detailText.text += "<i>Speeds</i>" + " Cruise <b>" + movement.WalkSpeed + "</b>" + " / Top <b>" + movement.RunSpeed + "</b>"; tooltip.detailText.text += "\r\n" + "<i>Weights [Ton]</i>" + " Engine: <b>" + engine.EngineTonnage + "</b>" + " Gyro: <b>" + engine.GyroTonnage + "</b>" + " Sinks: <b>" + engine.HeatSinkTonnage + "</b>"; tooltip.tonnageText.text = $"{engine.TotalTonnage}"; tooltip.detailText.text += "\r\n"; tooltip.detailText.text += "\r\n"; tooltip.detailText.text += originalText; tooltip.detailText.SetAllDirty(); }
public void AdjustTooltip(TooltipPrefab_Equipment tooltipInstance, MechComponentDef mechComponentDef) { var def = mechComponentDef.GetComponent <EngineHeatBlockDef>(); if (def == null) { return; } var panel = Global.ActiveMechLabPanel; if (panel == null) { return; } var engine = panel.GetEngine(); if (engine == null) { return; } engine.EngineHeatBlockDef = def; var tooltip = new TooltipPrefab_EquipmentAdapter(tooltipInstance); var originalText = tooltip.detailText.text; tooltip.detailText.text = ""; tooltip.detailText.text += $"<i>{engine.MechHeatSinkDef.FullName}</i>" + $"\r\n Internal" + $" Free: <b>{engine.HeatSinkInternalFreeMaxCount}</b> " + $" Additional: <b>{engine.EngineHeatBlockDef.HeatSinkCount} / {engine.HeatSinkInternalAdditionalMaxCount}</b>" + $"\r\n External" + $" Free: <b>{engine.HeatSinkExternalFreeCount} / {engine.HeatSinkExternalFreeMaxCount}</b> " + $" Additional: <b>{engine.HeatSinkExternalAdditionalCount}</b>" + "\r\n"; tooltip.detailText.text += "\r\n"; tooltip.detailText.text += "\r\n"; tooltip.detailText.text += originalText; tooltip.detailText.SetAllDirty(); tooltip.bonusesText.text = BonusValueEngineHeatDissipation(engine) + ", " + BonusValueEngineHeatSinkCounts(engine); tooltip.bonusesText.SetAllDirty(); }
public static void Postfix(TooltipPrefab_Equipment __instance, object data) { try { var adapter = new TooltipPrefab_EquipmentAdapter(__instance); adapter.ShowBonuses = true; if (data is MechComponentDef def) { OverrideDescriptionsFeature.Shared.AdjustTooltipEquipment(__instance, def); } } catch (Exception e) { Control.mod.Logger.LogError(e); } }
public void AdjustTooltip(TooltipPrefab_Equipment tooltipInstance, MechComponentDef mechComponentDef) { var weights = mechComponentDef.GetComponent <Weights>(); if (weights == null) { return; } var mechDef = Global.ActiveMechDef; if (mechDef == null) { return; } var tonnageChanges = CalculateWeightChanges(mechDef, weights); var tooltip = new TooltipPrefab_EquipmentAdapter(tooltipInstance); tooltip.tonnageText.text = FormatChanges(mechComponentDef.Tonnage, tonnageChanges); // TODO move to own feature... SlotsHandler or SizeHandler var reservedSlots = weights.ReservedSlots; if (mechComponentDef.Is <DynamicSlots.DynamicSlots>(out var dynamicSlots)) { reservedSlots += dynamicSlots.ReservedSlots; } if (reservedSlots > 0) { tooltip.slotsText.text = $"{mechComponentDef.InventorySize} + {reservedSlots}"; } tooltip.bonusesText.SetAllDirty(); }