コード例 #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
ファイル: MenuScript.cs プロジェクト: TsaplinIA/PracticeGame
    void Start()
    {
        memory = Camera.main.GetComponent <MemoryScript>();
        if (!memory.GetAccess(0))
        {
            memory.OpenAccess(0);
        }
        coinsText = coins.GetComponent <Text>();
        select    = memory.GetSelect();
        for (int i = 0; i <= isAccessArr.Length - 1; i++) // get and use ships info
        {
            priseObjs[i].GetComponent <Text>().text = "" + priseArr[i];
            bool isAccess = memory.GetAccess(i);
            isAccessArr[i] = isAccess;

            if (isAccess)
            {
                imgs[i].GetComponent <SpriteRenderer>().color = new Vector4(1, 1, 1, 1);
                priseObjs[i].SetActive(false);
                backgroundArr[i].GetComponent <SpriteRenderer>().color = new Vector4(1, 1, 1, 1);
            }
            else
            {
                imgs[i].GetComponent <SpriteRenderer>().color = new Vector4(0, 0, 0, 1);
                priseObjs[i].SetActive(true);
                backgroundArr[i].GetComponent <SpriteRenderer>().color = new Vector4(0.5f, 0.5f, 0.5f, 1);
            }

            if (i == select)
            {
                backgroundArr[i].GetComponent <SpriteRenderer>().color = new Vector4(0, 1, 1, 1);
            }
        }
    }
コード例 #3
0
    // Use this for initialization
    void Start()
    {
        MemoryScript memory = GameObject.FindObjectOfType <MemoryScript>();

        if (memory == null)
        {
            memory = Instantiate <MemoryScript>(memoryPrefab.GetComponent <MemoryScript>());
        }
    }
コード例 #4
0
 void Start()
 {
     memory                = Camera.main.GetComponent <MemoryScript>();
     starSystem            = stars.GetComponent <ParticleSystem>();
     starSystem.startSpeed = MIN_SPEED;//set star speed
     playerTransform       = player.transform;
     player.GetComponent <SpriteRenderer>().sprite = playerTextures[memory.GetSelect()];
     SpawnEnemy();
 }
コード例 #5
0
    void OnApplicationQuit()
    {
        MemoryScript memory = GameObject.FindObjectOfType <MemoryScript>();

        if (memory != null)
        {
            memory.Save();
        }
    }
コード例 #6
0
    public void ResetMemory()
    {
        MemoryScript memory = GameObject.FindObjectOfType <MemoryScript>();

        if (memory != null)
        {
            memory.setLastLevelCompleted(0);
            memory.Save();
            SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().name);
        }
    }
コード例 #7
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);
         }
     }
 }
コード例 #8
0
    void Start()
    {
        // Initialize level ending using another scene
        string       sceneName = SceneManager.GetActiveScene().name;
        MemoryScript memory    = GameObject.FindObjectOfType <MemoryScript>();

        if (!sceneName.EndsWith("_end") && !memory.getLoaded())
        {
            // Scene used to load end scene and then load back the real scene
            string endSceneName = sceneName + "_end";
            memory.setLoaded(true);
            SceneManager.LoadSceneAsync(endSceneName);
            SceneManager.LoadSceneAsync(sceneName);
        }
        else if (sceneName.EndsWith("_end"))
        {
            //Scene used only for setting the end
            memory.setEndPlaces(game.view.getPlaces());
            memory.setEndTransitions(game.view.getTransitions());
        }
        else
        {
            //Scene that we use to play
            memory.setLoaded(false);
        }


        // Initialise game model using the scene
        game.model.initialisation(game.view.getPlaces(), game.view.getTransitions(), memory.getEndPlaces(), memory.getEndTransitions());

        /*string str = "";
        *  foreach (Transition t in tr) {
        *       str += t.id;
        *       str+=" preconditions: ";
        *       foreach(Arc pre in t.preconditions){
        *               str+= (pre.idPlace + ", " + pre.coeff+"; ");
        *       }
        *       str+= (" postconditions ");
        *       foreach(Arc post in t.postconditions){
        *               str+= (post.idPlace + ", " + post.coeff+"; ");
        *       }
        *  }
        *  Debug.Log (str);*/
        game.view.updateTransitions(game.model.getTransitions());
    }
