private void BuildMainMenu()
    {
        Title = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f, Screen.height - 70f, 0), Quaternion.identity);
        Title.transform.SetParent(MainMenu.transform);
        Title.GetComponent <Text>().text = "Gyroll";
        List <Action> buttonActions = new List <Action>();

        buttonActions.Add(director.StartGame);
        StageButton PlayButton = new StageButton(Screen.width / 2f, Screen.height / 2f + 20, StageButtonPrefab, "Play", buttonActions, Canvas);

        PlayButton.actions.AddListener(PlayButton.Deactivate);
        buttons.Add(PlayButton);
        PlayButton.attached.transform.SetParent(MainMenu.transform);

        buttonActions.Clear();
        //buttonActions.Add(director.Empty);
        buttonActions.Add(GoToSettings);
        StageButton SettingsButton = new StageButton(Screen.width / 2f, Screen.height / 2f - 30, StageButtonPrefab, "Settings", buttonActions, Canvas);

        buttons.Add(SettingsButton);
        SettingsButton.attached.transform.SetParent(MainMenu.transform);

        buttonActions.Clear();
        buttonActions.Add(director.QuitGame);
        StageButton QuitButton = new StageButton(Screen.width / 2f, Screen.height / 2f - 80, StageButtonPrefab, "Quit", buttonActions, Canvas);

        buttons.Add(QuitButton);
        QuitButton.attached.transform.SetParent(MainMenu.transform);
    }
Exemple #2
0
    private void MoveStageButton()
    {
        Vector2 moveVector = Vector2.zero;

        moveVector.x = 4.0f;

        if (GameManager.instance.touchManager.SwipeDirection.x < 0 && stages[stages.Count - 1].gameObject.transform.position.x > 1.0f)
        {
            foreach (StageButton stage in stages)
            {
                stage.gameObject.transform.Translate(-moveVector);
            }
            StartCoroutine(ButtonSizeUpDown(0, curStage));
            curStageNumber++;
            curStage = stages[curStageNumber];
            StartCoroutine(ButtonSizeUpDown(1, curStage));
        }
        else if (GameManager.instance.touchManager.SwipeDirection.x > 0 && stages[0].gameObject.transform.position.x < -1.0f)
        {
            foreach (StageButton stage in stages)
            {
                stage.gameObject.transform.Translate(moveVector);
            }
            StartCoroutine(ButtonSizeUpDown(0, curStage));
            curStageNumber--;
            curStage = stages[curStageNumber];
            StartCoroutine(ButtonSizeUpDown(1, curStage));
        }
    }
 void GenerateStageButtons()
 {
     foreach (StageInfo s in Stages)
     {
         StageButton sb = Instantiate(StageBtn, StagesRoot).GetComponent <StageButton>();
         sb.SetData(s);
     }
 }
Exemple #4
0
    //
    private void SetStageBtns(bool tween = true)
    {
        if (bm == null)
        {
            bm = FindObjectOfType <ButtonManager>(true);
            bm.SetPanel(currentDifficulty);
        }
        //
        { // 0 : locked, 1 : unlock Effect, 2 : unlocked, 3 : clear
            for (int i = 0; i < bm.stagePanels.Count; ++i)
            {
                // Child[0] : Panel_DifficultyText, Child[1] : STAGE
                Transform stage = bm.stagePanels[i].GetChild(1);
                // Activate first stage
                StageButton first = stage.GetChild(1).GetComponentInChildren <StageButton>();
                first.Activate(false);
                // stageBtn children order : 0(inf), 1(first), 2 ~ 6
                for (int j = 0; j < stage.childCount; ++j)
                {
                    int         btnState = saveData.stageBtnState[i][j];
                    StageButton sb       = stage.GetChild(j).GetComponentInChildren <StageButton>();
                    if (tween == false)
                    { // call by SceneChange
                        switch (btnState)
                        {
                        case 0:     // locked
                        case 1:     // unlock Effect
                            break;

                        case 2:     // unlocked
                        case 3:     // clear
                            sb.Activate(false);
                            break;
                        }
                    }
                    else
                    { // call by Clear Sequence
                        switch (btnState)
                        {
                        case 0:     // locked
                            break;

                        case 1:     // unlock Effect
                            sb.Activate(true);
                            saveData.stageBtnState[i][j] = 2;
                            Save();
                            break;

                        case 2:     // unlocked
                        case 3:     // clear
                            break;
                        }
                    }
                }
            }
        }
    }
