Esempio n. 1
0
 public override void Update()
 {
     if (gameStarted && !Global.isGamePaused)
     {
         Bot.Update();
         if (Global.tick % StatisticWatcher.updatePeriod == 0)
         {
             StatisticWatcher.trackPoints(Global.tick);
         }
         if (Global.tick++ % 500 == 0)
         {
             StatisticWatcher.trackCoins(1);
             Teams.playerBlue.AddCoin();
             Teams.playerRed.AddCoin();
         }
     }
 }
Esempio n. 2
0
        public virtual void Damage(int damagePure)
        {
            var damageDealt = Convert.ToInt32(Math.Round(damagePure * Math.Pow(Global.damageReducingCoefficient, _armor * Global.armorMultifier), MidpointRounding.ToEven) - GoodRnd.gen.Next(-1, 1));

            if (_team == Team.Blu)
            {
                StatisticWatcher.trackDamageDone(damageDealt);
            }
            _hp -= damageDealt;
            if (_hp <= 0 && alive)
            {
                isAlive = false;
                GameScene.Instance.RemoveGraphic(Bar);

                for (var i = 0; i < 20; i++)
                {
                    GameScene.Instance.Add(new Particle(X, Y, Assets.ParticleBlood, 4, 4)
                    {
                        LifeSpan       = 50,
                        Angle          = 10,
                        FinalAlpha     = 0,
                        FinalX         = X + GoodRnd.gen.Next(-20, 20) * (float)GoodRnd.gen.NextDouble(),
                        FinalY         = Y + GoodRnd.gen.Next(-20, 20) * (float)GoodRnd.gen.NextDouble(),
                        FinalScaleX    = 0.5f,
                        LockScaleRatio = true
                    });
                }
                if (_team == Team.Red)
                {
                    StatisticWatcher.trackUnitsKilled(1);
                    StatisticWatcher.trackCoins(1);
                    Teams.redTeam.Remove(this);
                    Teams.redTeam.TrimExcess();
                    Teams.playerBlue.AddCoin();
                    GameScene.Instance.Add(new Label(X, Y - Graphic.HalfHeight, "+1", Color.Gold, 40, true, 10));
                }
                else
                {
                    Teams.bluTeam.Remove(this);
                    Teams.bluTeam.TrimExcess();
                    Teams.playerRed.AddCoin();
                }
                RemoveSelf();
            }
        }