@Override
	public void update(GameState state) 
	{
		pos.add(vel, state.seconds);
		
		if (pos.x < 0 || pos.x > AsteroidsGame.WIDTH || pos.y < 0 || pos.y > AsteroidsGame.HEIGHT)
		{
			expire();
		}
		
		// TODO Coll Detection
		for (int j = 0; j < AsteroidsGame.enemies.size(); j++)
		{
			if (getBoundary().intersects(AsteroidsGame.enemies.get(j).getBoundary()))
			{
				AsteroidsGame.particles.add(new SmokeParticle((float)getBoundary().getCenterX(),
												(float)getBoundary().getCenterY(),
												12, 500, 1.0f, Color.YELLOW));
				expire();
				
				// TODO dependent on bullet dmg
				AsteroidsGame.enemies.get(j).dealDmg(dmg);
			}
		}
	}