Exemple #1
0
        public void Save()
        {
            using (ClueLessContext db = new ClueLessContext())
            {
                Database.DataModels.Suggestion suggestion = new Database.DataModels.Suggestion
                {
                    LocationID            = LocationID,
                    PlayerID              = playerID,
                    ConfiguredCharacterID = characterID,
                    ConfiguredWeaponID    = weaponID,
                    IsAccusation          = IsAccusastion
                };
                db.Suggestions.Add(suggestion);

                db.SaveChanges();

                //set the player to be the current responding player
                Database.DataModels.Player author = db.Players.Where(x => x.ID == suggestion.PlayerID).FirstOrDefault();
                author.IsCurrentRespondingPlayer = true;
                db.SaveChanges();

                int firstResponderID = FindNextResponder(suggestion.ID);
                Database.DataModels.Player firstResponder = db.Players.Where(x => x.ID == firstResponderID).FirstOrDefault();
                firstResponder.IsCurrentRespondingPlayer = true;
                author.IsCurrentRespondingPlayer         = false;
                db.SaveChanges();
            }
        }
Exemple #2
0
 public static void MoveCharacter(int playerID, int locationID)
 {
     using (ClueLessContext db = new ClueLessContext())
     {
         Database.DataModels.Player playerToBeMoved = db.Players.Where(x => x.ID == playerID).FirstOrDefault();
         playerToBeMoved.PositionID = locationID;
         db.SaveChanges();
     }
 }
Exemple #3
0
        public bool ValidateAccusation()
        {
            bool isValid = false;

            try
            {
                using (ClueLessContext db = new ClueLessContext())
                {
                    //Get the datbase suggestion object
                    Database.DataModels.Suggestion suggestion = db.Suggestions.Where(x => x.ID == ID).FirstOrDefault();

                    //Get the gameID
                    int gameID = db.Players.Where(x => x.ID == suggestion.PlayerID).Select(x => x.GameID).FirstOrDefault();

                    //Pull the game's solution
                    Database.DataModels.GameSolution solution = db.GameSolutions.Where(x => x.GameID == gameID).FirstOrDefault();

                    if (solution.ConfiguredCharacterID == suggestion.ConfiguredCharacterID &&
                        solution.ConfiguredWeaponID == suggestion.ConfiguredWeaponID &&
                        solution.PositionID == suggestion.LocationID)
                    {
                        isValid = true;
                        //End the Game
                        solution.SolvedByPlayerID = suggestion.PlayerID;
                        db.SaveChanges();

                        Game.ChangeGameStatus(gameID, Database.DataModels.Status.Completed_Solved);
                    }
                    else
                    {
                        //determine the number of active players
                        int activePlayers = db.Players.Where(x => x.GameID == gameID && x.IsActive).Count();
                        if (activePlayers > 2)
                        {
                            //deactivate the player
                            Database.DataModels.Player player = db.Players.Where(x => x.ID == playerID).FirstOrDefault();
                            player.IsActive = false;
                            db.SaveChanges();
                        }
                        else
                        {
                            //end the game
                            Game.ChangeGameStatus(gameID, Database.DataModels.Status.Completed_Unsolved);
                        }
                    }
                }
            }catch (Exception e)
            {
                Console.WriteLine(e.Message + Environment.NewLine + e.StackTrace);
            }
            return(isValid);
        }
Exemple #4
0
        public static void SignalEndofTurn(int playerID)
        {
            using (ClueLessContext db = new ClueLessContext())
            {
                Database.DataModels.Player currentPlayer = db.Players.Where(x => x.ID == playerID).FirstOrDefault();
                int NextPlayerID = FindNextPlayer(currentPlayer.GameID);
                Database.DataModels.Player nextPlayer = db.Players.Where(x => x.ID == NextPlayerID).FirstOrDefault();

                currentPlayer.IsCurrentPlayer = false;
                nextPlayer.IsCurrentPlayer    = true;

                db.SaveChanges();
            }
        }
Exemple #5
0
        public static Clue RespondToSuggestion(int playerId, int suggestionID, int clueID = -1, string ClueType = "")
        {
            Clue responseClue = new Clue();
            SuggestionResponse response;
            ClueLessContext    db = new ClueLessContext();

            if (clueID > 0)
            {
                responseClue = RevealClue(playerId, clueID, ClueType, suggestionID);
                response     = new SuggestionResponse
                {
                    SuggestionID      = suggestionID,
                    Response          = "Revealed Clue",
                    RevealedClueID    = clueID,
                    RevealedClueTable = ClueType
                };
                db.SaveChanges();
            }
            else
            {
                response = new SuggestionResponse
                {
                    SuggestionID = suggestionID,
                    Response     = "Pass"
                };
                db.SaveChanges();

                Database.DataModels.Suggestion suggestion = db.Suggestions.Where(x => x.ID == suggestionID).FirstOrDefault();
                int nextPlayerID = FindNextResponder(suggestionID);
                Database.DataModels.Player currentResponder = db.Players.Where(x => x.ID == suggestion.PlayerID).FirstOrDefault();
                currentResponder.IsCurrentRespondingPlayer = false;
                db.SaveChanges();
                if (nextPlayerID != suggestion.PlayerID)
                {
                    Database.DataModels.Player nextResponder = db.Players.Where(x => x.ID == nextPlayerID).FirstOrDefault();
                    nextResponder.IsCurrentRespondingPlayer = true;
                    db.SaveChanges();
                }
            }

            return(responseClue);
        }
Exemple #6
0
        private static int FindNextResponder(int suggestionID)
        {
            ClueLessContext db = new ClueLessContext();

            Database.DataModels.Suggestion suggestion = db.Suggestions.Where(x => x.ID == suggestionID).FirstOrDefault();
            Database.DataModels.Player     author     = db.Players.Where(x => x.ID == suggestion.PlayerID).FirstOrDefault();
            int nextPlayerID;
            //Pull the list of all the players
            List <Database.DataModels.Player> players = db.Players.Where(x => x.GameID == author.GameID).OrderBy(x => x.ID).ToList();

            //Get the index of the current player
            int currentIndex = players.IndexOf(players.Where(x => x.IsCurrentRespondingPlayer).FirstOrDefault());

            if (currentIndex == players.Count - 1)
            {
                nextPlayerID = players.ElementAt(0).ID;
            }
            else
            {
                nextPlayerID = players.ElementAt(currentIndex + 1).ID;
            }

            return(nextPlayerID);
        }