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; } }
internal void Add(Explosion explosion) { _newExplosions.Add(explosion); }
public void Process(Explosion explosion) { _newExplosions.Remove(explosion); _explosions.Add(explosion); }
public ExplosionView(Explosion explosion, IList<BitmapSource> explosionImages) { _explosion = explosion; _explosionImages = explosionImages; }
public void Process(Explosion explosion) { explosion.AddedToScreen = true; }
public void Add(Explosion explosion) { _explosions.Add(explosion); }