Inheritance: MonoBehaviour
Example #1
0
    //constructor
    public override void Init(PowerUp powerUp)
    {
        base.Init(powerUp);

        SlowDown slowDown = powerUp as SlowDown;

        timeToSet = slowDown.timeToSet;
    }
Example #2
0
 public void Update()
 {
     if (_currentSlowdown != null)
     {
         _currentSlowdown.Duration -= Time.deltaTime * (1 / (1 - Time.timeScale));
         UpdateTimeDisplayCallback.Invoke(_currentSlowdown.DurationProcentage);
         if (_currentSlowdown.Duration < 0)
         {
             EnableTimeDisplayCallback.Invoke(false);
             RestTimeScale();
             _currentSlowdown = null;
         }
     }
 }
Example #3
0
        protected override void OnActivate()
        {
            this.menu                 = new OrderBlockerMenu(this.context, this.menuManager, this.context.AssemblyEventManager);
            this.drawInfo             = new DrawBlockInfo(this.context.Renderer, this.menu);
            this.oosBlock             = new OutOfScreenBlock(this.menu);
            this.zoomBlock            = new ZoomBlock(this.menu);
            this.spamBlock            = new SpamBlock(this.menu);
            this.notSelectedBlock     = new NotSelectedBlock(this.menu);
            this.slowDown             = new SlowDown(this.menu);
            this.blockTooFastReaction = new BlockTooFastReaction(this.menu);

            Player.OnExecuteOrder += this.OnExecuteOrder;
            Player.OnExecuteOrder += this.OnExecuteOrderAPM;
            this.context.AssemblyEventManager.ForceBlockerResubscribe += this.ForceBlockerResubscribe;
        }
Example #4
0
    internal void QueueSlowdown(float timeScale, float duration)
    {
        if (_currentSlowdown != null)
        {
            _currentSlowdown.TimeScale = timeScale;
            _currentSlowdown.SetDuration(duration);
        }
        else
        {
            _currentSlowdown = new SlowDown(duration, timeScale);
        }

        SetNewTimeScale(_currentSlowdown.TimeScale);
        EnableTimeDisplayCallback.Invoke(true);
        UpdateTimeDisplayCallback.Invoke(_currentSlowdown.DurationProcentage);
    }
Example #5
0
    IEnumerator CreatePowerUps()
    {
        var random = new System.Random();
        int randNum;

        while (Application.isPlaying)
        {
            if (!delay.IsDelayed)
            {
                randNum = random.Next(5);
                if (randNum == 0)
                {
                    print("Creating powerup");
                    var powerUp = Instantiate(PowerUp);
                    randNum = random.Next(5);
                    Ability ability = null;
                    switch (randNum)
                    {
                    case 0:
                        ability = new SpeedUp(gameBall, this);
                        break;

                    case 1:
                        ability = new SlowDown(gameBall, this);
                        break;

                    case 2:
                        ability = new Grow(leftPaddle, rightPaddle, gameBall);
                        break;

                    case 3:
                        ability = new Shrink(leftPaddle, rightPaddle, gameBall);
                        break;

                    case 4:
                        ability = new ChangeDirection(gameBall);
                        break;
                    }
                    var position = new Vector3((float)random.NextDouble() * 6 - 3, (float)random.NextDouble() * 6 - 3, 0);
                    powerUp.Init(ability, position);
                    PowerUpsOnField.Add(powerUp);
                    powerUp.GameManager = this;
                }
            }
            yield return(new WaitForSeconds(1f));
        }
    }
 protected override void Awake()
 {
     base.Awake();
     Range        = 10f;
     Damage       = 10;
     UpgradeCosts = new List <int> {
         100, 300, 400
     };
     UpgradeScaleChanges = new List <Vector3> {
         new Vector3(0.1f, 0.1f, 0.1f), new Vector3(0.2f, 0.2f, 0.2f), new Vector3(0.35f, 0.35f, 0.35f)
     };
     upgradeBoost = new UpgradeBoost(10, 10, 10);
     SellCosts    = new List <int> {
         50, 100, 300, 550
     };
     slowDown      = new SlowDown(5, 0.5f);
     BugTag        = "Enemy";
     RotationSpeed = 5f;
     FireRate      = 0.5f;
 }
