예제 #1
0
파일: Arena.cs 프로젝트: Bjurne/Pinball
    private void Start()
    {
        arenas = new ArenaPropsSet[arenaPropsSets.Length];
        for (int i = 0; i < arenaPropsSets.Length; i++)
        {
            arenas[i] = Instantiate <ArenaPropsSet>(arenaPropsSets[i], transform);
            arenas[i].SetActive(false);
        }

        if (currentlyActiveArena != null)
        {
            var newGameObject = Instantiate(currentlyActiveArena, transform);
            currentlyActiveArena = newGameObject.GetComponent <ArenaPropsSet>();
            //currentlyActiveArena = arenas[Array.IndexOf(arenaPropsSets, currentlyActiveArena)];
            foreach (ArenaHole hole in currentlyActiveArena.GetComponentsInChildren <ArenaHole>())
            {
                hole.HoleType = ArenaHoleType.EndlessDebugHole;
            }
        }
        else
        {
            currentlyActiveArena = arenas[0];
        }
        //var startingArenaIndex = Array.Find(arenaPropsSets, p => currentlyActiveArena) != null ? Array.IndexOf(arenaPropsSets, currentlyActiveArena) : 0;
        //currentlyActiveArena = arenas[startingArenaIndex];
        currentlyActiveArena.SetActive(true);
        currentlyActiveArena.SpawnBall();

        UIEvents.Instance.OnStockpileUpdated?.Invoke(numberOfBallsInStockpile);

        ArenaControlBoard.Instance.OnBroadcastButtonPressed += OnButtonPressed;
        initialized = true;
        //ArenaControlBoard.Instance.OnBroadcastButtonReleased += OnButtonReleased;
    }
예제 #2
0
파일: Arena.cs 프로젝트: Bjurne/Pinball
    public void NextArena()
    {
        currentlyActiveArena.SetActive(false);
        var nextArenaIndex = Array.IndexOf(arenas, currentlyActiveArena) + 1;

        if (nextArenaIndex > arenas.Length - 1)
        {
            nextArenaIndex = 0;
        }
        currentlyActiveArena = arenas[nextArenaIndex];
        currentlyActiveArena.SetActive(true);
    }
예제 #3
0
파일: Arena.cs 프로젝트: Bjurne/Pinball
    public void PreviousArena()
    {
        currentlyActiveArena.SetActive(false);
        var previousArenaIndex = Array.IndexOf(arenas, currentlyActiveArena) - 1;

        if (previousArenaIndex < 0)
        {
            previousArenaIndex = 0;
        }
        //previousArenaIndex = arenas.Length - 1;
        currentlyActiveArena = arenas[previousArenaIndex];
        currentlyActiveArena.SetActive(true);
    }