Beispiel #1
0
    private void ShowSummary()
    {
        m_boardInputController.PauseInput();
        int tilesCount = m_gameplay.ImageProgress.Width * m_gameplay.ImageProgress.Height;

        int   colorsCount = m_referenceImage.Colors.Length;
        float time        = m_gameplay.Time;
        bool  record      =
            !m_gameplay.LevelProgress.IsCompleted ||
            m_gameplay.LevelProgress.BestTime > time;
        float timeFor3Stars = StarRatingCalc.RequiredTimeForStars(3, tilesCount, colorsCount);
        float timeFor2Stars = StarRatingCalc.RequiredTimeForStars(2, tilesCount, colorsCount);
        int   starsCount    = StarRatingCalc.GetStars(time, tilesCount, colorsCount);

        var imageViewData = LevelsScene.CreateImageViewData(m_referenceImage, m_gameplay.BundleId);

        if (imageViewData == null)
        {
            return;
        }

        m_hud.gameObject.SetActive(false);
        // m_summaryView.Show(imageViewData.ImageData.Name, starsCount, time, record, imageViewData.LevelProgress.BestTime, timeFor3Stars, timeFor2Stars);
        m_summaryController.Show(
            imageViewData.ImageData.Name,
            starsCount,
            time,
            record,
            imageViewData.LevelProgress.BestTime,
            timeFor3Stars,
            timeFor2Stars,
            m_gameplay.LevelProgress.GetSteps());

        AudioManager.GetInstance().SoundVictory.Play();
    }
Beispiel #2
0
    public static ImageViewData CreateImageViewData(ImageData imageData, string bundleId)
    {
        var data = new ImageViewData();

        data.ImageData = imageData;

        int totalTiles  = imageData.Width * imageData.Height;
        int totalColors = imageData.Colors.Length;

        var playerProgress = Pix.Game.GetInstance().PlayerProgress;
        var levelProgress  = playerProgress.GetLevelProgress(bundleId, imageData.Id);
        int stars          = StarRatingCalc.GetStars(levelProgress.BestTime, totalTiles, totalColors);

        data.LevelProgress = levelProgress;
        data.Stars         = levelProgress.IsCompleted ? stars : 0;

        return(data);
    }