コード例 #1
0
 private static void ReSelect(SG_Shop_Screen __instance)
 {
     //Log($"attempting to select index {m_selectedIdx}");
     if (m_selectedIdx > -1)
     {
         List <InventoryItemElement> list = GetActiveItems(__instance);
         if (list.Count > 0)
         {
             if (m_selectedIdx > list.Count - 1)
             {
                 m_selectedIdx = list.Count - 1;
             }
             if (m_selectedIdx > -1)
             {
                 //Log($"selecting item at index {m_selectedIdx}");
                 InventoryItemElement item = list[m_selectedIdx];
                 if (item != null)
                 {
                     if (item.gameObject.activeSelf)
                     {
                         item.buttonElement.ForceRadioSetSelection();
                     }
                     __instance.OnItemSelected(item);
                 }
             }
         }
     }
 }
コード例 #2
0
            public static void Postfix(InventoryItemElement __instance)
            {
                try
                {
                    //Logger.Debug("[InventoryItemElement_SetData_POSTFIX] Expanding bonusText fields");

                    __instance.gearBonusText.enableAutoSizing   = false;
                    __instance.gearBonusText.enableWordWrapping = false;
                    __instance.gearBonusText.overflowMode       = TextOverflowModes.Overflow;

                    __instance.gearBonusTextB.enableAutoSizing   = false;
                    __instance.gearBonusTextB.enableWordWrapping = false;
                    __instance.gearBonusTextB.overflowMode       = TextOverflowModes.Overflow;


                    __instance.bonusStat1.enableAutoSizing   = false;
                    __instance.bonusStat1.enableWordWrapping = false;
                    __instance.bonusStat1.overflowMode       = TextOverflowModes.Overflow;

                    __instance.bonusStat2.enableAutoSizing   = false;
                    __instance.bonusStat2.enableWordWrapping = false;
                    __instance.bonusStat2.overflowMode       = TextOverflowModes.Overflow;
                }
                catch (Exception e)
                {
                    Logger.Error(e);
                }
            }
コード例 #3
0
            public static void Postfix(SG_Shop_ItemSelectedPanel __instance, InventoryItemElement ___SelectedItemWidget)
            {
                try
                {
                    //Logger.Debug("[SG_Shop_ItemSelectedPanel_Initialize_POSTFIX] Expanding bonusText fields");

                    ___SelectedItemWidget.gearBonusText.enableAutoSizing   = false;
                    ___SelectedItemWidget.gearBonusText.enableWordWrapping = false;
                    ___SelectedItemWidget.gearBonusText.overflowMode       = TextOverflowModes.Overflow;

                    ___SelectedItemWidget.gearBonusTextB.enableAutoSizing   = false;
                    ___SelectedItemWidget.gearBonusTextB.enableWordWrapping = false;
                    ___SelectedItemWidget.gearBonusTextB.overflowMode       = TextOverflowModes.Overflow;


                    ___SelectedItemWidget.bonusStat1.enableAutoSizing   = false;
                    ___SelectedItemWidget.bonusStat1.enableWordWrapping = false;
                    ___SelectedItemWidget.bonusStat1.overflowMode       = TextOverflowModes.Overflow;

                    ___SelectedItemWidget.bonusStat2.enableAutoSizing   = false;
                    ___SelectedItemWidget.bonusStat2.enableWordWrapping = false;
                    ___SelectedItemWidget.bonusStat2.overflowMode       = TextOverflowModes.Overflow;
                }
                catch (Exception e)
                {
                    Logger.Error(e);
                }
            }
コード例 #4
0
 public static void Prefix(SG_Shop_Screen __instance, InventoryItemElement item)
 {
     if (m_needSaveSelected)
     {
         m_selectedIdx = GetActiveItems(__instance).IndexOf(item);
         //Log($"saving index {m_selectedIdx}");
     }
 }
コード例 #5
0
 public static void ChangeBackColor(MechComponentDef cdef, InventoryItemElement theWidget)
 {
     try
     {
         theWidget.iconBGColors.SetColor(cdef);
     }
     catch (Exception ex)
     {
         Control.LogError(ex);
     }
 }
コード例 #6
0
        //[Conditional("COLORICON")]
        public static void ResetTextIconColor(InventoryItemElement theWidget)
        {
            var color_text = theWidget.itemName.GetComponent <UIColorRefTracker>();
            var color_icon = theWidget.icon.GetComponent <UIColorRefTracker>();

            if (color_icon != null)
            {
                color_icon.SetUIColor(UIColor.White);
            }
            color_text.SetUIColor(UIColor.White);
        }
