Пример #1
0
        public static bool TryGet(int id, out RefineMaterial refineMaterial)
        {
            int typ = int.Parse(DateFile.instance.GetItemDate(id, 51, false));

            if (typ >= 101 && typ <= 108)
            {
                int grade = int.Parse(DateFile.instance.GetItemDate(id, 8, false));
                refineMaterial = new RefineMaterial(typ, grade);
                return(true);
            }
            refineMaterial = new RefineMaterial();
            return(false);
        }
Пример #2
0
        static void Postfix(WindowManage __instance, int itemId, bool setName)
        {
            if (!Main.enabled)
            {
                return;
            }
            if (setName && Main.settings.clickLock && MyModDate.Locked(itemId))
            {
                __instance.informationName.text = DateFile.instance.SetColoer(10004, "已锁定[简化精制]") + "\n"
                                                  + __instance.informationName.text;
            }
            if (Main.settings.showProduct)
            {
                RefineMaterial rm;
                string         newText;
                bool           isRM = RefineMaterial.TryGet(itemId, out rm);
                if (isRM)
                {
                    string title = DateFile.instance.SetColoer(10002, "【精制效果】");
                    newText  = $"{title}\n";
                    newText += $"·{rm.onWeapon} || {rm.onArmor} || {rm.onJewelry}\n";
                }
                else
                {
                    int  productId   = int.Parse(DateFile.instance.GetItemDate(itemId, 52, false));
                    bool haveProduct = productId > 0 && DateFile.instance.GetItemDate(itemId, 50, false) == "1";
                    if (!haveProduct)
                    {
                        return;
                    }

                    productId += 2;//满精制
                    string title = DateFile.instance.SetColoer(10002, "【满精制拆解产物】");
                    string name  = Func.GetItemName(productId);
                    newText = $"{title}\n·{name}\n";
                    bool hasEffect = RefineMaterial.TryGet(productId, out rm);
                    if (hasEffect)
                    {
                        newText += $"·{rm.onWeapon} || {rm.onArmor} || {rm.onJewelry}\n";
                    }
                }
                __instance.informationMassage.text += newText + "\n";
                typeof(WindowManage).GetField("baseWeaponMassage", BindingFlags.NonPublic | BindingFlags.Instance)
                .SetValue(__instance, __instance.informationMassage.text);
            }
        }