public int[] Create(AttributeSpread attributeSpread, AttributeArray[] metaAttributeArray, int points) { Func<CreatedAttribute, bool> pred = attribute => false; switch (attributeSpread) { case AttributeSpread.Even: pred = attribute => true; break; case AttributeSpread.FocusMental: pred = attribute => attribute.CurrentRating == attribute.MinRating || !attribute.IsPhysical; break; case AttributeSpread.FocusPhysical: pred = attribute => attribute.CurrentRating == attribute.MinRating || attribute.IsPhysical; break; case AttributeSpread.DumpStatPhysical: pred = attribute => !attribute.IsPhysical; break; case AttributeSpread.DumpStatMental: pred = attribute => attribute.IsPhysical; break; } return AllocatePoints(metaAttributeArray, points, pred) .OrderBy(ca => ca.Attribute) .Select(ca => ca.CurrentRating) .ToArray(); }
public void SetAttributeArray(AttributeArray[] metaAttributeLimits) { _metaAttributeArray = metaAttributeLimits; ResetFitness(); }