Exemple #5
0
 private void SetStageButtons()
 {
     _stageButtons = new List <StageButton>(_stageNumber);
     for (int i = 0; i < _stageNumber; i++)
     {
         StageButton stageButtonScript = Instantiate(stageButtonPrefab).GetComponent <StageButton>();
         stageButtonScript.transform.parent = stageSelectZone.transform;
         stageButtonScript.Initialize(i, new Vector2(xAxises[i % 2], yAxisStartPos + yAxisDuration * i),
                                      i == DataController.Instance.SelectStage);
         _stageButtons.Add(stageButtonScript);
     }
 }
Exemple #6
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        //
        StageButton btn = (StageButton)target;

        //
        if (GUILayout.Button("Activate"))
        {
            btn.Activate();
        }
        if (GUILayout.Button("DeActivate"))
        {
            btn.DeActivate();
        }
    }
Exemple #7
0
    private void Start()
    {
        StartCoroutine(ImageUpdate());

        blackBackgroundSpriteRenderer = blackBackground.GetComponent <SpriteRenderer>();
        StartCoroutine(GameManager.instance.fadeManager.SpriteFadeOutCoroutine(blackBackgroundSpriteRenderer, 1.0f));

        createAfterImageBlock = gameObject.GetComponent <CreateAfterImageBlock>();

        curStageNumber = 0;
        curStage       = stages[curStageNumber];
        curStage.gameObject.transform.localScale += new Vector3(0.4f, 0.4f, 0.4f);
        musicVolumeSlider.value = GameManager.instance.soundManager.Volume;

        createAfterImageBlock.StartCreateAfterImage();
    }
Exemple #8
0
    private IEnumerator ButtonSizeUpDown(int sign, StageButton stage)
    {
        Vector3 changeScale = Vector3.one;

        changeScale /= 10;
        for (int i = 0; i < 4; i++)
        {
            if (sign.Equals(0))
            {
                stage.gameObject.transform.localScale -= changeScale;
            }
            else if (sign.Equals(1))
            {
                stage.gameObject.transform.localScale += changeScale;
            }
            yield return(YieldInstructionCache.WaitFrame);
        }
    }
    public void MakeWinScreen(float remainingTime, float initialTime)
    {
        WinScreenTitle = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f, Screen.height - 70f, 0), Quaternion.identity);
        WinScreenTitle.transform.SetParent(MainMenu.transform);
        WinScreenTitle.GetComponent <Text>().text = "You win!";

        int score = (int)Math.Floor(1000 * remainingTime * Math.Max(Director.Difficulty, 1) / initialTime);

        ScoreDisplay = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f, Screen.height - 110f, 0), Quaternion.identity);
        ScoreDisplay.transform.SetParent(MainMenu.transform);
        ScoreDisplay.GetComponent <Text>().text = "Score: " + score.ToString();

        List <Action> buttonActions = new List <Action>();

        buttonActions.Add(director.ToMainMenu);
        StageButton NextButton = new StageButton(Screen.width / 2f, Screen.height / 2f - 40, StageButtonPrefab, "Next", buttonActions, Canvas);

        buttons.Add(NextButton);
        NextButton.attached.transform.SetParent(MainMenu.transform);
    }
