void Trainer_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (dataManager.ActiveTrainer != null) { backpackData = dataManager.ActiveTrainer.Backpack; } }
/// <summary> /// 往ItemListArr中添加一个物品,成功返TRUE,失败返false /// </summary> /// <param name="id">拾取对象的ID</param> /// <param name="num">拾取对象的数量</param> /// <returns></returns> public bool ItemAdd(int id, int num) { //找是否有相同ID的物品,有就叠加数量 for (int i = 0; i < mainData.itemListArr.GetLength(0); i++) { for (int k = 0; k < mainData.itemListArr.GetLength(1); k++) { if (mainData.itemListArr[i, k].ID == id) { mainData.itemListArr[i, k].Num += num; BackpackController._Instance.RefreshItemUI(); return(true); } } } //找ItemListArr是否有空位,有就加进去 int[] SpareLocation = CheckItemListSpare(); if (SpareLocation != null) { mainData.itemListArr[SpareLocation[0], SpareLocation[1]].ID = id; mainData.itemListArr[SpareLocation[0], SpareLocation[1]].Num = num; BackpackData.RefreshItemID(); BackpackController._Instance.RefreshItemUI(); Player._Instance.CheckItemLiftable(); return(true); } //即没空位又无相同ID Debug.LogError("即没空位又无相同ID"); return(false); }
public void ItemReduce(int BackpackPage, int BackpackIndex) { BackpackItemSubData item = FarmDataManager._Instance.mainData.itemListArr[BackpackPage, BackpackIndex]; item.Num -= 1; if (item.Num <= 0) { item.ID = 0; } BackpackData.RefreshItemID(); BackpackController._Instance.RefreshItemUI(); }
public void LoadData(BackpackData backpackData) { if (Backpack == null) { return; } foreach (ItemData id in backpackData.itemDatas) { if (!GameManager.GetItemByID(id.itemID)) { return; } } Backpack.LoseMoneySimple(Backpack.Money); Backpack.GetMoneySimple(backpackData.money); Backpack.size = new ScopeInt(backpackData.maxSize) { Current = backpackData.currentSize }; Backpack.weight = new ScopeFloat(backpackData.maxWeightLoad) { Current = backpackData.currentSize }; Backpack.Items.Clear(); Init(); foreach (ItemData id in backpackData.itemDatas) { ItemInfo newInfo = new ItemInfo(GameManager.GetItemByID(id.itemID), id.amount); //TODO 把newInfo的耐久度等信息处理 Backpack.Items.Add(newInfo); if (id.indexInGrid > -1 && id.indexInGrid < itemAgents.Count) { itemAgents[id.indexInGrid].SetItem(newInfo); } else { foreach (ItemAgent ia in itemAgents) { if (ia.IsEmpty) { ia.SetItem(newInfo); break; } } } } UpdateUI(); }
void SaveData() { BackpackData.WriteObject(storedData); }