コード例 #9
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.");
        }
    }
コード例 #10
0
ファイル: LevelsMenu.cs プロジェクト: lebotlan/petri-net-game
    // Use this for initialization
    void Start()
    {
        RectTransform rt = GetComponent <RectTransform>();

        Vector3[] v = new Vector3[4];
        rt.GetLocalCorners(v);
        float width  = v[2][0] * 2;
        float height = v[2][1] * 2;
        float limit  = Mathf.Min(new float[] { width, height });

        // Menu button
        rt = transform.GetChild(1).GetComponent <RectTransform>();
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, limit / 16, limit / 8);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, limit / 16, limit / 8);

        // SUB PANEL
        rt = transform.GetChild(2).GetComponent <RectTransform>();
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0.1f * height, 0.8f * height);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0.1f * width, 0.8f * width);

        rt.GetLocalCorners(v);
        width  = v[2][0] * 2;
        height = v[2][1] * 2;
        limit  = Mathf.Min(new float[] { width, height });
        // Sub panel button - music
        rt = transform.GetChild(2).GetChild(0).GetComponent <RectTransform>();
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, height / 3 - limit / 8, limit / 4);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, width / 4 - limit / 8, limit / 4);

        // Sub panel button - volume
        rt = transform.GetChild(2).GetChild(1).GetComponent <RectTransform>();
        RectTransform volumeRt = rt;

        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, height / 3 - limit / 8, limit / 4);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 2 * width / 4 - limit / 8, limit / 4);

        // Sub panel button - trash
        rt = transform.GetChild(2).GetChild(2).GetComponent <RectTransform>();
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, height / 3 - limit / 8, limit / 4);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 3 * width / 4 - limit / 10, limit / 5);

        // Sub panel button - exit
        rt = transform.GetChild(2).GetChild(3).GetComponent <RectTransform>();
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, limit / 10, limit / 10);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, limit / 8, limit / 10);

        // Sub panel button - quit
        rt = transform.GetChild(2).GetChild(4).GetComponent <RectTransform>();
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 3 * height / 4 - limit / 16, limit / 8);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, width / 2 - limit / 4, limit / 2);


        // Sub panel button - volume - slider
        volumeRt.GetLocalCorners(v);
        width  = v[2][0] * 2;
        height = v[2][1] * 2;

        rt = transform.GetChild(2).GetChild(1).GetChild(0).GetComponent <RectTransform>();
        rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0.4f * height);
        rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, height + height / 5, height / 4);

        // Handle size
        transform.GetChild(2).GetChild(1).GetChild(0).GetChild(2).GetChild(0).GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0.5f * height);
        transform.GetChild(2).GetChild(1).GetChild(0).GetChild(2).GetChild(0).GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 0.4f * width);

        MemoryScript memory = GameObject.FindObjectOfType <MemoryScript>();
        GameObject   holder = GameObject.Find("LevelButtons");

        Button[] levelButtons = holder.GetComponentsInChildren <Button> ();
        //GameObject[] levelButtons = GameObject.FindGameObjectsWithTag ("LevelButton");
        Debug.Log(memory);
        int lastLevelCompleted = memory.getLastLevelCompleted();

        Debug.Log(lastLevelCompleted);
        for (int i = 0; i < levelButtons.Length; i++)
        {
            if (i + 1 > lastLevelCompleted + 1)
            {
                levelButtons[i].GetComponent <Image> ().sprite = locker;
                levelButtons [i].interactable = false;
            }
        }
    }
コード例 #11
0
 void Start()
 {
     coinsText = coinsTextObj.GetComponent <Text>();
     memory    = Camera.main.GetComponent <MemoryScript>();
 }