コード例 #1
0
 public GameStateDependentMods(
     IBuilderFactories builderFactories, IModifierBuilder modifierBuilder, IMetaStatBuilders metaStatBuilders)
     : base(builderFactories)
 {
     _modifierBuilder = modifierBuilder;
     _stat            = metaStatBuilders;
     _lazyGivenStats  = new Lazy <IReadOnlyList <IIntermediateModifier> >(() => CreateCollection().ToList());
 }
コード例 #2
0
        public static IConditionBuilder IsActiveSkill(this IMetaStatBuilders @this, Skill skill)
        {
            var activeSkillItemSlot    = @this.ActiveSkillItemSlot(skill.Id);
            var activeSkillSocketIndex = @this.ActiveSkillSocketIndex(skill.Id);

            return(activeSkillItemSlot.Value.Eq((double)skill.ItemSlot)
                   .And(activeSkillSocketIndex.Value.Eq(skill.SocketIndex)));
        }
コード例 #3
0
 public AdditionalSkillQualityParser(
     SkillDefinitions skillDefinitions, IGemStatBuilders gemStatBuilders, IValueBuilders valueBuilders, IMetaStatBuilders metaStatBuilders)
     : base(skillDefinitions)
 {
     _gemStatBuilders  = gemStatBuilders;
     _valueBuilders    = valueBuilders;
     _metaStatBuilders = metaStatBuilders;
 }
コード例 #4
0
 public DataDrivenMechanics(
     IBuilderFactories builderFactories, IModifierBuilder modifierBuilder, IMetaStatBuilders metaStatBuilders)
     : base(builderFactories)
 {
     _modifierBuilder = modifierBuilder;
     _stat            = metaStatBuilders;
     _lazyGivenStats  = new Lazy <IReadOnlyList <IIntermediateModifier> >(
         () => CollectionToList(CreateCollection()));
 }
コード例 #5
0
 public GivenStatsCollection(
     IBuilderFactories builderFactories, IMetaStatBuilders metaStatBuilders,
     CharacterBaseStats characterBaseStats, MonsterBaseStats monsterBaseStats)
 {
     _builderFactories   = builderFactories;
     _metaStatBuilders   = metaStatBuilders;
     _monsterBaseStats   = monsterBaseStats;
     _characterBaseStats = characterBaseStats;
     _lazyCollection     = new Lazy <IReadOnlyList <IGivenStats> >(() => CreateCollection(new ModifierBuilder()));
 }
コード例 #6
0
 public AdditionalSkillLevelParser(
     SkillDefinitions skillDefinitions, IGemStatBuilders gemStatBuilders, IGemTagBuilders gemTagBuilders, IValueBuilders valueBuilders,
     IMetaStatBuilders metaStatBuilders, ISkillBuilders skillBuilders)
     : base(skillDefinitions)
 {
     _gemStatBuilders  = gemStatBuilders;
     _gemTagBuilders   = gemTagBuilders;
     _valueBuilders    = valueBuilders;
     _metaStatBuilders = metaStatBuilders;
     _skillBuilders    = skillBuilders;
 }
