public static int CreateRoom(string name, int map, string password = "") { FreeRoom freeRoom = GetFreeRoom(); int roomID = -1; GameObject mapGo = Resources.Load <GameObject>("Maps/" + map); if (mapGo) { GameObject mapInst = (GameObject)Instantiate(mapGo, freeRoom.position, Quaternion.identity); Room room = mapInst.GetComponent <Room>(); room.roomID = freeRoom.id; roomID = freeRoom.id; room._name = name; room.mapID = map; if (password != "") { room.SetRoomPassword(password); } RoomsLoad.Add(room); room.SpawnMob(); } return(roomID); }
/// <summary> /// Destroy room by ID /// </summary> /// <param name="itemID"></param> /// <param name="roomID"></param> public static void DestroyItemInRoom(int itemID, int roomID) { Room room = GetRoom(roomID); if (room) { room.RemoveItem(itemID); FreeRoom free = new FreeRoom(); free.id = room.roomID; free.position = room.transform.position; freeRoom.Add(free); RoomsList[roomID] = null; } }
static FreeRoom GetFreeRoom() { FreeRoom free = new FreeRoom(); if (freeRoom.Count != 0) { free = freeRoom[0]; freeRoom.RemoveAt(0); } else { nextRoomPosition = nextRoomPosition + roomUp; free.id = RoomsLoad.Count; free.position = nextRoomPosition; } return(free); }
public IActionResult CheckIsFreeRoom(DateTime start, DateTime end) { DateTime now = DateTime.Now; DateTime today = now.AddDays(-1); var list101Reserved = _dbContext.HotelReservations.Where(u => u.NumberOfRoom == 101).ToList(); var list102Reserved = _dbContext.HotelReservations.Where(u => u.NumberOfRoom == 102).ToList(); var list201Reserved = _dbContext.HotelReservations.Where(u => u.NumberOfRoom == 201).ToList(); var list202Reserved = _dbContext.HotelReservations.Where(u => u.NumberOfRoom == 202).ToList(); var free = new FreeRoom(); free.StartReserv = start; free.EndReserv = end; free.CountDays = (end - start).Days + 1; if (start >= today && end > now && start < end) { free.IsCorrectDate = true; bool free101 = true; foreach (var i in list101Reserved) { if ((start < i.StartReserv && end <= i.StartReserv) || (start >= i.EndReserv && end > i.EndReserv)) { free101 = true; } else { free101 = false; break; } } if (free101) { free.ListFreeRooms.Add(101); free.ListInfoFreeRooms.Add(_dbContext.HotelInformations.FirstOrDefault(u => u.NumberOfRoom == 101)); } bool free102 = true; foreach (var i in list102Reserved) { if ((start < i.StartReserv && end <= i.StartReserv) || (start >= i.EndReserv && end > i.EndReserv)) { free102 = true; } else { free102 = false; break; } } if (free102) { free.ListFreeRooms.Add(102); free.ListInfoFreeRooms.Add(_dbContext.HotelInformations.FirstOrDefault(u => u.NumberOfRoom == 102)); } bool free201 = true; foreach (var i in list201Reserved) { if ((start < i.StartReserv && end <= i.StartReserv) || (start >= i.EndReserv && end > i.EndReserv)) { free201 = true; } else { free201 = false; break; } } if (free201) { free.ListFreeRooms.Add(201); free.ListInfoFreeRooms.Add(_dbContext.HotelInformations.FirstOrDefault(u => u.NumberOfRoom == 201)); } bool free202 = true; foreach (var i in list202Reserved) { if ((start < i.StartReserv && end <= i.StartReserv) || (start >= i.EndReserv && end > i.EndReserv)) { free202 = true; } else { free202 = false; break; } } if (free202) { free.ListFreeRooms.Add(202); free.ListInfoFreeRooms.Add(_dbContext.HotelInformations.FirstOrDefault(u => u.NumberOfRoom == 202)); } if (free.ListFreeRooms == null) { free.RoomEngaged = true; } } else { free.IsCorrectDate = false; free.ErrorText = "Не корректные даты бронирования"; } return(Json(free)); }