Ejemplo n.º 1
0
        public void AddRandomSettings(RandomSettings randomSettings)
        {
            if (InputData == null)
            {
                InputData = new Dictionary <string, IList <string> >();
            }

            InputData.Add("randomType", new List <string> {
                randomSettings.Type.ToString()
            });


            InputData.Add("randomCount", new List <string> {
                randomSettings.Count.ToString()
            });
            InputData.Add("randomAlgorithm", new List <string> {
                randomSettings.Algorithm.ToString()
            });


            if (randomSettings.RangeMin.HasValue && randomSettings.RangeMax.HasValue)
            {
                InputData["randomRange"] = new List <string> {
                    randomSettings.RangeMin.Value.ToString(),
                        randomSettings.RangeMax.Value.ToString()
                };
            }
        }
Ejemplo n.º 2
0
        public WWWSettings()
        {
            GameWWW.Instance.Reset();

            InitializeComponent();

            RandomSettings settings = new RandomSettings();

            settings.DateFrom = new DateTime(1990, 1, 1);
            settings.DateTo   = DateTime.Now;
            settings.Quantity = 12;
            settings.ComplexityList.Add("Любой");
            settings.ComplexityList.Add("Очень простой");
            settings.ComplexityList.Add("Простой");
            settings.ComplexityList.Add("Средний");
            settings.ComplexityList.Add("Сложный");
            settings.ComplexityList.Add("Очень сложный");
            settings.ComplexityIndex = 0;

            edtQ.Text = settings.Quantity.ToString();

            foreach (string s in settings.ComplexityList)
            {
                edtLevel.Items.Add(s);
            }
            edtLevel.SelectedIndex = 0;
            edtDateStart.Value     = settings.DateFrom;
            edtDateEnd.Value       = settings.DateTo;
        }
Ejemplo n.º 3
0
 private void SaveRandomSettings(RandomSettings randomSettings)
 {
     Grabber.Settings.Set(x => {
         x.RandomSettingsInitialized      = true;
         x.RandomSettingsMinCraft         = randomSettings.MinimumCraft;
         x.RandomSettingsMaxCraft         = randomSettings.MaximumCraft;
         x.RandomSettingsMinActors        = randomSettings.MinimumActorsPerCraft;
         x.RandomSettingsMaxActors        = randomSettings.MaximumActorsPerCraft;
         x.RandomSettingsMinWeapons       = randomSettings.MinimumWeaponsPerActor;
         x.RandomSettingsMaxWeapons       = randomSettings.MaximumWeaponsPerActor;
         x.RandomSettingsCrabsHoldWeapons = randomSettings.CrabsCanCarryWeapons;
     });
 }
Ejemplo n.º 4
0
        /// <summary>Generates a random skirmish based on the parameters, returning the list of craft to form the root.</summary>
        private IEnumerable <InventoryItem> GenerateRandomSkirmish(RandomSettings settings, IEnumerable <Mod> mods, IEnumerable <ActivityItem> items)
        {
            items = items.Where(x => mods.Contains(x.Mod));
            var craft   = items.Where(x => x.Group == ActivityItemGroup.Craft).ToList();
            var actors  = items.Where(x => x.Group == ActivityItemGroup.Actor).ToList();
            var weapons = items.Where(x => x.Group == ActivityItemGroup.Weapon).ToList();

            Random random = new Random();

            var allCraft = new List <InventoryItem>();

            var numCraft = random.Next(settings.MinimumCraft, settings.MaximumCraft + 1);

            for (var i = 0; i < numCraft; i++)
            {
                if (craft.Count == 0)
                {
                    break;
                }
                var craftItem = new InventoryItem(craft[random.Next(0, craft.Count)]);
                allCraft.Add(craftItem);

                var actorsInCraft = random.Next(settings.MinimumActorsPerCraft, settings.MaximumActorsPerCraft + 1);
                for (var a = 0; a < actorsInCraft; a++)
                {
                    if (actors.Count == 0)
                    {
                        break;
                    }
                    var actor     = actors[random.Next(0, actors.Count)];
                    var actorItem = new InventoryItem(actor);
                    craftItem.SubItems.Add(actorItem);

                    var actorWeapons = actor.Type == ActivityItemType.ACrab && !settings.CrabsCanCarryWeapons ? 0 :
                                       random.Next(settings.MinimumWeaponsPerActor, settings.MaximumWeaponsPerActor + 1);

                    for (var w = 0; w < actorWeapons; w++)
                    {
                        if (weapons.Count == 0)
                        {
                            break;
                        }
                        var weaponItem = new InventoryItem(weapons[random.Next(0, weapons.Count)]);
                        actorItem.SubItems.Add(weaponItem);
                    }
                }
            }

            return(allCraft);
        }
