Beispiel #1
0
 protected override GivenStatCollection CreateCollection()
 => new GivenStatCollection(ModifierBuilder, ValueFactory)
 {
     { BaseAdd, Ground.Consecrated.AddStat(Life.Regen), 6 },
     // Level based
     { BaseSet, Life, LevelBased(l => MonsterBaseStats.AllyLife(l), "AllyLife") },
 };
Beispiel #2
0
 protected LevelBasedStats(
     IBuilderFactories builderFactories, IModifierBuilder modifierBuilder, MonsterBaseStats monsterBaseStats)
     : base(builderFactories)
 {
     ModifierBuilder  = modifierBuilder;
     MonsterBaseStats = monsterBaseStats;
     _lazyGivenStats  = new Lazy <IReadOnlyList <IIntermediateModifier> >(() => CreateCollection().ToList());
 }
        private async Task <IEnumerable <IGivenStats> > CreateGivenStatsAsync()
        {
            var characterTask = CharacterBaseStats.CreateAsync();
            var monsterTask   = MonsterBaseStats.CreateAsync();

            return(new GivenStatsCollection(_builderFactories.Value, _metaStats.Value,
                                            await characterTask.ConfigureAwait(false), await monsterTask.ConfigureAwait(false)));
        }
 public GivenStatsCollection(
     IBuilderFactories builderFactories,
     CharacterBaseStats characterBaseStats, MonsterBaseStats monsterBaseStats)
 {
     _builderFactories   = builderFactories;
     _monsterBaseStats   = monsterBaseStats;
     _characterBaseStats = characterBaseStats;
     _lazyCollection     = new Lazy <IReadOnlyList <IGivenStats> >(() => CreateCollection(ModifierBuilder.Empty));
 }
 protected override GivenStatCollection CreateCollection()
 => new GivenStatCollection(ModifierBuilder, ValueFactory)
 {
     { BaseAdd, Ground.Consecrated.AddStat(Life.Regen), 6 },
     // Level based
     { BaseSet, Life, LevelBased(l => MonsterBaseStats.AllyLife(l), "AllyLife") },
     // ailments
     { PercentMore, Damage.With(Ailment.Bleed), 100, OpponentsOfSelf.IsMoving },
 };
Beispiel #6
0
 protected override GivenStatCollection CreateCollection()
 => new GivenStatCollection(ModifierBuilder, ValueFactory)
 {
     { BaseSet, Life, LevelBased(l => MonsterBaseStats.EnemyLife(l), "EnemyLife") },
     { BaseSet, Stat.Accuracy, LevelBased(l => MonsterBaseStats.Accuracy(l), "Accuracy") },
     { BaseSet, Stat.Evasion, LevelBased(l => MonsterBaseStats.Evasion(l), "Evasion") },
     {
         BaseSet, Physical.Damage.WithSkills(DamageSource.Attack),
         LevelBased(l => MonsterBaseStats.PhysicalDamage(l), "PhysicalDamage") * 1.5
     },
 };
 protected override GivenStatCollection CreateCollection()
 => new GivenStatCollection(ModifierBuilder, ValueFactory)
 {
     { PercentIncrease, Ground.Consecrated.AddStat(CriticalStrike.Chance.For(Entity.OpponentOfSelf)), 100 },
     // Level based
     { BaseSet, Stat.Level, ValueFactory.Minimum(Stat.Level.For(Entity.Character).Value, 84) },
     { BaseSet, Life, LevelBased(l => MonsterBaseStats.EnemyLife(l), "EnemyLife") },
     { BaseSet, Stat.Accuracy, LevelBased(l => MonsterBaseStats.Accuracy(l), "Accuracy") },
     { BaseSet, Stat.Evasion, LevelBased(l => MonsterBaseStats.Evasion(l), "Evasion") },
     {
         BaseSet, Physical.Damage.WithSkills(DamageSource.Attack),
         LevelBased(l => MonsterBaseStats.PhysicalDamage(l), "PhysicalDamage") * 1.5
     },
 };
Beispiel #8
0
        private ParsingData(
            IBuilderFactories builderFactories,
            SkillDefinitions skills, PassiveTreeDefinition passives,
            CharacterBaseStats characterBaseStats, MonsterBaseStats monsterBaseStats)
        {
            _builderFactories = builderFactories;

            _statMatchers = new Lazy <IReadOnlyList <IStatMatchers> >(
                () => CreateStatMatchers(ModifierBuilder.Empty, passives.Nodes));
            _referencedMatchers = new Lazy <IReadOnlyList <IReferencedMatchers> >(
                () => CreateReferencedMatchers(skills.Skills));
            _givenStats = new Lazy <IReadOnlyList <IGivenStats> >(
                () => new GivenStatsCollection(builderFactories, characterBaseStats, monsterBaseStats));
            _statMatchersSelector = new Lazy <StatMatchersSelector>(
                () => new StatMatchersSelector(StatMatchers));
        }
Beispiel #9
0
 protected override GivenStatCollection CreateCollection()
 => new GivenStatCollection(ModifierBuilder, ValueFactory)
 {
     { PercentIncrease, Ground.Consecrated.AddStat(CriticalStrike.Chance.For(OpponentsOfSelf)), 100 },
     // Level based
     { BaseSet, Stat.Level, ValueFactory.Minimum(Stat.Level.For(Entity.Character).Value, 84) },
     { BaseSet, Life, LevelBased(l => MonsterBaseStats.EnemyLife(l), "EnemyLife") },
     { BaseSet, Stat.Accuracy, LevelBased(l => MonsterBaseStats.Accuracy(l), "Accuracy") },
     { BaseSet, Stat.Evasion, LevelBased(l => MonsterBaseStats.Evasion(l), "Evasion") },
     {
         BaseSet, Physical.Damage.WithSkills(DamageSource.Attack),
         LevelBased(l => MonsterBaseStats.PhysicalDamage(l), "PhysicalDamage") * 1.5
     },
     { BaseSet, Stat.Armour, LevelBased(l => MonsterBaseStats.Armour(l), "Armour") },
     // buff configuration
     { TotalOverride, Buff.Maim.On(Self), 1, Condition.Unique("Maim.ExplicitlyActive") },
     { TotalOverride, Buff.Hinder.On(Self), 1, Condition.Unique("Hinder.ExplicitlyActive") },
     { TotalOverride, Buff.Blind.On(Self), 1, Condition.Unique("Blind.ExplicitlyActive") },
     { TotalOverride, Buff.Intimidate.On(Self), 1, Condition.Unique("Intimidate.ExplicitlyActive") },
     { TotalOverride, Buff.CoveredInAsh.On(Self), 1, Condition.Unique("CoveredInAsh.ExplicitlyActive") },
 };
 protected override GivenStatCollection CreateCollection()
 => new GivenStatCollection(ModifierBuilder, ValueFactory)
 {
     { BaseSet, Life, LevelBased(l => MonsterBaseStats.AllyLife(l), "AllyLife") },
 };
 public AllyLevelBasedStats(
     IBuilderFactories builderFactories, IModifierBuilder modifierBuilder, MonsterBaseStats monsterBaseStats)
     : base(builderFactories, modifierBuilder, monsterBaseStats)
 {
 }
 public EnemyGivenStats(
     IBuilderFactories builderFactories, IModifierBuilder modifierBuilder, MonsterBaseStats monsterBaseStats)
     : base(builderFactories, modifierBuilder, monsterBaseStats)
 {
 }