internal override void Move(string UnitName, string TargetBase, string BaseNameNeutral, GameLevelUnit LevelUnit)
 {
     base.Move(UnitName, TargetBase, BaseNameNeutral, LevelUnit);
 }
        internal virtual void Move(string UnitName, string TargetBase, string BaseNameNeutral, GameLevelUnit LevelUnit)
        {
            UnitGame unitGame;
            try
            {

                if (ArrayListGameObj.Count != 0)
                {
                    var UnitGameCl =
                                (from ScenWhiteBlackUnit.UnitGame a in ArrayListGameObj
                                 where
                  ((GameObjPlayerUnitAbstract)a).UnitName == UnitName
                                 select a).ToList();
                    if (UnitGameCl.Count == 0) { throw new CustomExceptionPlayerStringFormat(); }
                    unitGame = UnitGameCl.ElementAt(0);

                }
                else { unitGame = null; throw new CustomExceptionPlayerStringFormat(); }
                unitGame.SpeedUnit = ScenWhiteBlackUnit.GameObjPlayerUnitAbstract.speedUnit;

                unitGame.NeutralBase = BaseNameNeutral; //////

                unitGame.DistanceToKT = DistanceBaseAB;
                unitGame.TargetBase = TargetBase;
                unitGame.BaseName = null;
            }
            catch (CustomExceptionPlayerStringFormat)
            {
                Console.WriteLine("Ошибка в имени <<КонтТ>> и(или) <<Player>>");
                Console.ReadKey();
            }
        }