Exemplo n.º 1
0
    void ActivateProperModel(PowerUpType type)
    {
        switch (type)
        {
        case PowerUpType.WEAPON:
            activeModel = weaponModel;
            repairModel.SetActive(false);
            reloadModel.SetActive(false);
            break;

        case PowerUpType.REPAIR:
            weaponModel.SetActive(false);
            activeModel = repairModel;
            reloadModel.SetActive(false);
            break;

        case PowerUpType.RELOAD:
            weaponModel.SetActive(false);
            repairModel.SetActive(false);
            activeModel = reloadModel;
            break;

        default:
            throw new UnityException("Unknown PowerUp-Type \"" + type.ToString() + "\"");
        }
        activeModel.SetActive(true);
    }
Exemplo n.º 2
0
    void OnTriggerEnter(Collider other)
    {
        if ((other.gameObject.tag == "Player" && other.gameObject.tag != "RoadSpawner") || (other.gameObject.tag == "Player" && other.gameObject.tag != "RoadDestroyer"))
        {
            Debug.Log("TODO: ADD COLLECT PARTICLE to this!");

            if (selectPowerUp == PowerUpType.Health)
            {
                // powerUpAmount will decide how much health player will get
                other.gameObject.GetComponent <PlayerController>().AddHealthPowerUp(powerUpAmount);
            }
            else if (selectPowerUp == PowerUpType.Nitro)
            {
                // The nitro will fill up 100% everytime!!!
                other.gameObject.GetComponent <PlayerController>().AddSpeedPowerUp();
            }
            else if (selectPowerUp == PowerUpType.Score)
            {
                // powerUpAmount will decide how much extra scrore player will get
                other.gameObject.GetComponent <PlayerController>().AddScorePowerUp((powerUpAmount * 1000f));
            }


            if (GameManager.debugIsOn)
            {
                Debug.Log("Collected powerup: " + selectPowerUp.ToString());
            }
            Destroy(this.gameObject);
        }

        if (other.gameObject.tag == "Enemy")
        {
            Destroy(gameObject);
        }
    }
Exemplo n.º 3
0
 public PowerUp(PowerUpType type_, Vector2 pos)
 {
     type = type_;
     sprite = PowerUpManager.PowerUpTextures[type.ToString()];
     position = pos;
     base.Initialize();
 }
Exemplo n.º 4
0
 public PowerUp(PowerUpType type_, Vector2 pos)
 {
     type     = type_;
     sprite   = PowerUpManager.PowerUpTextures[type.ToString()];
     position = pos;
     base.Initialize();
 }
Exemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        //render type text to display to players what the power up does
        text.text = type.ToString();
        switch (owningPlayer)
        {
        case 1:
            gameObject.GetComponent <Renderer>().material.color = GameConstants.Player1Color;
            break;

        case 2:
            gameObject.GetComponent <Renderer>().material.color = GameConstants.Player2Color;
            break;
        }
    }
Exemplo n.º 6
0
 public void OnSpawn(Vector3 startPos, PowerUpType myType)
 {
     transform.position = startPos;
     KindOfPowerUp      = myType;
     myText.text        = KindOfPowerUp.ToString();
     if (s_Sailer.Singleton.GetRadar())
     {
         createRadarGhost();
         currentState = state.radar;
     }
     else
     {
         currentState = state.alive;
     }
     GetComponent <Renderer>().material = myMaterials[(int)KindOfPowerUp];
     gameObject.SetActive(true);
 }
Exemplo n.º 7
0
 void OnCollisionEnter(Collision collision)
 {
     // パワーアップしてる状態の時、敵と触れた時の処理
     if (collision.gameObject.CompareTag("Enemy") && currentPowerUp == PowerUpType.Pushback)
     {
         Rigidbody enemyRb        = collision.gameObject.GetComponent <Rigidbody>();
         Vector3   awayFromPlayer = collision.gameObject.transform.position - transform.position;
         enemyRb.AddForce(awayFromPlayer * powerupStrength, ForceMode.Impulse);
         Debug.Log("Player collided with: " + collision.gameObject.name + " withpowerup set to " + currentPowerUp.ToString());
     }
 }
Exemplo n.º 8
0
        public void PowerUpNotification(object powerUpId, object powerUpType, object postion)
        {
            PowerUpType type = (PowerUpType)powerUpType;

            _view.ReceiveNotification(type.ToString());
        }