Ejemplo n.º 5
0
        private void skirmishWavesTreeViewItem_Random_Click(object sender, RoutedEventArgs e)
        {
            if (Grabber.ActivityItemCache == null || Grabber.ActivityItemCache.CacheIsValid == false)
            {
                //new ActivityItemLoaderWindow(){Owner = this, WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner}.ShowDialog();
            }

            var items = Grabber.ActivityItemCache.GetAll();
            var mods  = items.Select(x => x.Mod).Distinct();

            var settings       = Grabber.Settings.Get();
            var randomSettings = new RandomSettings();

            if (settings.RandomSettingsInitialized)
            {
                randomSettings = new RandomSettings
                {
                    MinimumCraft           = settings.RandomSettingsMinCraft,
                    MaximumCraft           = settings.RandomSettingsMaxCraft,
                    MinimumActorsPerCraft  = settings.RandomSettingsMinActors,
                    MaximumActorsPerCraft  = settings.RandomSettingsMaxActors,
                    MinimumWeaponsPerActor = settings.RandomSettingsMinWeapons,
                    MaximumWeaponsPerActor = settings.RandomSettingsMaxWeapons,
                    CrabsCanCarryWeapons   = settings.RandomSettingsCrabsHoldWeapons
                }
            }
            ;

            RandomSettingsWindow randomWindow = new RandomSettingsWindow(mods, randomSettings)
            {
                Owner = this, WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner
            };

            randomWindow.GenerateRandomSkirmishClicked += (a, b) => {
                SaveRandomSettings(a);
                var mainItems = GenerateRandomSkirmish(a, b, items);
                Dispatcher.Invoke(new Action(() => PlaceRandomSkirmishInList(mainItems)));
            };

            randomWindow.Show();
        }
 static void Postfix()
 {
     RandomSettings.Init();
 }
Ejemplo n.º 7
0
        public IList <int> GetVerifiableRandomNumbers(IList <uint> sharedSeed, RandomSettings settings)
        {
            IList <int> randomNumbers;

            switch (settings.Type)
            {
            case RandomType.Boolen:
                randomNumbers = Generate(sharedSeed,
                                         settings.Count,
                                         0,
                                         1,
                                         settings.Algorithm);
                break;

            case RandomType.Dice:
                randomNumbers = Generate(sharedSeed,
                                         settings.Count,
                                         1,
                                         6,
                                         settings.Algorithm);
                break;

            case RandomType.RepeatableNumber:
                if (!settings.RangeMin.HasValue || !settings.RangeMax.HasValue)
                {
                    throw new ArgumentException("Invalid Random Range");
                }

                randomNumbers = Generate(sharedSeed,
                                         settings.Count,
                                         settings.RangeMin.Value,
                                         settings.RangeMax.Value,
                                         settings.Algorithm);
                break;

            case RandomType.UniqueNumber:
                if (!settings.RangeMin.HasValue || !settings.RangeMax.HasValue)
                {
                    throw new ArgumentException("Invalid Random Range");
                }

                randomNumbers = Generate(sharedSeed,
                                         settings.Count,
                                         settings.RangeMin.Value,
                                         settings.RangeMax.Value,
                                         settings.Algorithm);
                break;

            case RandomType.Shuffle:
                if (!settings.RangeMin.HasValue || !settings.RangeMax.HasValue)
                {
                    throw new ArgumentException("Invalid Random Range");
                }

                var rangeArray = Enumerable.Range(settings.RangeMin.Value, settings.RangeMax.Value).ToArray();
                Shuffle(sharedSeed,
                        rangeArray,
                        settings.Algorithm);

                randomNumbers = rangeArray;
                break;

            default:
                throw new ArgumentException("Random Type");
            }

            return(randomNumbers);
        }