public void AdjustSlotElement(MechLabItemSlotElement instance, MechLabPanel panel) { var def = instance.ComponentRef.GetComponent <EngineHeatBlockDef>(); if (def == null) { return; } if (panel.activeMechDef == null || panel.activeMechDef.Chassis == null) { return; } var engine = panel.GetEngine(); if (engine == null) { return; } var adapter = new MechLabItemSlotElementAdapter(instance); adapter.bonusTextA.text = BonusValueEngineHeatDissipation(engine); adapter.bonusTextB.text = BonusValueEngineHeatSinkCounts(engine); }
internal static void SetJumpJetHardpointCount(MechLabMechInfoWidget widget, MechLabPanel mechLab, MechLabHardpointElement[] hardpoints) { if (mechLab == null || mechLab.activeMechDef == null || mechLab.activeMechInventory == null) { return; } if (mechLab.activeMechDef.Chassis == null) { return; } var engine = mechLab.GetEngine(); var current = mechLab.headWidget.currentJumpjetCount + mechLab.centerTorsoWidget.currentJumpjetCount + mechLab.leftTorsoWidget.currentJumpjetCount + mechLab.rightTorsoWidget.currentJumpjetCount + mechLab.leftArmWidget.currentJumpjetCount + mechLab.rightArmWidget.currentJumpjetCount + mechLab.leftLegWidget.currentJumpjetCount + mechLab.rightLegWidget.currentJumpjetCount; if (engine == null) { widget.totalJumpjets = 0; } else { widget.totalJumpjets = engine.CoreDef.GetMovement(mechLab.activeMechDef.Chassis.Tonnage).JumpJetCount; } widget.totalJumpjets = Mathf.Min(widget.totalJumpjets, mechLab.activeMechDef.Chassis.MaxJumpjets); if (hardpoints == null || hardpoints[4] == null) { return; } hardpoints[4].SetData(WeaponCategory.AMS, $"{current} / {widget.totalJumpjets}"); }