public override double PowerLevel() { double powerLevel = base.PowerLevel(); foreach (KeywordAttribute keyword in attributes) { powerLevel += PowerBudget.GetKeywordCost(keyword, attack, health); } powerLevel += PowerBudget.StatsToPowerBudget(attack + health); return(powerLevel); }
// Keywords have varying evaluations depending on the budget static public SortedSet <KeywordAttribute> GetKeywordsWithinBudget(double maxBudget, int atk, int hp) { SortedSet <KeywordAttribute> ret = new SortedSet <KeywordAttribute>(); foreach (KeywordAttribute keyword in Enum.GetValues(typeof(KeywordAttribute))) { if (PowerBudget.GetKeywordCost(keyword, atk, hp) <= maxBudget) { ret.Add(keyword); } } return(ret); }