//обновляет счет при старте игры void UpdateScoreOnStart() { int tempScore = 0; switch (ModeGame) { case GameMode.CLASSIC: gameScoreClassicMode = 0; tempScore = gameScoreClassicMode; break; case GameMode.LEVELS: tempScore = CurrentGame.GameScore; LevelRatingChangeEvent?.Invoke(0, 0); //событие изменения рейтинга break; case GameMode.MULTIPLAYER: Debug.LogWarning("UpdateScoreOnStart() - MULTIPLAYER - NO IMPLEMENT!!!"); break; default: Debug.LogWarning("Другой режим игры, счет : " + tempScore); break; } //событие обновления счёта ScoreUpdateEvent?.Invoke(tempScore); }
//сброс рейтинга void RaitingLevelReset() { //75% от общей суммы жизней кирпичей rating.maxRatingScore = (int)(brickController.SumLiveBricks * 0.75f); rating.curRatingScore = 0; rating.rating = 1; if (State != GameState.MENU) { //событие изменения рейтинга LevelRatingChangeEvent?.Invoke(rating.curRatingScore, rating.maxRatingScore); } }
//установка рейтинга void RatingLevelAdd(int score) { rating.curRatingScore += score / StepCount; if (rating.rating < 2 && rating.curRatingScore > rating.maxRatingScore * 0.7f) { rating.rating++; } else if (rating.rating < 3 && rating.curRatingScore > rating.maxRatingScore) { rating.rating++; } if (State != GameState.MENU) { //событие изменения рейтинга LevelRatingChangeEvent?.Invoke(rating.curRatingScore, rating.maxRatingScore); } }