Skip to content

Commit 5a0b297

Browse files
author
LocalIdentity
committed
Merge branch 'dev'
2 parents 341436b + 51185c9 commit 5a0b297

File tree

130 files changed

+280188
-297291
lines changed

Some content is hidden

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

130 files changed

+280188
-297291
lines changed

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,40 @@
11
# Changelog
22

3+
## [v2.47.0](https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/v2.47.0) (2024/07/29)
4+
5+
[Full Changelog](https://github.com/PathOfBuildingCommunity/PathOfBuilding/compare/v2.46.0...v2.47.0)
6+
7+
<!-- Release notes generated using configuration in .github/release.yml at dev -->
8+
9+
## What's Changed
10+
### New to Path of Building
11+
- Update existing gems [\#7970](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7970) ([Wires77](https://github.com/Wires77), [Regisle](https://github.com/Regisle), [Nostrademous](https://github.com/Nostrademous), [LocalIdentity](https://github.com/LocalIdentity))
12+
- Add support for new 3.25 Gems [\#7988](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7988) ([LocalIdentity](https://github.com/LocalIdentity))
13+
- Add support for new 3.25 Uniques [\#8000](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/8000), [\#7993](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7993) ([Paliak](https://github.com/Paliak), [Nostrademous](https://github.com/Nostrademous), [LocalIdentity](https://github.com/LocalIdentity))
14+
- Add support for Warcries to affect Minions [\#7960](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7960) ([Regisle](https://github.com/Regisle))
15+
- Add support for Echoes of Creation [\#7999](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7999) ([LocalIdentity](https://github.com/LocalIdentity))
16+
- Fix numerous issues in bleed calculations [\#7771](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7771) ([CelestiaTheDryad](https://github.com/CelestiaTheDryad))
17+
### Fixed Crashes
18+
- Fix crash when importing a build where empty configs were not loaded properly [\#7996](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7996) ([Wires77](https://github.com/Wires77))
19+
### User Interface
20+
- Remove remote build list functionality pending redesign [\#7995](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7995) ([Wires77](https://github.com/Wires77))
21+
- Fix breakdown for DoT Multiplier [\#7969](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7969) ([Rybadour](https://github.com/Rybadour))
22+
### Fixed Calculations
23+
- Fix DoT Multi when using Maligaro's Virtuosity and Perfect Agony [\#7965](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7965) ([DieMango](https://github.com/DieMango))
24+
- Fix Scorch chance on Crit when using Warden's Oath of Summer [\#7975](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7975) ([ConnorThelin](https://github.com/ConnorThelin))
25+
- Fix Gladiator Determined Survivor Shield Block calculation [\#7979](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7979) ([Regisle](https://github.com/Regisle))
26+
- Fix Ignite divide by 0 error [\#7954](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7954) ([NL908](https://github.com/NL908))
27+
### Fixed Behaviours
28+
- Fix Quality on Tinctures to apply More effect instead of Increased [\#7967](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7967) ([nexus671](https://github.com/nexus671))
29+
- Fix non-instant Life Leech incorrectly applying with Strength of Blood [\#7937](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7937) ([greatnameincoming](https://github.com/greatnameincoming))
30+
- Fix Ravenous Passion helmet not granting Spell damage from Rage [\#7936](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7936) ([LocalIdentity](https://github.com/LocalIdentity))
31+
- Fix Rallying Cry Exerted damage mod incorrectly working with Autoexertion [\#8001](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/8001) ([LocalIdentity](https://github.com/LocalIdentity))
32+
- Improve Militant Faith Notable Protection [\#7990](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7990) ([Peechey](https://github.com/Peechey))
33+
### Accuracy Improvements
34+
- Fix Dark Seer missing global Chance to Blind on Hit [\#7950](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/7950) ([NL908](https://github.com/NL908))
35+
- Add tag to Legacy Watchers eye mods [\#8002](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/8002) ([LocalIdentity](https://github.com/LocalIdentity))
36+
37+
338
## [v2.46.0](https://github.com/PathOfBuildingCommunity/PathOfBuilding/tree/v2.46.0) (2024/07/25)
439

540
[Full Changelog](https://github.com/PathOfBuildingCommunity/PathOfBuilding/compare/v2.45.0...v2.46.0)

changelog.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1+
VERSION[2.47.0][2024/07/29]
2+
3+
--- New to Path of Building ---
4+
* Update existing gems (Wires77, Regisle, Nostrademous, LocalIdentity)
5+
* Add support for new 3.25 Gems (LocalIdentity)
6+
* Add support for new 3.25 Uniques (LocalIdentity, Paliak, Nostrademous)
7+
* Add support for Warcries to affect Minions (Regisle)
8+
* Add support for Echoes of Creation (LocalIdentity)
9+
* Fix numerous issues in bleed calculations (CelestiaTheDryad)
10+
11+
--- Fixed Crashes ---
12+
* Fix crash when importing a build where empty configs were not loaded properly (Wires77)
13+
14+
--- User Interface ---
15+
* Remove remote build list functionality pending redesign (Wires77)
16+
* Fix breakdown for DoT Multiplier (Rybadour)
17+
18+
--- Fixed Calculations ---
19+
* Fix DoT Multi when using Maligaro's Virtuosity and Perfect Agony (DieMango)
20+
* Fix Scorch chance on Crit when using Warden's Oath of Summer (ConnorThelin)
21+
* Fix Gladiator Determined Survivor Shield Block calculation (Regisle)
22+
* Fix Ignite divide by 0 error (NL908)
23+
24+
--- Fixed Behaviours ---
25+
* Fix Quality on Tinctures to apply More effect instead of Increased (nexus671)
26+
* Fix non-instant Life Leech incorrectly applying with Strength of Blood (greatnameincoming)
27+
* Fix Ravenous Passion helmet not granting Spell damage from Rage (LocalIdentity)
28+
* Fix Rallying Cry Exerted damage mod incorrectly working with Autoexertion (LocalIdentity)
29+
* Improve Militant Faith Notable Protection (Peechey)
30+
31+
--- Accuracy Improvements ---
32+
* Fix Dark Seer missing global Chance to Blind on Hit (NL908)
33+
* Add tag to Legacy Watchers eye mods (LocalIdentity)
34+
135
VERSION[2.46.0][2024/07/25]
236

337
--- New to Path of Building ---

manifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<PoBVersion>
3-
<Version number="2.46.0" />
3+
<Version number="2.47.0" />
44
<Source part="default" url="https://raw.githubusercontent.com/PathOfBuildingCommunity/PathOfBuilding/{branch}/" />
55
<Source part="runtime" platform="win32" url="https://raw.githubusercontent.com/PathOfBuildingCommunity/PathOfBuilding/{branch}/runtime/" />
66
<Source part="program" url="https://raw.githubusercontent.com/PathOfBuildingCommunity/PathOfBuilding/{branch}/src/" />

spec/System/TestAilments_spec.lua

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,24 @@ describe("TestAilments", function()
1919
runCallback("OnFrame")
2020
assert.are.equals(round(50 + 10 + 40), build.calcsTab.mainOutput.MaximumShock)
2121
end)
22+
23+
it("bleed is buffed by bleed chance", function()
24+
build.itemsTab:CreateDisplayItemFromRaw("New Item\nKarui Chopper")
25+
build.itemsTab:AddDisplayItem()
26+
build.skillsTab:PasteSocketGroup("Slot: Weapon 1\nHeavy Strike 1/0 Default 1\n")
27+
build.configTab.input.customMods = "\z
28+
attacks have 10% chance to cause bleeding\n\z
29+
"
30+
build.configTab:BuildModList()
31+
runCallback("OnFrame")
32+
local badDps = build.calcsTab.mainOutput.BleedDPS
33+
34+
build.configTab.input.customMods = "\z
35+
attacks have 100% chance to cause bleeding\n\z
36+
"
37+
build.configTab:BuildModList()
38+
runCallback("OnFrame")
39+
local goodDps = build.calcsTab.mainOutput.BleedDPS
40+
assert.True(goodDps > badDps)
41+
end)
2242
end)

spec/System/TestImpale_spec.lua

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ describe("TestAttacks", function()
2626
assert.are.equals(100, build.calcsTab.mainOutput.MainHand.ImpaleChanceOnCrit)
2727
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
2828
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
29-
assert.are.equals(200, build.calcsTab.mainOutput.ImpaleHit)
29+
assert.are.equals(200, build.calcsTab.mainOutput.impaleStoredHitAvg)
3030
assert.are.equals(100*1.3, build.calcsTab.mainOutput.ImpaleDPS) -- 5 impales * 10% stored damage * 1.3 attacks per second
3131

3232
-- 50% crit
@@ -41,7 +41,7 @@ describe("TestAttacks", function()
4141
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
4242
assert.are.equals(300, build.calcsTab.mainOutput.MainHand.PhysicalCritAverage)
4343
assert.are.equals(250, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
44-
assert.are.equals(250, build.calcsTab.mainOutput.ImpaleHit)
44+
assert.are.equals(250, build.calcsTab.mainOutput.impaleStoredHitAvg)
4545
assert.are.equals(125*1.3, build.calcsTab.mainOutput.ImpaleDPS) -- 5 impales * 10% stored damage * 1.3 attacks per second
4646

4747
-- 100% crit
@@ -54,7 +54,7 @@ describe("TestAttacks", function()
5454
runCallback("OnFrame")
5555

5656
assert.are.equals(300, build.calcsTab.mainOutput.MainHand.PhysicalCritAverage)
57-
assert.are.equals(300, build.calcsTab.mainOutput.ImpaleHit)
57+
assert.are.equals(300, build.calcsTab.mainOutput.impaleStoredHitAvg)
5858
assert.are.equals(150*1.3, build.calcsTab.mainOutput.ImpaleDPS) -- 5 impales * 10% stored damage * 1.3 attacks per second
5959
end)
6060

@@ -71,7 +71,7 @@ describe("TestAttacks", function()
7171

7272
assert.are.equals(400, build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
7373
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
74-
assert.are.equals(200, build.calcsTab.mainOutput.ImpaleHit)
74+
assert.are.equals(200, build.calcsTab.mainOutput.impaleStoredHitAvg)
7575
assert.are.equals(200*1.3, build.calcsTab.mainOutput.ImpaleDPS) -- 5 impales * 10% stored damage * 1.3 attacks per second
7676

7777
-- 50% crit
@@ -87,7 +87,7 @@ describe("TestAttacks", function()
8787
assert.are.equals(400, build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
8888
assert.are.equals(600, build.calcsTab.mainOutput.MainHand.PhysicalCritAverage)
8989
assert.are.equals(250, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
90-
assert.are.equals(250, build.calcsTab.mainOutput.ImpaleHit)
90+
assert.are.equals(250, build.calcsTab.mainOutput.impaleStoredHitAvg)
9191
assert.are.equals(250*1.3, build.calcsTab.mainOutput.ImpaleDPS) -- 5 impales * 10% stored damage * 1.3 attacks per second
9292

9393
-- 100% crit
@@ -103,7 +103,7 @@ describe("TestAttacks", function()
103103
assert.are.equals(400, build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
104104
assert.are.equals(600, build.calcsTab.mainOutput.MainHand.PhysicalCritAverage)
105105
assert.are.equals(300, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
106-
assert.are.equals(300, build.calcsTab.mainOutput.ImpaleHit)
106+
assert.are.equals(300, build.calcsTab.mainOutput.impaleStoredHitAvg)
107107
assert.are.equals(300*1.3, build.calcsTab.mainOutput.ImpaleDPS) -- 5 impales * 10% stored damage * 1.3 attacks per second
108108
end)
109109

@@ -120,7 +120,7 @@ describe("TestAttacks", function()
120120
-- dam * (1 - (armourDR + additionalDR)
121121
assert.are.equals(200 * (1 - (0.5 + 0.1)), build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
122122
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
123-
assert.are.equals(200, build.calcsTab.mainOutput.ImpaleHit)
123+
assert.are.equals(200, build.calcsTab.mainOutput.impaleStoredHitAvg)
124124
-- [5 impales * 10% stored damage] * 1.3 attacks * (armour mod - phys DR)
125125
assert.are.near(100 * 1.3 * (1 - (2/3 + 0.1)), build.calcsTab.mainOutput.ImpaleDPS, 0.0000001) -- floating point math
126126

@@ -137,7 +137,7 @@ describe("TestAttacks", function()
137137
-- dam * (1 - (armourDR + additionalDR)
138138
assert.are.equals(300 * (1 - (0.5 + 0.1)), build.calcsTab.mainOutput.MainHand.PhysicalCritAverage)
139139
assert.are.equals(300, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
140-
assert.are.equals(300, build.calcsTab.mainOutput.ImpaleHit)
140+
assert.are.equals(300, build.calcsTab.mainOutput.impaleStoredHitAvg)
141141
-- [5 impales * 10% stored damage] * 1.3 attacks * (armour mod - phys DR)
142142
assert.are.near(150 * 1.3 * (1 - (2/3 + 0.1)), build.calcsTab.mainOutput.ImpaleDPS, 0.0000001) -- floating point math
143143

@@ -157,7 +157,7 @@ describe("TestAttacks", function()
157157
-- taken * dam * (1 - (armourDR + additionalDR)
158158
assert.are.equals(2 * 200 * (1 - (0.5 + 0.1)), build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
159159
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
160-
assert.are.equals(200, build.calcsTab.mainOutput.ImpaleHit)
160+
assert.are.equals(200, build.calcsTab.mainOutput.impaleStoredHitAvg)
161161
-- taken * [5 impales * 10% stored damage] * 1.3 attacks * (armour mod - phys DR)
162162
assert.are.near(2 * 100 * 1.3 * (1 - (2/3 + 0.1)), build.calcsTab.mainOutput.ImpaleDPS, 0.0000001) -- floating point math
163163

@@ -175,7 +175,7 @@ describe("TestAttacks", function()
175175
-- taken * dam * (1 - (armourDR + additionalDR)
176176
assert.are.equals(2 * 300 * (1 - (0.5 + 0.1)), build.calcsTab.mainOutput.MainHand.PhysicalCritAverage)
177177
assert.are.equals(300, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
178-
assert.are.equals(300, build.calcsTab.mainOutput.ImpaleHit)
178+
assert.are.equals(300, build.calcsTab.mainOutput.impaleStoredHitAvg)
179179
-- taken * [5 impales * 10% stored damage] * 1.3 attacks * (armour mod - phys DR)
180180
assert.are.near(2 * 150 * 1.3 * (1 - (2/3 + 0.1)), build.calcsTab.mainOutput.ImpaleDPS, 0.0000001) -- floating point math
181181

@@ -212,7 +212,7 @@ describe("TestAttacks", function()
212212
assert.are.equals(100, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
213213
assert.are.equals(200, build.calcsTab.mainOutput.OffHand.impaleStoredHitAvg)
214214

215-
assert.are.equals(150, build.calcsTab.mainOutput.ImpaleHit)
215+
assert.are.equals(150, build.calcsTab.mainOutput.impaleStoredHitAvg)
216216
-- 5 impales * 10% stored damage * 1.3 attacks per second * 1.1 dual wield modifier
217217
assert.are.near(75*1.3*1.1, build.calcsTab.mainOutput.ImpaleDPS, 0.0000001)
218218

@@ -229,7 +229,7 @@ describe("TestAttacks", function()
229229
assert.are.equals(125, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
230230
assert.are.equals(250, build.calcsTab.mainOutput.OffHand.impaleStoredHitAvg)
231231

232-
assert.are.equals(187.5, build.calcsTab.mainOutput.ImpaleHit)
232+
assert.are.equals(187.5, build.calcsTab.mainOutput.impaleStoredHitAvg)
233233
-- 5 impales * 10% stored damage * 1.3 attacks per second * 1.1 dual wield modifier
234234
assert.are.near(187.5/2*1.3*1.1, build.calcsTab.mainOutput.ImpaleDPS, 0.0000001)
235235

@@ -246,7 +246,7 @@ describe("TestAttacks", function()
246246
assert.are.equals(150, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
247247
assert.are.equals(300, build.calcsTab.mainOutput.OffHand.impaleStoredHitAvg)
248248

249-
assert.are.equals(225, build.calcsTab.mainOutput.ImpaleHit)
249+
assert.are.equals(225, build.calcsTab.mainOutput.impaleStoredHitAvg)
250250
-- 5 impales * 10% stored damage * 1.3 attacks per second * 1.1 dual wield modifier
251251
assert.are.near(225/2*1.3*1.1, build.calcsTab.mainOutput.ImpaleDPS, 0.0000001)
252252

@@ -265,7 +265,7 @@ describe("TestAttacks", function()
265265

266266
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
267267
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
268-
assert.are.equals(200, build.calcsTab.mainOutput.ImpaleHit)
268+
assert.are.equals(200, build.calcsTab.mainOutput.impaleStoredHitAvg)
269269
assert.are.near(100*1.3*1.5, build.calcsTab.mainOutput.ImpaleDPS, 0.00000001) -- 5 impales * 10% stored damage * 1.3 attacks per second * 1.5 impale effect
270270

271271
-- last 1 extra hit
@@ -280,7 +280,7 @@ describe("TestAttacks", function()
280280

281281
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.PhysicalHitAverage)
282282
assert.are.equals(200, build.calcsTab.mainOutput.MainHand.impaleStoredHitAvg)
283-
assert.are.equals(200, build.calcsTab.mainOutput.ImpaleHit)
283+
assert.are.equals(200, build.calcsTab.mainOutput.impaleStoredHitAvg)
284284
assert.are.near(120*1.3, build.calcsTab.mainOutput.ImpaleDPS, 0.0000001) -- 6 impales * 10% stored damage * 1.3 attacks per second
285285
end)
286286

spec/System/TestTriggers_spec.lua

Lines changed: 29 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,70 +1160,6 @@ describe("TestTriggers", function()
11601160
assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil)
11611161
end)
11621162

1163-
it("Trigger Riposte", function()
1164-
build.skillsTab:PasteSocketGroup("Riposte 20/0 Default 1\n")
1165-
runCallback("OnFrame")
1166-
1167-
assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil)
1168-
end)
1169-
1170-
it("Trigger Reckoning", function()
1171-
build.itemsTab:CreateDisplayItemFromRaw([[Armour Shield
1172-
Heat-attuned Tower Shield
1173-
Armour: 819
1174-
ArmourBasePercentile: 0
1175-
Crafted: true
1176-
Prefix: {range:0.5}LocalIncreasedPhysicalDamageReductionRating5
1177-
Prefix: {range:0.5}LocalIncreasedPhysicalDamageReductionRatingPercent5
1178-
Prefix: {range:0.5}IncreasedLife8
1179-
Suffix: None
1180-
Suffix: None
1181-
Suffix: None
1182-
Quality: 20
1183-
Sockets: R-R-R
1184-
LevelReq: 70
1185-
Implicits: 1
1186-
Scorch Enemies when you Block their Damage
1187-
+92 to Armour
1188-
74% increased Armour
1189-
+85 to maximum Life]])
1190-
build.itemsTab:AddDisplayItem()
1191-
runCallback("OnFrame")
1192-
1193-
build.skillsTab:PasteSocketGroup("Reckoning 20/0 Default 1\n")
1194-
runCallback("OnFrame")
1195-
1196-
assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil)
1197-
end)
1198-
1199-
it("Trigger Vengeance", function()
1200-
build.itemsTab:CreateDisplayItemFromRaw([[Elemental 1H Sword
1201-
Jewelled Foil
1202-
Crafted: true
1203-
Prefix: {range:0.5}WeaponElementalDamageOnWeapons4
1204-
Prefix: None
1205-
Prefix: None
1206-
Suffix: {range:0.5}LocalIncreasedAttackSpeed3
1207-
Suffix: {range:0.5}LocalCriticalStrikeChance3
1208-
Suffix: {range:0.5}LocalCriticalMultiplier4
1209-
Quality: 20
1210-
Sockets: G-G-G
1211-
LevelReq: 68
1212-
Implicits: 1
1213-
{tags:damage,critical}+25% to Global Critical Strike Multiplier
1214-
12% increased Attack Speed
1215-
22% increased Critical Strike Chance
1216-
+27% to Global Critical Strike Multiplier
1217-
40% increased Elemental Damage with Attack Skills]])
1218-
build.itemsTab:AddDisplayItem()
1219-
runCallback("OnFrame")
1220-
1221-
build.skillsTab:PasteSocketGroup("Vengeance 20/0 Default 1\n")
1222-
runCallback("OnFrame")
1223-
1224-
assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil)
1225-
end)
1226-
12271163
it("Trigger Combust", function()
12281164
build.skillsTab:PasteSocketGroup("Infernal Cry 20/0 Default 1\n")
12291165
runCallback("OnFrame")
@@ -1374,4 +1310,33 @@ describe("TestTriggers", function()
13741310

13751311
assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil)
13761312
end)
1313+
1314+
it("Trigger Svalinn", function()
1315+
build.itemsTab:CreateDisplayItemFromRaw([[Rarity: UNIQUE
1316+
Svalinn Girded
1317+
Colossal Tower Shield
1318+
Armour: 721
1319+
ArmourBasePercentile: 1
1320+
Ward: 163
1321+
WardBasePercentile: 1
1322+
League: Settlers of Kalguur
1323+
Quality: 20
1324+
Sockets: R-R-R
1325+
LevelReq: 50
1326+
Implicits: 1
1327+
{range:0.5}+(10-20) to maximum Life
1328+
13% Chance to Block Spell Damage
1329+
+136 to Ward
1330+
-10% to maximum Chance to Block Attack Damage
1331+
-10% to maximum Chance to Block Spell Damage
1332+
Chance To Block is Lucky
1333+
Trigger a Socketed Elemental Spell on Block, with a 0.25 Second Cooldown]])
1334+
build.itemsTab:AddDisplayItem()
1335+
runCallback("OnFrame")
1336+
1337+
build.skillsTab:PasteSocketGroup("Slot: Weapon 2\nArc 20/0 Default 1\n")
1338+
runCallback("OnFrame")
1339+
1340+
assert.True(build.calcsTab.mainOutput.SkillTriggerRate ~= nil)
1341+
end)
13771342
end)

src/Classes/ConfigTab.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,11 @@ function ConfigTabClass:Load(xml, fileName)
655655
end
656656
end
657657
end
658+
659+
-- Catch special case of empty Config
660+
if xml.empty then
661+
self:NewConfigSet(1, "Default")
662+
end
658663
for index, node in ipairs(xml) do
659664
if node.elem ~= "ConfigSet" then
660665
if not self.configSets[1] then

0 commit comments

Comments
 (0)