コード例 #7
0
 public static bool ChangeColor(InventoryItemElement __instance, MechComponentRef ___componentRef)
 {
     try
     {
         __instance.iconBGColors.SetColor(___componentRef);
     }
     catch (Exception ex)
     {
         Control.LogError(ex);
     }
     return(false);
 }
コード例 #8
0
 public static bool ChangeColor(InventoryDataObject_InventoryGear __instance, InventoryItemElement theWidget)
 {
     try
     {
         theWidget.iconBGColors.SetColor(__instance.componentRef);
     }
     catch (Exception ex)
     {
         Control.LogError(ex);
     }
     return(false);
 }
コード例 #9
0
 public static bool ChangeColor(InventoryItemElement theWidget, InventoryDataObject_ShopWeapon __instance)
 {
     try
     {
         theWidget.iconBGColors.SetColor(__instance.weaponDef);
     }
     catch (Exception ex)
     {
         Control.LogError(ex);
     }
     return(false);
 }
コード例 #10
0
 public static bool ChangeColor(InventoryItemElement theWidget, InventoryDataObject_ShopGear __instance)
 {
     try
     {
         ColorExtentions.ChangeBackColor(__instance.componentDef, theWidget);
         TColorExtentions.ChangeTextIconColor(__instance.componentDef, theWidget);
     }
     catch (Exception ex)
     {
         Control.LogError(ex);
     }
     return(false);
 }
コード例 #11
0
 public static bool ChangeColor(InventoryDataObject_InventoryGear __instance, InventoryItemElement theWidget)
 {
     try
     {
         ColorExtentions.ChangeBackColor(__instance.componentRef.Def, theWidget);
         TColorExtentions.ChangeTextIconColor(__instance.componentRef.Def, theWidget);
     }
     catch
     {
         return(true);
     }
     return(false);
 }
コード例 #12
0
 public static bool ChangeColor(InventoryItemElement __instance, MechComponentRef ___componentRef)
 {
     try
     {
         ColorExtentions.ChangeBackColor(___componentRef.Def, __instance);
         TColorExtentions.ChangeTextIconColor(___componentRef.Def, __instance);
     }
     catch
     {
         return(true);
     }
     return(false);
 }
コード例 #13
0
 public void OnElementClicked(InventoryItemElement itemElement)
 {
     for (int i = 0; i < elements.Count; i++)
     {
         if (elements[i] == itemElement)
         {
             //ic?.SelectItem(itemElement.inventoryAssetPair);
             //itemElement.activeBorder.GetComponent<Image>().color = selectedColor;
         }
         else
         {
             //elements[i].activeBorder.GetComponent<Image>().color = inActiveColor;
         }
     }
 }
コード例 #14
0
 public static void Postfix(InventoryDataObject_InventoryGear __instance, InventoryItemElement theWidget)
 {
     try
     {
         if (HasOverrideColor(__instance.componentRef.Def, out Color overrideColor))
         {
             UIColorRefTracker[] array = theWidget.iconBGColors;
             for (int i = 0; i < array.Length; i++)
             {
                 array[i].OverrideWithColor(overrideColor);
             }
         }
     }
     catch (Exception e)
     {
         Logger.Error(e);
     }
 }
コード例 #15
0
 public static void Postfix(InventoryItemElement __instance, MechComponentRef ___componentRef)
 {
     try
     {
         if (HasOverrideColor(___componentRef.Def, out Color overrideColor))
         {
             UIColorRefTracker[] array = __instance.iconBGColors;
             for (int i = 0; i < array.Length; i++)
             {
                 array[i].OverrideWithColor(overrideColor);
             }
         }
     }
     catch (Exception e)
     {
         Logger.Error(e);
     }
 }
コード例 #16
0
        public static bool ChangeColor(InventoryDataObject_SalvageGear __instance, InventoryItemElement theWidget)
        {
            try
            {
                if (__instance.componentDef == null)
                {
                    return(true);
                }

                theWidget.iconBGColors.SetColor(__instance.componentDef);
                return(false);
            }
            catch (Exception e)
            {
                Control.LogError(e);
                return(true);
            }
        }
