/// <summary> /// 根据物品ID获取物品数据 /// </summary> /// <param name="_nGoodsID"></param> /// <returns></returns> internal UWarGoodsStoreItem GetWarGoodsStoreItem(int _nGoodsID, bool _bFilterGood = true) { UWarGoodsStoreItem tmpGoods = null; foreach (var goods in WarGoodsStoreMobaGoodsDataSource) { if (goods.GoodsID == _nGoodsID) { tmpGoods = goods; break; } } //如果当前战场开启了物品过滤,则过滤一次 if (_bFilterGood && EnableGoodsFilter) { if (tmpGoods != null && tmpGoods.IsFiltered) { tmpGoods = null; } } //if (tmpGoods == null) //{ // Trace.LogWarning("没找到ID:" + _nGoodsID + "的物品"); //} return(tmpGoods); }
/// <summary> /// 添加物品数据 /// </summary> /// <param name="_SchemeGoods"></param> protected void AddGoodsItemDataSource(SSchemeMobaGoods _SchemeGoods) { UWarGoodsStoreItem goods = new UWarGoodsStoreItem(_SchemeGoods); goods.OnPropertyChange += OnDataPropertyChange; m_SchemeMobaGoodsDataSource.Add(goods); }
/// <summary> /// 移除物品数据 /// </summary> /// <param name="_nItem"></param> protected void RemoveGoodsItemDataSource(UWarGoodsStoreItem _nItem) { if (m_SchemeMobaGoodsDataSource.Contains(_nItem)) { _nItem.OnPropertyChange -= OnDataPropertyChange; m_SchemeMobaGoodsDataSource.Remove(_nItem); } }
/// <summary> /// 物品数据某个属性发生改变时触发,前提是这个属性被标记为可触发类型 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnDataPropertyChange(object sender, PropertyChangeEventArgs e) { if (sender is UWarGoodsStoreItem) { UWarGoodsStoreItem item = sender as UWarGoodsStoreItem; if (!m_dicGoodsItemProtertyChange.ContainsKey(item.GoodsID)) { m_dicGoodsItemProtertyChange.Add(item.GoodsID, item); } } }