public ISavable Unequip(int playerId, EquipmentType type, int slot) { var equipped = GetRelation(playerId, type).GetValueOrDefault(slot); if (equipped != null) { context.Remove(equipped); } return(context); }
public ISavable RemoveItem(int playerId, Descriptor item) { var inventoryItem = context.OwnedBys.Find(item.ItemId, playerId); inventoryItem.Count -= item.Count; if (inventoryItem.Count <= 0) { context.Remove(inventoryItem); } else { context.Update(inventoryItem); } return(context); }
public ISavable RemoveItem(Loot loot, Descriptor item) { var inventoryItem = context.InteractionItems.FirstOrDefault(i => i.ItemId == item.ItemId && i.InteractableId == loot.Id); inventoryItem.Count -= item.Count; if (inventoryItem.Count <= 0) { context.Remove(inventoryItem); if (context.InteractionItems.Where(i => i.InteractableId == loot.Id).Count() <= 1) { mediator.GetHandler <GetInteractable>().Delete(loot.Id).Save(); mediator.GetHandler <RoomUpdateAlerter>().Send(loot.RoomId); } } else { context.Update(inventoryItem); } return(context); }
public ISavable Delete(int id) { context.Remove(context.Interactables.Find(id)); return(context); }