Ejemplo n.º 1
0
 // Use this for initialization
 void Start()
 {
     sailSound.volume = 0f;
     cannon1.GetComponent <Cannon> ().enemyRaft   = otherRaftScript.gameObject;
     cannon2.GetComponent <Cannon> ().enemyRaft   = otherRaftScript.gameObject;
     grapple1.GetComponent <Grapple> ().enemyRaft = otherRaftScript.gameObject;
     grapple2.GetComponent <Grapple> ().enemyRaft = otherRaftScript.gameObject;
     grapple1.GetComponent <Grapple> ().thisRaft  = this.gameObject;
     grapple2.GetComponent <Grapple> ().thisRaft  = this.gameObject;
     power1                  = power2 = PowerUp.PowerUpType.None;
     winnerExists            = false;
     lCool                   = rCool = spinFrameCounter = 0;
     noControl               = false;
     left                    = "joystick " + player1 + " button 0";
     right                   = "joystick " + player2 + " button 0";
     backLeft                = "joystick " + player1 + " button 1";
     backRight               = "joystick " + player2 + " button 1";
     fireLeft                = "joystick " + player1 + " button 2";
     fireRight               = "joystick " + player2 + " button 2";
     fireTriggerLeft         = "Player" + player1 + "_RightTrigger";
     fireTriggerRight        = "Player" + player2 + "_RightTrigger";
     leftAxisH               = "Player" + player1 + "_axisX";
     rightAxisH              = "Player" + player2 + "_axisX";
     leftAxisV               = "Player" + player1 + "_axisY";
     rightAxisV              = "Player" + player2 + "_axisY";
     raft.maxAngularVelocity = 4f;
 }
Ejemplo n.º 2
0
    void DealWithPowerup(PowerUp powerUp)
    {
        PowerUp.PowerUpType powerUpType = powerUp.Type;
        //TODO shine in powerups color instead of custom
        switch (powerUpType)
        {
        case PowerUp.PowerUpType.WEAPON:
            if (playerWeaponSystem.WeaponCanBeUpgraded())
            {
                playerWeaponSystem.UpgradeWeapon();
                powerUp.ReturnToPool();
            }
            break;

        case PowerUp.PowerUpType.RELOAD:
            if (playerWeaponSystem.SpecialWeaponCanBeReloaded())
            {
                playerWeaponSystem.ReloadSpecialWeapon();
                powerUp.ReturnToPool();
            }
            break;

        case PowerUp.PowerUpType.REPAIR:
            if (playerHealthSystem.CanBeHealed())
            {
                playerHealthSystem.Heal();
                powerUp.ReturnToPool();
            }
            break;

        default:
            throw new UnityException("Unknown PowerUp-Type \"" + powerUpType.ToString() + "\"");
        }
    }
Ejemplo n.º 3
0
    public void ApplyPowerUp(PowerUp.PowerUpType poweUpType)
    {
        switch (poweUpType)
        {
        case PowerUp.PowerUpType.BombCount:
            BombCount += 1;
            UIScript.ChangeText(1, BombCount.ToString());
            break;

        case PowerUp.PowerUpType.Speed:
            PlayerSpeed = 4;
            UIScript.ChangeText(0, PlayerSpeed.ToString());
            //  trail.SetActive(true);
            break;

        case PowerUp.PowerUpType.BombDistance:
            BombDamageDistance += 1;
            UIScript.ChangeText(2, BombDamageDistance.ToString());

            break;

        case PowerUp.PowerUpType.WallWalking:
            WallWalking = true;
            UIScript.ChangeText(3, "");
            boardManager.ChangeCollapsingWallTransparency();
            break;

        default:
            throw new ArgumentOutOfRangeException(nameof(poweUpType), poweUpType, null);
        }
    }