Exemplo n.º 9
0
        private int defaultRadius;           // Player spotted radius.
        #endregion
        #endregion

        #region Constructors
        public PowerUp(Game game, Vector2 position, List <TileRef> sheetRefs,
                       int frameWidth, int frameHeight, float layerDepth,
                       float maxLifeTime, PowerUpType type, int amount, float multiplier,
                       SoundEffect pickupSnd, SoundEffect camoSnd, Ricochet newRound)
            : base(game, position, sheetRefs, frameWidth, frameHeight, layerDepth)
        {
            Visible           = true;
            DrawOrder         = 100;
            this.Type         = type;
            this.MaxLifeTime  = maxLifeTime;
            this.Factor       = multiplier;
            this.Amount       = amount;
            this.State        = PowerUpStatus.Deactivated;
            this.newRound     = newRound;
            BoundingRectangle = new Rectangle(
                PixelPosition.ToPoint(),
                new Point(FrameWidth / 8, FrameHeight / 8));

            #region Get Default Values
            TilePlayer          player        = (TilePlayer)Game.Services.GetService(typeof(TilePlayer));
            TilePlayerTurret    playerTurret  = (TilePlayerTurret)Game.Services.GetService(typeof(TilePlayerTurret));
            List <SentryTurret> sentryTurrets = (List <SentryTurret>)Game.Services.GetService(typeof(List <SentryTurret>));

            if (player != null)
            {
                defaultMaxVelocity        = player.MaxVelocity;
                defaultPlayerAcceleration = player.Acceleration;
                defaultPlayerDeceleration = player.Deceleration;
                defaultTurnSpeed          = player.turnSpeed;
            }

            foreach (SentryTurret turret in sentryTurrets)
            {
                if (turret != null)
                {
                    // Finds first enemy tank in list that's not NULL and takes those as default values.
                    defaultPlayerDamageRate = turret.Bullet.playerDamageRate;
                    defaultRadius           = turret.DetectRadius;
                    break;
                }
            }

            if (playerTurret != null)
            {
                defaultSentryDamageRate = playerTurret.Bullet.sentryDamageRate;
                defaultBullet           = playerTurret.Bullet;
                defaultShellSnd         = playerTurret.ShellSound;
            }
            #endregion

            #region Handle Audio
            this.pickupSnd = pickupSnd;
            pickupSndInst  = this.pickupSnd.CreateInstance();
            #endregion

            #region Setup OrbLight
            PenumbraComponent penumbra = Game.Services.GetService <PenumbraComponent>();
            penumbra.Lights.Add(OrbLight);

            switch (type)
            {
            case PowerUpType.Regen:
            case PowerUpType.Heal:
                OrbLight.Color = Color.LimeGreen;
                break;

            case PowerUpType.DefenseBoost:
                OrbLight.Color = Color.LightBlue;
                break;

            case PowerUpType.SpeedBoost:
                OrbLight.Color = Color.Orange;
                break;

            case PowerUpType.ExtraDamage:
                OrbLight.Color = Color.Red;
                break;

            case PowerUpType.Camouflage:
                OrbLight.Color = Color.Purple;
                break;

            default:
                OrbLight.Color = Color.White;
                break;
            }
            #endregion

            #region Setup Duration Bar
            if (Type == PowerUpType.Camouflage)
            {
                durationBar      = new HealthBar(game, CentrePos);
                durationBar.Name = Type.ToString();
                durationBar.txHealthBar.SetData(new[] { durationBarColor });
                AddHealthBar(durationBar);
                Health = (int)Duration;

                this.camoSnd       = camoSnd;
                camoSndInst        = this.camoSnd.CreateInstance();
                camoSndInst.Volume = 0.8f;
            }
            #endregion
        }
Exemplo n.º 10
0
    private PowerUp CreatePowerUpInstance(PowerUpType powerType, Transform spawnMarker = null)
    {
        GameObject go = (GameObject)Instantiate(Resources.Load(POWERUPS_ASSETS_PATH + "/" + powerType.ToString()));

        //Debug.Log("path: " +POWERUPS_ASSETS_PATH + "/" + powerType.ToString());
        if (spawnMarker != null)
        {
            go.transform.position = spawnMarker.position;
            go.transform.rotation = spawnMarker.rotation;
        }
        return(go.GetComponent <PowerUp>());
    }
