Exemplo n.º 1
0
    /* private void OnCollisionExit(Collision collision)
     * {
     *   if (collision.gameObject.layer == blockLayerIndex)
     *   {
     *       enteredCollision = false;
     *   }
     * }*/

    public void ChangeToBersek()
    {
        isOnStrike       = true;
        mode             = (int)Mode.bulletProof;
        bulletProofSpeed = PlayerAccelerator.GetPlayerNormalSpeed(initialSpeed) + modeSpeedIncrease;
        GameConst.instance.gatheredPower = 0;
        pointIndex     += 1;
        strikeConstant += 1;
        uIScript.energySlider.gameObject.SetActive(false);
        BPS.gameObject.SetActive(true);
        //RayCalculator(modeSpeedIncrease);
    }
Exemplo n.º 2
0
    public void StartAll()
    {
        rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezeRotation;
        this.enabled   = true;
        float z = transform.position.z - 15f;

        transform.position   = new Vector3(0, height, z);
        transform.localScale = initialScale;
        speed = new Vector3(0f, 0f, PlayerAccelerator.GetPlayerNormalSpeed(initialSpeed));
        changeToNormal();
        SetPlayerStateForward();
        energyTot = GameConst.instance.energyTime / 3f;
        this.gameObject.GetComponent <MeshRenderer>().enabled = true;
    }
Exemplo n.º 3
0
    public void changeToNormal()
    {
        isOnStrike     = false;
        normalSpeed    = PlayerAccelerator.GetPlayerNormalSpeed(initialSpeed);
        mode           = (int)Mode.normal;
        energyTot      = GameConst.instance.energyTime / 3f;
        strike         = 0;
        strikeConstant = 0;
        pointIndex     = 1;
        bulletHits     = 0;
        uIScript.energySlider.gameObject.SetActive(true);
        BPS.gameObject.SetActive(false);

        //RayCalculator(modeSpeedIncrease);
    }
Exemplo n.º 4
0
    //_________________________METHODS___________________________

    private void Awake()
    {
        if (instance == null)
        {
            //Debug.Log("Player created1");
            instance = this;
        }
        else
        {
            //Debug.LogError("New player destroyed");
            Destroy(this.gameObject);
        }
        initialSpeed = 85f;
        speed        = new Vector3(0f, 0f, PlayerAccelerator.GetPlayerNormalSpeed(initialSpeed));
        Debug.LogWarning("Player speed is : " + speed.z);
        mode = (int)Mode.normal;
    }
