/// <summary>
        /// Возвращает очки в соответствии с трэндами
        /// </summary>
        private static int GetTrandsPoints(NewTrackModel track)
        {
            var result = track.Theme == Trands.TrandTheme ? MAX_TRAND_POINTS : 0;

            result += track.Style == Trands.TrandStyle ? MAX_TRAND_POINTS : 0;
            result += track.Autotune && Trands.AutotuneTrand ? MAX_TRAND_POINTS : 0;
            return(result);
        }
        /// <summary>
        /// Возвращает количество очков за фит
        /// </summary>
        private static int GetFeatPoints(NewTrackModel track)
        {
            if (track.Feat == null)
            {
                return(0);
            }
            var playerFans = PlayerManager.GetInfo().Fans;

            if (Math.Abs(playerFans - track.Feat.Fans) < GetFansInaccurancy(playerFans))
            {
                return(20);
            }
            return(playerFans < track.Feat.Fans ? MAX_CATEGORY_POINTS * 2 : 10);
        }
예제 #3
0
 /// <summary>
 /// Собирает выбранные параметры в модель трэка
 /// </summary>
 protected override void ParseActionModel()
 {
     if (_track == null)
     {
         _track = new NewTrackModel();
     }
     _track.Name       = TrackName.text;
     _track.Theme      = EnumExt.GetFromDescription <TrackTheme>(TrackTheme.captionText.text);
     _track.Style      = EnumExt.GetFromDescription <TrackStyle>(TrackStyle.captionText.text);
     _track.TextSourse = EnumExt.GetFromDescription <TextSourse>(TrackText.captionText.text);
     _track.BitSource  = EnumExt.GetFromDescription <BitSource>(TrackBit.captionText.text);
     _track.Feat       = RappersManager.GetByName(Feat.captionText.text);
     _track.Autotune   = AutotuneToggle.isOn;
 }
        /// <summary>
        /// Анализировать успешность трека
        /// </summary>
        public static SuccessGrade AnalyzeTrack(NewTrackModel track)
        {
            if (RandomizeGrade())
            {
                return(GetRandomGrade());
            }
            var playerSkills = PlayerManager.GetSkills();
            var points       = playerSkills.Flow * 2;

            points += track.TextSourse == TextSourse.Self ? 2 * playerSkills.Vocabulary : MAX_CATEGORY_POINTS;
            points += GetPointsForBit(track.BitSource, playerSkills);
            points += GetTrandsPoints(track);
            points += GetFeatPoints(track);
            return(GetGrade(points));
        }
예제 #5
0
 /// <summary>
 /// Выводит информацию о последнем треке
 /// </summary>
 private void ShowTrackInfo(NewTrackModel lastTrack)
 {
     TrackName.text        = lastTrack.Name;
     TrackTheme.text       = $"Тематика: {lastTrack.Theme.GetDescription()}";
     TrackStyle.text       = $"Стиль: {lastTrack.Style.GetDescription()}";
     SuccessGradeText.text = $"Успешность: {lastTrack.Grade.GetDescription()}";
     if (lastTrack.Feat != null)
     {
         FeatInfo.gameObject.SetActive(true);
         FeatInfo.GetComponentInChildren <Text>().text = $"Совместно с {lastTrack.Feat.Name}";
     }
     else
     {
         FeatInfo.gameObject.SetActive(false);
     }
 }
예제 #6
0
        /// <summary>
        /// Возвращает очки за трэк
        /// </summary>
        private static int GetTrackPoints(NewTrackModel track)
        {
            switch (track.Grade)
            {
            case SuccessGrade.Lowest:
                return(15);

            case SuccessGrade.Low:
                return(30);

            case SuccessGrade.Middle:
                return(40);

            case SuccessGrade.Hight:
                return(50);

            case SuccessGrade.Highest:
                return(60);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }