Exemplo n.º 1
0
    private void Start()
    {
        if (!File.Exists(Application.persistentDataPath + "/Save/Save.xml"))
        {
            Debug.Log("FFFF");
            CreateXML();
        }

        if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("mainScene") ||
            SceneManager.GetActiveScene() == SceneManager.GetSceneByName("SaphireFloors1") ||
            SceneManager.GetActiveScene() == SceneManager.GetSceneByName("EmeraldFloors1") ||
            SceneManager.GetActiveScene() == SceneManager.GetSceneByName("GoldenFloors1") ||
            SceneManager.GetActiveScene() == SceneManager.GetSceneByName("rubyFloors1") ||
            SceneManager.GetActiveScene() == SceneManager.GetSceneByName("SilverFloors1") ||
            SceneManager.GetActiveScene() == SceneManager.GetSceneByName("TopazFloors1"))
        {
            block        = FindObjectOfType <Block>();
            perfectTimer = GameObject.FindGameObjectWithTag("PerfectTimer").GetComponent <PerfectTimer>();
            GameObject scoreLine = GameObject.FindGameObjectWithTag("ScoreLine");
            scoreLine.GetComponent <Slider>().value = 0;
        }


        if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Piramid1") ||
            SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Piramid2"))
        {
            blockSelection = GameObject.FindGameObjectWithTag("BlockSelection");
            okButton       = GameObject.FindGameObjectWithTag("OK");
            cancelButton   = GameObject.FindGameObjectWithTag("Cancel");

            sample  = GameObject.FindGameObjectWithTag("Sample");
            piramid = GameObject.FindGameObjectWithTag("Piramid");

            sample.SetActive(true);
            if (Player.score != 0)
            {
                sample.GetComponent <Platform>().Score            = Player.score;
                sample.GetComponent <Platform>().BlockMaterialNum = Player.currentBlockMaterialNum;
                int goodEdgesCount = CalcGENbyScore();
                sample.GetComponent <Platform>().SetRandomGoodEdgePositions(goodEdgesCount);
                sample.GetComponent <Platform>().InsertBlock();
                piramid.GetComponent <Piramid>().RefreshNeighborEdgesCount();
                //piramid.GetComponent<Piramid>().HighlightBlocks(sample.GetComponent<Platform>().BlockMaterialNum);
            }

            piramid.GetComponent <Piramid>().TurnHighLightsOFF();
            piramid.GetComponent <Piramid>().HighlightBlocks(sample.GetComponent <Platform>().BlockMaterialNum);
            ShowSelectBlockUI();
            if (isChoosingPlatform)
            {
                HideSelectBlockUI();
            }
            Debug.Log("start");
        }
        CalcMaxScore();
    }
Exemplo n.º 2
0
    public void CatchBlock()
    {
        Vector3 leftCorner = transform.position;

        leftCorner.x -= catchSkill;
        Vector3 rightCorner = transform.position;

        rightCorner.x += catchSkill;
        Collider2D findedCollider = Physics2D.OverlapArea(leftCorner, rightCorner);

        if (findedCollider != null && findedCollider.GetComponent <Block>())
        {
            Block newBlock = findedCollider.GetComponent <Block>();
            if (newBlock.rigidBodyBlock.velocity.y <= 0)
            {
                isKeep = true;
                int coef = 1;
                if (tag.Equals("LastBuilder"))
                {
                    Player.isChoosingPlatform = true;
                    SceneManager.LoadScene("Piramid1");
                }

                block = newBlock;
                if (System.Math.Abs(newBlock.transform.position.x - transform.position.x) < catchSkill / 2 && block.ParentBuilder != this)
                {
                    Debug.Log("Add time for Perfect Timer");
                    Player.perfectTimer.Timer = 7;
                    block.SetStrandartMaskPosition();
                    block.blockSpriteActive.SetActive(true);
                    block.blockSpriteActiveBack.SetActive(true);
                    block.transform.rotation = transform.rotation;
                    coef = 2;
                }

                if (block.ParentBuilder != this)
                {
                    player.LevelNum++;
                    if (Player.perfectTimer.Timer > 0)
                    {
                        Player.PerfectCoef++;
                    }
                    Player.score += coef * Player.PerfectCoef;
                    GameObject scoreLine = GameObject.FindGameObjectWithTag("ScoreLine");
                    float      val       = (float)(Player.score) / ((float)(Player.currentMaxScore) / 2F);
                    scoreLine.GetComponent <Slider>().value = val;
                }
                block.ParentBuilder = this;

                Debug.Log("Is Catched");
                string blockOffset = "Block offset to builder by " + (System.Math.Abs(newBlock.transform.position.x - transform.position.x)).ToString();
                Debug.Log(blockOffset);
                block.IsFly = false;
                block.rigidBodyBlock.velocity = Vector3.zero;
                block.MaxRotationAngle        = 40;
                block.IsSwing = true;

                PerfectTimer pt = GameObject.FindGameObjectWithTag("PerfectTimer").GetComponent <PerfectTimer>();
                if (pt.Timer > 0)
                {
                    block.SwingAngle = System.Math.Abs(newBlock.transform.position.x - transform.position.x) * 0.2F;
                    //Player.score += 2 * player.PerfectCoef;
                }
                else
                {
                    block.SwingAngle = System.Math.Abs(newBlock.transform.position.x - transform.position.x) * 0.4F;
                    //Player.score += 1;
                }

                float swingSpeedCoef = 2F;
                if (pt.Timer > 0)
                {
                    block.SwingSpeed = block.SwingAngle * swingSpeedCoef;
                }
                else
                {
                    block.SwingSpeed = block.SwingAngle;
                }
                string score = "Score: " + (Player.score).ToString();
                Debug.Log(Player.score);
            }
        }
    }