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();
        }
        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();
        }
 private ValueBuilder SkillUsesHandAsMultiplier(AttackDamageHand hand)
 => ValueFactory.If(_stat.SkillUsesHand(hand).IsSet).Then(1).Else(0);