/// <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); }
/// <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; }
/// <summary> /// 指定した合成レシピより、アイテムを合成する、外部からの使用はplayerStateから /// </summary> /// <param name="itemCompose">合成レシピ</param> public void ComposeItem(ItemCompose itemCompose) { bag.ComposeItem(itemCompose); PlayerStateChanged(PlayerStateChangeType.bag); }
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; }