/// <summary> /// 重置物品显示价格数据 /// </summary> internal void SetDataSourceReset() { WarGoodsStoreMobaGoodsDataSource.ForEach((item) => { item.ResetItemValue(); }); }
/// <summary> /// 玩家金钱显示改变的时候执行,判断物品能否购买 /// </summary> /// <param name="_nMoney"></param> internal void onMoneyChange(int _nMoney) { WarGoodsStoreMobaGoodsDataSource.ForEach((item) => { item.GoodsCanBuy = item.GoodsCost <= _nMoney ? true : false; }); }
/// <summary> /// 有物品购买时更新数据 /// </summary> internal void onPurchasedChange() { List <int> purchasedGoodsID = GetPurchasedGoodsIDList(); if (purchasedGoodsID != null) { WarGoodsStoreMobaGoodsDataSource.ForEach((item) => { item.IsPurchased = purchasedGoodsID.Contains(item.GoodsID); }); } }
/// <summary> /// 根据物品类型获取物品数据列表 /// </summary> /// <param name="_nGoodsLabel">物品类型</param> /// <returns></returns> internal ObservableList <UWarGoodsStoreItem> GetWarGoodsStoreItem(List <int> _listGoodsLabelID, bool _bFilterGood = true) { char[] charSeparator = new char[] { MobaSchemesConfig.separator }; //遍历所有物品数据 return(WarGoodsStoreMobaGoodsDataSource.Where((item) => { string[] itemLabels = item.SchemeGoodsInfo.GoodsLabel.Split(charSeparator); if (itemLabels.Length == 0) { Trace.LogWarning("策划检查下物品ID:" + item.GoodsID + ",的标签子类型."); return false; } if (_bFilterGood && EnableGoodsFilter) //如果需要过滤 { if (item.IsFiltered) { return false; } } int confirmCount = 0; int tmpLabelID = -1; //遍历物品所有类型标签数据 for (int i = 0; i < itemLabels.Length; ++i) { if (string.IsNullOrEmpty(itemLabels[i])) { continue; } if (!int.TryParse(itemLabels[i], out tmpLabelID)) { continue; } //判断类型是否在勾选列表里 if (_listGoodsLabelID.Contains(tmpLabelID)) { confirmCount++; } } return confirmCount == _listGoodsLabelID.Count; }).ToObservableList()); }
/// <summary> /// 根据物品类型获取物品数据列表 /// </summary> /// <param name="_nGoodsLabel">物品类型</param> /// <returns></returns> internal ObservableList <UWarGoodsStoreItem> GetWarGoodsStoreItem(string _strGoodsLabelID, bool _bFilterGood = true) { char[] charSeparator = new char[] { MobaSchemesConfig.separator }; //选的是类型子类 if (Convert.ToInt32(_strGoodsLabelID) > 1000) { return(WarGoodsStoreMobaGoodsDataSource.Where((item) => { if (_bFilterGood && EnableGoodsFilter) //如果需要过滤 { if (item.IsFiltered) { return false; } } foreach (string label in item.SchemeGoodsInfo.GoodsLabel.Split(charSeparator)) { if (string.IsNullOrEmpty(label)) { continue; } if (label == _strGoodsLabelID) { return true; } } return false; }).ToObservableList()); } else { int nGoodsLabelID = Convert.ToInt32(_strGoodsLabelID) * 1000; int nItemLabelID = -1; return(WarGoodsStoreMobaGoodsDataSource.Where((item) => { if (_bFilterGood && EnableGoodsFilter) //如果需要过滤 { if (item.IsFiltered) { return false; } } foreach (string label in item.SchemeGoodsInfo.GoodsLabel.Split(charSeparator)) { if (string.IsNullOrEmpty(label)) { continue; } nItemLabelID = Convert.ToInt32(label); if (nItemLabelID > nGoodsLabelID && nItemLabelID < nGoodsLabelID + 1000) { return true; } } return false; }).ToObservableList()); } }