public void Update(Input.InputState inputState) { selectedLevel = null; float fCol = (inputState.MousePos.X - levelBasePos.X) / levelSpacing.X; int Col = (int)fCol; if (Col < 0 || Col >= chapters.Count) { hovering = null; hoveringStar = false; return; } List<LevelState> levels = chapters[Col]; float fRow = (inputState.MousePos.Y + levelSpacing.Y/3 - levelBasePos.Y) / levelSpacing.Y; int Row = (int)fRow; if (Row < 0 || Row >= levels.Count) { hovering = null; hoveringStar = false; return; } hovering = levels[Row]; hoveringStar = (fCol - Col) > 0.1f; if (inputState.WasMouseLeftJustPressed()) { selectedLevel = hovering; } }
public void StartLevel(LevelState levelState) { currentLevel = levelState; showingWinScreen = null; if (levelState != null) { gameStates = new List<GameState>(); GameState newState = new GameState(levelState.script); gameStateOnSkip = newState.GetGameStateOnSkip(); gameStates.Add(newState); selectionState = new UISelectionState(newState); } }
public LevelState GetNextLevel(LevelState currentLevel) { bool returnNext = false; foreach (List<LevelState> chapter in chapters) { foreach (LevelState level in chapter) { if (returnNext) { return level; } else if (currentLevel == level) { returnNext = true; } } } return null; }
public void ReturnToMap(bool won) { gameStates = null; if (won && currentLevel != null) { currentLevel.done = true; if (currentLevel.script.unlocksCard != null) currentLevel.script.unlocksCard.unlocked = true; showingWinScreen = currentLevel; } else { showingWinScreen = null; } currentLevel = null; }