/// <summary> /// 添加备忘录 /// </summary> public void AddItem(string content) { AddItemContent = content; if (_model != null) { _model.memoContentList.Add(content); } OnAddItemEvent?.Invoke(); }
public bool AddItem(ItemSlot item, out List <Item> PreviousItems) { PreviousItems = new List <Item>(); for (int i = 0; i < EquipmentSlots.Length; i++) { if (EquipmentSlots[i].CanRecieveItem(item.Item)) { PreviousItems.Add((EquipableItem)EquipmentSlots[i].Item); RemoveItem(PreviousItems); EquipmentSlots[i].Item = item.Item; EquipmentSlots[i].Amount = item.Amount; OnAddItemEvent?.Invoke((EquipableItem)EquipmentSlots[i].Item); return(true); } } return(false); }
//public bool AddItem(EquipableItem item, int amount, out List<Item> PreviousItems) //{ // PreviousItems = new List<Item>(); // var target = EquipmentSlots.FirstOrDefault(s => s.EquipmentType == item.EquipmentType); // if (target != null) // { // PreviousItems.Add((EquipableItem)target.Item); // RemoveItem(PreviousItems); // target.Item = item; // target.Amount = amount; // OnAddItemEvent?.Invoke((EquipableItem)target.Item); // return true; // } // return false; //} public Item AddItem(EquipableItem item, int amount, out List <Item> PreviousItems) { EquipmentSlot shieldSlot = EquipmentSlots.FirstOrDefault(s => s.EquipmentType == EquipmentType.Shield); EquipmentSlot MainHandSlot = EquipmentSlots.FirstOrDefault(s => s.EquipmentType == EquipmentType.MainHand); PreviousItems = new List <Item>(); Item MainPreviousItem = null; EquipmentSlot MainTarget; List <EquipmentSlot> targets = new List <EquipmentSlot>(); if (item as Weapon != null) { switch (((Weapon)item).weaponType) { case Weapon.WeaponType.MainHand: MainTarget = MainHandSlot; if (shieldSlot.Item as Weapon != null && ((Weapon)shieldSlot.Item).weaponType == Weapon.WeaponType.Bow) { targets.Add(shieldSlot); PreviousItems.Add(shieldSlot.Item); } break; case Weapon.WeaponType.OffHand: MainTarget = shieldSlot; if (MainHandSlot.Item != null) { if (((Weapon)MainHandSlot.Item).weaponType == Weapon.WeaponType.TwoHand || ((Weapon)MainHandSlot.Item).weaponType == Weapon.WeaponType.Staff) { targets.Add(MainHandSlot); PreviousItems.Add(MainHandSlot.Item); } } break; case Weapon.WeaponType.TwoHand: MainTarget = MainHandSlot; if (shieldSlot.Item != null) { targets.Add(shieldSlot); PreviousItems.Add(shieldSlot.Item); } break; case Weapon.WeaponType.Bow: MainTarget = shieldSlot; if (MainHandSlot.Item != null) { targets.Add(MainHandSlot); PreviousItems.Add(MainHandSlot.Item); } break; case Weapon.WeaponType.Staff: MainTarget = MainHandSlot; if (shieldSlot.Item != null) { targets.Add(shieldSlot); PreviousItems.Add(shieldSlot.Item); } break; default: MainTarget = EquipmentSlots.FirstOrDefault(s => s.EquipmentType == item.EquipmentType); break; } } else { MainTarget = EquipmentSlots.FirstOrDefault(s => s.EquipmentType == item.EquipmentType); } if (MainTarget != null) { MainPreviousItem = MainTarget.Item; RemoveItem(MainTarget); MainTarget.Item = item; MainTarget.Amount = amount; } RemoveItem(targets); OnAddItemEvent?.Invoke((EquipableItem)MainTarget.Item); return(MainPreviousItem); }