/// <summary> /// 卸下装备更新数据 /// </summary> /// <param name="_item"></param> public static void UnloadEquip(Item _item) { EquipModel gm = EquipList.Find(x => x.Id == _item.item_ID); EquipList.Remove(gm); Item item = DataMgr.GetInstance().GetItemByID(gm.Id); BuyItem(item); UpdateUser(); SaveEquip(); }
/// <summary> /// 在物品列表中减少指定type和index的物品num个 /// </summary> /// <param name="type"></param> /// <param name="index"></param> /// <returns>使用成功返回true不存在该物品,或者数量不够返回false</returns> public bool DropGoods(int type, int index, int num) { if (type >= 1 && type <= 7) { // 装备 if (EquipList.Where(m => m.Type == type && m.Index == index).FirstOrDefault() is BaseGoods equip) //有物品 { if (equip.GoodsNum < num) { return(false); } else if (equip.GoodsNum == num) { equip.GoodsNum = 0; EquipList.Remove(equip); } else { equip.AddGoodsNum(-num); } return(true); } else //没有物品 { return(false); } } else if (type >= 8 && type <= 14) { // 物品 if (GoodsList.Where(m => m.Type == type && m.Index == index).FirstOrDefault() is BaseGoods goods) //有物品 { if (goods.GoodsNum < num) { return(false); } else if (goods.GoodsNum == num) { goods.GoodsNum = 0; GoodsList.Remove(goods); } else { goods.AddGoodsNum(-num); } return(true); } else //没有物品 { return(false); } } return(false); }
/// <summary> /// 使用物品时装备栏更新和人物属性更新 /// </summary> /// <param name="_item">要使用的物品</param> public static void UseItem(Item _item) { if (equipList == null) { equipList = new List <EquipModel>(); } GoodsModel gm = GoodsList.Find(x => x.Id == _item.item_ID); //在背包找到这个物品 if (gm.Num <= 1) //使用了这个物品,背包要移除这个物品 { GoodsList.Remove(gm); //如果背包栏这个物品数据为1则移除这个物品 } else { gm.Num -= 1; //如果这个物品数据大于1则数量减一 } if (_item.equipment_Type != Equipment_Type.Null) //判断这个物品是不是装备 { //判断背包栏是不是有这个类型的武器,类型是穿戴在武器穿戴的位置 EquipModel em = EquipList.Find(x => x.Equipment_Type == _item.equipment_Type); if (em != null) //如果这个位置已经有物体就要替换 { em.Value += 1; //如果这个位置有物体了,让这个物体的数量加1 if (em.Value > 1) //看这个位置的物体数量是不是1,如果大于一则移除这个物体 { EquipList.Remove(em); //在武器数据中移除这个数据 Item item = DataMgr.GetInstance().GetItemByID(em.Id); //在数据库中找到移除的这个物体 BuyItem(item); //将他保存回背包数据中 } } //给背包数据添加这个新的要使用的物品,达到替换的效果 equipList.Add(new EquipModel() { Id = _item.item_ID, Equipment_Type = _item.equipment_Type, Value = 1 }); } else { if (saveUser[0].Hp < saveUser[0].MaxHp) { saveUser[0].Hp += _item.hp; } } SaveEquip(); }