public IEnumerable <Formation> Generate(Random Random, FormationParameters Parameters) { yield return(new UnitGroup( string.Empty, new CompositeFormation( string.Empty, Atoms.Where(i => i.Matches(Parameters)).SelectMany(i => i.Generate(Random, Parameters))).Flatten())); }
public IEnumerable <Formation> Generate(Random Random, FormationParameters Parameters) { if (Regenerate) { return(Enumerable.Repeat(Template, Count).SelectMany(i => i.Generate(Random, Parameters))); } return(Enumerable.Repeat(Template.Generate(Random, Parameters).ToList(), Count).SelectMany(i => i)); }
public IEnumerable <Formation> Generate(Random Random, FormationParameters Parameters) { var selected = TemplateCases.FirstOrDefault(i => i.Matches(Parameters)); if (selected != null) { return(selected.Generate(Random, Parameters)); } return(Enumerable.Empty <Formation>()); }
public IEnumerable <Formation> Generate(Random Random, FormationParameters Parameters) { yield return(new UnitGroup( string.Empty, new List <UnitCount> { new UnitCount( Utils.Choice(Random, UnitConfigurations.Where(Parameters.Matches)).UnitConfiguration, 1) })); }
public IEnumerable <Formation> Generate(Random Random, FormationParameters Parameters) { WeightedVector <FormationTemplate> choices = new WeightedVector <FormationTemplate>(); foreach (var template in Subtemplates.Where(i => i.Matches(Parameters))) { choices.Add(1 / template.GetExpectedValue(Parameters), template); } if (choices.Length > 0) { return(choices[Random.NextDouble()].Generate(Random, Parameters)); } return(Enumerable.Empty <Formation>()); }
public double GetExpectedValue(FormationParameters Parameters) { return(Subtemplates.Sum(i => i.GetExpectedValue(Parameters))); }
public IEnumerable <Formation> Generate(Random Random, FormationParameters Parameters) { return(Template.Generate(Random, Parameters)); }
public bool Matches(FormationParameters Parameters) { return(Parameters.Matches(Constraints) && (Features.Count == 0 || Features.Any(i => Parameters.Features[(int)i])) && Template.Matches(Parameters)); }
public double GetExpectedValue(FormationParameters Parameters) { return(Template.GetExpectedValue(Parameters)); }
public bool Matches(FormationParameters Parameters) { return(TemplateCases.Any(i => i.Matches(Parameters))); }
public bool Matches(FormationParameters Parameters) { return(UnitConfigurations.Any(Parameters.Matches)); }
public bool Matches(FormationParameters Parameters) { return(Template.Matches(Parameters)); }
public bool Matches(FormationParameters Parameters) { return(Atoms.Any(i => i.Matches(Parameters))); }
public double GetExpectedValue(FormationParameters Parameters) { return(Atoms.Sum(i => i.GetExpectedValue(Parameters))); }
public bool Matches(FormationParameters Parameters) { return(Subtemplates.All(i => i.Matches(Parameters))); }
public double GetExpectedValue(FormationParameters Parameters) { return(HarmonicAverage( TemplateCases.Where(i => i.Matches(Parameters)).Select(i => i.GetExpectedValue(Parameters)))); }
public IEnumerable <Formation> Generate(Random Random, FormationParameters Parameters) { yield return(new CompositeFormation( string.Empty, Subtemplates.SelectMany(i => i.Generate(Random, Parameters)))); }
public double GetExpectedValue(FormationParameters Parameters) { return(GetValue()); }