Exemplo n.º 5
0
    private IEnumerator Level_ShooterLoop()
    {
        //bullet hızı ayarla sadece !!!!!!!!!!!!!!!
        //********************
        while (GameConst.instance.isGameOn)//(GameConst.instance.isGameOn)
        {
            if (blockNumb <= GameConst.instance.blockNumber && this.gameObject.transform.position.z > GameConst.instance.blocks[0].gameObject.transform.position.z && this.gameObject.transform.position.z < GameConst.instance.LastPosOfArray + GameConst.instance.BlockDistUpdate)
            {
                bulletPos = RandomPos.RandomPosition(bulletPos, 2);
                //float barrelPos = bulletPositionSelector[bulletPos];
                //float rand = Random.Range(minRand, maxRand);
                //uiScript.materialChangetoRed(barrelSelector(barrelPos));
                yield return(new WaitUntil(() => this.gameObject.transform.position.z >= GameConst.instance.blocks[blockNumb].gameObject.transform.position.z + GameConst.instance.BlockDistUpdate));// shootInterval); //+ GameConst.instance.BlockDistUpdate);

                //Debug.Log("Sıktım benim konum : " + this.transform.position.z + "Baktıgım blok konumu " + GameConst.instance.blocks[blockNumb].gameObject.transform.position.z );

                float   spd            = (GameConst.Level <= 4) ? (Random.Range(0, 3) > 1) ? bulletSpeedOnTop : bulletSpeedOnMiddle : (Random.Range(0, 2) == 0) ? bulletSpeedOnMiddle : bulletSpeedOnTop;
                Vector3 bulletPosition = new Vector3(PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].x, PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].y, this.transform.position.z);

                if (blockNumb < GameConst.instance.blockNumber)
                {
                    bulletOnTheWay(bulletPosition, PlatformTurnScript.instance.BulletRot[bulletPos], (totBulletSended != 0) ? -1 * spd * Player.instance.speed.z : -1 * spd * PlayerAccelerator.GetPlayerNormalSpeed(Player.instance.initialSpeed));
                    totBulletSended += 1;
                    blockNumb       += 1;
                }
                else if (blockNumb == GameConst.instance.blockNumber && Mathf.Approximately(spd, bulletSpeedOnTop))
                {
                    bulletOnTheWay(bulletPosition, PlatformTurnScript.instance.BulletRot[bulletPos], -1 * spd * Player.instance.speed.z);
                    totBulletSended += 1;
                    blockNumb       += 1;
                }

                if (GameConst.Level > 11 && blockNumb < GameConst.instance.blockNumber)
                {
                    float coefficient = (float)(GameConst.Level - 10) / 10;
                    //Debug.LogError(GameConst.Level + "coef is : " + coefficient);
                    float secondBulletProbability = 15 + (int)(20 * (1 - Mathf.Exp(-(coefficient))));
                    float secondBulletDecider     = Random.Range(0, 100);

                    if (secondBulletProbability > secondBulletDecider)
                    {
                        //Debug.LogError("İkinci mermiyi attık. ikince mermi gelme olasılığı " + secondBulletProbability + " bundan büyük olmuş " + secondBulletDecider );
                        yield return(new WaitForSeconds(0.5f));

                        bulletPos = RandomPos.RandomPosition(bulletPos, 2);
                        Vector3 SecondbulletPosition = new Vector3(PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].x, PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].y, this.transform.position.z);
                        float   secondSpd            = (Mathf.Approximately(spd, bulletSpeedOnTop)) ? bulletSpeedOnMiddle : bulletSpeedOnTop;
                        bulletOnTheWay(SecondbulletPosition, PlatformTurnScript.instance.BulletRot[bulletPos], -1 * secondSpd * Player.instance.speed.z);
                        totBulletSended += 1;
                    }
                }

                yield return(new WaitForSecondsRealtime(0.5f));

                if (Player.instance.mode == (int)Player.Mode.bulletProof && Random.Range(0, Player.instance.strikeConstant + 2) >= 2 && blockNumb < GameConst.instance.blockNumber)
                {
                    bulletPos = RandomPos.RandomPosition(bulletPos, 2);
                    float   Bspd            = (GameConst.Level <= 4) ? (Random.Range(0, 3) > 1) ? bulletSpeedOnTop : bulletSpeedOnMiddle : (Random.Range(0, 2) == 0) ? bulletSpeedOnMiddle : bulletSpeedOnTop;
                    Vector3 BbulletPosition = new Vector3(PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].x, PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].y, this.transform.position.z);

                    bulletOnTheWay(BbulletPosition, PlatformTurnScript.instance.BulletRot[bulletPos], -1 * Bspd * Player.instance.speed.z);
                    totBulletSended += 1;
                }
                //uiScript.materialChangetoWhite(barrelSelector(barrelPos));
            }
            yield return(null);
        }
        StopGun();
    }