Example #7
0
    void SetDefaultValues()
    {
        this.slowDownPickUp    = new SlowDown();
        this.flashPickUp       = new Flash();
        this.slowFallingPickup = new SlowFalling();

        this.pickUpsList = new List <PickUp>()
        {
            slowDownPickUp,
            flashPickUp,
            slowFallingPickup
        };

        this.pickUpsProbabilities = new List <float>
        {
            0.8f,  //grenade
            0.05f, //Slow Down
            0.05f, //Flash
            0.1f   //Slow Falling
        };
    }
Example #8
0
    /// <summary>
    /// Coroutine function that calls logic when a player picks up slowdown.
    /// </summary>
    /// <param name="target">Player that did not pickup slowdown</param>
    /// <param name="slowDown">Slow down data class</param>
    /// <returns>Enumerator to be used by coroutines</returns>
    IEnumerator activateSlowDown(Player target, SlowDown slowDown)
    {
        //Show picked up
        slowDown.gameObject.GetComponent<Animator>().SetTrigger("pickupHit");
        slowDown.gameObject.GetComponent<Animator>().SetTrigger("hide");

        //Don't trigger collider again
        slowDown.gameObject.GetComponent<Collider2D>().enabled = false;

        //Check if there is a slowdown icon on the player
        var slowDownIconOnPlayerAnimator = target.gameObject.transform.Find("SlowDownIcon").gameObject.GetComponent<Animator>();
        slowDownIconOnPlayerAnimator.SetTrigger("fadein");

        //Slow down picked up logic
        target.speed -= slowDown.flatSpeedReduction;
        yield return new WaitForSeconds(slowDown.speedRecutionDuration - slowDown.speedRecutionWarningDuration);

        //Show user slowdown is almost up
        slowDownIconOnPlayerAnimator.SetTrigger("activeFinishing");
        yield return new WaitForSeconds(slowDown.speedRecutionWarningDuration);

        target.speed += slowDown.flatSpeedReduction;
    }
 public PowerUp getPowerUp(PowerUpList chosenPowerUpID)
 {
     PowerUp chosenPowerUp = null;
     switch (chosenPowerUpID) {
     case PowerUpList.SlowDown:
         chosenPowerUp = new SlowDown(10);
         break;
     case PowerUpList.SpeedUp:
         chosenPowerUp = new SpeedUp(10);
         break;
     case PowerUpList.Warp:
         chosenPowerUp = new Warp(10);
         break;
     case PowerUpList.IceyPlayer:
         chosenPowerUp = new IceyPlayer(10);
         break;
     case PowerUpList.ObjectSpawnPowerUp:
         chosenPowerUp = new ObjectSpawnPowerUp(10);
         break;
     case PowerUpList.Pull:
         chosenPowerUp = new Pull(10);
         break;
     case PowerUpList.Push:
         chosenPowerUp = new Push(10);
         break;
     case PowerUpList.Bigger:
         chosenPowerUp = new Bigger(10);
         break;
     case PowerUpList.Smaller:
         chosenPowerUp = new Smaller(10);
         break;
     case PowerUpList.OrbitingShield:
         chosenPowerUp = new OrbitingShield(10);
         break;
     }
     return chosenPowerUp;
 }
Example #10
0
 void Start()
 {
     _lowSpeed = speed * 0.1f;
     _curSpeed = speed;
     _slowDown = GetComponent <SlowDown>();
 }
