public GameStateDependentMods( IBuilderFactories builderFactories, IModifierBuilder modifierBuilder, IMetaStatBuilders metaStatBuilders) : base(builderFactories) { _modifierBuilder = modifierBuilder; _stat = metaStatBuilders; _lazyGivenStats = new Lazy <IReadOnlyList <IIntermediateModifier> >(() => CreateCollection().ToList()); }
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))); }
public AdditionalSkillQualityParser( SkillDefinitions skillDefinitions, IGemStatBuilders gemStatBuilders, IValueBuilders valueBuilders, IMetaStatBuilders metaStatBuilders) : base(skillDefinitions) { _gemStatBuilders = gemStatBuilders; _valueBuilders = valueBuilders; _metaStatBuilders = metaStatBuilders; }
public DataDrivenMechanics( IBuilderFactories builderFactories, IModifierBuilder modifierBuilder, IMetaStatBuilders metaStatBuilders) : base(builderFactories) { _modifierBuilder = modifierBuilder; _stat = metaStatBuilders; _lazyGivenStats = new Lazy <IReadOnlyList <IIntermediateModifier> >( () => CollectionToList(CreateCollection())); }
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())); }
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; }
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(); }
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));
public SkillPreParser(SkillDefinitions skillDefinitions, IMetaStatBuilders metaStatBuilders) => (_skillDefinitions, _metaStatBuilders) = (skillDefinitions, metaStatBuilders);