public function shoot() { if ($this->shot) { throw new FieldAlreadyBeenShotException(); } $this->shot = true; if ($this->occupied()) { $this->ship->hit(); } }