예제 #1
0
        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));
        }