BB.UserLevelClear.Win C# (CSharp) Метод

Win() публичный статический Метод

public static Win ( LevelDef levelDef ) : void
levelDef LevelDef
Результат void
        public static void Win(LevelDef levelDef)
        {
            var oldClearState = Get(levelDef.World, levelDef.Level);
            var newClearState = levelDef.Difficulty == Difficulty.Easy ? LevelClearState.Easy : LevelClearState.Hard;

            if (oldClearState.HasValue)
            {
                var oldClearStateValue = oldClearState.Value;
                if (oldClearStateValue == LevelClearState.Hard && levelDef.Difficulty == Difficulty.Hard)
                {
                    newClearState = LevelClearState.Perfect;
                }
                else if (levelDef.Difficulty == Difficulty.Easy)
                {
                    return;
                }
            }

            Set(levelDef.World, levelDef.Level, newClearState);
            Unlocked = new WorldAndLevel(levelDef.World, levelDef.Level).Next();
        }

Usage Example

        private void Win()
        {
            Debug.Assert(_starsLeft.Count == 0);

            UnregisterGetStar();

            UserLevelClear.Win(_levelDef);

            var nextLevel = _levelDef.Next();

            if (nextLevel.HasValue)
            {
                TransitionManager.TransferToLevel(nextLevel.Value);
            }
            else
            {
                TransitionManager.TransferToLevelSelect(new LevelSelectController.TransitionData(_levelDef.World));
            }
        }