Ejemplo n.º 4
0
    public void GetPowerUp(PowerUp.PowerUpType type)
    {
        switch (type)
        {
        case PowerUp.PowerUpType.TripleShot:
            _currentWeapon = _tripleShot;
            StartCoroutine(ResetWeapon());
            break;

        case PowerUp.PowerUpType.Speed:
            _currentSpeed = _baseSpeed * 1.5f;
            StartCoroutine(ResetSpeed());
            break;

        case PowerUp.PowerUpType.Shield:
            if (_shieldStrength == _maxShieldStrength)
            {
                AddToScore(_bonusShieldScore);
            }
            else
            {
                _shieldStrength = _maxShieldStrength;
                SetShieldColorByStrength(_shieldStrength);
                _playerShield.SetActive(true);
            }
            break;

        case PowerUp.PowerUpType.Ammo:
            _currentAmmo += _ammoPowerUpAmount;
            _uiManager.UpdateAmmo(_currentAmmo);
            break;

        case PowerUp.PowerUpType.Life:
            if (_lives >= 3)
            {
                AddToScore(_bonusLifeScore);
            }
            else
            {
                _lives++;
                _uiManager.UpdateLives(_lives);
            }
            break;

        case PowerUp.PowerUpType.Beam:
            _hasBeam = true;
            StartCoroutine(ResetWeapon());
            break;

        default:
            break;
        }
    }
Ejemplo n.º 5
0
 public void CollectPowerUp(PowerUp.PowerUpType type)
 {
     if (type == PowerUp.PowerUpType.Speed)
     {
         maxSpeed        = speedBoostSpeed;
         usingSpeedBoost = true;
         audioSource.PlayOneShot(speedSound);
     }
     else if (type == PowerUp.PowerUpType.Time)
     {
         Time.timeScale = 0.1f;
     }
 }
Ejemplo n.º 6
0
 public PowerUp GetPowerUp(PowerUp.PowerUpType type)
 {
     for (int i = 0; i < powerUps.Count; i++)
     {
         if (powerUps[i].myType == type)
         {
             PowerUp temp = powerUps[i];
             powerUps.RemoveAt(i);
             return(temp);
         }
     }
     return(null);
 }
Ejemplo n.º 7
0
 public Ball GetBall(PowerUp.PowerUpType type)
 {
     for (int i = 0; i < balls.Count; i++)
     {
         if (balls[i].myType == type)
         {
             Ball temp = balls[i];
             balls.RemoveAt(i);
             return(temp);
         }
     }
     return(null);
 }
Ejemplo n.º 8
0
    public List <PowerUp> GetPowerUpsOfType(PowerUp.PowerUpType powerUpType)
    {
        List <PowerUp> foundPowerUps = new List <PowerUp>();

        foreach (PowerUp powerUp in powerUps)
        {
            if (powerUp.GetPowerUpType() == powerUpType)
            {
                foundPowerUps.Add(powerUp);
            }
        }
        return(foundPowerUps);
    }
Ejemplo n.º 9
0
    IEnumerator PowerUpRoutine(float effectDuration, PowerUp.PowerUpType type)
    {
        yield return(new WaitForSeconds(effectDuration));

        if (type == PowerUp.PowerUpType.RapidShot)
        {
            _fireMultiplier = 1;
        }
        else if (type == PowerUp.PowerUpType.Shield)
        {
            _hasShield = false;
            shield.RequestActivateObject(false);
        }
    }
Ejemplo n.º 10
0
 public void PowerUpPicked(float effectDuration, PowerUp.PowerUpType type)
 {
     if (type == PowerUp.PowerUpType.RapidShot)
     {
         _fireMultiplier = 0.4f;
         StartCoroutine(PowerUpRoutine(effectDuration, type));
     }
     else if (type == PowerUp.PowerUpType.Shield)
     {
         _hasShield = true;
         shield.RequestActivateObject(true);
         StartCoroutine(PowerUpRoutine(effectDuration, type));
     }
 }
Ejemplo n.º 11
0
 //allow the players to grab powerups, but don't overwrite old ones!
 void getPowerUps(PowerUp.PowerUpType incoming)
 {
     cannon1line.SetActive(true);
     cannon2line.SetActive(true);
     grapple1line.SetActive(true);
     grapple2line.SetActive(true);
     powerupGrab.Play();
     if (power1 == PowerUp.PowerUpType.None)
     {
         power1 = incoming;
     }
     if (power2 == PowerUp.PowerUpType.None)
     {
         power2 = incoming;
     }
 }
