public JoinGameResult AttemptToJoinHeist(string displayName, out HeistRoles role) { bool success; (success, role) = MyRandom.ChooseRandomItem(GetAvailableRoles()); if (!success) { return(HeistJoinResults.HeistFullResult(displayName)); } return(AttemptToJoinHeist(displayName, role)); }
public JoinGameResult AttemptToJoinHeist(string displayName, HeistRoles role) { if (_heistMembers.ContainsValue(displayName)) { return(HeistJoinResults.AlreadyInHeistResult(displayName)); } if (_heistMembers.ContainsKey(role)) { return(HeistJoinResults.RoleTakenResult(displayName, role)); } _heistMembers.Add(role, displayName); return(HeistJoinResults.SuccessJoinResult(displayName, role)); }
public static JoinGameResult RoleTakenResult(string displayName, HeistRoles role) => new JoinGameResult(false, $"Sorry, {displayName} we already have a {role}!");
public static JoinGameResult SuccessJoinResult(string displayName, HeistRoles role) => new JoinGameResult(true, $"{displayName} joined the heist as the {role}!");
private void JoinHeistByRole(IChatClient chatClient, ChatUser chatUser, HeistRoles role) { JoinGameResult attemptToJoinHeist = _heistGame.AttemptToJoinHeist(chatUser.DisplayName, role); chatClient.SendMessage(attemptToJoinHeist.Message); }