Esempio n. 1
0
        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);
            }
        }
Esempio n. 3
0
 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!");
     }
 }
Esempio n. 4
0
 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);
 }