예제 #1
0
    // This is called once the user hits play. Before the first frame
    void Awake()
    {
        CURSOR = GameObject.FindObjectOfType <Cursor>();
        MOVE_MENU_CONTROLLER = GameObject.FindObjectOfType <MoveMenuController>();
        MAP_GENERATOR        = GameObject.FindObjectOfType <MapGenerator>();
        CAMERA_CONTROLLER    = GameObject.FindObjectOfType <CameraController>();
        TOP_BAR           = GameObject.FindObjectOfType <TopBar>();
        LAST_TIME_CANCEL  = Time.time;
        LAST_TIME_CONFIRM = Time.time;
        LAST_TIME_UP      = Time.time;
        LAST_TIME_DOWN    = Time.time;
        LAST_TIME_LEFT    = Time.time;
        LAST_TIME_RIGHT   = Time.time;
        characters        = new ArrayList();

        enemyPositions    = new ArrayList();
        summonPositions   = new ArrayList();
        moveTilePositions = new ArrayList();
        charsInRange      = new ArrayList();
        players           = new Player[2];
        gameOver          = false;

        //get an understanding of the map
        for (int i = 0; i < players.Length; i++)
        {
            players[i] = new Player(i + 1);
            Summoner summoner = makeSummoner(i + 1);
            players[i].setSummoner(summoner.GetComponent <Summoner>());
            players[i].setGamePad(new Gamepad("keyboard"));
        }

        for (int i = players.Length; i < MAX_NUM_PLAYERS; i++)
        {
            GameObject.Destroy(GameObject.Find("PlayerDisplay" + (i + 1)));
        }
        switch (players.Length)
        {
        case 3:
            GameObject bar3 = GameObject.Find("PlayerDisplay1");
            bar3 = bar3.transform.Find("P1Bar").gameObject;
            bar3.transform.localScale = new Vector2(bar3.transform.localScale.x, 100);
            break;

        case 2:
            for (int i = 0; i < players.Length; i++)
            {
                GameObject bar2 = GameObject.Find("PlayerDisplay" + (i + 1));
                bar2 = bar2.transform.Find("P" + (i + 1) + "Bar").gameObject;
                bar2.transform.localScale = new Vector2(bar2.transform.localScale.x, 100);
            }
            break;

        default:
            break;
        }
    }
예제 #2
0
    public void Update()
    {
        if (BossPrespawn.GetComponent <Boss>().IsDied&& !PlayerWin && !PlayerLose)
        {
            AudioSourceLevelControl.PlayOneShot(AudioSourceLevelControl.clip);
            AudioSourceCameraAR.clip = DefaultClip;
            AudioSourceCameraAR.Play();
            StartCoroutine(RequestWinScene());
        }

        if (PlayerHit.HealthNow <= 0 && !PlayerLose && !PlayerWin)
        {
            StartCoroutine(RequestLoseScene());
        }

        if (!PlayerLose && !PlayerWin)
        {
            AliveCount = 0;

            foreach (GameObject Minion in MinionList)
            {
                if (Minion.activeInHierarchy)
                {
                    AliveCount++;
                }
            }

            if (AliveCount <= 0 && TotalSummonCount > MinionList.Count)
            {
                float IntervalLeft = Mathf.Infinity;

                foreach (GameObject Summoner in SummonerList)
                {
                    IntervalLeft = Mathf.Min(IntervalLeft, Summoner.GetComponent <Summoner>().GetIntervalLeft());
                }

                foreach (GameObject Summoner in SummonerList)
                {
                    Summoner.GetComponent <Summoner>().SpawnFaster(IntervalLeft);
                }
            }
            else if (AliveCount <= 0 && TotalSummonCount >= MinionList.Count && !EnterBossStage)
            {
                EnterBossStage = true;
                StartCoroutine(BossStage());
            }
        }
    }