Ejemplo n.º 12
0
        public static Color PowerUpThree(PowerUp.PowerUpType type)
        {
            switch (type)
            {
            case PowerUp.PowerUpType.PaddleSizeUp:
                return(Color.DarkGoldenrod);

            case PowerUp.PowerUpType.PaddleSizeDown:
                return(Color.DarkGreen);

            case PowerUp.PowerUpType.BallSizeUp:
                return(Color.DarkOrange);

            //case PowerUp.PowerUpType.BallSizeDown:
            //    return Color.DarkViolet;
            case PowerUp.PowerUpType.SplitBalls:
                return(Color.DarkRed);

            case PowerUp.PowerUpType.BallSpeedUp:
                return(Color.DarkBlue);

            //case PowerUp.PowerUpType.BallSpeedDown:
            //    return Color.DeepPink;
            case PowerUp.PowerUpType.PaddleSpeedUp:
                return(Color.DarkCyan);

            case PowerUp.PowerUpType.PaddleSpeedDown:
                return(Color.DarkMagenta);

            //case PowerUp.PowerUpType.StickyPaddle:
            //    return Color.Black;
            case PowerUp.PowerUpType.ExtraBall:
                return(Color.White);

            case PowerUp.PowerUpType.ExtraLife:
                return(Color.Brown);

            case PowerUp.PowerUpType.TemporaryGun:
                return(Color.Black);

            default:
                return(Color.Brown);
            }
        }
Ejemplo n.º 13
0
        public static Color PowerUpOne(PowerUp.PowerUpType type)
        {
            switch (type)
            {
            case PowerUp.PowerUpType.PaddleSizeUp:
                return(Color.LightYellow);

            case PowerUp.PowerUpType.PaddleSizeDown:
                return(Color.LightGreen);

            case PowerUp.PowerUpType.BallSizeUp:
                return(Color.LightSalmon);

            //case PowerUp.PowerUpType.BallSizeDown:
            //    return Color.MediumPurple;
            case PowerUp.PowerUpType.SplitBalls:
                return(Color.PaleVioletRed);

            case PowerUp.PowerUpType.BallSpeedUp:
                return(Color.LightBlue);

            //case PowerUp.PowerUpType.BallSpeedDown:
            //    return Color.LightPink;
            case PowerUp.PowerUpType.PaddleSpeedUp:
                return(Color.LightCyan);

            case PowerUp.PowerUpType.PaddleSpeedDown:
                return(Color.FloralWhite);

            //case PowerUp.PowerUpType.StickyPaddle:
            //    return Color.LightGray;
            case PowerUp.PowerUpType.ExtraBall:
                return(Color.White);

            case PowerUp.PowerUpType.ExtraLife:
                return(Color.Beige);

            case PowerUp.PowerUpType.TemporaryGun:
                return(Color.LightGray);

            default:
                return(Color.Brown);
            }
        }
Ejemplo n.º 14
0
        public static Color PowerUpTwo(PowerUp.PowerUpType type)
        {
            switch (type)
            {
            case PowerUp.PowerUpType.PaddleSizeUp:
                return(Color.Yellow);

            case PowerUp.PowerUpType.PaddleSizeDown:
                return(Color.Green);

            case PowerUp.PowerUpType.BallSizeUp:
                return(Color.Orange);

            //case PowerUp.PowerUpType.BallSizeDown:
            //    return Color.Purple;
            case PowerUp.PowerUpType.SplitBalls:
                return(Color.Red);

            case PowerUp.PowerUpType.BallSpeedUp:
                return(Color.Blue);

            //case PowerUp.PowerUpType.BallSpeedDown:
            //    return Color.HotPink;
            case PowerUp.PowerUpType.PaddleSpeedUp:
                return(Color.Cyan);

            case PowerUp.PowerUpType.PaddleSpeedDown:
                return(Color.Magenta);

            //case PowerUp.PowerUpType.StickyPaddle:
            //    return Color.DarkGray;
            case PowerUp.PowerUpType.ExtraBall:
                return(Color.White);

            case PowerUp.PowerUpType.ExtraLife:
                return(Color.SandyBrown);

            case PowerUp.PowerUpType.TemporaryGun:
                return(Color.DarkGray);

            default:
                return(Color.Brown);
            }
        }
