Exemple #1
0
        public void MakeGuess(string guess)
        {
            GuessMade e = new GuessMade(Guid.NewGuid().ToString(), this.Id, guess, this.Level);

            e.Handle(this);
            PublishEvent(e);
            if (CurrentRiddle.Solution.Trim().Equals(guess))
            {
                bool   completed      = this.Level == MaxLevel;
                int    nextLevel      = completed ? this.Level : this.Level + 1;
                IEvent levelSucceeded = new LevelSucceeded(this.Id, this.Level, nextLevel, this.Score + 1 * Level, e.GuessId);
                levelSucceeded.Handle(this);
                PublishEvent(levelSucceeded);
                if (completed)
                {
                    IEvent gameCompleted = new GameCompleted(this.Id);
                    gameCompleted.Handle(this);
                    PublishEvent(gameCompleted);
                }
            }
            else
            {
                int    newScore    = (this.Score - 1) < 0 ? 0 : this.Score - 1;
                IEvent levelFailed = new LevelFailed(this.Id, newScore, e.GuessId);
                levelFailed.Handle(this);
                PublishEvent(levelFailed);
            }
        }
Exemple #2
0
    public void ShowMainMenu()
    {
        LoadMenuLevel();
        GamePanel.SetActive(false);
        PauseMenu.SetActive(false);
        HelpPanel.SetActive(false);
        LevelPickerPanel.SetActive(false);
        LevelPickerContainerContainer.SetActive(false);
        //LevelPickerContainerFunContainer.SetActive(false);
        //LevelPickerContainerCommunityContainer.SetActive(false);
        LevelFailed.SetActive(false);
        LevelComplete.SetActive(false);

        MainMenu.SetActive(true);
        SetCameraPosition(true);

        SetCameraTouchX(false);

        if (MainMenu.activeSelf)
        {
            //if (!EventSystem.current.alreadySelecting)
            EventSystem.current.SetSelectedGameObject(PlayButton);
        }

        _canStartMoving = true;
    }
    /// <summary>
    /// Triggers the Game Over State
    /// </summary>
    private void TriggerLevelFailed()
    {
        //Set it to be nobody's turn
        CurrentTurn = GameTurn.TURN_NONE;

        //Send Level Failed Event
        LevelFailed?.Invoke();
    }
Exemple #4
0
 public void Kill(string message = "Beware of beasts and blackholes!")
 {
     _lives          = 0;
     _canStartMoving = false;
     LevelFailed.transform.Find("Reason").GetComponent <TMPro.TMP_Text>().text = message;
     LevelFailed.SetActive(true);
     EventSystem.current.SetSelectedGameObject(LevelFailedButton);
     Time.timeScale = 0;
 }
Exemple #5
0
 public void HideMainMenu()
 {
     GamePanel.SetActive(false);
     PauseMenu.SetActive(false);
     MainMenu.SetActive(false);
     HelpPanel.SetActive(false);
     LevelPickerPanel.SetActive(false);
     LevelFailed.SetActive(false);
     LevelComplete.SetActive(false);
     SetCameraPosition(false);
 }
Exemple #6
0
        private void Handle(LevelFailed e)
        {
            GameReadModel grm = this._context.Games.FirstOrDefault(game => game.Id == e.Id);

            grm.Score = e.NewScore;

            GuessReadModel sourceGuess = this._context.Guesses.FirstOrDefault(g => g.Id == e.GuessId && g.GuessStatus == "unknown");

            sourceGuess.GuessStatus = "wrong";

            this._context.SaveChanges();
        }
Exemple #7
0
    /// <summary>
    /// Change the current level state
    /// </summary>
    /// <param name="state"></param>
    protected virtual void ChangeLevelState(LevelState newState)
    {
        if (CurrentLevelState == newState)
        {
            return;
        }

        LevelState oldState = CurrentLevelState;

        CurrentLevelState = newState;
        LevelStateChanged?.Invoke(oldState, newState);

        switch (newState)
        {
        case LevelState.Complete:
            LevelStats.time = LevelTime - TimeLeft;
            LevelComplete?.Invoke();
            break;

        case LevelState.Failed:
            LevelFailed?.Invoke();
            break;
        }
    }
Exemple #8
0
 void Start()
 {
     script = GameObject.Find("EndGate").GetComponent <LevelFailed>();
 }
 /// <summary>
 /// Triggers actions to end the current game with a fail state
 /// </summary>
 private void TriggerLevelFailed()
 {
     //Fire Event to end game
     LevelFailed?.Invoke();
 }
 public static void CallLevelFailed()
 {
     LevelFailed?.Invoke();
 }