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."); } }
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); } } }
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."); } }
// 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; } } }