Beispiel #1
0
    void FixedUpdate()
    {
        // Debug.Log(Boosters.isPlaying);
        //Debug.Log(currentHP);
        if (currentHP <= 0)
        {
            if (currentHP < 0)
            {
                currentHP = 0;
            }
            dead = true;

            if (dead == true && createdSpark == false)
            {
                createdSpark = true;
                Vector3    deathPos = this.gameObject.transform.position;
                GameObject E        = Instantiate(deathSpark, deathPos, Quaternion.identity);
                E.transform.parent = gameObject.transform;
                StartCoroutine(Reload());
            }
        }



        //if (isBoosting == true && Time.time > timeStampDeplete && currentEnergy > LC.consumptionRate)
        //{
        //    if (!AM.Playing("Boosters"))
        //    {
        //        AM.Play("Boosters");
        //    }
        //    timeStampDeplete = Time.time + LC.consumptionRate;
        //    currentEnergy -= 10;

        //}
        //else if (isBoosting == false && Time.time > timeStampCharge && currentEnergy < maxEnergy)
        //{
        //    if (AM.Playing("Boosters"))
        //    {
        //        AM.Stop("Boosters");
        //    }
        //    currentEnergy += 10;

        //    timeStampCharge = Time.time + TC.chargeRate;
        //}
        ////boosters and movement
        ///
        if (!dead)
        {
            if (isBoosting)// && currentEnergy > LC.consumptionRate)
            {
                if (!Boosters.isPlaying)
                {
                    Boosters.Play();
                }

                rb.MovePosition(rb.position + movement * LC.boosters * Time.fixedDeltaTime);


                //Debug.Log("Space");
                //Anim.SetInteger("ArmorSet", -1);
                SRLegs.sprite = LC.part;
                Anim.speed    = 0;
            }
            else
            {
                if (Boosters.isPlaying)
                {
                    Boosters.Stop();
                }


                rb.MovePosition(rb.position + movement * LC.walkSpd * Time.fixedDeltaTime);


                if (Anim.GetInteger("ArmorID") < 0)
                {
                    Anim.SetInteger("ArmorID", 6);
                }
                if (movement != Vector2.zero)
                {
                    Anim.speed = 1;
                }
                else
                {
                    Anim.speed = 0;
                }
            }


            Vector2 lookDir = (Vector2)Player.transform.position - rb.position;
            float   angle   = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f;
            rb.rotation = angle;
        }
    }
Beispiel #2
0
    void FixedUpdate()
    {
        if (active)
        {
            //Debug.Log(currentHP);
            if (currentHP <= 0)
            {
                if (currentHP < 0)
                {
                    currentHP = 0;
                }
                dead = true;

                if (dead == true && createdSpark == false)
                {
                    createdSpark = true;
                    Vector3    deathPos = this.gameObject.transform.position;
                    GameObject E        = Instantiate(deathSpark, deathPos, Quaternion.identity);
                    E.transform.parent = gameObject.transform;
                    //StartCoroutine(Reload());
                }
            }

            if (inCannonRange && Time.time > timeStampturn)
            {
                Turn();
                timeStampturn = Time.time + 0.5f;
            }


            if (!dead)
            {
                if (isBoosting && !overheating && Time.time > timeStampDeplete && currentEnergy > LC.consumptionRate)
                {
                    timeStampDeplete = Time.time + LC.consumptionRate;
                    //currentEnergy -= 10;
                }
                else if (isBoosting == false && Time.time > timeStampCharge && currentEnergy < maxEnergy)
                {
                    currentEnergy += 10;

                    timeStampCharge = Time.time + TC.chargeRate;
                }
                if (currentEnergy <= LC.consumptionRate)
                {
                    overheating = true;
                }
                else if (currentEnergy >= maxEnergy / 4)
                {
                    overheating = false;
                }
                if (isBoosting)
                {
                    if (boosttimer <= 0.0f)
                    {
                        boosttimer = 0.2f;
                    }
                }
                if (isBoosting || boosttimer > 0.0f)
                {
                    boosttimer -= Time.deltaTime;
                    if (!Boosters.isPlaying)
                    {
                        Boosters.Play();
                    }
                    SRLegs.sprite = LC.part;
                    Anim.speed    = 0;
                }
                else
                {
                    if (Boosters.isPlaying)
                    {
                        Boosters.Stop();
                    }
                    if (Anim.GetInteger("ArmorID") < 0)
                    {
                        Anim.SetInteger("ArmorID", 12);
                    }
                }
                float distance = Vector3.Distance(transform.position, Player.transform.position);



                //if (BR.near && !overheating)
                //{
                //    isBoosting = true;
                //}
                //else if (distance < 10f && !overheating)
                //{

                //    isBoosting = true;
                //}
                //else if (BR.near == false || overheating)
                //{
                //    isBoosting = false;
                //}


                //    // movement = movement * -1;
                //    //go back


                //}
                //else if (distance > 7f)
                //{
                //    backwards = false;
                //    isBoosting = true;
                //    //    movement = movement;
                //    //go back
                //}
                //if (inCannonRange)
                //{
                //    isBoosting = true;
                //}
                //else
                //{
                //    isBoosting = false;
                //}


                if (isBoosting)
                {
                    if (Left)
                    {
                        Debug.Log("BoostL");
                        rb.MovePosition(rb.position + (movement + (Vector2)transform.right) * LC.boosters * Time.fixedDeltaTime);
                    }
                    else if (Right)
                    {
                        Debug.Log("BoostR");
                        rb.MovePosition(rb.position + (movement - (Vector2)transform.right) * LC.boosters * Time.fixedDeltaTime);
                    }
                    else
                    {
                        rb.MovePosition(rb.position + (movement) * LC.boosters * Time.fixedDeltaTime);
                    }
                }
                else
                {
                    if (Left)
                    {
                        rb.MovePosition(rb.position + (movement + (Vector2)transform.right) * LC.walkSpd * Time.fixedDeltaTime);
                    }
                    else if (Right)
                    {
                        rb.MovePosition(rb.position + (movement - (Vector2)transform.right) * LC.walkSpd * Time.fixedDeltaTime);
                    }
                    else
                    {
                        rb.MovePosition(rb.position + (movement) * LC.walkSpd * Time.fixedDeltaTime);
                    }
                }


                if (movement != Vector2.zero)
                {
                    Anim.speed = 1;
                }
                else
                {
                    Anim.speed = 0;
                }


                Vector2 lookDir = (Vector2)Player.transform.position - rb.position;
                float   angle   = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f;
                rb.rotation = angle;
            }
        }
    }
