/// <summary> /// Метод обрабатывает нажатие точки /// </summary> /// <param name="point"> Точка , которую нажал игрок</param> public void PointEnter(PointController point) { path.clearRoad(pointClr, currentClr, keyPointClr, blockPointClr); if (point != path.startPoint && !point.IsBlockPoint) { if (point.IsKeyPoint && path.nextKeyPoint == point) { // point - ключевая точка path.searchRoad(path.startPoint.num, point.num); if (ui.OpenCloseUi(point, path.GetDistance(point.num), path.GetNextCity())) { path.drawRoad(roadClr); } } else { path.searchRoad(path.startPoint.num, point.num); foreach (int p in path.road) { //Если на маршруте есть заблокированная точка if (path.mapsObj[p].IsBlockPoint) { if (ui.uiActive) { ui.OpenCloseUi(point, path.GetDistance(point.num), path.GetNextCity()); } return; } } if (!path.road.Contains(path.nextKeyPoint.num)) { if (point.IsOpenPoint) { //point - открытая точка для перемещения path.searchRoad(path.startPoint.num, point.num); if (ui.OpenCloseUi(point, path.GetDistance(point.num), path.GetNextCity())) { path.drawRoad(roadClr); } } else { //point закрытая точка для перемещния //строим дорогу от стартовой до ключевой //через закрытую точку if (path.searchRoadKey(path.startPoint.num, path.nextKeyPoint.num, point.num)) { if (ui.OpenCloseUi(point, path.GetDistance(point.num), path.GetNextCity())) { path.drawRoad(roadClr); } } } } } } else { if (ui.uiActive) { ui.OpenCloseUi(point, path.GetDistance(point.num), path.GetNextCity()); } } }