예제 #1
0
    public void LoadItem <T>(ref OdinMenuTree t) where T : ItemConfig <T>
    {
        ItemConfig <T> .Reload();

        if (ItemConfig <T> .Count > 0)
        {
            foreach (var item in ItemConfig <T> .Datas)
            {
                t.Add(item.Value.物品名字, item.Value);
                t.EnumerateTree().AddIcons <T>(x => x.GetSprite());
                t.EnumerateTree().ForEach(AddDragHandles <T>);
            }
        }
    }
예제 #2
0
    private void OnItemPicked(ItemConfig itemConfig)
    {
        if (this.itemConfig == itemConfig && shopManager.CheckIfItemIsBought(itemConfig))
        {
            activeItemTick.SetActive(true);
        }
        else
        {
            activeItemTick.SetActive(false);
        }

/*        frameIMG.color = startFrameColor;
 *      isPreviewing = false;*/
    }
예제 #3
0
파일: ItemInfo.cs 프로젝트: Hengle/Fish
    public void ViewItemInfo(Item item)
    {
        this.showItem = item;
        var config = ItemConfig.Get(this.showItem.id);

        switch (config.type)
        {
        case 1:
            break;

        default:
            break;
        }
    }
예제 #4
0
    IEnumerator RefreshItemList(ETravelBackpackItemType TBIType)
    {
        List <ulong> IDLst = new List <ulong>();

        for (int i = 0; i < CurTypeGrids.Count; i++)
        {
            for (int j = 0; j < CurTypeGrids[i].transform.childCount; j++)
            {
                Transform child = CurTypeGrids[i].transform.GetChild(j);
                if (child.name.Contains("GridInfo_"))
                {
                    IDLst.Add(ulong.Parse(MyTools.GetLastString(child.name, '_')));
                }
            }
        }

        MyTools.DestroyImmediateChildNodes(ItemGrid.transform);
        UIScrollView sv = ItemGrid.transform.parent.GetComponent <UIScrollView>();

        if (GameApp.Instance.PlayerData != null)
        {
            PlayerBag pb = GameApp.Instance.PlayerData.m_player_bag;
            for (int i = 0, p = 0; i < pb.m_items.Count; i++)
            {
                ItemConfig ItemCfg = null;
                CsvConfigTables.Instance.ItemCsvDic.TryGetValue((int)pb.m_items[i].m_item_id, out ItemCfg);
                if (ItemCfg != null)
                {
                    if (ItemCfg.Type == 10 + (int)TBIType)
                    {
                        GameObject newUnit = NGUITools.AddChild(ItemGrid.gameObject, ItemUnitPrefab);
                        newUnit.SetActive(true);
                        newUnit.name = "ItemUnit_" + p;
                        newUnit.transform.localPosition = new Vector3(0, -150 * p / 3, 0);

                        UI_Travel_Backpack_ItemUnit iu = newUnit.GetComponent <UI_Travel_Backpack_ItemUnit>();
                        iu.SetItemData(pb.m_items[i], ItemCfg, IDLst);

                        ItemGrid.repositionNow = true;
                        sv.ResetPosition();

                        yield return(new WaitForEndOfFrame());

                        p++;
                    }
                }
            }
        }
    }
예제 #5
0
    IEnumerator RefreshPresentList()
    {
        MyTools.DestroyImmediateChildNodes(PresentGrid.transform);
        UIScrollView sv = PresentGrid.transform.parent.GetComponent <UIScrollView>();

        PlayerBag pb = GameApp.Instance.PlayerData.m_player_bag;

        for (int i = 0, p = 0; i < pb.m_items.Count; i++)
        {
            ItemConfig ItemCfg = null;
            CsvConfigTables.Instance.ItemCsvDic.TryGetValue((int)pb.m_items[i].m_item_id, out ItemCfg);
            if (ItemCfg != null)
            {
                if (ItemCfg.Type == 13)
                {
                    GameObject newUnit = NGUITools.AddChild(PresentGrid.gameObject, PresentUnitPrefab);
                    newUnit.SetActive(true);
                    newUnit.name = "PresentUnit_" + p;
                    int x = 0;
                    if (p % 3 == 0)
                    {
                        x = 0;
                    }
                    else if (p % 3 == 1)
                    {
                        x = 160;
                    }
                    else if (p % 3 == 2)
                    {
                        x = 320;
                    }
                    newUnit.transform.localPosition = new Vector3(x, -160 * (p / 3), 0);

                    UI_Travel_Present_PresentUnit fu = newUnit.GetComponent <UI_Travel_Present_PresentUnit>();
                    fu.SetPresentData(ItemCfg.ItemID);

                    PresentGrid.repositionNow = true;
                    sv.ResetPosition();

                    yield return(new WaitForEndOfFrame());

                    p++;
                }
            }
        }

        PresentGrid.repositionNow = true;
        sv.ResetPosition();
    }