Exemplo n.º 6
0
    private IEnumerator ShooterLoop()
    {
        //bullet hızı ayarla sadece !!!!!!!!!!!!!!!
        //********************
        while (GameConst.instance.isGameOn)//(GameConst.instance.isGameOn)
        {
            if (blockNumb <= GameConst.instance.blockNumber && this.gameObject.transform.position.z > GameConst.instance.blocks[0].gameObject.transform.position.z && this.gameObject.transform.position.z < GameConst.instance.LastPosOfArray + GameConst.instance.BlockDistUpdate)
            {
                bulletPos = RandomPos.RandomPosition(bulletPos, 2);
                //float barrelPos = bulletPositionSelector[bulletPos];
                //float rand = Random.Range(minRand, maxRand);
                //uiScript.materialChangetoRed(barrelSelector(barrelPos));
                yield return(new WaitUntil(() => this.gameObject.transform.position.z >= GameConst.instance.blocks[blockNumb].gameObject.transform.position.z + GameConst.instance.BlockDistUpdate));// shootInterval); //+ GameConst.instance.BlockDistUpdate);

                //Debug.Log("Sıktım benim konum : " + this.transform.position.z + "Baktıgım blok konumu " + GameConst.instance.blocks[blockNumb].gameObject.transform.position.z );

                float   spd            = (GameConst.Level == 1) ? (Random.Range(0, 3) > 1) ? bulletSpeedOnTop : bulletSpeedOnMiddle :(Random.Range(0, 2) == 0) ? bulletSpeedOnMiddle : bulletSpeedOnTop;
                Vector3 bulletPosition = new Vector3(PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].x, PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].y, this.transform.position.z);

                if (blockNumb < GameConst.instance.blockNumber)
                {
                    bulletOnTheWay(bulletPosition, PlatformTurnScript.instance.BulletRot[bulletPos], (totBulletSended != 0) ? -1 * spd * Player.instance.speed.z : -1 * spd * PlayerAccelerator.GetPlayerNormalSpeed(Player.instance.initialSpeed));
                    totBulletSended += 1;
                    blockNumb       += 1;
                }
                else if (blockNumb == GameConst.instance.blockNumber && Mathf.Approximately(spd, bulletSpeedOnTop))
                {
                    bulletOnTheWay(bulletPosition, PlatformTurnScript.instance.BulletRot[bulletPos], -1 * spd * Player.instance.speed.z);
                    totBulletSended += 1;
                    blockNumb       += 1;
                }


                yield return(new WaitForSecondsRealtime(0.5f));

                if (Player.instance.mode == (int)Player.Mode.bulletProof && Random.Range(0, Player.instance.strikeConstant + 2) >= 2 && blockNumb < GameConst.instance.blockNumber)
                {
                    bulletPos = RandomPos.RandomPosition(bulletPos, 2);
                    float   Bspd            = (GameConst.Level == 1) ? (Random.Range(0, 3) > 1) ? bulletSpeedOnTop : bulletSpeedOnMiddle : (Random.Range(0, 2) == 0) ? bulletSpeedOnMiddle : bulletSpeedOnTop;
                    Vector3 BbulletPosition = new Vector3(PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].x, PlatformTurnScript.instance.CoinAndBulletPos[bulletPos].y, this.transform.position.z);

                    bulletOnTheWay(BbulletPosition, PlatformTurnScript.instance.BulletRot[bulletPos], -1 * Bspd * Player.instance.speed.z);
                    totBulletSended += 1;
                }
                //uiScript.materialChangetoWhite(barrelSelector(barrelPos));
            }
            yield return(null);
        }
        StopGun();
    }
Exemplo n.º 7
0
    public void Update()
    {
        if (GameConst.instance.isGameOn)
        {
            if (mode == (int)Mode.normal)
            {
                this.transform.Rotate(new Vector3(speed.z * 8, 0, 0) * Time.deltaTime, Space.Self);
            }
            else
            {
                this.transform.Rotate(new Vector3(speed.z * 11, 0, 0) * Time.deltaTime, Space.Self);
            }

            //_____________________________For making blocks change COLOR_________________________________________//
            if (Physics.Raycast(transform.position, rayVector, out hit, 20f, blockLayerMask.value))
            {
                if (hit.collider.gameObject.layer == blockLayerIndex && hit.normal == hit.collider.gameObject.transform.up && !canCollide && state == (int)State.forward)
                {
                    canCollide = true;
                    GameConst.instance.lastHit = hit.collider.gameObject;
                    //orgBlockColor = hit.collider.GetComponent<Renderer>().material.GetColor("_Color");
                    Color color = Color.Lerp(GameConst.instance.lastHit.GetComponentInParent <BlockColorChanger>().GetColor(), HittableBlockColor, .4f);
                    hit.collider.GetComponent <Renderer>().material.SetColor("_Color", color);
                }
            }
            else if (GameConst.instance.lastHit != null && canCollide)
            {
                canCollide = false;
                GameConst.instance.lastHit.GetComponent <Renderer>().material.SetColor("_Color", GameConst.instance.lastHit.GetComponentInParent <BlockColorChanger>().GetColor());
            }

            // Energy Düsürme ve 0 sa bölüm sonlandırma ________________

            if (energyTot <= GameConst.instance.energyTime / 3f && GameConst.instance.isLevel && strike <= 0)
            {
                energyTot -= Time.deltaTime * energyDecreaseRate;
            }

            if ((energyTot <= 0 && !GameConst.instance.isEnergyFinished))
            {
                GameConst.instance.isEnergyFinished = true;
                StartCoroutine(Player.instance.EnergyFinish());
            }


            // ____________________BulletProof Hız ayarlama _______________________________________

            if (mode == (int)Mode.bulletProof && !PlayerAccelerator.PlayerFastEnough(speed.z, bulletProofSpeed) && !GameConst.instance.playerLock)
            {
                speed.z += .5f;
                if (PlayerAccelerator.PlayerFastEnough(speed.z, bulletProofSpeed) && strikeConstant == 1)
                {
                    RayCalculator(modeSpeedIncrease);
                }
            }
            else if (mode == (int)Mode.normal && !PlayerAccelerator.PlayerNormalSpeed(speed.z, normalSpeed) && !GameConst.instance.playerLock)
            {
                speed.z -= .5f;
                if (PlayerAccelerator.PlayerNormalSpeed(speed.z, normalSpeed))
                {
                    RayCalculator(modeSpeedIncrease);
                }
            }

            //____________________________ Passed Block Calculation && Calculation of if not collided end bulletmode ______________________//

            if (lastPassedBlock <= GameConst.instance.blockNumber - 1 && GameConst.instance.blocks[lastPassedBlock + 1].transform.position.z + 15f <= this.transform.position.z && GameConst.instance.isLevel)
            {
                lastPassedBlock += 1;
                //Debug.Log(lastPassedBlock);
                if (!GameConst.instance.blocks[lastPassedBlock].gameObject.GetComponent <BlockScript>().didCollided)
                {
                    if (strike > 0)
                    {
                        energyTot = GameConst.instance.energyTime / 3f;
                        strike    = 0;
                    }

                    if (mode == (int)Mode.bulletProof)
                    {
                        changeToNormal();
                    }
                }
            }

            //______________________________ END OF LEVEL ______________________________//

            if (transform.position.z >= GameConst.instance.LastPosOfArray + 20f && GameConst.instance.isLevel) //&& GameConst.instance.destroyedBlockNumber >= GameConst.instance.BlockDestroyLimit)
            {
                Debug.Log("Bölüm Geçildi !!!!!!!!!!!!!!!!!!!!");
                GameConst.instance.isLevel = false;
                GameConst.instance.LevelChanger(speed.z + 180f);
                lastPassedBlock = -1;
            }

            //___________________ END OF KAFA ATMA MODU  3 mermi yedin go_______________________//

            if (mode == (int)Mode.bulletProof && bulletHits >= 3)
            {
                changeToNormal();
            }
        }
    }