Exemplo n.º 11
0
    private int respawnTime = 15; // 15 seconds

    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject.tag == "Player")
        {
            /* Code for PickUp items
             * These items have no duration and no opposites.
             * Their effects are immediate - so no need to do anything intensive.
             * */
            if (powerUp == PowerUpType.Sugar)
            {
                int slimeAmt = collider.gameObject.GetComponent <PlayerScript>().slime - 30;
                if (slimeAmt < 0)
                {
                    slimeAmt = 0;
                }
                collider.gameObject.GetComponent <PlayerScript>().slime = slimeAmt;
            }
            else if (powerUp == PowerUpType.Flower)
            {
                int slimeAmt = collider.gameObject.GetComponent <PlayerScript>().slime + 30;
                if (slimeAmt > PlayerScript.SLIME_MAX)
                {
                    slimeAmt = PlayerScript.SLIME_MAX;
                }
                collider.gameObject.GetComponent <PlayerScript>().slime = slimeAmt;
            }
            else
            {
                /* Code for power ups with duration */
                PowerUpEffectScript script = null;

                /* Only Salt and Water are opposites right now. */
                if (powerUp == PowerUpType.Salt || powerUp == PowerUpType.Water)
                {
                    PowerUpType opposite;
                    if (powerUp == PowerUpType.Salt)
                    {
                        opposite = PowerUpType.Water;
                    }
                    else
                    {
                        opposite = PowerUpType.Salt;
                    }

                    if ((script = (PowerUpEffectScript)collider.gameObject.GetComponent(opposite.ToString() + "Script")) != null)
                    {
                        //If power up is opposite of power up on player. - removes power up and does not put new power up on
                        script.StopCoroutine(script.currentCoroutine);
                        script.removeEffect();
                        Destroy(script);
                    }
                }

                if (script == null) //If it is null then it means an opposite was not found or not looked for.
                {
                    if ((script = (PowerUpEffectScript)collider.gameObject.GetComponent(powerUp.ToString() + "Script")) != null)
                    {
                        //If same power up is already on player - removes the power up first
                        script.StopCoroutine(script.currentCoroutine);
                        script.removeEffect();
                        Destroy(script);
                    }
                    //puts new power up on
                    collider.gameObject.AddComponent(Type.GetType(powerUp.ToString() + "Script"));
                }
            }
            setActive(false);
            StartCoroutine(respawn());
        }
    }
Exemplo n.º 12
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject.tag == "Player")
        {
            PlayerScript player = collider.gameObject.GetComponent <PlayerScript> ();
            if (player.powerUpEffects [powerUp.ToString()] == 0)
            {
                //If the effect is 0... do not eat the power up at all. Ignore it.
                return;
            }

            /* Code for PickUp items
             * These items have no duration and no opposites.
             * Their effects are immediate - so no need to do anything intensive.
             * */
            if (powerUp == PowerUpType.Sugar)
            {
                int slimeAmt = player.getSlime() - (int)(SUGAR_EFFECT * player.powerUpEffects ["Sugar"]);
                if (slimeAmt < 0)
                {
                    slimeAmt = 0;
                }
                player.changeSlimeBar(slimeAmt);
            }
            else if (powerUp == PowerUpType.Flower)
            {
                int slimeAmt = player.getSlime() + (int)(FLOWER_EFFECT * player.powerUpEffects ["Flower"]);
                if (slimeAmt > player.SLIME_MAX)
                {
                    slimeAmt = player.SLIME_MAX;
                }
                player.changeSlimeBar(slimeAmt);
            }
            else
            {
                /* Code for power ups with duration */
                PowerUpEffectScript script = null;

                /* Only Salt and Water are opposites right now. */
                if (powerUp == PowerUpType.Salt || powerUp == PowerUpType.Water)
                {
                    PowerUpType opposite;
                    if (powerUp == PowerUpType.Salt)
                    {
                        opposite = PowerUpType.Water;
                    }
                    else
                    {
                        opposite = PowerUpType.Salt;
                    }

                    if ((script = (PowerUpEffectScript)collider.gameObject.GetComponent(opposite.ToString() + "Script")) != null)
                    {
                        //If power up is opposite of power up on player. - removes power up and does not put new power up on
                        script.StopCoroutine(script.currentCoroutine);
                        script.removeEffect();
                        Destroy(script);
                    }
                }

                if (script == null)                   //If it is null then it means an opposite was not found or not looked for.
                {
                    if ((script = (PowerUpEffectScript)collider.gameObject.GetComponent(powerUp.ToString() + "Script")) != null)
                    {
                        //If same power up is already on player - removes the power up first
                        script.StopCoroutine(script.currentCoroutine);
                        script.removeEffect();
                        Destroy(script);
                    }
                    //puts new power up on
                    PowerUpEffectScript s      = (PowerUpEffectScript)collider.gameObject.AddComponent(Type.GetType(powerUp.ToString() + "Script"));
                    GameObject          prefab = Instantiate(displayPrefab);
                    prefab.GetComponentInChildren <UnityEngine.UI.RawImage> ().texture = images [(int)powerUp].texture;
                    s.setPrefab(prefab);
                }
            }
            setActive(false);
            StartCoroutine(respawn());
        }
    }
