Example #1
0
    public void processClick()
    {
        levelCube = GameObject.FindGameObjectWithTag("Cube");
        bool findSphere = false;
        var  cubeScale  = levelCube.transform.localScale;

        allSpheres = GameObject.FindGameObjectsWithTag("Sphere");
        MoveToCube result      = null;
        Color      buttonColor = gameObject.GetComponent <Image>().color;

        foreach (var sphere in allSpheres)
        {
            Color sphereColor = sphere.GetComponent <Renderer>().material.color;
            if (sphereColor == buttonColor)
            {
                if (sphere.transform.localScale == cubeScale)
                {
                    findSphere = true;
                    sphere.GetComponent <MoveToCube>().SetEndPoint(levelCube.transform.localPosition);
                    sphere.GetComponent <MoveToCube>().Move();
                    sphere.GetComponent <MoveToCube>().state = GameController.LEVEL_STATE.WIN;
                    result = sphere.GetComponent <MoveToCube>();
                    controller.EndLevel(GameController.LEVEL_STATE.WIN, result);
                    break;
                }
                else
                {
                    sphere.GetComponent <MoveToCube>().SetEndPoint(levelCube.transform.localPosition);
                    sphere.GetComponent <MoveToCube>().Move();
                    sphere.GetComponent <MoveToCube>().state = GameController.LEVEL_STATE.LOSE;
                    result = sphere.GetComponent <MoveToCube>();
                    break;
                }
            }
        }

        if (!findSphere)
        {
            controller.EndLevel(GameController.LEVEL_STATE.LOSE, result);
        }
    }
Example #2
0
    private void Update()
    {
        if (timer == null)
        {
            return;
        }

        if (choosen != null && !isLevelEnd)
        {
            if (!choosen.IsOver())
            {
                return;
            }
            if (endLevelState == LEVEL_STATE.WIN)
            {
                ChangeCubeColor(new Color(0, 255, 0, 0.5f));
            }
            if (endLevelState == LEVEL_STATE.LOSE)
            {
                float shapeScale = choosen.transform.localScale.x;
                float cubeScale  = gameSceneCreator.GetLevelCube().transform.localScale.x;
                if (shapeScale > cubeScale)
                {
                    GameObject cube = gameSceneCreator.GetLevelCube();
                    broken = Instantiate(gameSceneCreator.brokenCubePrefab);
                    broken.transform.position   = cube.transform.position;
                    broken.transform.localScale = cube.transform.localScale;
                    Destroy(cube);
                }
                if (shapeScale < cubeScale)
                {
                    ChangeCubeColor(new Color(255, 0, 0, 0.5f));
                }
            }

            Debug.Log("Is over: " + choosen.IsOver());
            isLevelEnd = true;
            PlayEndLevelSound(endLevelState);
            if (endLevelState == LEVEL_STATE.WIN)
            {
                IncreaseCurrentLevelStage();
            }
            else
            {
                currentLevel = 0;
            }
            UI.ActiveteEndLevelUI(SetupEndLevelText(endLevelState), SetupEndLevelTextColor(endLevelState));
            StartNextLevel();
            choosen = null;
        }
        else
        {
            if (!timeout)
            {
                if (timer.GetCurrentTime() <= 0 && !isLevelEnd)
                {
                    timeout = true;
                    EndLevel(LEVEL_STATE.LOSE, null);
                    currentLevel = 0;
                    UI.ActiveteEndLevelUI(SetupEndLevelText(endLevelState), SetupEndLevelTextColor(endLevelState));
                    StartNextLevel();
                    choosen = null;
                }
            }
        }
    }
Example #3
0
 public void EndLevel(LEVEL_STATE state, MoveToCube choosenOne)
 {
     timer.StopTick();
     choosen       = choosenOne;
     endLevelState = state;
 }