Exemplo n.º 8
0
    //This is used for Endless mode level ending
    private IEnumerator LevelChangeState(float PlayerSpeedLimit, float PlayerSpeed)
    {
        if (!isStarted)
        {
            yield return(new WaitUntil(() => blocks[0] != null));

            isStarted = true;
            isGameOn  = true;
            uIScript.startGame();
            Time.timeScale = 1f;
        }
        else
        {
            yield return(new WaitForSeconds(.3f));
        }
        playerLock = true;

        ObjectPooler.SharedInstance.CreateObjects("BrokenBlock", GameObject.FindWithTag("ALLPLATFORM").transform, blockNumber);
        BlockChanger();
        HollowSetter(blocks[0].gameObject.transform.position.z - 2f);
        gunScript.passedBlock = 0;

        //Debug.Log("Top hızlanmaya baslıyor. Top hızı :" + Player.instance.speed.z);
        float speedRate = 5f;
        float waitTime  = .01f;

        while (!PlayerAccelerator.PlayerFastEnough(Player.instance.speed.z, PlayerSpeedLimit))
        {
            Player.instance.speed.z += speedRate;
            yield return(new WaitForSeconds(waitTime));
        }

        yield return(new WaitUntil(() => Player.instance.transform.position.z >= GameObject.FindWithTag("LevelHollows").transform.GetChild(GameObject.FindWithTag("LevelHollows").transform.childCount - 12).transform.position.z));

        while (!PlayerAccelerator.PlayerNormalSpeed(Player.instance.speed.z, PlayerSpeed))
        {
            if (PlayerSpeed + 70f >= Player.instance.speed.z && !gunScript.isShooting)
            {
                gunScript.blockNumb       = 0;
                gunScript.totBulletSended = 0;
                gunScript.StartGun();
                waitTime = .03f;
            }
            Player.instance.speed.z -= speedRate;
            yield return(new WaitForSeconds(waitTime));
        }
        Player.instance.bulletProofSpeed = PlayerAccelerator.GetPlayerNormalSpeed(Player.instance.initialSpeed) + (Player.instance.modeSpeedIncrease) + ((Player.instance.strikeConstant - 1) * 2f);
        int m = Player.instance.mode;

        Player.instance.speed.z = (m == (int)Player.Mode.normal) ? PlayerAccelerator.GetPlayerNormalSpeed(Player.instance.initialSpeed) : Player.instance.bulletProofSpeed;
        //Player.instance.RayCalculator(0);

        yield return(new WaitUntil(() => Player.instance.gameObject.transform.position.z >= blocks[0].gameObject.transform.position.z - 35f));

        playerLock = false;
        yield return(new WaitUntil(() => Player.instance.gameObject.transform.position.z >= blocks[0].gameObject.transform.position.z - 15f)); //Player.instance.gameObject.transform.position.z >= blocks[0].gameObject.transform.position.z - 10f);

        isLevel = true;
        GameObject.FindWithTag("LevelHollows").transform.position = new Vector3(0f, 0f, LastPosOfArray + 80f);
        CoinsScript.IncreaseAndActivateCoins(GameObject.FindWithTag("Coins"));
        AddLevelHollow(2);
        //createNewLevel = false;
        StopCoroutine(LevelChangeState(PlayerSpeedLimit, PlayerSpeed));
    }
