/** Should only be called from Bomb.Blow() */ public void BlowBomb(Bomb bomb) { int cx = bomb.GetCx(); int cy = bomb.GetCy(); bomb.RemoveFromField(); SetFlame(bomb, cx, cy); bomb.player.OnBombBlown(bomb); bool up = true, down = true, left = true, right = true; int radius = bomb.GetRadius(); for (int i = 1; i <= radius && (up || down || left || right); ++i) { left = left && SetFlame(bomb, cx - i, cy); up = up && SetFlame(bomb, cx, cy - i); down = down && SetFlame(bomb, cx, cy + i); right = right && SetFlame(bomb, cx + i, cy); } }