예제 #6
0
        /// <summary>
        /// Resolves the item.
        /// </summary>
        /// <param name="target">The target.</param>
        /// <param name="database">The database.</param>
        /// <returns>
        /// Item.
        /// </returns>
        /// <exception cref="System.NotSupportedException">You can not save a class that does not contain a property that represents the item ID. Ensure that at least one property has been marked to contain the Sitecore ID.
        /// or
        /// Cannot get ID for item</exception>
        public Item ResolveItem(object target, Database database)
        {
            if (target == null)
            {
                return(null);
            }

            ID       id;
            Language language      = null;
            int      versionNumber = -1;

            if (ItemConfig != null)
            {
                var item = ItemConfig.PropertyGetter(target) as Item;
                if (item != null)
                {
                    return(item);
                }
            }

            if (IdConfig == null && ItemUriConfig == null)
            {
                string message =
                    "Failed item resolve - You cannot save a class that does not contain a property that represents the item ID. Ensure that at least one property has been marked to contain the Sitecore ID. Type: {0}"
                    .Formatted(target.GetType().FullName);
                Sitecore.Diagnostics.Log.Error(message, this);

                LogDumpConfiguration();

                throw new NotSupportedException(message);
            }

            id            = GetId(target);
            language      = GetLanguage(target);
            versionNumber = GetVersion(target);

            if (language != null && versionNumber > 0)
            {
                return(database.GetItem(id, language, global::Sitecore.Data.Version.Parse(versionNumber)));
            }
            else if (language != null)
            {
                return(database.GetItem(id, language));
            }
            else
            {
                return(database.GetItem(id));
            }
        }
예제 #7
0
    /// <summary>
    /// 整理背包物品
    /// </summary>
    public void Collating(bool isSort)
    {
        if (itemUIList.Count == 0)
        {
            return;
        }
        int row = 0;//行数

        if (isSort)
        {
            ItemMgr.Instance.ItemSort();  //排序
        }

        //物品更新
        for (int i = 0; i < itemUIList.Count; i++)
        {
            if (i >= ItemMgr.Instance.itemList.Count)
            {
                itemUIList[i].gameObject.SetActive(false);
            }
            else
            {
                itemUIList[i].itemUIid     = ItemMgr.Instance.itemList[i].itemId;
                itemUIList[i].num_txt.text = ItemMgr.Instance.itemList[i].itemNum.ToString();
                ItemConfig ic = JsonMgr.GetSingleton().GetItemConfigByID(ItemMgr.Instance.itemList[i].itemId);
                itemUIList[i].itemLevelbg_img.sprite = ResourceMgr.Instance.LoadSprite(ColorMgr.Border[ic.rare - 1]);
                itemUIList[i].itemImg_img.sprite     = ResourceMgr.Instance.LoadSprite(ic.icon);
            }
            if (Ptype == 0 && i < ItemMgr.Instance.itemList.Count)
            {
                itemUIList[i].gameObject.SetActive(true);
            }
            else if (Ptype != 0 && i == itemUIList.Count - 1)
            {
                CollatingType(Ptype);
            }
        }
        if (Ptype == 0)
        {
            ItemPop(itemUIList);
        }
        //背包物品滑动框的大小
        row = ItemMgr.Instance.itemList.Count / UNITROWNUM;
        if (row > 3)
        {
            gridlist_obj.GetComponent <RectTransform>().offsetMin = new Vector2(0, -(row - 3) * UNITITEMSIZE);
            gridlist_obj.GetComponent <RectTransform>().offsetMax = new Vector2(0, 0);
        }
    }
예제 #8
0
 public void DecodeConfigItem()
 {
     for (int i = 0; i < list.Count; i++)
     {
         if (i == 1)
         {
             BornItem = ItemConfig.GetConfig(Id);
         }
         if (i == 2)
         {
             BornGun = GunConfig.GetConfig(Id);
         }
     }
     list = null;
 }
