Пример #1
0
    /// <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();
    }
Пример #2
0
 /// <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);
 }
Пример #3
0
    /// <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();
    }