Exemple #1
0
 public override void Update()
 {
     if (!isInitialized)
     {
         _armor         = 10;
         _range         = 140;
         _hp            = 1000;
         _damage        = 3;
         _gun           = new DragonWeapon(_damage, GameScene.Instance);//NoWeapon(GameScene.Instance);
         _cooldownValue = 5;
         _speed         = 0;
     }
     base.Update();
     if (!Global.isGamePaused)
     {
         _creepsCD--;
         _siegeCD--;
         if (_creepsCD <= 0)
         {
             spawnCreeps();
         }
     }
 }
Exemple #2
0
        public void Effect()
        {
            switch (_type)
            {
            case AbilityList.DragonBreath:
            {
                List <Entity> enemyTeam;
                if (_owner.team == Team.Red)
                {
                    enemyTeam = Teams.bluTeam;
                }
                else
                {
                    enemyTeam = Teams.redTeam;
                }

                var tmpGun = new DragonWeapon(_owner.damage, GameScene.Instance);
                tmpGun.Move((int)_owner.Xcoord, (int)_owner.Ycoord);

                foreach (Unit target in enemyTeam)
                {
                    double Distance = (Math.Sqrt(Math.Pow(_owner.Xcoord - target.X, 2) + Math.Pow(_owner.Ycoord - target.Y, 2)));
                    if (Distance <= _range)
                    {
                        tmpGun.Shoot(target);
                    }
                }
            }
            break;

            case AbilityList.HealingAura:
            {
                List <Entity> ownTeam;
                if (_owner.team != Team.Red)
                {
                    ownTeam = Teams.bluTeam;
                }
                else
                {
                    ownTeam = Teams.redTeam;
                }

                foreach (Unit target in ownTeam)
                {
                    double Distance = (Math.Sqrt(Math.Pow(_owner.Xcoord - target.X, 2) + Math.Pow(_owner.Ycoord - target.Y, 2)));
                    if (!target.isBuilding && Distance <= _range)
                    {
                        target.Heal(5);
                        for (var counter = 0; counter < 4; counter++)
                        {
                            GameScene.Instance.Add(new Particle(target.X, target.Y, Assets.ParticleStar, 4, 4)
                                {
                                    LifeSpan       = 10,
                                    Angle          = GoodRnd.gen.Next(-360, 360),
                                    FinalAlpha     = 0,
                                    FinalX         = target.X + GoodRnd.gen.Next(-50, 50) * (float)GoodRnd.gen.NextDouble(),
                                    FinalY         = target.Y + GoodRnd.gen.Next(-50, 50) * (float)GoodRnd.gen.NextDouble(),
                                    FinalAngle     = GoodRnd.gen.Next(-360, 360),
                                    FinalScaleX    = 0.5f,
                                    LockScaleRatio = true
                                });
                        }
                    }
                }
            }
            break;

            case AbilityList.Vampirism:
                break;

            case AbilityList.Demolisher:
                break;

            default:
                break;
            }
        }