Example #11
0
 public void ClearQueue()
 {
     _currentSlowdown = null;
     EnableTimeDisplayCallback.Invoke(false);
     RestTimeScale();
 }
    public void AddPowerup(PowerupType type)
    {
        if (powerups.ContainsKey(type) && type != PowerupType.ULTIMATE)
        {
            powerups[type].AddTime();
            return;
        }

        // usuwanie steerblock powerupa
        if (type != PowerupType.STEERBLOCK && powerups.ContainsKey(PowerupType.STEERBLOCK))
        {
            SteerBlock sb = (SteerBlock)powerups[PowerupType.STEERBLOCK];
            sb.PowerupEnd(this);
            powerups.Remove(PowerupType.STEERBLOCK);
        }

        Powerup thePowerup = null;

        // Tutaj w switch przydalo by sie ogarniac priorytet powerupow
        // np jak masz slowa to sie nie da speedup -> powerupy sie anuluja?

        switch (type)
        {
        case PowerupType.SPEEDUP:
        {
            if (powerups.ContainsKey(PowerupType.SLOWDOWN))
            {
                powerups.Remove(PowerupType.SLOWDOWN);
            }
            Speedup     powerup = new Speedup();
            SpeedupData sd;
            if (powerupsData.ContainsKey(PowerupType.SPEEDUP))
            {
                sd = (SpeedupData)powerupsData[PowerupType.SPEEDUP];
            }
            else
            {
                sd = Resources.Load <SpeedupData>("ScriptableData/SpeedupData");
                powerupsData.Add(PowerupType.SPEEDUP, sd);
            }
            powerup.speedupData = sd;
            powerup.AddTime();
            powerups.Add(PowerupType.SPEEDUP, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.SLOWDOWN:
        {
            if (powerups.ContainsKey(PowerupType.SPEEDUP))
            {
                powerups.Remove(PowerupType.SPEEDUP);
            }
            SlowDown     powerup = new SlowDown();
            SlowDownData sd;
            if (powerupsData.ContainsKey(PowerupType.SLOWDOWN))
            {
                sd = (SlowDownData)powerupsData[PowerupType.SLOWDOWN];
            }
            else
            {
                sd = Resources.Load <SlowDownData>("ScriptableData/SlowdownData");
                powerupsData.Add(PowerupType.SLOWDOWN, sd);
            }
            powerup.slowDownData = sd;
            powerup.AddTime();
            powerups.Add(PowerupType.SLOWDOWN, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.STEERBLOCK:
        {
            SteerBlock     powerup = new SteerBlock();
            SteerBlockData sd;
            if (powerupsData.ContainsKey(PowerupType.STEERBLOCK))
            {
                sd = (SteerBlockData)powerupsData[PowerupType.STEERBLOCK];
            }
            else
            {
                sd = Resources.Load <SteerBlockData>("ScriptableData/SteerBlockData");
                powerupsData.Add(PowerupType.STEERBLOCK, sd);
            }
            powerup.steerBlockData = sd;
            powerup.AddTime();
            powerups.Add(PowerupType.STEERBLOCK, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.GHOST:
        {
            Ghost     powerup = new Ghost();
            GhostData gd;
            if (powerupsData.ContainsKey(PowerupType.GHOST))
            {
                gd = (GhostData)powerupsData[PowerupType.GHOST];
            }
            else
            {
                gd = Resources.Load <GhostData>("ScriptableData/GhostData");
                powerupsData.Add(PowerupType.GHOST, gd);
            }
            powerup.ghostData = gd;
            powerup.AddTime();
            powerups.Add(PowerupType.GHOST, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.ULTIMATE:
        {
            powerups.Remove(PowerupType.ULTIMATE);
            Ultimate     powerup = new Ultimate();
            UltimateData ud;
            if (powerupsData.ContainsKey(PowerupType.ULTIMATE))
            {
                ud = (UltimateData)powerupsData[PowerupType.ULTIMATE];
            }
            else
            {
                ud = Resources.Load <UltimateData>("ScriptableData/UltimateData");
                powerupsData.Add(PowerupType.ULTIMATE, ud);
            }
            powerup.ultimateData = ud;
            powerup.AddTime();
            powerups.Add(PowerupType.ULTIMATE, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.SHIELD:
        {
            thePowerup = new Shield();
            break;
        }

        default:
            Debug.LogError("Unknown PowerupType");
            return;
        }
        thePowerup.PowerupStart(this);
        GameManager.Instance.AddPowerupScore();
    }
 private void Awake()
 {
     instance = this;
 }