예제 #1
0
 public void takeDamage(float percentTaken)
 {
     if (shieldBarManager.shieldActive)
     {
         shieldBarManager.changeBar(-percentTaken * shieldDamageMultiplier);
         hullBarManager.changeBar(-percentTaken * shieldDamageReduction);
     }
     else
     {
         hullBarManager.changeBar(-percentTaken);
     }
 }
예제 #2
0
    private void OnTriggerStay(Collider other)
    {
        if (gameActivated == true)
        {
            rotateBar.transform.RotateAround(this.displayPanel.transform.position, new Vector3(0f, -0.43f, -1f), spinSpeed);
        }

        //If player1 or player 2 interacts
        if ((other.gameObject.name == "Player1" && Input.GetButton("Utility1")) || (other.gameObject.name == "Player2" && Input.GetButton("Utility2")))
        {
            if (gameActivated == false)
            {
                //Initializing Game
                //INITIALIZE START STATE HERE



                this.displayPanel.SetActive(true);

                //Setting Starting Player
                this.gameActivated = true;
                this.currentPlayer = other.gameObject.name;

                //Positions panel in correct location
                if (currentPlayer == "Player2")
                {
                    this.displayPanel.transform.localPosition = new Vector3(734.5284f, 0, 0);
                }
                else
                {
                    this.displayPanel.transform.localPosition = new Vector3(-734.5284f, 0, 0);
                }
            }
            //Progresses game if player who initiated it interacts
            else if (currentPlayer == other.gameObject.name)
            {
                //Playing Game
                //ADD ON-INTERACT EFFECT HERE
                if (chargeBar.transform.localScale.y <= 150 && beginDecay == false)
                {
                    chargeBar.transform.localScale = new Vector3(chargeBar.transform.localScale.x, chargeBar.transform.localScale.y + chargeRateMulitplier * Time.deltaTime, chargeBar.transform.localScale.z);
                }
                else
                {
                    beginDecay = true;
                }

                //If held too long chargebar decreases to zero
                if (beginDecay)
                {
                    if (chargeBar.transform.localScale.y - decayRateMultiplier * chargeRateMulitplier * Time.deltaTime > 0)
                    {
                        chargeBar.transform.localScale = new Vector3(chargeBar.transform.localScale.x, chargeBar.transform.localScale.y - decayRateMultiplier * chargeRateMulitplier * Time.deltaTime, chargeBar.transform.localScale.z);
                    }
                    else
                    {
                        chargeBar.transform.localScale = new Vector3(chargeBar.transform.localScale.x, 0, chargeBar.transform.localScale.z);
                    }
                }
            }
        }
        else
        {
            //Lose charge or input charge
            beginDecay = false;
            var savedCharge = chargeBar.transform.localScale.y / 150;
            if (savedCharge > 0.1)
            {
                mainAudio.PlayOneShot(shieldChargingAudio);
                chargeBar.transform.localScale = new Vector3(chargeBar.transform.localScale.x, 0, chargeBar.transform.localScale.z);
                //Check if released near green diamond for bonus charge, else regular charge
                if (Mathf.Abs(rotateBar.transform.localRotation.z) < highChargeLeniency)
                {
                    savedCharge = savedCharge * highChargeMaximum;
                    mainAudio.PlayOneShot(bonusChargeAudio);
                }
                else
                {
                    savedCharge = savedCharge * lowChargeMaximum;
                }

                shieldBarManager.changeBar(savedCharge);
                //SEND TO SUBSCRIBERS RESULT
            }
        }
    }