private IStatBuilder AdditionalLevels(string identityInfix, IGemTagBuilder gemTag, Func <BuildParameters, string, string> buildIdentitySuffix) { var coreBuilder = new CoreStatBuilderFromCoreBuilder <string>( CoreBuilder.Proxy(gemTag, (ps, b) => buildIdentitySuffix(ps, b.Build(ps))), (e, t) => StatFactory.FromIdentity($"Gem.AdditionalLevels{identityInfix}.{t}", e, typeof(int))); return(new StatBuilder(StatFactory, coreBuilder)); }
private IStatBuilder AdditionalLevels(string identityInfix, IGemTagBuilder gemTag) => AdditionalLevels(identityInfix, gemTag, (_, i) => i);
public IStatBuilder AdditionalLevelsForModifierSourceItemSlot(IGemTagBuilder gemTag) => AdditionalLevels("", gemTag, (ps, t) => $"{t}.{GetItemSlot(ps.ModifierSource)}");
public IStatBuilder AdditionalActiveSpellLevels(IGemTagBuilder gemTag) => AdditionalLevels(".ActiveSkill.spell", gemTag);