public void AdjustTooltip(TooltipPrefab_Equipment tooltip, MechComponentDef componentDef)
        {
            var adapter = new TooltipPrefab_EquipmentAdapter(tooltip);

            //GUILogUtils.LogHierarchy(tooltip.transform);
            adapter.ShowBonuses = false;
        }
Esempio n. 2
0
        // 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}";
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        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();
        }