Ejemplo n.º 15
0
    public void PickedUpPowerUp(PowerUp.PowerUpType type, Vector3 position)
    {
        if (dead)
        {
            return;
        }

        if (type == PowerUp.PowerUpType.FUEL)
        {
            fuel += 50;
            if (fuel > 100)
            {
                fuel = 100;
            }

            fuelAlarm.StopAlarm();

            UpdateFuelBar();

            lowFuelText.HideText();

            ship.PickedUpFuel();

            Transform powerUpMessageTrans = (Transform)Instantiate(powerUpMessagePrefab);
            powerUpMessageTrans.GetComponent <PowerUpMessage>().Initialize("+fuel", position);
        }
        else if (type == PowerUp.PowerUpType.SPEED)
        {
            boosterActivated = true;

            boosterTimer = boosterDuration;

            ship.BoosterActive(true);

            ship.PickedUpBooster();

            Transform powerUpMessageTrans = (Transform)Instantiate(powerUpMessagePrefab);
            powerUpMessageTrans.GetComponent <PowerUpMessage>().Initialize("+boost", position);
        }
    }
Ejemplo n.º 16
0
    public void PowerUpBall(GameObject player, PowerUp.PowerUpType typeToChangeTo, PowerUp powerUp)
    {
        projectiles.powerUps.Add(powerUp); powerUp.transform.position = new Vector2(10000, 10000);

        foreach (GameObject ball in player.GetComponent <PlayerBallController>().balls)
        {
            if (ball.GetComponent <Ball>().myType == PowerUp.PowerUpType.Basic)
            {
                //if there is a basic ball to replace
                player.GetComponent <PlayerBallController>().balls.Remove(ball);
                Destroy(ball);
                GameObject newBall = projectiles.GetBall(typeToChangeTo).gameObject;
                newBall.transform.position = player.transform.position;
                newBall.GetComponent <Ball>().players[0] = players[0].gameObject;
                newBall.GetComponent <Ball>().players[1] = players[1].gameObject;
                newBall.SetActive(true);
                player.GetComponent <PlayerBallController>().balls.Add(newBall);
                return;
            }
        }
        UI.OpenBallSwitching(player.GetComponent <PlayerBallController>(), projectiles.GetBall(typeToChangeTo));
    }
Ejemplo n.º 17
0
    public void NewPowerUp(Vector3 position, PowerUp.PowerUpType type)
    {
        Rigidbody powerUpRB;

        if (!TryTakeRBFromInactivePool(out powerUpRB))
        {
            powerUpCount++;
            GameObject powerUpObject = Instantiate(powerupPrefab) as GameObject;
            powerUpObject.transform.parent = this.transform;
            powerUpObject.name             = "powerup " + powerUpCount;
            powerUpRB = powerUpObject.GetComponent <Rigidbody>();
        }
        PowerUp powerUp = powerUpRB.gameObject.GetComponent <PowerUp>();

        powerUp.Initialize(type, this);

        powerUpRB.gameObject.SetActive(true);
        powerUpRB.transform.position = position;
//		powerUpRB.transform.localRotation = Quaternion.LookRotation(direction);
//		powerUpRB.velocity = direction * bulletSpeed;
        activeRBs.Add(powerUpRB);
    }
Ejemplo n.º 18
0
        public int ScoreValue(PowerUp.PowerUpType type)
        {
            switch (type)
            {
            case PowerUp.PowerUpType.WIDE_PADDLE: return(1);

            case PowerUp.PowerUpType.STICKY_BALL: return(1);

            case PowerUp.PowerUpType.SLOW_BALL: return(1);;

            case PowerUp.PowerUpType.BIG_BALL: return(1);

            //non timed ones
            case PowerUp.PowerUpType.HEAVY_BALL: return(1);

            case PowerUp.PowerUpType.EXTRA_LIFE: return(1);

            case PowerUp.PowerUpType.TRIPLE_BALLS: return(1);

            case PowerUp.PowerUpType.RESET_SPEED: return(1);

            case PowerUp.PowerUpType.BULLETS: return(1);

            //power downs timed
            case PowerUp.PowerUpType.NARROW_PADDLE: return(10);

            case PowerUp.PowerUpType.INVERT_CONTROLS: return(20);

            case PowerUp.PowerUpType.RANDOM_BOUNCE: return(5);

            case PowerUp.PowerUpType.CURVE_BALL: return(25);

            //non timed
            case PowerUp.PowerUpType.INCREASE_SPEED: return(10);
            }
            return(0);
        }
