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)); }
public IStatBuilder Before(IPoolStatBuilder pool) => CreateStat((IDamageTakenConversionBuilder)this, (IStatBuilder)pool, (o1, o2) => $"{o1} before {o2}");
public IDamageTakenConversionBuilder TakenFrom(IPoolStatBuilder pool) => Create <IDamageTakenConversionBuilder, IStatBuilder, IStatBuilder>( (s, r) => new DamageTakenConversionBuilder(s, r), This, pool, (o1, o2) => $"{o1} taken from {o2}");
public IFlagStatBuilder AppliesTo(IPoolStatBuilder stat) => CreateFlagStat(This, (IStatBuilder)stat, (o1, o2) => $"{o1} applies to {o2} instead");
public IPoolStatBuilder Stat(IPoolStatBuilder stat) => CreatePoolStat(This, (IStatBuilder)stat, (o1, o2) => $"{o2} for {o1}");