Exemplo n.º 9
0
    //This is used for level based level endings
    private IEnumerator LevelEndedState(float PlayerSpeedLimit)
    {
        yield return(new WaitForSeconds(.3f));

        ///////////////////////////////////////////////////renklerrrr////////////////////////////////////////////////////////////////

        /*float randFlt = Random.Range (0.01f, 1f);
         *
         * DataScript.levelModeBlockColor = HueChanger.hueChanger (DataScript.levelModeBlockColor, randFlt);//Random.Range (0f,1f));
         * DataScript.levelModeHexogenColor = HueChanger.hueChanger (DataScript.levelModeHexogenColor, randFlt);//Random.Range (0f,1f));*/
        ///////////////////////////////////////////////////renklerrrr//////////////////////////////////////////////////////////////
        ///
        /// Safe swicth for when player dies after stepping last block dont increment level and break corountine
        if (isGameOn != true)
        {
            yield break;
        }

        playerLock                         = true;
        onIdle                             = true;
        DataScript.pointHolder             = points;
        DataScript.isSessionEnded          = false;
        DataScript.isPassedAtLeastOneLevel = true;
        DataScript.ThemeIndex              = (Level - 1) % DataScript.Themes.Count;
        PlayerPrefs.SetInt("PlayerLevel", Level);
        FB.LogAppEvent(AppEventName.AchievedLevel, (float)Level - 1);
        if (PlayerPrefs.GetInt("MaxLevel") < Level)
        {
            PlayerPrefs.SetInt("MaxLevel", Level);
        }
        GameObject coins         = GameObject.FindWithTag("Coins");
        GameObject levelHexogans = GameObject.FindWithTag("LevelHollows");

        float speedRate = 10f;
        float waitTime  = .01f;

        while (!PlayerAccelerator.PlayerFastEnough(Player.instance.speed.z, PlayerSpeedLimit))
        {
            Player.instance.speed.z += speedRate;
            yield return(new WaitForSeconds(waitTime));
        }

        bool  changed = false;
        float tilt    = 0;
        Color ex      = levelHexogans.transform.GetChild(0).transform.GetChild(0).GetComponent <Renderer>().material.color;

        while (onIdle)
        {
            if (Player.instance.transform.position.z >= coins.transform.GetChild(coins.transform.childCount - 1).transform.position.z + 50f && !changed)
            {
                changed = true;
                uIScript.NextLevel();
            }
            if (tilt < 1)
            {
                tilt = Mathf.MoveTowards(tilt, 1f, 0.01f);
                foreach (Renderer r in levelHexogans.GetComponentsInChildren <Renderer>())
                {
                    r.material.color = Color.Lerp(ex, DataScript.Themes[DataScript.ThemeIndex].HexagonColor, tilt);
                }
                Edges.ForEach(delegate(GameObject g)
                {
                    foreach (Renderer r in g.GetComponentsInChildren <Renderer>())
                    {
                        r.material.color = Color.Lerp(ex, DataScript.Themes[DataScript.ThemeIndex].HexagonColor, tilt);
                    }
                });
            }

            LevelHollowGetDistance.SetHollow(levelHexogans.transform.GetChild(0).gameObject, LevelHollowGetDistance.GetDistance(levelHexogans.transform) + 10f);
            levelHexogans.transform.GetChild(0).SetAsLastSibling();
            yield return(new WaitUntil(() => Player.instance.transform.position.z >= GameObject.FindWithTag("LevelHollows").transform.GetChild(GameObject.FindWithTag("LevelHollows").transform.childCount - 25).transform.position.z));
        }
    }