public TieringCommand Execute(string group, string basetype, IEconomyProcessorData processorData) { if (this.Rule(basetype)) { return(new TieringCommand() { NewTier = TargetTier, BaseType = basetype, AppliedRule = RuleName, Confidence = this.Confidence }); } return(null); }
public TieringCommand ProcessItem(string group, string basetype, string selectorString, IEconomyProcessorData processorData) { this.DefaultSet = DefaultItemQuery(selectorString); if (!this.DefaultSet.Valid) { return(new TieringCommand() { AppliedRule = "disqualified", BaseType = basetype, NewTier = "rest", Group = group, Confidence = this.DefaultSet.ValueMultiplier }); } string targetTier = "*"; TieringCommand finalResult = null; TieringCommand currentResult = null; for (int i = 0; i < this.EconomyRules.Count; i++) { var currentRule = this.EconomyRules[i]; currentResult = null; if (targetTier == currentRule.RuleGroup || targetTier == "*") { currentResult = currentRule.Execute(group, basetype, processorData); if (currentResult != null) { if (finalResult == null) { finalResult = currentResult; } else { finalResult.NewTier = $"{finalResult.NewTier},{currentResult.NewTier}"; finalResult.AppliedRule = $"{finalResult.AppliedRule},{currentResult.AppliedRule}"; } if (currentRule.NextRuleGroupToken == null) { finalResult.Confidence = this.DefaultSet.ValueMultiplier; return(finalResult); } else { targetTier = currentRule.NextRuleGroupToken; } } } } finalResult.Confidence = this.DefaultSet.ValueMultiplier; return(finalResult); }