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);