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; }
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; }
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); }
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; }
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); }
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); }