Exemplo n.º 13
0
 void Update()
 {
     //Debug Mode
     if (pSwitch.DEBUG_MODE)
     {
         if (InputManager.ActiveDevice.Action1.WasPressed)
         {
             PowerUpType powerup = StartingPowerUp;
             Execute(powerup);
             Debug.Log("DEBUG MODE: Using Powerup: " + StartingPowerUp);
         }
     }
     else
     {
         //Check if there was powerup input
         bool       action1WasPressed   = false;
         PlayerData playerThatPressedIt = null;
         if (DataManager.CurrentGameMode == DataManager.GameMode.Party)
         {
             foreach (PlayerData i in DataManager.PlayerList)
             {
                 if (i.Controller.Action1.WasPressed && i.CurrentPowerUp != PowerUpType.None)
                 {
                     action1WasPressed   = true;
                     playerThatPressedIt = i;
                     break;
                 }
             }
         }
         else
         {
             PlayerData i = DataManager.PlayerList[0];
             if (i.Controller.Action1.WasPressed && i.CurrentPowerUp != PowerUpType.None)
             {
                 action1WasPressed   = true;
                 playerThatPressedIt = i;
             }
         }
         //Execute if there was any input
         if (action1WasPressed && !pSwitch.passingController && !pSwitch.startingGame && !pSwitch.playerWin && !hud.Paused)
         {
             PlayerData player;
             if (DataManager.CurrentGameMode == DataManager.GameMode.Party)
             {
                 player = playerThatPressedIt;
             }
             else
             {
                 int currentIndex = gameObject.GetComponent <PlayerSwitching>().currentIndex;
                 player = DataManager.PlayerList[currentIndex];
             }
             PowerUpType powerup = player.CurrentPowerUp;
             if (powerup == PowerUpType.None)
             {
                 return;
             }
             Debug.Log("Player " + player.PlayerNumber + " is using Powerup: " + powerup.ToString());
             Execute(powerup);
             player.CurrentPowerUp = PowerUpType.None;
             hud.DisplayPowerups(player.PlayerNumber, " ");
             StartCoroutine(Cooldown(player));
         }
     }
 }
Exemplo n.º 14
0
 //Here we create the PowerUp button whichs power ups the worker
 private void CreatePowerUpButton()
 {
     _powerUpBtn = Instantiate(_powerUpBtn, GameObject.FindGameObjectWithTag("Canvas").transform);
     _powerUpBtn.onClick.AddListener(OnPowerUpBtnClicked);
     _powerUpBtn.GetComponentInChildren <Text>().text = _type.ToString() + "\nx" + _factor;
 }
Exemplo n.º 15
0
    public void ApplyPowerUpItem(PowerUpType powerUpType)
    {
        if (powerUpType == PowerUpType.Basic)
        {
            _powerMeter = 1;
            _gameManager.player.ExchangeControlHandler(0, new GoodHealthPlayerControlHandler(_gameManager.player));
            Logger.Info("Added basic power up. " + this.ToString());
        }
        else
        {
            if (_powerMeter != 1)
            {
                // when getting a non basic power up, we want to set the power meter to 1 so we automatically go back to that state in case we lose the
                // power up.
                _powerMeter = 1;
                _gameManager.player.ExchangeControlHandler(0, new GoodHealthPlayerControlHandler(_gameManager.player));
                Logger.Info("Added basic power up. " + this.ToString());
            }

            if (!_currentPowerUpItem.HasValue || _currentPowerUpItem.Value != powerUpType)
            {
                if (_currentPowerUpItem.HasValue)
                {
                    _gameManager.player.RemoveControlHandler(_currentPowerUpControlHandler);
                }

                switch (powerUpType)
                {
                case PowerUpType.Floater:
                    _currentPowerUpControlHandler = new PowerUpFloaterControlHandler(_gameManager.player, _gameManager.gameSettings.powerUpSettings);
                    break;

                case PowerUpType.DoubleJump:
                    _currentPowerUpControlHandler = new PowerUpDoubleJumpControlHandler(_gameManager.player);
                    break;

                case PowerUpType.SpinMeleeAttack:
                    _currentPowerUpControlHandler = new PowerUpSpinMeleeAttackControlHandler(_gameManager.player);
                    break;

                case PowerUpType.JetPack:
                    _currentPowerUpControlHandler = new PowerUpJetPackControlHandler(_gameManager.player, 30f, _gameManager.gameSettings.powerUpSettings);
                    break;

                case PowerUpType.Gun:
                    _currentPowerUpControlHandler = new PowerUpGunControlHandler(_gameManager.player, -1f, _gameManager.gameSettings.powerUpSettings);
                    break;
                }

                _gameManager.player.PushControlHandler(_currentPowerUpControlHandler);
                _currentPowerUpItem = powerUpType;

                if (!_orderedPowerUpInventory.Contains(powerUpType))
                {
                    _orderedPowerUpInventory.Add(powerUpType);
                    _orderedPowerUpInventory.Sort();
                }

                Logger.Info("Added " + powerUpType.ToString() + " power up. " + this.ToString());
            }
        }
    }