public IStatBuilder Source(IDamageTypeBuilder type) { var inner = CoreStatBuilderFromIdentity("HasSource", typeof(bool)); var coreStat = new ParametrisedCoreStatBuilder <IKeywordBuilder>(inner, type, (ps, k, s) => ConcretizeSourceStat(((IDamageTypeBuilder)k).BuildDamageTypes(ps), s)); return(new StatBuilder(StatFactory, coreStat)); }
public IStatBuilder Before(IPoolStatBuilder pool) { var coreStat = new ParametrisedCoreStatBuilder <IStatBuilder>(_coreStat, pool, (ps, p, s) => _statFactory.CopyWithSuffix(s, $"Before({((IPoolStatBuilder) p).BuildPool(ps)})", typeof(uint))); return(new StatBuilder(_statFactory, coreStat)); }
public IDamageTakenConversionBuilder DamageTakenFrom(IPoolStatBuilder pool) { var damage = CoreStat(_statFactory.Damage); var takenFrom = new ParametrisedCoreStatBuilder <IStatBuilder>(damage, pool, (ps, p, s) => _statFactory.CopyWithSuffix(s, $"TakenFrom({((IPoolStatBuilder) p).BuildPool(ps)})", typeof(uint))); return(new DamageTakenConversionBuilder(_statFactory, takenFrom)); }