コード例 #17
0
        public static bool ChangeColor(InventoryDataObject_SalvageWeapon __instance, InventoryItemElement theWidget)
        {
            try
            {
                if (__instance.componentDef == null)
                {
                    return(true);
                }

                ColorExtentions.ChangeBackColor(__instance.weaponDef ?? __instance.componentDef, theWidget);
                TColorExtentions.ChangeTextIconColor(__instance.weaponDef ?? __instance.componentDef, theWidget);

                return(false);
            }
            catch (Exception e)
            {
                Control.LogError(e);
                return(true);
            }
        }
コード例 #18
0
    private static void AddYearToVariant(InventoryItemElement theWidget)
    {
        try
        {
            var      dm   = UnityGameInstance.BattleTechGame.Simulation.DataManager;
            DateTime?date = new DateTime();
            foreach (var def in dm.MechDefs.Where(x => !x.Value.MechTags.Contains("BLACKLISTED")))
            {
                if (def.Value.Description.UIName.Contains(theWidget.mechNameText.text))
                {
                    date = def.Value.MinAppearanceDate;
                }
            }

            theWidget.mechNameText.SetText($"{theWidget.mechNameText.text} ({date.Value.Year})");
        }
        // ReSharper disable once EmptyGeneralCatchClause
        catch
        {
        }
    }
コード例 #19
0
 public void Populate(InventoryAssetResponse.Inventory[] inventories, Dictionary <int, int> numberOfInventories)
 {
     foreach (Transform tr in inventoryParent)
     {
         Destroy(tr.gameObject);
     }
     elements.Clear();
     foreach (InventoryAssetResponse.Inventory inventory in inventories)
     {
         GameObject           inventoryObject = Instantiate(inventoryPrefab, inventoryParent);
         InventoryItemElement element         = inventoryObject.GetComponent <InventoryItemElement>();
         bool isDefault = inventory.asset.id.ToString() == defaultAssetId;
         element.Init(inventory, isDefault, numberOfInventories[inventory.asset.id]);
         elements.Add(element);
     }
     //for (int i = 0; i < inventories.Length; i++)
     //{
     //    InventoryItemElement element = elements.FirstOrDefault(x => x.inventoryAssetPair.asset.id == inventories[i].asset.id);
     //    if (element != null)
     //        element.Init(inventories[i]);
     //}
 }
コード例 #20
0
        //[Conditional("COLORICON")]
        public static void ChangeTextIconColor(MechComponentDef cdef, InventoryItemElement theWidget)
        {
            var color_text = theWidget.itemName.GetComponent <UIColorRefTracker>();
            var color_icon = theWidget.icon.GetComponent <UIColorRefTracker>();

            if (color_icon == null)
            {
                color_icon = theWidget.icon.gameObject.AddComponent <UIColorRefTracker>();
            }

            if (cdef.Is <ITColorComponent>(out var color))
            {
                if (color.SkipText)
                {
                    color_text.SetCustomColor(UIColor.White, Color.white);
                }
                else
                {
                    color_text.SetCustomColor(color.UIColor, color.RGBColor);
                }
                if (color_icon != null)
                {
                    if (color.SkipIcon)
                    {
                        color_icon.SetUIColor(UIColor.White);
                    }
                    else
                    {
                        color_icon.SetCustomColor(color.UIColor, color.RGBColor);
                    }
                }
            }
            else
            {
                color_text.SetUIColor(UIColor.White);
                color_icon.SetUIColor(UIColor.White);
            }
        }
コード例 #21
0
            public static void Postfix(InventoryDataObject_SalvageWeapon __instance, InventoryItemElement theWidget)
            {
                try
                {
                    if (__instance.componentDef == null)
                    {
                        return;
                    }



                    /*
                     * // Colorize icon
                     * UIColorRefTracker iconColor = theWidget.icon.GetComponent<UIColorRefTracker>();
                     * if (iconColor == null)
                     * {
                     *  iconColor = theWidget.icon.gameObject.AddComponent<UIColorRefTracker>();
                     * }
                     * iconColor.OverrideWithColor(Color.black);
                     */



                    if (HasOverrideColor(__instance.componentDef, out Color overrideColor))
                    {
                        UIColorRefTracker[] array = theWidget.iconBGColors;
                        for (int i = 0; i < array.Length; i++)
                        {
                            array[i].OverrideWithColor(overrideColor);
                        }
                    }
                }
                catch (Exception e)
                {
                    Logger.Error(e);
                }
            }
