private void InitLevelButton(LevelButton button, Level level) { button.SetLevel(level); var clearState = UserLevelClear.Get(World, level); if (clearState.HasValue) { button.SetAsClear(clearState.Value); } else { var unlocked = UserLevelClear.Unlocked; var shouldLock = true; if (unlocked.HasValue) { var unlockedValue = unlocked.Value; var isCurrentUnlocked = unlockedValue.World == World && unlockedValue.Level == level; shouldLock = !isCurrentUnlocked; } button.SetLock(shouldLock); button.SetAsNotCleared(); } }