コード例 #1
0
    public void OnArcWasDrawn(int transitionId, int placeId, bool direction)
    {
        List <Transition> transitions;

        if (game.model.canPerformAddArc(transitionId, placeId))
        {
            transitions = game.model.performAddArc(transitionId, placeId, direction);
            game.view.updateTransitions(transitions);
            int lastLevelCompleted = int.Parse(SceneManager.GetActiveScene().name.Substring("Level_".Length));
            if (lastLevelCompleted == 2)
            {
                // If end is reached, memorize last level completed
                if (game.model.targetPetriNetReached2())
                {
                    StartCoroutine(game.view.winningScreen());
                    Debug.Log("End reached.");
                    MemoryScript memory = GameObject.FindObjectOfType <MemoryScript>();

                    if (lastLevelCompleted > memory.getLastLevelCompleted())
                    {
                        memory.setLastLevelCompleted(lastLevelCompleted);
                    }
                }
            }
        }
        else
        {
            Debug.Log("Transition or place does not exist.");
        }
    }
コード例 #2
0
    public void ResetMemory()
    {
        MemoryScript memory = GameObject.FindObjectOfType <MemoryScript>();

        if (memory != null)
        {
            memory.setLastLevelCompleted(0);
            memory.Save();
            SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().name);
        }
    }
コード例 #3
0
 public void OnAddTokensClicked(int placeId)
 {
     game.model.addTokens(placeId);
     game.view.updatePlaces(game.model.getPlaces());
     // If end is reached, memorize last level completed
     if (game.model.targetPetriNetReached())
     {
         StartCoroutine(game.view.winningScreen());
         Debug.Log("End reached.");
         MemoryScript memory             = GameObject.FindObjectOfType <MemoryScript>();
         int          lastLevelCompleted = int.Parse(SceneManager.GetActiveScene().name.Substring("Level_".Length));
         if (lastLevelCompleted > memory.getLastLevelCompleted())
         {
             memory.setLastLevelCompleted(lastLevelCompleted);
         }
     }
 }
コード例 #4
0
    public void OnTransitionClicked(int transitionId)
    {
        List <Place> places = new List <Place> ();

        // Check if preconditions are filled.
        if (game.model.canPerformFire(transitionId))
        {
            // Effectuate the transition on the model
            places = game.model.performFire(transitionId);
            Debug.Log("Transition fired.");

            //Animation
            game.view.transitionAnimation(transitionId);

            // Update graphics
            game.view.updatePlaces(places);
            game.view.updateTransitions(game.model.getTransitions());
            int lastLevelCompleted = int.Parse(SceneManager.GetActiveScene().name.Substring("Level_".Length));
            if (lastLevelCompleted != 2)
            {
                if ((lastLevelCompleted == 5 && game.model.targetPetriNetReached2()) || lastLevelCompleted != 5)
                {
                    // If end is reached, memorize last level completed
                    if (game.model.targetPetriNetReached())
                    {
                        StartCoroutine(game.view.winningScreen());
                        Debug.Log("End reached.");
                        MemoryScript memory = GameObject.FindObjectOfType <MemoryScript> ();
                        if (lastLevelCompleted > memory.getLastLevelCompleted())
                        {
                            memory.setLastLevelCompleted(lastLevelCompleted);
                        }
                    }
                }
            }
        }
        else
        {
            Debug.Log("Transition cannot be fired.");
        }
    }