Skip to content

Commit 209b538

Browse files
authored
Merge pull request #9 from PoESkillTree/poe3.10-gems
PoE 3.10.0 update
2 parents aabd244 + 932df25 commit 209b538

46 files changed

Lines changed: 279 additions & 85 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

PoESkillTree.Engine.Computation.Builders/Stats/GemStatBuilders.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ public GemStatBuilders(IStatFactory statFactory) : base(statFactory)
2222
private IStatBuilder AdditionalLevels(string identityInfix, IGemTagBuilder gemTag) =>
2323
AdditionalLevels(identityInfix, gemTag, (_, i) => i);
2424

25+
public IStatBuilder AdditionalLevels(ISkillBuilder skill)
26+
{
27+
var coreBuilder = new CoreStatBuilderFromCoreBuilder<string>(
28+
CoreBuilder.Proxy(skill, (ps, b) => b.Build(ps).Id),
29+
(e, t) => StatFactory.FromIdentity($"Gem.AdditionalLevels.{t}", e, typeof(int)));
30+
return new StatBuilder(StatFactory, coreBuilder);
31+
}
32+
2533
public IStatBuilder AdditionalLevelsForModifierSourceItemSlot() =>
2634
AdditionalLevels("", GetItemSlot);
2735

PoESkillTree.Engine.Computation.Common/Builders/Stats/IGemStatBuilders.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ public interface IGemStatBuilders
1212
IStatBuilder AdditionalActiveLevels(IGemTagBuilder gemTag);
1313
IStatBuilder AdditionalActiveSpellLevels(IGemTagBuilder gemTag);
1414

15+
IStatBuilder AdditionalLevels(ISkillBuilder skill);
16+
1517
IStatBuilder AdditionalLevelsForModifierSourceItemSlot();
1618
IStatBuilder AdditionalLevelsForModifierSourceItemSlot(IGemTagBuilder gemTag);
1719
IStatBuilder AdditionalActiveLevelsForModifierSourceItemSlot();

PoESkillTree.Engine.Computation.Console/Program.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,15 @@ private async Task<bool> HandleDataUpdateCommandAsync(string command)
9494
_dataUpdater.Value.UpdateSkillTreeStatLines(
9595
command.Substring("update SkillTreeStatLines ".Length));
9696
return true;
97+
case "update RePoE":
98+
await _dataUpdater.Value.UpdateRePoEAsync();
99+
return true;
97100
case "update ParseableBaseItems":
98101
await _dataUpdater.Value.UpdateParseableBaseItemsAsync();
99102
return true;
100103
case "update ItemAffixes":
101104
await _dataUpdater.Value.UpdateItemAffixesAsync();
102105
return true;
103-
case "update RePoE":
104-
await _dataUpdater.Value.UpdateRePoEAsync();
105-
return true;
106106
case "update Uniques":
107107
await _dataUpdater.Value.UpdateUniquesAsync();
108108
return true;

PoESkillTree.Engine.Computation.Data/Collections/ValueConversionMatcherCollection.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ public void Add([RegexPattern] string regex, Func<ValueBuilder, ValueBuilder> fu
2323
Add(regex, ModifierBuilder.WithValueConverter(func.ToValueConverter()), substitution);
2424
}
2525

26-
public void Add([RegexPattern] string regex, ValueBuilder multiplier)
26+
public void Add([RegexPattern] string regex, ValueBuilder multiplier, string substitution = "")
2727
{
28-
Add(regex, v => v * multiplier);
28+
Add(regex, v => v * multiplier, substitution);
2929
}
3030

