protected virtual void removeShot(Shot s) { this.shots.Remove(s); }
protected virtual void addShot(Shot s) { this.shots.Add(s); }