コード例 #1
0
            static int AvailableItem(int actorId, out Dictionary <int, int>[] dict)
            {
                dict = new Dictionary <int, int> [10];
                int cnt = 0;

                for (int i = 1; i <= 9; i++)
                {
                    dict[i] = new Dictionary <int, int> {
                    }
                }
                ;
                Dictionary <int, int> all = DateFile.instance.actorItemsDate[actorId];

                foreach (var kvp in all)
                {
                    int itemId = kvp.Key;
                    if (MyModDate.Locked(itemId))
                    {
                        continue;
                    }
                    if (!IsMaterial(itemId))
                    {
                        continue;
                    }
                    int grade = int.Parse(DateFile.instance.GetItemDate(itemId, 8, false));
                    if (grade > Main.settings.materialGrade)
                    {
                        continue;
                    }
                    //dict[grade].Add(kvp); //为啥这样不行?
                    dict[grade].Add(kvp.Key, kvp.Value);
                    cnt += kvp.Value;
                }
                return(cnt);
            }
コード例 #2
0
ファイル: EasyRefine.cs プロジェクト: CreepingG/MyTaiwu
 static IEnumerable <ItemInfo> AvailableItem(int actorId)
 {
     return(DateFile.instance.actorItemsDate[actorId]
            .Where(kvp => !MyModDate.Locked(kvp.Key) && //未上锁
                   IsMaterial(kvp.Key) && //是精制材料
                   int.Parse(DateFile.instance.GetItemDate(kvp.Key, 8, false)) <= Main.settings.materialGrade) //品级符合要求
            .AsEnumerable()
            .Select(kvp => new ItemInfo(kvp.Key, kvp.Value, actorId)));
 }
コード例 #3
0
            public void OnPointerClick(PointerEventData eventData)
            {
                bool   locked   = MyModDate.Switch(_itemid);
                string itemName = DateFile.instance.GetItemDate(_itemid, 0, false);

                Main.Logger.Log((locked ? "解锁" : "锁定") + $" {itemName}");
                //刷新物品说明
                var methodInfo = typeof(WindowManage).GetMethod("ShowItemMassage", BindingFlags.NonPublic | BindingFlags.Instance);

                methodInfo.Invoke(WindowManage.instance, new object[] { _itemid, 0, true, -1, 0 });
            }
コード例 #4
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);
            }
        }
コード例 #5
0
        static int Match(int itemId) //拆解产物
        {
            if (MyModDate.Locked(itemId))
            {
                return(-99);
            }
            if (!IsBreakableEquip(itemId))
            {
                return(-2);
            }
            int level   = int.Parse(DateFile.instance.GetItemDate(itemId, 8));
            int require = Main.settings.breakGrade;

            if (level > require)
            {
                return(-1);
            }
            int newItemId = int.Parse(DateFile.instance.GetItemDate(itemId, 52));

            return(newItemId);
        }