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() }; } }
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; }
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; }); }
/// <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); }
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(); }
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); }