private void SkipCombatByShips(List <GenericShip> shipsToSkipCombat, Action callback)
        {
            if (shipsToSkipCombat != null && shipsToSkipCombat.Count > 0)
            {
                GenericShip shipToSkipCombat = shipsToSkipCombat.First();

                shipsToSkipCombat.Remove(shipToSkipCombat);

                if (!shipToSkipCombat.IsAttackPerformed)
                {
                    shipToSkipCombat.CallCombatActivation(
                        delegate {
                        AfterSkippedCombatActivation(shipToSkipCombat);
                        SkipCombatByShips(shipsToSkipCombat, callback);
                    });
                }
                else
                {
                    SkipCombatByShips(shipsToSkipCombat, callback);
                }
            }
            else
            {
                callback();
            }
        }
 public override void DoSelectThisShip(GenericShip ship, int mouseKeyIsPressed)
 {
     Roster.HighlightShipsFiltered(FilterShipsToAttack);
     ship.CallCombatActivation(delegate { ChangeSelectionMode(Team.Type.Enemy); });
 }