Beispiel #1
0
 public void Tick()
 {
     if (_dead) return;
     _x += Math.Cos(ToRadians(_heading))*_speed;
     _y -= Math.Sin(ToRadians(_heading))*_speed;
     _dead = (_x < 0) || (_x >= _battlefield.Width);
     _dead = _dead || (_y < 0) || (_y >= _battlefield.Height);
     foreach (var other in _battlefield.Robots)
         if ((other != _origin) && (Hypotenuse(_y - other.Y, other.X - _x) < 40) && (!other.Dead()))
         {
             var explosion = new Explosion(Convert.ToInt32(other.X), Convert.ToInt32(other.Y));
             _battlefield.Add(explosion);
             var damage = other.Hit(this);
             _origin.DamageGiven += damage;
             if (other.Dead()) _origin.Kills += 1;
             _dead = true;
         }
 }
Beispiel #2
0
 internal void Add(Explosion explosion)
 {
     _newExplosions.Add(explosion);
 }
Beispiel #3
0
 public void Process(Explosion explosion)
 {
     _newExplosions.Remove(explosion);
     _explosions.Add(explosion);
 }
 public ExplosionView(Explosion explosion, IList<BitmapSource> explosionImages)
 {
     _explosion = explosion;
     _explosionImages = explosionImages;
 }
Beispiel #5
0
 public void Process(Explosion explosion)
 {
     explosion.AddedToScreen = true;
 }
Beispiel #6
0
 public void Add(Explosion explosion)
 {
     _explosions.Add(explosion);
 }