Exemple #10
0
    private void InitializeStageButtons()
    {
        Vector3 startingPosition = transform.Find("StageButtonsStartPos").localPosition;

        for (int i = 0; i < stagesCount; i++)
        {
            GameObject  newButton   = (GameObject)GameObject.Instantiate(buttonPrefab);
            StageButton stageButton = newButton.GetComponent <StageButton>();

            stageButton.transform.SetParent(transform);
            stageButton.transform.localPosition = new Vector3(
                startingPosition.x + (i % stagesPerLine) * xOffset,
                startingPosition.y + Mathf.FloorToInt(i / stagesPerLine) * yOffset,
                startingPosition.z
                );

            stageButton.transform.localScale = Vector3.one;

            stageButton.InitStageNum(i + 1);
        }
    }
    // Use this for initialization
    void Start()
    {
        Reserve("StageButton", 30);

        for (int i = 0; i < GameInfo.GetInstance.MaxStage; i++)
        {
            float      width  = ((i % 5) - 2) * 200;
            float      height = ((i / 5) - 2) * -110;
            GameObject obj    = GetObject("StageButton");
            obj.transform.localPosition = new Vector3(width, height, 0);
            obj.transform.localScale    = Vector3.one;
            StageButton button = obj.GetComponent <StageButton>();
            if (GameInfo.GetInstance.GetStage(i) == 1)
            {
                button.Init(i, true);
            }
            else
            {
                button.Init(i, false);
            }
        }
    }
    public void BuildSettingsMenu()
    {
        SettingsTitle = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f, Screen.height - 30f, 0), Quaternion.identity);
        SettingsTitle.transform.SetParent(SettingsMenu.transform);
        SettingsTitle.GetComponent <Text>().text = "Settings";

        List <Action> buttonActions = new List <Action>();

        buttonActions.Add(GoToMainMenu);
        StageButton BackButton = new StageButton(Screen.width / 2f, Screen.height / 2f - 130, StageButtonPrefab, "Back", buttonActions, Canvas);

        buttons.Add(BackButton);
        BackButton.attached.transform.SetParent(SettingsMenu.transform);

        buttonActions.Clear();
        buttonActions.Add(Director.Recalibrate);
        StageButton CalibrateButton = new StageButton(Screen.width / 2f, Screen.height / 2f - 40, StageButtonPrefab, "Calibrate", buttonActions, Canvas);

        buttons.Add(CalibrateButton);
        CalibrateButton.attached.transform.SetParent(SettingsMenu.transform);

        /*buttonActions.Clear();
         * buttonActions.Add(director.Empty);
         * StageButton PortsButton = new StageButton(Screen.width / 2f, Screen.height / 2f - 80, StageButtonPrefab, "Serial Port", buttonActions, Canvas);
         * buttons.Add(PortsButton);
         * PortsButton.attached.transform.SetParent(SettingsMenu.transform);*/

        GyroTitle = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f - 100, Screen.height / 2f - 80, 0), Quaternion.identity);
        GyroTitle.transform.SetParent(SettingsMenu.transform);
        GyroTitle.GetComponent <Text>().text = "Use gyro?";

        buttonActions.Clear();
        buttonActions.Add(director.ToggleGyro);
        StageButton ToggleButton = new StageButton(Screen.width / 2f, Screen.height / 2f - 80, PlusButtonPrefab, "Y", buttonActions, Canvas);

        GyroButtonText = ToggleButton.attached.GetComponentInChildren <Text>();
        buttons.Add(ToggleButton);
        ToggleButton.attached.transform.SetParent(SettingsMenu.transform);
        if (Director.useGyro)
        {
            GyroButtonText.text = "Y";
        }
        else
        {
            GyroButtonText.text = "N";
        }

        buttonActions.Clear();
        buttonActions.Add(director.IncreaseDifficulty);
        StageButton DiffPlus = new StageButton(Screen.width / 2f + 100, Screen.height / 2f + 5, PlusButtonPrefab, "+", buttonActions, Canvas);

        buttons.Add(DiffPlus);
        DiffPlus.attached.transform.SetParent(SettingsMenu.transform);

        buttonActions.Clear();
        buttonActions.Add(director.DecreaseDifficulty);
        StageButton DiffMinus = new StageButton(Screen.width / 2f - 100, Screen.height / 2f + 5, PlusButtonPrefab, "-", buttonActions, Canvas);

        buttons.Add(DiffMinus);
        DiffMinus.attached.transform.SetParent(SettingsMenu.transform);

        DiffTitle = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f - 200, Screen.height / 2f + 5, 0), Quaternion.identity);
        DiffTitle.transform.SetParent(SettingsMenu.transform);
        DiffTitle.GetComponent <Text>().text = "Difficulty";

        DiffAmount = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f, Screen.height / 2f + 5, 0), Quaternion.identity);
        DiffAmount.transform.SetParent(SettingsMenu.transform);
        DiffAmount.GetComponent <Text>().text = Director.Difficulty.ToString();

        buttonActions.Clear();
        buttonActions.Add(director.IncreaseTimer);
        StageButton TimerPlus = new StageButton(Screen.width / 2f + 100, Screen.height / 2f + 50, PlusButtonPrefab, "+", buttonActions, Canvas);

        buttons.Add(TimerPlus);
        TimerPlus.attached.transform.SetParent(SettingsMenu.transform);

        buttonActions.Clear();
        buttonActions.Add(director.DecreaseTimer);
        StageButton TimerMinus = new StageButton(Screen.width / 2f - 100, Screen.height / 2f + 50, PlusButtonPrefab, "-", buttonActions, Canvas);

        buttons.Add(TimerMinus);
        TimerMinus.attached.transform.SetParent(SettingsMenu.transform);

        TimerTitle = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f - 200, Screen.height / 2f + 50, 0), Quaternion.identity);
        TimerTitle.transform.SetParent(SettingsMenu.transform);
        TimerTitle.GetComponent <Text>().text = "Timer";

        TimerAmount = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f, Screen.height / 2f + 50, 0), Quaternion.identity);
        TimerAmount.transform.SetParent(SettingsMenu.transform);
        TimerAmount.GetComponent <Text>().text = director.TimeLimit.ToString();
        //
        buttonActions.Clear();
        buttonActions.Add(director.IncreaseSensitivity);
        StageButton SensPlus = new StageButton(Screen.width / 2f + 100, Screen.height / 2f + 95, PlusButtonPrefab, "+", buttonActions, Canvas);

        buttons.Add(SensPlus);
        SensPlus.attached.transform.SetParent(SettingsMenu.transform);

        buttonActions.Clear();
        buttonActions.Add(director.DecreaseSensitivity);
        StageButton SensMinus = new StageButton(Screen.width / 2f - 100, Screen.height / 2f + 95, PlusButtonPrefab, "-", buttonActions, Canvas);

        buttons.Add(SensMinus);
        SensMinus.attached.transform.SetParent(SettingsMenu.transform);

        SensTitle = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f - 200, Screen.height / 2f + 95, 0), Quaternion.identity);
        SensTitle.transform.SetParent(SettingsMenu.transform);
        SensTitle.GetComponent <Text>().text = "Sensitivity";

        SensAmount = UnityEngine.Object.Instantiate(TitlePrefab, new Vector3(Screen.width / 2f, Screen.height / 2f + 95, 0), Quaternion.identity);
        SensAmount.transform.SetParent(SettingsMenu.transform);
        SensAmount.GetComponent <Text>().text = Director.gyroSensitivity.ToString();
    }
