public static void Postfix(TooltipPrefab_Chassis __instance, object data, TextMeshProUGUI ___descriptionText) { Mod.Log.Debug($"TP_C:SD - Init"); if (data != null && ___descriptionText != null) { ChassisDef chassisDef = (ChassisDef)data; double storageTons = Helper.CalculateChassisTonnage(chassisDef); // Calculate total tonnage costs SimGameState sgs = UnityGameInstance.BattleTechGame.Simulation; double totalTonnage = Helper.CalculateTonnageForAllMechParts(sgs); int storageCost = 0; if (totalTonnage > 0) { int totalCost = Helper.CalculateTotalForMechPartsCargo(sgs, totalTonnage); double tonnageFraction = storageTons / totalTonnage; storageCost = (int)Math.Ceiling(totalCost * tonnageFraction); } else { double factoredTonnage = Math.Ceiling(storageTons * Mod.Config.PartsFactor); double scaledTonnage = Math.Pow(factoredTonnage, Mod.Config.PartsExponent); storageCost = (int)(Mod.Config.PartsCostPerTon * scaledTonnage); } Text newDetails = new Text(chassisDef.Description.Details + $"\n\n<color=#FF0000>Cargo Cost:{SimGameState.GetCBillString(storageCost)} from {storageTons} tons</color>"); Mod.Log.Debug($" Setting details: {newDetails}u"); ___descriptionText.SetText(newDetails.ToString()); } else { Mod.Log.Debug($"TP_C:SD - Skipping"); } }
public static void SetHardpoints(object data, TooltipPrefab_Chassis __instance, LocalizableText ___jumpjetHPText) { try { //Control.Log("tooltip mech"); var handler = __instance.GetComponent <TooltipHPHandler>(); if (handler == null) { //Control.Log("creating"); handler = __instance.gameObject.AddComponent <TooltipHPHandler>(); handler.Init(__instance, ___jumpjetHPText.transform.parent.gameObject); } var chassis = data as ChassisDef; if (chassis != null) { //Control.Log($"set data for {mech.Description.Id}"); var usage = chassis.GetHardpoints(); handler.SetDataTotal(usage); handler.SetJJ(chassis.GetJJMaxByChassisDef()); } } catch (Exception e) { Control.LogError(e); } }
public static void Postfix(TooltipPrefab_Chassis __instance, object data, LocalizableText ___descriptionText) { if (data is ChassisDef chassisDef) { Main.modLog.LogMessage($"finding chassisdef affinity descriptor for {chassisDef.Description.UIName}"); string affinityDescriptors = PilotAffinityManager.Instance.getMechChassisAffinityDescription(chassisDef); //Main.modLog.LogMessage(affinityDescriptors); ___descriptionText.AppendTextAndRefresh(affinityDescriptors, (object[])Array.Empty <object>()); } else { Main.modLog.LogMessage("chassisdef is null!"); } }
public static void Postfix(TooltipPrefab_Chassis __instance, object data, TextMeshProUGUI ___variantNameText) { try { if (data is ChassisDef chassisDef) { var dm = UnityGameInstance.BattleTechGame.DataManager; var date = dm.MechDefs .Where(x => x.Value.Description.Id == chassisDef.Description.Id.Replace("chassisdef", "mechdef")) .Select(x => x.Value.MinAppearanceDate).FirstOrDefault(); var variantName = ___variantNameText.text.Substring(2, ___variantNameText.text.Length - 4); // vanilla has ( ) with spaces ___variantNameText.SetText($"( {variantName} ({date.Value.Year}) )"); } } catch // silent drop { } }
public static bool SetHardpoints(TooltipPrefab_Chassis __instance) { return(false); }