Beispiel #3
0
    void FixedUpdate()
    {
        if (active)
        {
            //Debug.Log(currentHP);
            if (currentHP <= 0)
            {
                if (currentHP < 0)
                {
                    currentHP = 0;
                }
                dead = true;

                if (dead == true && createdSpark == false)
                {
                    createdSpark = true;
                    Vector3    deathPos = this.gameObject.transform.position;
                    GameObject E        = Instantiate(deathSpark, deathPos, Quaternion.identity);
                    E.transform.parent = gameObject.transform;
                    StartCoroutine(Reload());
                }
            }

            if (inCannonRange && Time.time > timeStampturn)
            {
                Turn();
                timeStampturn = Time.time + 1f;
            }


            if (!dead)
            {
                if (isBoosting)
                {
                    if (!Boosters.isPlaying)
                    {
                        Boosters.Play();
                    }
                    SRLegs.sprite = LC.part;
                    Anim.speed    = 0;
                }
                else
                {
                    if (Boosters.isPlaying)
                    {
                        Boosters.Stop();
                    }
                    if (Anim.GetInteger("ArmorID") < 0)
                    {
                        Anim.SetInteger("ArmorID", 5);
                    }
                }

                if (BR.near)
                {
                    isBoosting = true;
                }

                float distance = Vector3.Distance(transform.position, Player.transform.position);
                if (distance < 7.25f)
                {
                    backwards = true;
                    if (BR.near == false)
                    {
                        isBoosting = false;
                    }

                    // movement = movement * -1;
                    //go back
                }
                else if (distance > 15f)
                {
                    backwards  = false;
                    isBoosting = true;
                    //    movement = movement;
                    //go back
                }

                if (flagB.hittingWall)
                {
                    backwards = false;
                }
                if (backwards)
                {
                    movement = movement * -1;
                }

                if (isBoosting)
                {
                    if (Left)
                    {
                        rb.MovePosition(rb.position + (movement + (Vector2)transform.right) * LC.boosters * Time.fixedDeltaTime);
                    }
                    else if (Right)
                    {
                        rb.MovePosition(rb.position + (movement - (Vector2)transform.right) * LC.boosters * Time.fixedDeltaTime);
                    }
                }
                else
                {
                    if (Left)
                    {
                        rb.MovePosition(rb.position + (movement + (Vector2)transform.right) * LC.walkSpd * Time.fixedDeltaTime);
                    }
                    else if (Right)
                    {
                        rb.MovePosition(rb.position + (movement - (Vector2)transform.right) * LC.walkSpd * Time.fixedDeltaTime);
                    }
                }


                if (movement != Vector2.zero)
                {
                    Anim.speed = 1;
                }
                else
                {
                    Anim.speed = 0;
                }


                Vector2 lookDir = (Vector2)Player.transform.position - rb.position;
                float   angle   = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f;
                rb.rotation = angle;
            }
        }
    }