public virtual void Shoot(Player enemy) { Logger.Log($"Shooting {enemy.Name}'s ship at {TargetCoordinates.ToString()}"); if (TargetCoordinates == NO_TARGET) // this is not so necessary { Logger.Log("Invalid target!"); return; } // check if it hit the enemy bool[] feedback = enemy.IsHitAndSink(TargetCoordinates); if (feedback[0]) { Logger.Log("Hit!"); Hits++; //check if destroyed if (feedback[1]) { OnEnemyShipDestroyed(); } } else { Logger.Log("Missed."); } TargetCoordinates = NO_TARGET; }