Ejemplo n.º 19
0
        public void PowerUpCollected(PowerUp.PowerUpType type)
        {
            //do the collection code here
            switch (type)
            {
            case PowerUp.PowerUpType.WIDE_PADDLE: WidePaddleCollected(); break;

            case PowerUp.PowerUpType.STICKY_BALL: StickyBallCollected(); break;

            case PowerUp.PowerUpType.SLOW_BALL: SlowBallCollected(); break;

            case PowerUp.PowerUpType.BIG_BALL: BigBallCollected(); break;

            //non timed ones
            case PowerUp.PowerUpType.HEAVY_BALL: HeavyBallCollected(); break;

            case PowerUp.PowerUpType.EXTRA_LIFE: ExtraLifeCollected(); break;

            case PowerUp.PowerUpType.TRIPLE_BALLS: TrippleBallsCollected(); break;

            case PowerUp.PowerUpType.RESET_SPEED: ResetSpeedCollected(); break;

            case PowerUp.PowerUpType.BULLETS: BulletsCollected(); break;

            //power downs timed
            case PowerUp.PowerUpType.NARROW_PADDLE: NarrowPaddlesCollected(); break;

            case PowerUp.PowerUpType.INVERT_CONTROLS: InvertControlsCollected(); break;

            case PowerUp.PowerUpType.RANDOM_BOUNCE: RandomBounceCollected(); break;

            case PowerUp.PowerUpType.CURVE_BALL: CurveBallCollected(); break;

            //non timed
            case PowerUp.PowerUpType.INCREASE_SPEED: IncreaseSpeedCollected(); break;
            }
        }
Ejemplo n.º 20
0
 public void SetPowerUp(PowerUp.PowerUpType powerUp)
 {
     hasPowerUp  = true;
     powerUpItem = powerUp;
 }