コード例 #7
0
        public static async Task ClassInit()
        {
            _builderFactories = await BuilderFactoriesTask.ConfigureAwait(false);

            _metaStats = _builderFactories.MetaStatBuilders;
            var parser = await ParserTask.ConfigureAwait(false);

            var modSource = new ModifierSource.Global();

            _givenMods = parser.ParseGivenModifiers()
                         .Append(
                new Modifier(
                    Build(_builderFactories.DamageTypeBuilders.Physical.Damage.Taken
                          .For(_builderFactories.EntityBuilders.Enemy)),
                    Form.Increase, new Constant(20), modSource),
                new Modifier(
                    Build(_builderFactories.DamageTypeBuilders.Physical.Resistance
                          .For(_builderFactories.EntityBuilders.Enemy)),
                    Form.BaseSet, new Constant(60), modSource),
                new Modifier(
                    Build(_builderFactories.DamageTypeBuilders.Physical.DamageMultiplier),
                    Form.BaseAdd, new Constant(75), modSource),
                new Modifier(
                    Build(_builderFactories.StatBuilders.Level),
                    Form.BaseSet, new Constant(90), modSource),
                new Modifier(
                    Build(_builderFactories.DamageTypeBuilders.Physical.Damage.WithSkills),
                    Form.BaseSet, new Constant(5), modSource),
                new Modifier(
                    Build(_builderFactories.StatBuilders.Accuracy),
                    Form.BaseAdd, new Constant(1000), modSource),
                new Modifier(
                    Build(_metaStats.SkillHitDamageSource),
                    Form.BaseSet, new Constant((int)DamageSource.Attack), modSource),
                new Modifier(
                    Build(_metaStats.SkillUsesHand(AttackDamageHand.MainHand)),
                    Form.BaseSet, new Constant(true), modSource),
                new Modifier(
                    Build(_metaStats.SkillUsesHand(AttackDamageHand.OffHand)),
                    Form.BaseSet, new Constant(true), modSource),
                new Modifier(
                    Build(_builderFactories.EquipmentBuilders.Equipment[ItemSlot.MainHand].ItemTags),
                    Form.TotalOverride, new Constant(Tags.Sword.EncodeAsDouble()), modSource))
                         .ToList();
        }
コード例 #8
0
        public static void ClassInit()
        {
            var compRoot = new CompositionRoot();

            _builderFactories = compRoot.BuilderFactories;
            _metaStats        = compRoot.MetaStats;
            var modSource = new ModifierSource.Global();

            _givenMods = GivenStatsParser.Parse(compRoot.Parser, compRoot.GivenStats.Result)
                         .Append(
                new Modifier(
                    Build(_builderFactories.StatBuilders.Level.For(_builderFactories.EntityBuilders.Enemy)),
                    Form.BaseSet, new Constant(84), modSource),
                new Modifier(
                    Build(_builderFactories.DamageTypeBuilders.Physical.Damage.Taken
                          .For(_builderFactories.EntityBuilders.Enemy)),
                    Form.Increase, new Constant(20), modSource),
                new Modifier(
                    Build(_builderFactories.DamageTypeBuilders.Physical.Resistance
                          .For(_builderFactories.EntityBuilders.Enemy)),
                    Form.BaseSet, new Constant(60), modSource),
                new Modifier(
                    Build(_builderFactories.StatBuilders.Level),
                    Form.BaseSet, new Constant(90), modSource),
                new Modifier(
                    Build(_builderFactories.DamageTypeBuilders.Physical.Damage.WithSkills),
                    Form.BaseSet, new Constant(5), modSource),
                new Modifier(
                    Build(_builderFactories.StatBuilders.Accuracy),
                    Form.BaseAdd, new Constant(1000), modSource),
                new Modifier(
                    Build(_metaStats.SkillHitDamageSource),
                    Form.BaseSet, new Constant((int)DamageSource.Attack), modSource),
                new Modifier(
                    Build(_metaStats.SkillUsesHand(AttackDamageHand.MainHand)),
                    Form.BaseSet, new Constant(true), modSource),
                new Modifier(
                    Build(_metaStats.SkillUsesHand(AttackDamageHand.OffHand)),
                    Form.BaseSet, new Constant(true), modSource),
                new Modifier(
                    Build(_builderFactories.EquipmentBuilders.Equipment[ItemSlot.MainHand].ItemTags),
                    Form.TotalOverride, new Constant((int)Tags.Sword), modSource))
                         .ToList();
        }
コード例 #9
0
 public static IConditionBuilder IsMainSkill(this IMetaStatBuilders @this, Skill skill)
 => @this.MainSkillItemSlot.Value.Eq((double)skill.ItemSlot)
 .And(@this.MainSkillSocketIndex.Value.Eq(skill.SocketIndex))
 .And(@this.MainSkillSkillIndex.Value.Eq(skill.SkillIndex));
コード例 #10
0
 public SkillPreParser(SkillDefinitions skillDefinitions, IMetaStatBuilders metaStatBuilders)
 => (_skillDefinitions, _metaStatBuilders) = (skillDefinitions, metaStatBuilders);