Пример #1
0
        public IStatBuilder Temporary <T>(IStatBuilder gainedStat, T condition) where T : struct, Enum
        {
            var statBuilder = gainedStat
                              .WithCondition(new ValueConditionBuilder(ps => BuildTemporaryBuffCondition(condition, ps)));

            return(MultiplyValueByEffectModifier(statBuilder, "Buff", new ModifierSourceEntityBuilder()));
        }
Пример #2
0
        public IStatBuilder Temporary(IStatBuilder gainedStat)
        {
            var statBuilder = gainedStat.WithCondition(new ValueConditionBuilder(BuildCondition));

            return(MultiplyValueByEffectModifier(statBuilder, "Buff", new ModifierSourceEntityBuilder()));

            IValue BuildCondition(BuildParameters parameters)
            {
                var stat = _statFactory.FromIdentity($"Is {parameters.ModifierSource.SourceName} active?",
                                                     parameters.ModifierSourceEntity, typeof(bool), ExplicitRegistrationTypes.UserSpecifiedValue(false));

                return(new StatValue(stat));
            }
        }
Пример #3
0
 public virtual IStatBuilder AddStat(IStatBuilder stat) =>
 stat.WithCondition(IsOn(new ModifierSourceEntityBuilder()));
Пример #4
0
 private static Modifier CreateModifier(
     IStatBuilder statBuilder, IFormBuilder formBuilder, IValueBuilder valueBuilder,
     IConditionBuilder conditionBuilder)
 {
     return(CreateModifier(statBuilder.WithCondition(conditionBuilder), formBuilder, valueBuilder));
 }