Ejemplo n.º 21
0
        public override void Update(GameTime gameTime)
        {
            isBoss           = MobSpawner.bossSpawn;
            startDelayTimer += (float)gameTime.ElapsedGameTime.TotalMilliseconds;
            gameDuration    += gameTime.ElapsedGameTime.Milliseconds;
            if (gameDuration > 5 * 1000 && barrierBufferMax > 100 && isBoss == false)
            {
                swap = 0;
                if (justSwitchedBoss == true)
                {
                    barrierBufferMax = barrierBufferMem;
                    gameDuration     = 0;
                    justSwitchedBoss = false;
                }
                else if (justSwitchedBoss == false)
                {
                    barrierBufferMax -= ((difficulty + 1) * 25);
                    gameDuration      = 0;
                }
            }
            else if (isBoss == true)
            {
                if (swap == 0)
                {
                    barrierBufferMem = barrierBufferMax;
                    barrierBufferMax = 100;
                    swap             = 1;
                }
            }
            if (startDelayTimer < Game1.PLAY_START_DELAY)
            {
                player.Update(gameTime);
                return;
            }
            player.Update(gameTime);
            if (isFrozen == false && isBreaking == false)
            {
                currentTimer = null;
            }
            if (player.isHit == true && clearAmount < clearInterval)
            {
                clearAmount += gameTime.ElapsedGameTime.Milliseconds;
            }
            if (isFrozen == false)
            {
                barrierBuffer += gameTime.ElapsedGameTime.Milliseconds;
                freezeTimer    = 4;
                freezeLabel    = null;
            }
            powerUpBuffer += gameTime.ElapsedGameTime.Milliseconds;
            if (isFrozen == true)
            {
                freezeDuration += gameTime.ElapsedGameTime.Milliseconds;
                currentTimer    = new Component(timers[freezeTimer - 1], new Vector2(625, 25));
                freezeLabel     = new Component(freezeLabelTexture, new Vector2(475, 15));
                if (freezeDuration == 992 || freezeDuration == 2000 || freezeDuration == 3008)
                {
                    freezeTimer -= 1;
                }
            }
            if (isBreaking == true)
            {
                breakingDuration += gameTime.ElapsedGameTime.Milliseconds;
                currentTimer      = new Component(timers[breakingTimer - 1], new Vector2(625, 25));
                smashLabel        = new Component(smashLabelTexture, new Vector2(475, 15));
                if (breakingDuration == 992 || breakingDuration == 2000 || breakingDuration == 3008 || breakingDuration == 400 ||
                    breakingDuration == 5008 || breakingDuration == 6000 || breakingDuration == 7008)
                {
                    breakingTimer -= 1;
                }
            }
            else
            {
                breakingTimer = 8;
                smashLabel    = null;
            }
            if (freezeDuration > 4000)
            {
                freezeDuration = 0;
                isFrozen       = false;
                foreach (LeftBarrier b in barriers)
                {
                    b.setBarrierSpeed(barrierSpeed);
                }
            }
            if (breakingDuration > 8000)
            {
                breakingDuration = 0;
                isBreaking       = false;
            }
            if (barrierBuffer >= barrierBufferMax && clearAmount > clearInterval)
            {
                barriers.Add(new LeftBarrier(barrierTexture, new Vector2(0, 0), barrierSpeed, columnAmt));
                barrierBuffer = 0;
            }

            for (int i = 0; i < barriers.Count; i++)
            {
                barriers[i].Update(gameTime);
                if (player.hitStatus() == false && player.getRectangle().Intersects(barriers[i].getRectangle()))
                {
                    if (isBreaking == true)
                    {
                        barriers.Remove(barriers[i]);
                        breakSound.Play(Game1.Volume, 0f, 0f);
                    }
                    else
                    {
                        clearAmount = 0;
                        barriers.Clear();
                        player.setHit(true);
                        player.Hit(1);
                    }
                }
            }
            if (powerUpBuffer >= 8000)
            {
                int type = powerUpDecider.Next(0, 2);
                switch (type)
                {
                case 0:
                    powerUp = new PowerUp(freezeTexture, new Vector2(0, 0), PowerUp.PowerUpType.freezeBarriers);
                    break;

                case 1:
                    powerUp = new PowerUp(breakTexture, new Vector2(0, 0), PowerUp.PowerUpType.breakBarriers);
                    break;
                }
                powerUpBuffer = 0;
            }
            for (int i = 0; i < barriers.Count; i++)
            {
                if (barriers[i].position.Y > 900)
                {
                    barriers.Remove(barriers[i]);
                }
            }
            if (powerUp != null && player.getRectangle().Intersects(powerUp.getRectangle()))
            {
                powerUpType = powerUp.getPowerUpType();
                powerUp     = null;
                switch (powerUpType)
                {
                case PowerUp.PowerUpType.freezeBarriers:
                    isFrozen = true;
                    freezeCollectSound.Play(Game1.Volume, 0f, 0f);
                    foreach (LeftBarrier b in barriers)
                    {
                        b.setBarrierSpeed(0);
                    }
                    break;

                case PowerUp.PowerUpType.breakBarriers:
                    smashCollectSound.Play(Game1.Volume, 0f, 0f);
                    isBreaking = true;
                    break;
                }
            }
            if (powerUp != null)
            {
                powerUp.Update(gameTime);
                if (powerUp.position.Y > 900)
                {
                    powerUp = null;
                }
            }
        }
Ejemplo n.º 22
0
 /// <summary>
 /// Indicates whether or not the given powerUpType is active.
 /// </summary>
 /// <param name="powerUpType">The power up type to test.</param>
 /// <returns>true if the given power up type is currently active.</returns>
 private bool isPowerUpActive(PowerUp.PowerUpType powerUpType)
 {
     return(activePowerUps.Contains(powerUpType));
 }
Ejemplo n.º 23
0
    /// <summary>
    /// Apply the given power up type, but only after a certain amount has elapsed, then power down.
    /// </summary>
    /// <returns></returns>
    private IEnumerator delayPowerUp(PowerUp.PowerUpType powerUpType)
    {
        yield return(new WaitForSeconds(5.0f));

        activePowerUps.Remove(powerUpType);
    }
