public virtual bool CanReserveFreeSpace(int resourceID, Character character) { return(RequiresEmptying == false && UnreservedFreeSpace > 0 && FreeSpaceReservations.Contains(character) == false && Building.Prototype.RestrictedResources.Contains(resourceID) == false); }
public virtual bool ReserveFreeSpace(int resourceID, Character character) { if (CanReserveFreeSpace(resourceID, character)) { FreeSpaceReservations.Add(character); return(true); } else { return(false); } }
public virtual bool RemoveFreeSpaceReservation(Character character) { if (FreeSpaceReservations.Contains(character)) { FreeSpaceReservations.Remove(character); return(true); } else { return(false); } }
public virtual bool TransferToStorage(int resourceID, Character character) { if (FreeSpaceReservations.Contains(character) && character.Resource == resourceID) { FreeSpaceReservations.Remove(character); if (Resources.ContainsKey(resourceID)) { Resources[resourceID] = Resources[resourceID] + 1; } else { Resources[resourceID] = 1; } CurrentResourceCount++; character.RemoveResource(); character.ReservationUsed(); Changed = true; return(true); } return(false); }