public void Apply(NGoodsInfo goodsInfo, GoodsDefine goodsDefine) { GoodsLimit goodsLimit = null; if (GoodsLimits.TryGetValue(goodsInfo.Id, out goodsLimit)) { if (goodsLimit.Count + goodsInfo.Count <= goodsDefine.Limit) { goodsLimit.Add(goodsInfo.Count); } } else if (goodsInfo.Count <= goodsDefine.Limit) { TGoodsLimit limit = new TGoodsLimit() { GoodsID = goodsInfo.Id, Purchased = (short)goodsInfo.Count, TCharacter = Owner.Data }; Owner.Data.GoodsLimits.Add(limit); GoodsLimits.Add(goodsInfo.Id, new GoodsLimit(limit)); } Owner.statusManager.AddStatus(StatusType.Goodslimit, StatusAction.Add, goodsInfo.Id, goodsInfo.Count); }
public int GetLimit(int id) { GoodsLimit goodsLimit = null; if (GoodsLimits.TryGetValue(id, out goodsLimit)) { return(goodsLimit.Count); } return(0); }
public bool CanBuy(NGoodsInfo goodsInfo, GoodsDefine goodsDefine) { if (goodsDefine.LimitType == GoodsLimitType.None) { return(true); } GoodsLimit goodsLimit = null; if (GoodsLimits.TryGetValue(goodsInfo.Id, out goodsLimit)) { if (goodsLimit.Count + goodsInfo.Count <= goodsDefine.Limit) { return(true); } } if (goodsInfo.Count <= goodsDefine.Limit) { return(true); } return(false); }