Exemple #13
0
    private void Start()
    {
        //make buttons to call TargetCreature function which sends upgradeoption[temp] as a parameter.
        for (int i = 0; i < PublicLevel.friendlyTypeCreatureNum; i++)
        {
            upgradeButton[i] = GameObject.Find("UpgradeButton" + (i + 1)).GetComponent <Button>();
            int temp = i; //used temp since just using i makes every buttons to send last i value as a parameter
            upgradeButton[i].GetComponent <Button>().onClick.AddListener(delegate { TargetCreature(upgradeOption[temp]); });
        }

        //make buttons toi call ChangeCreature fucntion
        for (int i = 0; i < PublicLevel.usingCreatureNum; i++)
        {
            locationButton[i] = GameObject.Find("Location" + (i + 1)).GetComponent <Button>();
            int temp = i;
            locationButton[temp].onClick.AddListener(delegate { ChangeCreature(temp); });
        }

        unlockPopup.SetActive(false);
        //UI upgradShop is not shown until upgradeShop is active
        upgradeShop.SetActive(false);

        //Try to find GameDataControl
        gameDataControl = GameObject.Find("GameDataControl");

        //if no gameDataControl exists, instantiate one new gameDataControl
        if (gameDataControl == null)
        {
            gameDataControl      = Instantiate(new GameObject(), transform.position, Quaternion.identity);
            gameDataControl.name = "GameDataControl";
            gameData             = gameDataControl.AddComponent <GameData>();

            loadedData = gameData.LoadGameData();


            //load when StageSelect scene was first loaded. If there's no loadedData, make a default setting for player - level, win, creature type using.
            if (loadedData == null)
            {
                PublicLevel.SetPlayerLevel(1);
                PublicLevel.SetPlayerWin(0);
                PublicLevel.SetCorn(0);
                for (int i = 1; i < 6; i++)
                {
                    PublicLevel.unlockType[i, 0] = true;
                }
                for (int i = 0; i < PublicLevel.friendlyTypeCreatureNum; i++)
                {
                    PublicLevel.friendlyType[i] = new Vector2Int(i, 0);
                }
            }
            else
            {
                PublicLevel.SetPlayerLevel(loadedData.GetPlayerLevel());
                PublicLevel.SetPlayerWin(loadedData.GetPlayerWin());
                PublicLevel.SetCorn(loadedData.GetCorn());

                for (int i = 0; i < PublicLevel.usingCreatureNum; i++)
                {
                    PublicLevel.friendlyType[i] = new Vector2Int(loadedData.GetFriendlyType()[i].x, loadedData.GetFriendlyType()[i].y);
                }

                for (int i = 0; i < PublicLevel.friendlyTypeCreatureNum; i++)
                {
                    for (int k = 0; k < PublicLevel.friendlyTypeUpgradeNum; k++)
                    {
                        PublicLevel.unlockType[i, k] = loadedData.GetUnlockType()[i, k];
                    }
                }
            }

            //fill frienldyCreatureList based on loaded/default friendlyType
            for (int i = 0; i < PublicLevel.friendlyTypeCreatureNum; i++)
            {
                PublicLevel.friendlyCreatureList[i] = PublicLevel.friendlyPrefab[PublicLevel.friendlyType[i].x, PublicLevel.friendlyType[i].y];

                PublicLevel.friendlyImageList[i] = PublicLevel.friendlyImage[PublicLevel.friendlyType[i].x, PublicLevel.friendlyType[i].y];
            }
        }

        cornText.text = PublicLevel.GetCorn().ToString();

        stageButton = GameObject.FindGameObjectsWithTag("StageButton");
        foreach (GameObject stageBtn in stageButton)
        {
            StageButton stageCheck = stageBtn.GetComponent <StageButton>();
            if (stageCheck.GetStageLevel() > PublicLevel.GetPlayerLevel())
            {
                stageBtn.GetComponent <Image>().color         = Color.red;
                stageBtn.GetComponent <Button>().interactable = false;
            }
            else if (stageCheck.GetStageLevel() == PublicLevel.GetPlayerLevel())
            {
                stageBtn.GetComponent <Image>().color = Color.blue;
            }
        }

        //save data
        gameData.SaveGameData();
    }