//Save HighScore in to DB public Task <int> SaveHighScoreAsync(UserScoresModel hs) { if (hs.ScoreID != 0) { return(_database.UpdateAsync(hs)); } else { return(_database.InsertAsync(hs)); } }
public async Task <UserScoresModel> GetUserScores(string userId) { var userScores = await _scoresRepo.WhereAsync(s => s.UserId == userId); var res = new UserScoresModel() { UserId = userId }; foreach (var score in userScores) { res.Scores.Add(new NameScoreModel(score.Game, score.Value)); } return(res); }
async void GetActiveUserInfo() { //Getting Active User UserModel MyUser = await App.Database.GetActiveUserAsync(); UserNameEtry.Text = MyUser.UserName; //User Stats //User High Score If the User has Played a Game if (await App.Database.CheckUserHS(MyUser.UserID) == false) { BestScoreLbl.Text = "Best Score: 0"; } else { UserScoresModel Hscore = await App.Database.GetBestHighScoreByUserAsync(MyUser.UserID); BestScoreLbl.Text = "Best Score: " + Hscore.Score; } FruitLbl.Text = "Total Fruit Eaten: " + MyUser.FruitEaten; ChiliLbl.Text = "Total Chilies Eaten: " + MyUser.ChiliesEaten; }
} //Moving2Plyrs ENDS //Snake Game Logic 1Plyr public async void GameOn1Plyr(string MapName, Label ScoreLbl, BoxView Box, Image GameOverImg, Button[] EndGameMenuBtns, Label[] EndGameMenuTitles, Label[] EndGameMenuResults) { //Length starts at 0 int CurrLength = 0; //Chilie Cool Down int ChiliCoolDown = 0; //Placing Snake Head in Center of Grid int headY = gridY / 2; int headX = gridX / 2; //String to contain Direction tail follows string tailDir = ""; //Tails Point int tailY = headY + 5; int tailX = headX; //Sets Up Snake with start length of 5 for (int i = 0; i < 5; i++) { if (i == 0) { //Places Snake Head TheGrid[((headY + i) * gridX) + headX].Img.Source = SnakeColor + "SnakeHead.png"; } else if (i == 4) //Places Snake Tail { TheGrid[((headY + i) * gridX) + headX].Img.Source = SnakeColor + "SnakeTail.png"; } else //Places Snake Bodies { TheGrid[((headY + i) * gridX) + headX].Img.Source = SnakeColor + "SnakeBody.png"; } TheGrid[((headY + i) * gridX) + headX].SafeBlock = false; tailDir += "U"; } //Gives Users a Chance to Get Ready await Task.Delay(3000); //Moving Snake while Alive while (SnakeAlive == true && GameActive == true) { //Moving Snake var Snake1Info = await MoveSnake(1, headY, headX, tailDir, tailY, tailX, CurrLength, ChiliCoolDown); //Updating data headY = Snake1Info.Item1; headX = Snake1Info.Item2; tailDir = Snake1Info.Item3; tailY = Snake1Info.Item4; tailX = Snake1Info.Item5; CurrLength = Snake1Info.Item6; ChiliCoolDown = Snake1Info.Item7; //Displaying new Score ScoreLbl.Text = "Score: " + (CurrLength * 5); } ScoreLbl.Text = ""; //Moving Snake while Alive ENDS //Gives Users a Chance to See Result await Task.Delay(1000); //Showing GameOver Box Box.IsVisible = true; GameOverImg.IsVisible = true; EndGameMenuResults[0].Text = (CurrLength + 5) + "m"; EndGameMenuResults[1].Text = Convert.ToString(CurrLength); EndGameMenuResults[2].Text = Convert.ToString(ChiliNum); EndGameMenuResults[3].Text = Convert.ToString(CurrLength * 5); //Making Visible for (int i = 0; i < EndGameMenuBtns.Length; i++) { EndGameMenuBtns[i].IsVisible = true; } for (int i = 0; i < EndGameMenuTitles.Length; i++) { EndGameMenuTitles[i].IsVisible = true; } for (int i = 0; i < EndGameMenuResults.Length - 1; i++) { EndGameMenuResults[i].IsVisible = true; } //Showing GameOver Box ENDS //Adds Stats to DB //Adds/Updates Map High Score int MapID = await GetMapID(MapName); UserModel MyUser = await App.Database.GetActiveUserAsync(); if (await App.Database.CheckUserMapHS(MyUser.UserID, MapID) == true) { UserScoresModel MyCurrHScore = await App.Database.GetBestHighScoreByUserMapAsync(MyUser.UserID, MapID); //Only Updates Score if New Score is Better if (MyCurrHScore.Score < (CurrLength * 5)) { await App.Database.SaveHighScoreAsync(new UserScoresModel { ScoreID = MyCurrHScore.ScoreID, Score = (CurrLength * 5), MapID = MapID, UserID = MyUser.UserID, UserName = MyUser.UserName }); EndGameMenuResults[4].IsVisible = true; } } //No Previous Score in DB else { await App.Database.SaveHighScoreAsync(new UserScoresModel { ScoreID = 0, Score = CurrLength * 5, MapID = MapID, UserID = MyUser.UserID, UserName = MyUser.UserName }); EndGameMenuResults[4].IsVisible = true; } //Updates User await App.Database.SaveUserAsync(new UserModel { UserID = MyUser.UserID, UserName = MyUser.UserName, FruitEaten = (MyUser.FruitEaten + CurrLength), ChiliesEaten = (MyUser.ChiliesEaten + ChiliNum), Active = 1, SnakeActive = "" }); }