Beispiel #1
0
 /// <summary>
 /// 指定した合成レシピより、アイテムを合成する、外部からの使用はplayerStateから
 /// </summary>
 /// <param name="itemCompose">合成レシピ</param>
 public void ComposeItem(ItemCompose itemCompose)
 {
     int count;
     for (int i = 0; i < itemCompose.NeedItem.Count; i++)
     {
         count = itemCompose.NeedItem[i].itemCount;
         foreach (KeyValuePair<int, Item> item in dictionBag)
         {
             if (item.Value.info.id == itemCompose.NeedItem[i].itemID && !item.Value.isEqueped)
             {
                 if (count <= item.Value.count)
                 {
                     DeleteItem(item.Key, count);
                     break;
                 }
                 else
                 {
                     count -= item.Value.count;
                     DeleteItem(item.Key, item.Value.count);
                 }
             }
         }
     }
     AddItem(itemCompose.ResultItem.itemID);
 }
Beispiel #2
0
 /// <summary>
 /// 指定した合成レシピの原料が足りるかどうか
 /// </summary>
 /// <param name="itemCompose">合成レシピ</param>
 /// <returns>合成可能=true</returns>
 public bool CheckCompose(ItemCompose itemCompose)
 {
     for (int i = 0; i < itemCompose.NeedItem.Count; i++)
     {
         if (GetItemCount(itemCompose.NeedItem[i].itemID) < itemCompose.NeedItem[i].itemCount)
         {
             return false;
         }
     }
     return true;
 }
Beispiel #3
0
 /// <summary>
 /// 指定した合成レシピより、アイテムを合成する、外部からの使用はplayerStateから
 /// </summary>
 /// <param name="itemCompose">合成レシピ</param>
 public void ComposeItem(ItemCompose itemCompose)
 {
     bag.ComposeItem(itemCompose);
     PlayerStateChanged(PlayerStateChangeType.bag);
 }
Beispiel #4
0
    void LoadItemComposeList()
    {
        if (itemComposeDictionary == null || itemComposeDictionary.Count == 0)
        {
            string[] proArray;
            string[] idArray;
            string[] countArray;
            string[] dataArray = itemComposeData.ToString().Split('\n');
            itemComposeDictionary = new Dictionary<ItemType, List<ItemCompose>>();
            ItemType itemtype;

            for (int i = 1; i < dataArray.Length; i++)
            {
                if (dataArray[i] != "")
                {
                    proArray = dataArray[i].Split(',');
                    idArray = proArray[2].Split('|');
                    countArray = proArray[3].Split('|');

                    itemCompose = new ItemCompose(int.Parse(proArray[0]), int.Parse(proArray[1]), idArray.ParseToInt(), countArray.ParseToInt());

                    itemtype = GetItem(itemCompose.ResultItem.itemID).type;


                    if (!itemComposeDictionary.TryGetValue(itemtype, out itemComposeList))
                    {
                        itemComposeList = new List<ItemCompose>();

                    }
                    itemComposeList.Add(itemCompose);
                    itemComposeDictionary[itemtype] = itemComposeList;
                }
            }
        }
    }
 public void SetItemCompose(ItemCompose itemCompose)
 {
     this.itemCompose = itemCompose;
 }