private LadderImplantGroup(params int[] implantTemplateIndexes) { LadderImplantTemplates = implantTemplateIndexes .Select(i => ImplantTemplate.ImplantTemplates[i]) .ToArray(); ImplantSlot = LadderImplantTemplates[0].ImplantSlot; RaisedLadderStats = LadderImplantTemplates[0].RaisedLadderStats; RequiredAbilityOptions = LadderImplantTemplates .Select(t => t.RequiredAbility) .ToArray(); }
public ImplantTemplate GetBestImplantTemplate(Character character) { if (LadderImplantTemplates.Count == 1) { return(LadderImplantTemplates[0]); } var bestImplantTemplate = LadderImplantTemplates[0]; int abilityValueForBestImplantTemplate = character.GetAbilityValue(bestImplantTemplate.RequiredAbility); foreach (var implantTemplate in LadderImplantTemplates.Skip(1)) { int abilityValueForThisImplantTemplate = character.GetAbilityValue(implantTemplate.RequiredAbility); if (abilityValueForThisImplantTemplate > abilityValueForBestImplantTemplate) { bestImplantTemplate = implantTemplate; abilityValueForBestImplantTemplate = abilityValueForThisImplantTemplate; } } return(bestImplantTemplate); }