Beispiel #1
0
        public void DeleteRoom(string roomName)
        {
            for (var i = 0; i < Rooms.Count; i++)
            {
                if (Rooms[i].Name == roomName)
                {
                    Rooms.RemoveAt(i);
                    Logger.Log(Severity.Action, "Room " + roomName + " deleted successfully!");
                    return;
                }
            }
            var e = new IllegalRoomNameException("Room " + roomName + " does not exist!");

            Logger.Log(Severity.Error, e.Message);
            throw e;
        }
Beispiel #2
0
        public IRoom GetRoom(string roomName)
        {
            IRoom roomFound = null;

            for (var i = 0; i < Rooms.Count && roomFound == null; i++)
            {
                if (Rooms[i].Name == roomName)
                {
                    roomFound = Rooms[i];
                }
            }
            if (roomFound != null)
            {
                return(roomFound);
            }
            var e = new IllegalRoomNameException("Error in GetRoom: Room " + roomName + " doesn't exist!");

            Logger.Log(Severity.Error, e.Message);
            throw e;
        }
Beispiel #3
0
        public IRoom RemoveUserFromRoom(string username, string roomName, string playerName)
        {
            var room = GetRoom(roomName);

            //IUser user = UserLogic.GetLoggedInUser(username, Users);

            if (room != null)
            {
                room.ExitRoom(playerName);
                var user = Users.First(u => u.Item1.Username == username).Item1;
                UserLogic.UpdateDB();
            }
            else
            {
                var e =
                    new IllegalRoomNameException("Error in RemoveUserFromRoom: Room " + roomName + " doesn't exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            return(room);
        }
Beispiel #4
0
        public Room CreateRoom(string roomName, string username, string creator, GamePreferences gp)
        {
            var user = UserLogic.GetLoggedInUser(username, Users);

            if (user != null)
            {
                var p = new Player(creator, user);
                if (IsRoomExist(roomName))
                {
                    var err = new IllegalRoomNameException("ERROR in CreateRoom: room name already taken!");
                    Logger.Log(Severity.Error, err.Message);
                    throw err;
                }
                var newRoom = new Room(roomName, p, gp);
                Rooms.Add(newRoom);
                Logger.Log(Severity.Action, "Room " + newRoom.Name + " created successfully by " + creator + "!");
                return(newRoom);
            }
            var e = new IllegalUsernameException("ERROR in CreateRoom: Username does not exist!");

            Logger.Log(Severity.Error, e.Message);
            throw e;
        }
Beispiel #5
0
        public IRoom AddUserToRoom(string username, string roomName, bool isSpectator, string playerName = "")
        {
            var room = GetRoom(roomName);
            var user = UserLogic.GetLoggedInUser(username, Users);

            if (room != null)
            {
                if (isSpectator)
                {
                    room.Spectate(user);
                }
                else
                {
                    return(room.AddPlayer(new Player(playerName, user)));
                }
            }
            else
            {
                var e = new IllegalRoomNameException("Error in AddUserToRoom: Room " + roomName + " doesn't exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            return(room);
        }
Beispiel #6
0
        public Room(string name, IPlayer creator, GamePreferences gamePreferences)
        {
            if (!Regex.IsMatch(name, "^[a-zA-Z0-9 ]*$"))
            {
                Exception e = new IllegalRoomNameException("Room name contains illegal characters");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            if (name.Length > MaxNameLength || name.Length < MinNameLength)
            {
                Exception e = new IllegalRoomNameException("Room name must be between 4 and 15 characters long");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            //chipPolicy- amount of chips eace player is given, 0== all in.
            //minBet- the minimum bet
            //buy-in- the minimum chip to join the game

            if (creator.User.ChipsAmount < gamePreferences.BuyInPolicy)

            {
                var e = new Exception("Player chips amount is low the the buy in");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            creator.User.ChipsAmount -= gamePreferences.BuyInPolicy;

            if (creator.User.ChipsAmount < gamePreferences.MinBet ||
                creator.User.ChipsAmount < gamePreferences.ChipPolicy && gamePreferences.ChipPolicy > 0)
            {
                creator.User.ChipsAmount += GamePreferences.BuyInPolicy;
                var e = new Exception("Player chips amount is too low to join");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            if (gamePreferences.GameType == Gametype.Limit && creator.User.ChipsAmount < 6 * gamePreferences.MinBet)
            {
                creator.User.ChipsAmount += GamePreferences.BuyInPolicy;
                var e = new Exception("Limit mode, player chips amount is too low to join");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            if (gamePreferences.ChipPolicy == 0)
            {
                creator.ChipsAmount      = creator.User.ChipsAmount;
                creator.User.ChipsAmount = 0;
            }

            else
            {
                creator.ChipsAmount       = gamePreferences.ChipPolicy;
                creator.User.ChipsAmount -= gamePreferences.ChipPolicy;
            }

            GamePreferences = gamePreferences;
            Players.Add(creator);
            Name   = name;
            League = creator.User.League;

            HandLogic = new HandLogic();
            Logger.Log(Severity.Action, "New room was created room  name=" + name + " rank=" + League);
        }