Пример #1
0
        private static void TryIntroduceNewFormations()
        {
            var newVehicleIds = VehicleRegistry
                                .GetNewCreatedVehicleIds()
                                .ToList();

            if (!newVehicleIds.Any())
            {
                return;
            }
            var newVehicles = VehicleRegistry.GetVehiclesByIds(newVehicleIds);
            var clusters    = Dbscan.Cluster(newVehicles, 80, 33);

            if (!clusters.Any())
            {
                return;
            }
            foreach (var cluster in clusters)
            {
                var ids = cluster.Select(v => v.Id).ToList();
                formations.Add(new NewVehiclesFormation(MagicConstants.NextFormationId++, ids, CommandManager, VehicleRegistry));
                VehicleRegistry.RemoveFromNewVehicles(ids);
            }
        }