3131
public void Add(

PoESkillTree.Engine.Computation.Data/ConditionMatchers.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
150150
{ "with maces", AttackWithSkills(Tags.Mace) },
151151
{ "to mace attacks", AttackWithSkills(Tags.Mace) },
152152
{ "with maces (and|or) sceptres", AttackWithSkillsEither(Tags.Mace, Tags.Sceptre) },
153-
{ "to mace and sceptre attacks", AttackWithSkillsEither(Tags.Mace, Tags.Sceptre) },
153+
{ "to mace (and|or) sceptre attacks", AttackWithSkillsEither(Tags.Mace, Tags.Sceptre) },
154154
{ "mace or sceptre attacks deal", AttackWithEither(Tags.Mace, Tags.Sceptre) },
155155
{
156156
"with (a mace|maces), sceptres? or (staff|staves)",
@@ -408,8 +408,8 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
408408
{ "shard", Stat.MainSkillPart.Value.Eq(1) }, // Spectral Shield Throw
409409
{ "at maximum charge distance", Stat.MainSkillPart.Value.Eq(1) }, // Shield Charge
410410
// - socketed
411-
{ "socketed gems", Condition.MainSkillHasModifierSourceItemSlot },
412-
{ "socketed gems (deal|have)", Condition.MainSkillHasModifierSourceItemSlot },
411+
{ "socketed (skills|gems)", Condition.MainSkillHasModifierSourceItemSlot },
412+
{ "socketed (skills|gems) (deal|have)", Condition.MainSkillHasModifierSourceItemSlot },
413413
{ "socketed attacks have", And(Condition.With(DamageSource.Attack), Condition.MainSkillHasModifierSourceItemSlot) },
414414
{ "socketed spells have", And(Condition.With(DamageSource.Spell), Condition.MainSkillHasModifierSourceItemSlot) },
415415
// - other

PoESkillTree.Engine.Computation.Data/FormAndStatMatchers.cs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,13 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
116116
PercentMore, Value * ValueFactory.LinearScale(OpponentsOfSelf.Distance, (15, 1), (40, 0)),
117117
Damage.With(Keyword.Melee)
118118
},
119+
{
120+
"#% chance for ({AilmentMatchers}) inflicted with this weapon to deal #% more damage",
121+
(PercentMore, Values[0].AsPercentage * Values[1], Damage.With(Reference.AsAilment),
122+
ModifierSourceIs(ItemSlot.MainHand).And(MainHandAttack)),
123+
(PercentMore, Values[0].AsPercentage * Values[1], Damage.With(Reference.AsAilment),
124+
ModifierSourceIs(ItemSlot.OffHand).And(OffHandAttack))
125+
},
119126
// - damage taken
120127
{
121128
"cold damage taken increased by chill effect",
@@ -219,12 +226,10 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
219226
// - projectiles
220227
{ "fires? # additional projectiles", BaseAdd, Value, Projectile.Count },
221228
{ "fires? # additional arrows", BaseAdd, Value, Projectile.Count, With(Keyword.Attack) },
229+
{ "bow attacks fire # additional arrows", BaseAdd, Value, Projectile.Count, And(With(Keyword.Attack), With(Keyword.Bow)) },
222230
{ "fires? an additional projectile", BaseAdd, 1, Projectile.Count },
223231
{ "fires? an additional arrow", BaseAdd, 1, Projectile.Count, With(Keyword.Attack) },
224-
{
225-
"bow attacks fire an additional arrow",
226-
BaseAdd, 1, Projectile.Count, And(With(Keyword.Attack), MainHand.Has(Tags.Bow))
227-
},
232+
{ "bow attacks fire an additional arrow", BaseAdd, 1, Projectile.Count, And(With(Keyword.Attack), MainHand.Has(Tags.Bow)) },
228233
{ "skills fire an additional projectile", BaseAdd, 1, Projectile.Count },
229234
{ "attack skills fire an additional projectile", BaseAdd, 1, Projectile.Count, With(Keyword.Attack) },
230235
{ "skills fire # additional projectiles", BaseAdd, Value, Projectile.Count },
@@ -285,6 +290,10 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
285290
{ "converts all evasion rating to armour", TotalOverride, 100, Evasion.ConvertTo(Armour) },
286291
{ "cannot evade enemy attacks", TotalOverride, 0, Evasion.Chance },
287292
{ @"\+# evasion rating", BaseAdd, Value, Evasion },
293+
{
294+
"#% increased energy shield from body armour",
295+
PercentIncrease, Value, EnergyShield, Condition.BaseValueComesFrom(ItemSlot.BodyArmour)
296+
},
288297
// - resistances
289298
{ "immune to ({DamageTypeMatchers}) damage", TotalOverride, 100, Reference.AsDamageType.Resistance },
290299
{ @"\+#% elemental resistances", BaseAdd, Value, Elemental.Resistance },
@@ -402,6 +411,7 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
402411
BaseAdd, Values[0].AsPercentage * Values[1].PercentOf(Reference.AsStat), Reference.AsPoolStat.Gain
403412
},
404413
// charges
414+
{ "maximum # ({ChargeTypeMatchers})", TotalOverride, Value, Reference.AsChargeType.Amount.Maximum },
405415
{
406416
"#% chance to gain a power, frenzy or endurance charge",
407417
BaseAdd, Value / 3,

PoESkillTree.Engine.Computation.Data/GeneralStatMatchers.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,7 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
519519
// gem level
520520
{ "level of all ({GemTagMatchers}) skill gems", Gem.AdditionalActiveLevels(Reference.AsGemTag) },
521521
{ "level of all ({GemTagMatchers}) spell skill gems", Gem.AdditionalActiveSpellLevels(Reference.AsGemTag) },
522+
{ "level of all ({SkillMatchers}) gems", Gem.AdditionalLevels(Reference.AsSkill) },
522523
{ "level of socketed gems", Gem.AdditionalLevelsForModifierSourceItemSlot() },
523524
{ "level of socketed active skill gems", Gem.AdditionalActiveLevelsForModifierSourceItemSlot() },
524525
{ "level of socketed ({GemTagMatchers}) gems", Gem.AdditionalLevelsForModifierSourceItemSlot(Reference.AsGemTag) },
@@ -531,8 +532,11 @@ protected override IReadOnlyList<MatcherData> CreateCollection() =>
531532
{ "quality of socketed support gems", Gem.AdditionalSupportQualityForModifierSourceItemSlot },
532533
// other
533534
{ "reflected damage taken", AnyDamageType.ReflectedDamageTaken },
535+
{ "take reflected damage", AnyDamageType.ReflectedDamageTaken },
534536
{ "reflected elemental damage taken", Elemental.ReflectedDamageTaken },
537+
{ "take reflected elemental damage", Elemental.ReflectedDamageTaken },
535538
{ "reflected physical damage taken", Physical.ReflectedDamageTaken },
539+
{ "take reflected physical damage", Physical.ReflectedDamageTaken },
536540
{ "damage taken gained as mana over 4 seconds when hit", Stat.DamageTakenGainedAsMana },
537541
{ "character size", Stat.IndependentMultiplier("CharacterSize") },
538542
{ "light radius", Stat.IndependentMultiplier("LightRadius") },

PoESkillTree.Engine.Computation.Data/GivenStats/CharacterGivenStats.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private GivenStatCollection CreateCollection() => Expand(new GivenStatCollection
9696
{ BaseSet, Totems.CombinedInstances.Maximum, 1 },
9797
{ BaseSet, Stat.Totem.BaseTime, 0.6 },
9898
{ BaseSet, Stat.Trap.BaseTime, 0.5 },
99-
{ BaseSet, Stat.Mine.BaseTime, 0.5 },
99+
{ BaseSet, Stat.Mine.BaseTime, 0.3 },
100100
// rage
101101
{ BaseSet, Charge.Rage.Amount.Maximum, 50 },
102102
{ BaseSet, Charge.RageEffect, 1 },

PoESkillTree.Engine.Computation.Data/GivenStats/CommonGivenStats.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ public CommonGivenStats(IBuilderFactories builderFactories, IModifierBuilder mod
8484
{ BaseSet, Charge.Frenzy.Amount.Maximum, 3 },
8585
{ BaseSet, Charge.Power.Amount.Maximum, 3 },
8686
{ BaseSet, Charge.From(ChargeType.GhostShroud).Amount.Maximum, 3 },
87-
{ BaseSet, Charge.From(ChargeType.Intensity).Amount.Maximum, 4 },
8887
{ BaseSet, Charge.From(ChargeType.Inspiration).Amount.Maximum, 5 },
8988
{ BaseSet, Charge.Endurance.Amount.Minimum, 0 },
9089
{ BaseSet, Charge.Frenzy.Amount.Minimum, 0 },

PoESkillTree.Engine.Computation.Data/GivenStats/EffectStats.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ public EffectStats(IBuilderFactories builderFactories, IModifierBuilder modifier
6666
{ Buff.Rampage, PercentIncrease, Stat.MovementSpeed.For(Entity.Minion), (Buff.Rampage.StackCount.Value / 10).Floor() },
6767
{ Buff.Rampage, PercentIncrease, Damage.For(Entity.Minion), (2 * Buff.Rampage.StackCount.Value / 10).Floor() },
6868
{ Buff.Withered, PercentIncrease, Chaos.Damage.Taken, 6 * Buff.Withered.StackCount.Value },
69-
{ Buff.Elusive, BaseAdd, Stat.Dodge.AttackChance, 20 },
70-
{ Buff.Elusive, BaseAdd, Stat.Dodge.SpellChance, 20 },
71-
{ Buff.Elusive, PercentIncrease, Stat.MovementSpeed, 40 },
69+
{ Buff.Elusive, BaseAdd, Stat.Dodge.AttackChance, 15 },
70+
{ Buff.Elusive, BaseAdd, Stat.Dodge.SpellChance, 15 },
71+
{ Buff.Elusive, PercentIncrease, Stat.MovementSpeed, 30 },
7272
};
7373
}
7474
}

0 commit comments

Comments
 (0)