예제 #1
0
    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);
    }
예제 #2
0
    /// <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;
        }
    }
예제 #3
0
    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);
    }
예제 #4
0
        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));
        }