protected StatBuilderWithPool(IStatFactory statFactory, ICoreBuilder <Pool> pool, string identitySuffix) : this(statFactory, new CoreStatBuilderFromCoreBuilder <Pool>(pool, (e, p) => statFactory.FromIdentity(p.ToString() + identitySuffix, e, typeof(int))), pool, identitySuffix) { }
private IEnumerable <IStat> SelectSkillStats( IEnumerable <Keyword> keywords, Entity entity, Type dataType, [CallerMemberName] string identitySuffix = null) { var keywordList = keywords.ToList(); return(from skill in _skills where !skill.IsSupport && skill.ActiveSkill.Keywords.ContainsAll(keywordList) let identity = skill.Id + " . " + identitySuffix select _statFactory.FromIdentity(identity, entity, dataType)); }
private ICoreStatBuilder CoreStat(Type dataType, [CallerMemberName] string identitySuffix = "") => CoreStat((e, t) => _statFactory.FromIdentity(t.GetName() + "." + identitySuffix, e, dataType));
private IStatBuilder CreateStatBuilder(Type dataType, [CallerMemberName] string identitySuffix = null) => new StatBuilder(_statFactory, new CoreStatBuilderFromCoreBuilder <SkillDefinition>(_coreBuilder, (e, d) => _statFactory.FromIdentity($"{d.Id}.{identitySuffix}", e, dataType)));
public static ICoreStatBuilder FromIdentity( IStatFactory statFactory, string identity, Type dataType, ExplicitRegistrationType explicitRegistrationType = null) => new LeafCoreStatBuilder( entity => statFactory.FromIdentity(identity, entity, dataType, explicitRegistrationType));
private IEnumerable <IStat> SelectSkillStats( IEnumerable <Keyword> keywords, Entity entity, Type dataType, [CallerMemberName] string identitySuffix = "") => SelectSkillStats(keywords, s => _statFactory.FromIdentity(s.Id + " . " + identitySuffix, entity, dataType));
private ICoreStatBuilder CoreStat(Type dataType, [CallerMemberName] string identitySuffix = null) => CoreStat((e, t) => _statFactory.FromIdentity($"{t}.{identitySuffix}", e, dataType));
private IEnumerable <IStat> SelectSkillStats( IEnumerable <Keyword> keywords, Entity entity, Type dataType, [CallerMemberName] string identitySuffix = null) => from skill in _selectSkills(keywords) let identity = $"{skill}.{identitySuffix}" select _statFactory.FromIdentity(identity, entity, dataType);