예제 #9
0
    public void BuyLongerLine(int num)
    {
        int price = ItemConfig.GetItem(2003).price *num;

        if (Gold < price)         // gold not enough
        {
            return;
        }
        LongerLine += num;
        Gold       -= price;

        GA.Buy("LongerLine", num, price);

        TouchHandler.PlayClickAudio();          // 按钮点击音效
    }
예제 #10
0
 public bool VariantIsBought(ItemConfig item, ItemVariant variant)
 {
     foreach (string dirtyPair in bought3DModelItems)
     {
         string[] strs = dirtyPair.Split('+');
         if (strs.Contains(item.ConfigId))
         {
             if (strs.Contains(variant.ConfigId))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #11
0
        static XElement initImageView(ItemConfig config, XElement ele)
        {
            ele.SetAttributeValue("Name", config.name);
            var position = ele.XPathSelectElements("./Position").FirstOrDefault();

            position.SetAttributeValue("X", config.position.x);
            position.SetAttributeValue("Y", config.position.y);
            var fileData = ele.XPathSelectElements("./FileData").FirstOrDefault();
            var size     = ele.XPathSelectElements("./Size").FirstOrDefault();

            size.SetAttributeValue("X", config.size.width);
            size.SetAttributeValue("Y", config.size.height);
            fileData.SetAttributeValue("Path", "res/ui/games/" + App.Activity + "/" + App.Skin + "/" + config.image);
            return(ele);
        }
예제 #12
0
    public void BuyWindShield(int num)
    {
        int price = ItemConfig.GetItem(2004).price *num;

        if (Gold < price)         // gold not enough
        {
            return;
        }
        WindShield += num;
        Gold       -= price;

        GA.Use("WindShield", num, price);

        TouchHandler.PlayClickAudio();          // 按钮点击音效
    }
예제 #13
0
    IEnumerator _GetAllCard()
    {
        for (int i = 50001; i <= 50062; i++)
        {
            GameApp.SendMsg.GMOrder(StringBuilderTool.ToString("AddItem ", i, " 1"));

            ItemConfig ItemCfg = null;
            CsvConfigTables.Instance.ItemCsvDic.TryGetValue(i, out ItemCfg);
            if (ItemCfg != null)
            {
                GameApp.Instance.CommonHintDlg.SpringHint(StringBuilderTool.ToString("获得1张[", ItemCfg.Name, "]卡牌"));
            }
            yield return(new WaitForSeconds(0.05f));
        }
    }
예제 #14
0
    public void BuyBasket(int num)
    {
        int price = ItemConfig.GetItem(2001).price *num;

        if (Gold < price)         // gold not enough
        {
            return;
        }
        Basket += num;
        Gold   -= price;

        GA.Buy("Basket", num, price);

        TouchHandler.PlayClickAudio();          // 按钮点击音效
    }
예제 #15
0
    public void SetTip <T>(ItemConfig <T> config, ItemConfig <T> config_2) where T : BaseConfig <T>
    {
        ItemUITip.gameObject.SetActive(config != null);

        CurrentEquipmentUITip.gameObject.SetActive(config_2 != null);

        if (config != null)
        {
            ItemUITip.SetConfig(config.GetSprite(), config.GetTipString());
        }
        if (config_2 != null)
        {
            CurrentEquipmentUITip.SetConfig(config_2.GetSprite(), config_2.GetTipString());
        }
    }
예제 #16
0
 public void ItemSort()
 {
     itemList.Sort((Item item1, Item item2) =>
     {
         ItemConfig ic1 = JsonMgr.GetSingleton().GetItemConfigByID(item1.itemId);
         ItemConfig ic2 = JsonMgr.GetSingleton().GetItemConfigByID(item2.itemId);
         //道具物品类型不同时
         if (ic1.type < ic2.type)
         {
             return(-1);   //左值小于右值,返回-1,为升序,如果返回1,就是降序
         }
         else if (ic1.type > ic2.type)
         {
             return(1);
         }
         else
         {
             //道具物品类型相同时,则按物品的稀有度进行排序
             if (ic1.rare < ic2.rare)
             {
                 return(1);
             }
             else if (ic1.rare > ic2.rare)
             {
                 return(-1);
             }
             else if (ic1.rare == ic2.rare)
             {
                 if (ic1.ID < ic2.ID)
                 {
                     return(1);
                 }
                 else if (ic1.ID > ic2.ID)
                 {
                     return(-1);
                 }
                 else
                 {
                     return(0);
                 }
             }
             else
             {
                 return(0);
             }
         }
     });
 }
예제 #17
0
        public ItemData Load(ItemConfig config)
        {
            return(new ItemData
            {
                Id = config.Id,
                Name = config.Name,

                Reward = config.Reward,
                Count = wrapper.GetInt(config.Id, CountKey),
                TotalCount = wrapper.GetInt(config.Id, TotalCountKey),

                Image = config.Image,

                RequiredParts = config.RequiredParts
            });
        }
예제 #18
0
    public static void AddItem(int itemId, Vector2 position)
    {
        GameObject itemObject = (GameObject)MonoBehaviour.Instantiate(item_pre);

        ItemConfig itemConfig = Config.GetInstance().GetItemConfig(itemId);


        Item item = itemObject.GetComponent <Item>();

        item.itemConfig = itemConfig;

        item.transform.localPosition = position;
        item.SetItemId(itemId);

        items.Add(item);
    }
예제 #19
0
    private void OnItemBought(ItemConfig cfg, ItemVariant var) // TODO var is unnecessary
    {
        if (itemConfig == cfg)
        {
            if (lockIcon != null)
            {
                lockIcon.gameObject.SetActive(false);
                activeItemTick.SetActive(true);
/*                frameIMG.color = startFrameColor;*/
            }
        }
        else
        {
            activeItemTick.SetActive(false);
        }
    }
예제 #20
0
    public List <string> GetItemsByType(List <int> types)
    {
        var itemsByType = new List <string>();
        var items       = model.GetItems();

        foreach (var item in items)
        {
            var config = ItemConfig.Get(item.id);
            if (types.Contains(config.type))
            {
                itemsByType.Add(item.guid);
            }
        }

        return(itemsByType);
    }
예제 #21
0
파일: RichTextUtil.cs 프로젝트: Hengle/Fish
    static string ItemMatchEvaluator(Match match)
    {
        try
        {
            var integerMatch = Regex.Match(match.Value, "\\d+");
            var id           = integerMatch != null?int.Parse(integerMatch.Value) : 0;

            var config = ItemConfig.Get(id);
            return(Language.Get(config.name));
        }
        catch (System.Exception ex)
        {
            DebugEx.Log(ex);
            return(string.Empty);
        }
    }
예제 #22
0
    public List <string> GetItemsEqualsOrLargerQuality(int quality)
    {
        var itemsByQuality = new List <string>();
        var items          = model.GetItems();

        foreach (var item in items)
        {
            var config = ItemConfig.Get(item.id);
            if (config.quality >= quality)
            {
                itemsByQuality.Add(item.guid);
            }
        }

        return(itemsByQuality);
    }
예제 #23
0
    public List <string> GetItemsEqualsOrLargerLevel(int level)
    {
        var itemsByLevel = new List <string>();
        var items        = model.GetItems();

        foreach (var item in items)
        {
            var config = ItemConfig.Get(item.id);
            if (config.level == level)
            {
                itemsByLevel.Add(item.guid);
            }
        }

        return(itemsByLevel);
    }
예제 #24
0
    public List <string> GetItemsByStarLevel(int starLevel)
    {
        var itemsByStarLevel = new List <string>();
        var items            = model.GetItems();

        foreach (var item in items)
        {
            var config = ItemConfig.Get(item.id);
            if (config.starLevel == starLevel)
            {
                itemsByStarLevel.Add(item.guid);
            }
        }

        return(itemsByStarLevel);
    }
예제 #25
0
    /** 是否有物品位置 */
    public bool hasItemPlace(DIntData[] dataArr)
    {
        DIntData data;

        if (dataArr.Length == 1)
        {
            data = dataArr[0];
            return(hasItemPlace(data.key, data.value));
        }

        _tempDic.clear();

        for (int i = 0, len = dataArr.Length; i < len; ++i)
        {
            data = dataArr[i];

            if (!ensureNum(data.value))
            {
                _tempDic.clear();
                return(false);
            }

            //有必要
            if (ItemConfig.get(data.key).totalPlusMax > 0)
            {
                _tempDic.put(data.key, data.value);
            }
        }

        if (!_tempDic.isEmpty())
        {
            ItemConfig config;

            foreach (var kv in _tempDic.entrySet())
            {
                config = ItemConfig.get(kv.key);

                //超出总上限
                if ((getItemNum(kv.key) + kv.value) > config.totalPlusMax)
                {
                    return(false);
                }
            }
        }

        return(hasFreeGrid(dataArr.Length));
    }
예제 #26
0
    /** 是否有物品位置 */
    public bool hasItemPlace(SList <ItemData> list)
    {
        if (list.size() == 1)
        {
            return(hasItemPlace(list.get(0)));
        }

        _tempDic.clear();

        ItemData[] values = list.getValues();
        ItemData   data;

        for (int i = 0, len = list.size(); i < len; ++i)
        {
            data = values[i];

            if (!ensureNum(data.num))
            {
                _tempDic.clear();
                return(false);
            }

            //有必要
            if (ItemConfig.get(data.id).totalPlusMax > 0)
            {
                _tempDic.put(data.id, data.num);
            }
        }

        if (!_tempDic.isEmpty())
        {
            ItemConfig config;

            foreach (var kv in _tempDic.entrySet())
            {
                config = ItemConfig.get(kv.key);

                //超出总上限
                if ((getItemNum(kv.key) + kv.value) > config.totalPlusMax)
                {
                    return(false);
                }
            }
        }

        return(hasFreeGrid(list.size()));
    }
예제 #27
0
        /// <summary>
        ///     Custom item created as a copy of a vanilla Valheim prefab with a <see cref="global::Recipe"/> made from a <see cref="ItemConfig"/>.
        /// </summary>
        /// <param name="name">The new name of the prefab after cloning.</param>
        /// <param name="basePrefabName">The name of the base prefab the custom item is cloned from.</param>
        /// <param name="itemConfig">The item config for this custom item.</param>
        public CustomItem(string name, string basePrefabName, ItemConfig itemConfig)
        {
            var itemPrefab = PrefabManager.Instance.CreateClonedPrefab(name, basePrefabName);

            if (itemPrefab)
            {
                ItemPrefab = itemPrefab;
                ItemDrop   = itemPrefab.GetComponent <ItemDrop>();
                itemConfig.Apply(itemPrefab);
                FixConfig = true;
                var recipe = itemConfig.GetRecipe();
                if (recipe != null)
                {
                    Recipe = new CustomRecipe(recipe, true, true);
                }
            }
        }
예제 #28
0
 /// <summary>
 /// Shows the monitored item properties.
 /// </summary>
 private void ShowItemProps(ItemConfig itemConfig)
 {
     if (itemConfig != null)
     {
         chkItemActive.Checked = itemConfig.Active;
         txtDisplayName.Text   = itemConfig.DisplayName;
         txtTagCode.Text       = itemConfig.TagCode;
         txtTagNum.Text        = itemConfig?.Tag is ItemConfigTag tag ? tag.TagNumStr : "";
         txtNodeID.Text        = itemConfig.NodeID;
         txtDataType.Text      = itemConfig.DataTypeName;
         chkIsString.Checked   = itemConfig.IsString;
         chkIsArray.Checked    = itemConfig.IsArray;
         chkIsArray.Enabled    = !itemConfig.IsString;
         numDataLen.Enabled    = itemConfig.IsString || itemConfig.IsArray;
         numDataLen.SetValue(itemConfig.DataLen);
     }
 }
예제 #29
0
    /// <summary>
    /// 创建物品数据
    /// </summary>
    public ItemData createItem(int id, int num)
    {
        ItemConfig config = ItemConfig.get(id);

        ItemData data = createItemByType(config.type);

        data.id     = id;
        data.num    = num;
        data.config = config;
        //失效时间
        data.disableTime = config.enableTimeT.getNextTime();

        //额外初始化
        BaseC.logic.initItem(data, id);

        return(data);
    }
예제 #30
0
    void DeleteNowCheckAnother()
    {
        ItemConfig ic = ItemConfigProvider.Instance.GetDataById(id);

        if (GamePokeyManager.changeitemDic != null && ic != null)
        {
            if (GamePokeyManager.changeitemDic.ContainsKey(ic.m_WearParts))
            {
                GamePokeyManager.changeitemDic.Remove(ic.m_WearParts);
            }
            foreach (int pos in GamePokeyManager.changeitemDic.Keys)
            {
                SetEquipment(GamePokeyManager.changeitemDic[pos]);
                break;
            }
        }
    }