コード例 #22
0
        // replace the unused and broken sortBy_Type with a more comprehensive comparison
        public static bool Prefix(MechLabInventoryWidget __instance, InventoryItemElement a, InventoryItemElement b, ref int __result)
        {
            try
            {
                int    num       = 0;
                char[] trimChars = new char[] { '+', ' ' };

                // check for shop first
                ShopDefItem s1 = a?.controller?.shopDefItem;
                ShopDefItem s2 = b?.controller?.shopDefItem;
                if (s1 != null || s2 != null)
                {
                    //Log("comparing shop items...");
                    if (s1 != null && s2 != null)
                    {
                        __result = BetterSorting.GetShopDefSortVal(s2).CompareTo(BetterSorting.GetShopDefSortVal(s1));
                    }
                    else if (s1 != null)
                    {
                        __result = -1;
                    }
                    else if (s2 != null)
                    {
                        __result = 1;
                    }

                    return(false);
                }

                WeaponDef weaponDef  = a?.controller?.weaponDef;
                WeaponDef weaponDef2 = b?.controller?.weaponDef;

                if (weaponDef != null && weaponDef2 != null)
                {
                    //Log("comparing two weapons");
                    // category (missile, ballistic...)
                    num = weaponDef.Category.CompareTo(weaponDef2.Category);
                    // sub-type (SRM,LRM...)
                    if (num == 0)
                    {
                        num = weaponDef.WeaponSubType.CompareTo(weaponDef2.WeaponSubType);
                    }
                    // tonnage
                    if (num == 0)
                    {
                        num = weaponDef.Tonnage.CompareTo(weaponDef2.Tonnage);
                    }
                    // rarity (descending)
                    if (num == 0)
                    {
                        num = weaponDef2.Description.Rarity.CompareTo(weaponDef.Description.Rarity);
                    }
                    // manufacturer
                    if (num == 0)
                    {
                        num = weaponDef.Description.Manufacturer.CompareTo(weaponDef2.Description.Manufacturer);
                    }
                }
                else if (weaponDef != null)
                {
                    num = -1;
                }
                else if (weaponDef2 != null)
                {
                    num = 1;
                }
                else if (a?.controller?.ammoBoxDef != null && b?.controller?.ammoBoxDef != null) // ammo
                {
                    //Log("comparing ammo");
                    // ammo type
                    num = a.controller.ammoBoxDef.Ammo.Category.CompareTo(b.controller.ammoBoxDef.Ammo.Category);
                }
                else if (a?.controller?.componentDef != null && b?.controller?.componentDef != null) // equipment
                {
                    //Log("comparing equipment");
                    // remove + from ui name and compare
                    num = a.controller.componentDef.Description.UIName.Trim(trimChars).CompareTo(b.controller.componentDef.Description.UIName.Trim(trimChars));
                    // rarity (descending)
                    if (num == 0)
                    {
                        num = b.controller.componentDef.Description.Rarity.CompareTo(a.controller.componentDef.Description.Rarity);
                    }
                }
                else
                {
                    //Log("comparing componentDef");
                    MechComponentRef m1 = a?.ComponentRef;
                    MechComponentRef m2 = b?.ComponentRef;
                    if (m1 != null && m2 != null)
                    {
                        // general type
                        num = a.ComponentRef.ComponentDefType.CompareTo(b.ComponentRef.ComponentDefType);
                    }
                    else if (m1 != null)
                    {
                        num = -1;
                    }
                    else if (m2 != null)
                    {
                        num = 1;
                    }
                }

                __result = num;
                return(false);
            }
            catch (Exception e)
            {
                BetterSorting.Log(e.ToString());
                // fall back to original comparison (by name)
                __result = Traverse.Create(__instance).Method("SortBy_Name", new Type[] { typeof(InventoryItemElement), typeof(InventoryItemElement) }, new InventoryItemElement[] { b, a }).GetValue <int>();
                return(false);
            }
        }
コード例 #23
0
 public static void ChangeColor(InventoryDataObject_SalvageMechPart __instance, InventoryItemElement theWidget)
 {
     try
     {
         TColorExtentions.ResetTextIconColor(theWidget);
     }
     catch (Exception e)
     {
         Control.LogError(e);
     }
 }
コード例 #24
0
 public static void Postfix(InventoryItemElement theWidget)
 {
     AddYearToVariant(theWidget);
 }