Ejemplo n.º 24
0
    // Update is called once per frame
    void Update()
    {
        //rotate the paddles appropriately!
        float lAnglePercent = (float)lCool / (float)paddleFrames;          //this is what percentage of a full paddle we've done!
        float rAnglePercent = (float)rCool / (float)paddleFrames;

        if (lAnglePercent < .2f && leftPrompt.sprite == aButton)
        {
            lAnglePercent = 1f - (5f * lAnglePercent);
        }
        if (rAnglePercent < .2f && rightPrompt.sprite == aButton)
        {
            rAnglePercent = 1f - (5f * rAnglePercent);
        }

        if (leftPrompt.sprite == bButton)
        {
            lAnglePercent = 1f - lAnglePercent;             //paddling backwards!
        }
        if (rightPrompt.sprite == bButton)
        {
            rAnglePercent = 1f - rAnglePercent;
        }

        float angleToRotateLeftPaddle  = lAnglePercent * 90f;
        float angleToRotateRightPaddle = rAnglePercent * 90f;

        Vector3 paddle1Angle = paddle1.transform.localEulerAngles;

        paddle1Angle.z = 80f - angleToRotateLeftPaddle;
        //print (paddle1Angle.z);
        paddle1.transform.localEulerAngles = paddle1Angle;

        Vector3 paddle2Angle = paddle2.transform.localEulerAngles;

        paddle2Angle.z = -80f + angleToRotateRightPaddle;
        //print (paddle1Angle.z);
        paddle2.transform.localEulerAngles = paddle2Angle;


        tutorialActive = TutorialGORef.GetComponent <RaftingTutorial>().tutorial.enabled;
        if (tutorialActive)
        {
            return;
        }


        //allow paddling!
        if ((Input.GetKeyDown(left) || Input.GetKeyDown(keyLeft) || Input.GetKeyDown(backLeft) || Input.GetKeyDown(keyBackLeft)) && lCool <= 0)
        {
            lCool = cooldownFrames;
            forwardPaddleSound.Play();
        }
        if (Input.GetKeyDown(right) || Input.GetKeyDown(keyRight) || Input.GetKeyDown(backRight) || Input.GetKeyDown(keyBackRight) && rCool <= 0)
        {
            rCool = cooldownFrames;
            forwardPaddleSound.Play();
            //rightPaddle.AddForce (rightPaddle.transform.up * paddleForce);
        }



        if (winnerExists && Time.time - victoryTime > victoryDelay)
        {
            ScoreKeeper.DisplayResultsScreen();              //leave the minigame
        }

        //Time to deal with powerups
        if (power1 == PowerUp.PowerUpType.None)
        {
            powerImage1.enabled = false;
        }
        if (power2 == PowerUp.PowerUpType.None)
        {
            powerImage2.enabled = false;
        }


        //Handle Cannon powerup
        if (power1 == PowerUp.PowerUpType.Cannon)
        {
            powerImage1.enabled = true;
            powerImage1.sprite  = cannonSprite;
            cannon1.SetActive(true);
            //rotate the cannon to match the control stick
            float controlStickAngle = Mathf.Rad2Deg * Mathf.Atan2(Input.GetAxis(leftAxisH), Input.GetAxis(leftAxisV));
            cannon1.transform.eulerAngles = new Vector3(0, 0, 180f - controlStickAngle);
            if (Mathf.Abs(Input.GetAxis(leftAxisH)) + Mathf.Abs(Input.GetAxis(leftAxisV)) < .1f)
            {
                cannon1.transform.localEulerAngles = new Vector3(0, 0, 180);
                //cannon1line.SetActive(false);
            }
            else
            {
                //cannon1line.SetActive(true);
            }
        }
        else
        {
            cannon1.SetActive(false);
        }

        if (power2 == PowerUp.PowerUpType.Cannon)
        {
            powerImage2.enabled = true;
            powerImage2.sprite  = cannonSprite;
            cannon2.SetActive(true);
            //rotate the cannon to match the control stick
            float controlStickAngle = Mathf.Rad2Deg * Mathf.Atan2(Input.GetAxis(rightAxisH), Input.GetAxis(rightAxisV));
            cannon2.transform.eulerAngles = new Vector3(0, 0, 180f - controlStickAngle);
            if (Mathf.Abs(Input.GetAxis(rightAxisH)) + Mathf.Abs(Input.GetAxis(rightAxisV)) < .2f)
            {
                cannon2.transform.eulerAngles = this.transform.eulerAngles;
                //cannon2line.SetActive(false);
            }
            else
            {
                //cannon2line.SetActive(true);
            }
        }
        else
        {
            cannon2.SetActive(false);
        }



        //allow player to fire powerups
        if (Input.GetKeyDown(fireLeft) || Input.GetKeyDown(keyFireLeft) ||
            Input.GetAxis(fireTriggerLeft) >= 0.9f)
        {
            if (power1 == PowerUp.PowerUpType.Cannon)
            {
                power1 = PowerUp.PowerUpType.None;
                cannon1.GetComponent <Cannon> ().fire();
                cannon1line.SetActive(false);
                cannonFire.Play();
            }
            if (power1 == PowerUp.PowerUpType.Grapple)
            {
                power1 = PowerUp.PowerUpType.None;
                grapple1.GetComponent <Grapple> ().fire();
                grapple1line.SetActive(false);
                grappleLaunch.Play();
            }
            if (power1 == PowerUp.PowerUpType.Sail)
            {
                power1 = PowerUp.PowerUpType.None;
                sailPole1.SetActive(false);
                StartCoroutine(Boost(sail1, sailPole1));
            }
        }
        if (Input.GetKeyDown(fireRight) || Input.GetKeyDown(keyFireRight) ||
            Input.GetAxis(fireTriggerRight) >= 0.9f)
        {
            if (power2 == PowerUp.PowerUpType.Cannon)
            {
                power2 = PowerUp.PowerUpType.None;
                cannon2.GetComponent <Cannon> ().fire();
                cannon2line.SetActive(false);
                cannonFire.Play();
            }
            if (power2 == PowerUp.PowerUpType.Grapple)
            {
                power2 = PowerUp.PowerUpType.None;
                grapple2.GetComponent <Grapple> ().fire();
                grapple2line.SetActive(false);
                grappleLaunch.Play();
            }
            if (power2 == PowerUp.PowerUpType.Sail)
            {
                power2 = PowerUp.PowerUpType.None;
                sailPole2.SetActive(false);
                StartCoroutine(Boost(sail2, sailPole2));
            }
        }

        //Handle Grapple powerup stuff
        if (power1 == PowerUp.PowerUpType.Grapple)
        {
            grapple1.SetActive(true);
            powerImage1.enabled = true;
            powerImage1.sprite  = grappleSprite;
            currentScaling      = .1f;        //for some reason having an active grapple makes you go way faster, so I manually nerfed it this way
            //rotate the grapple to match the control stick
            float controlStickAngle = Mathf.Rad2Deg * Mathf.Atan2(Input.GetAxis(leftAxisH), Input.GetAxis(leftAxisV));
            grapple1.transform.eulerAngles = new Vector3(0, 0, 180f - controlStickAngle);
            if (Mathf.Abs(Input.GetAxis(leftAxisH)) + Mathf.Abs(Input.GetAxis(leftAxisV)) < .1f)
            {
                grapple1.transform.localEulerAngles = new Vector3(0, 0, 180);
            }
        }
        else
        {
            currentScaling = 1f;             //un-nerf water speed
        }

        if (power2 == PowerUp.PowerUpType.Grapple)
        {
            grapple2.SetActive(true);
            powerImage2.enabled = true;
            powerImage2.sprite  = grappleSprite;
            currentScaling      = .1f;        //for some reason grapple makes you flow way faster, so I had to manually nerf the current
            //rotate the cannon to match the control stick
            float controlStickAngle = Mathf.Rad2Deg * Mathf.Atan2(Input.GetAxis(rightAxisH), Input.GetAxis(rightAxisV));
            grapple2.transform.eulerAngles = new Vector3(0, 0, 180f - controlStickAngle);
            if (Mathf.Abs(Input.GetAxis(rightAxisH)) + Mathf.Abs(Input.GetAxis(rightAxisV)) < .1f)
            {
                grapple2.transform.localEulerAngles = new Vector3(0, 0, 0);
            }
        }
        else
        {
            currentScaling = 1f;             //un-nerf when you don't have a grapple anymore
        }

        //Handle Sail powerup stuff
        if (power1 == PowerUp.PowerUpType.Sail)
        {
            powerImage1.enabled = true;
            powerImage1.sprite  = sailSprite;
            sailPole1.SetActive(true);
        }

        if (power2 == PowerUp.PowerUpType.Sail)
        {
            powerImage2.enabled = true;
            powerImage2.sprite  = sailSprite;
            sailPole2.SetActive(true);
        }
    }
Ejemplo n.º 25
0
 /// <summary>
 /// Enables the triple shot power up for a certain amount of time.
 /// </summary>
 public void powerUpOccurred(PowerUp.PowerUpType powerUpType)
 {
     activePowerUps.Add(powerUpType);
     StartCoroutine(delayPowerUp(powerUpType));
 }