Skip to content

Commit e7fb964

Browse files
committed
Merge branch 'dev'
2 parents 5339cc8 + 6d7be18 commit e7fb964

164 files changed

Lines changed: 213780 additions & 1431 deletions

File tree

Some content is hidden

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

.github/workflows/backport.yml

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,55 @@
11
name: Port changes to PoB2
2+
run-name: "Port PR #${{ github.event.pull_request.number || inputs.pr_number }} - ${{ github.event.pull_request.title || 'Manual dispatch' }}"
23

34
on:
4-
pull_request_target:
5-
types: [closed]
6-
7-
env:
8-
LABEL_STRING: ${{ join(github.event.pull_request.labels.*.name, ',') }}
5+
pull_request_target:
6+
types: [closed]
7+
workflow_dispatch:
8+
inputs:
9+
pr_number:
10+
description: PoB1 PR number to port
11+
required: true
12+
type: number
913

1014
jobs:
11-
backport:
12-
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'pob2')
13-
runs-on: ubuntu-latest
14-
steps:
15-
- name: Notify PathOfBuilding repo
16-
uses: peter-evans/repository-dispatch@v3
17-
with:
18-
token: ${{ secrets.WIRES77_PAT }}
19-
repository: ${{ github.repository_owner }}/PathOfBuilding-PoE2
20-
event-type: port-changes
21-
client-payload: '{"patch_url": "${{ github.event.pull_request.patch_url }}", "msg": "Apply changes from ${{ github.event.pull_request.html_url }}", "id": ${{ github.event.pull_request.number }}, "title": "${{ github.event.pull_request.title }}", "labels": "${{ env.LABEL_STRING }}", "name": "${{ github.event.pull_request.user.name }}", "user": "${{ github.event.pull_request.user.login }}"}'
15+
backport:
16+
if: github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'pob2'))
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Determine PR number
20+
run: |
21+
if [ "${{ github.event_name }}" = "pull_request_target" ]; then
22+
echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> "$GITHUB_ENV"
23+
else
24+
echo "PR_NUMBER=${{ github.event.inputs.pr_number }}" >> "$GITHUB_ENV"
25+
fi
26+
27+
- name: Fetch PR details
28+
id: payload
29+
uses: actions/github-script@v7
30+
with:
31+
result-encoding: string
32+
script: |
33+
const pr = await github.rest.pulls.get({
34+
owner: context.repo.owner,
35+
repo: context.repo.repo,
36+
pull_number: process.env.PR_NUMBER
37+
});
38+
const labels = pr.data.labels.map(l => l.name).join(',');
39+
return JSON.stringify({
40+
patch_url: pr.data.patch_url,
41+
msg: `Apply changes from ${pr.data.html_url}`,
42+
id: pr.data.number,
43+
title: pr.data.title,
44+
labels,
45+
name: pr.data.user.name || pr.data.user.login,
46+
user: pr.data.user.login,
47+
});
2248
49+
- name: Notify PathOfBuilding-PoE2 repo
50+
uses: peter-evans/repository-dispatch@v3
51+
with:
52+
token: ${{ secrets.WIRES77_PAT }}
53+
repository: ${{ github.repository_owner }}/PathOfBuilding-PoE2
54+
event-type: port-changes
55+
client-payload: ${{ steps.payload.outputs.result }}

.github/workflows/backport_receive.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Update code with code from PoB2
2-
run-name: ${{ github.event.client_payload.title }}
2+
run-name: "PR #${{ github.event.client_payload.id }} - ${{ github.event.client_payload.title }}"
33

44
on:
55
repository_dispatch:
@@ -15,17 +15,22 @@ jobs:
1515
with:
1616
ref: 'dev'
1717
- name: Apply patch
18-
continue-on-error: true
1918
run: |
20-
curl -L ${{ github.event.client_payload.patch_url }} | patch -p1 --merge --verbose -f -l --no-backup-if-mismatch
19+
# Download patch first to avoid broken pipes if apply exits early
20+
PATCH_FILE=$(mktemp)
21+
curl -L ${{ github.event.client_payload.patch_url }} -o "$PATCH_FILE"
22+
if ! git apply -v --3way --ignore-whitespace --index "$PATCH_FILE"; then
23+
echo "3-way apply failed, retrying with --reject"
24+
git apply -v --reject --ignore-whitespace --index "$PATCH_FILE" || true
25+
fi
2126
- name: Create Pull Request
2227
uses: peter-evans/create-pull-request@v5
2328
with:
2429
title: "[pob2-port] ${{ github.event.client_payload.title }}"
2530
branch: pob2-pr-${{ github.event.client_payload.id }}
2631
body: |
2732
${{ github.event.client_payload.msg }}
28-
committer: ${{ github.event.client_payload.name || github.event.client_payload.user }} <${{ github.event.client_payload.user }}@users.noreply.github.com>
2933
author: ${{ github.event.client_payload.name || github.event.client_payload.user }} <${{ github.event.client_payload.user }}@users.noreply.github.com>
34+
committer: ${{ github.event.client_payload.name || github.event.client_payload.user }} <${{ github.event.client_payload.user }}@users.noreply.github.com>
3035
commit-message: ${{ github.event.client_payload.msg }}
31-
labels: ${{ github.event.client_payload.labels }}
36+
labels: ${{ github.event.client_payload.labels }}

CHANGELOG.md

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

3+
## [v2.60.0](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/tree/v2.60.0) (2026/01/28)
4+
5+
[Full Changelog](https://github.com/PathOfBuildingCommunity/PathOfBuilding/compare/v2.59.1...v2.60.0)
6+
7+
8+
## What's Changed
9+
### New to Path of Building
10+
- Add 3.27 Phrecia Tree [\#9437](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9437) ([ShadowTrolll](https://github.com/ShadowTrolll))
11+
- Add support for newer unveils on Bitterbind Point [\#9357](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9357) ([Peechey](https://github.com/Peechey))
12+
- Add "aoe" filtering for gem search [\#9433](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9433) ([Blitz54](https://github.com/Blitz54))
13+
### Fixed Crashes
14+
- Fix crash on adding support gems and importing items to many builds [\#9340](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9340) ([LocalIdentity](https://github.com/LocalIdentity))
15+
- Fix Radius Jewels in Shared Items Crashing on Load [\#9349](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9349) ([Peechey](https://github.com/Peechey))
16+
- Fix Crash when sorting gems while using Foulborn Gruthkel's Pelt [\#9376](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9376) ([LocalIdentity](https://github.com/LocalIdentity))
17+
### User Interface
18+
- Fix Foulborn Icons showing on tree nodes, and foil items not importing type [\#9363](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9363) ([Blitz54](https://github.com/Blitz54))
19+
### Fixed Calculations
20+
- Fix Spellslinger gaining generic damage instead of Spell damage [\#9352](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9352) ([LocalIdentity](https://github.com/LocalIdentity))
21+
- Fix Foulborn Choir of the Storm's Overcapped Mod not applying to Total Mana [\#9351](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9351) ([Peechey](https://github.com/Peechey))
22+
### Fixed Behaviours
23+
- Fix Party Tab max Fortify override not working [\#9342](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9342) ([LocalIdentity](https://github.com/LocalIdentity))
24+
- Fix Utula's working with The Tides of Time [\#9436](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9436) ([Blitz54](https://github.com/Blitz54))
25+
### Accuracy Improvements
26+
- Updated Lori's Lantern text to match in-game description [\#9418](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9418) ([EminGul](https://github.com/EminGul))
27+
- Fix flavour text for some Uniques [\#9434](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9434) ([Blitz54](https://github.com/Blitz54))
28+
- Fix Sirus Meteor and Maven Memory game damage values [\#9372](https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/9372) ([LocalIdentity](https://github.com/LocalIdentity))
29+
30+
331
## [v2.59.2](https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/tree/v2.59.2) (2025/11/23)
432

533
[Full Changelog](https://github.com/PathOfBuildingCommunity/PathOfBuilding/compare/v2.59.1...v2.59.2)

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ RUN wget https://luarocks.org/releases/luarocks-3.7.0.tar.gz && tar xf luarocks-
1414
RUN cd luarocks-3.7.0 && ./configure && make
1515

1616
FROM buildbase AS luajit
17-
RUN git clone https://github.com/LuaJIT/LuaJIT && cd LuaJIT && git checkout c7db8255e1eb59f933fac7bc9322f0e4f8ddc6e6
17+
RUN git clone https://github.com/LuaJIT/LuaJIT && cd LuaJIT && git checkout 871db2c84ecefd70a850e03a6c340214a81739f0
1818
RUN cd LuaJIT && make
1919

2020
FROM buildbase AS emmyluadebugger

changelog.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
1+
VERSION[2.60.0][2026/01/28]
2+
3+
--- New to Path of Building ---
4+
* Add 3.27 Phrecia Tree (ShadowTrolll)
5+
* Add support for newer unveils on Bitterbind Point (Peechey)
6+
* Add "aoe" filtering for gem search (Blitz54)
7+
8+
--- Fixed Crashes ---
9+
* Fix crash on adding support gems and importing items to many builds (LocalIdentity)
10+
* Fix Radius Jewels in Shared Items Crashing on Load (Peechey)
11+
* Fix Crash when sorting gems while using Foulborn Gruthkel's Pelt (LocalIdentity)
12+
13+
--- User Interface ---
14+
* Fix Foulborn Icons showing on tree nodes, and foil items not importing type (Blitz54)
15+
16+
--- Fixed Calculations ---
17+
* Fix Spellslinger gaining generic damage instead of Spell damage (LocalIdentity)
18+
* Fix Foulborn Choir of the Storm's Overcapped Mod not applying to Total Mana (Peechey)
19+
20+
--- Fixed Behaviours ---
21+
* Fix Party Tab max Fortify override not working (LocalIdentity)
22+
* Fix Utula's working with The Tides of Time (Blitz54)
23+
24+
--- Accuracy Improvements ---
25+
* Updated Lori's Lantern text to match in-game description (EminGul)
26+
* Fix flavour text for some Uniques (Blitz54)
27+
* Fix Sirus Meteor and Maven Memory game damage values (LocalIdentity)
28+
129
VERSION[2.59.2][2025/11/23]
230

331
--- Fixed Crashes ---

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.59.2" />
3+
<Version number="2.60.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/" />

runtime/lua/dkjson.lua

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,26 @@ local function escapeutf8 (uchar)
130130
end
131131
end
132132

133+
local function sortedkeys(tbl)
134+
local keys = {}
135+
for k in pairs(tbl) do
136+
keys[#keys + 1] = k
137+
end
138+
table.sort(keys, function(a, b)
139+
local ta, tb = type(a), type(b)
140+
if ta == tb then
141+
return a < b
142+
end
143+
if ta == "number" then
144+
return true
145+
elseif tb == "number" then
146+
return false
147+
end
148+
return ta < tb
149+
end)
150+
return keys
151+
end
152+
133153
local function fsub (str, pattern, repl)
134154
-- gsub always builds a new string in a buffer, even when no match
135155
-- exists. First using find should be more efficient when most strings
@@ -333,7 +353,10 @@ encode2 = function (value, indent, level, buffer, buflen, tables, globalorder, s
333353
end
334354
end
335355
else -- unordered
336-
for k,v in pairs (value) do
356+
local keys = sortedkeys(value)
357+
for i = 1, #keys do
358+
local k = keys[i]
359+
local v = value[k]
337360
buflen, msg = addpair (k, v, prev, indent, level, buffer, buflen, tables, globalorder, state)
338361
if not buflen then return nil, msg end
339362
prev = true -- add a seperator before the next element

src/Classes/GemSelectControl.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,8 @@ function GemSelectClass:BuildList(buf)
186186
tagName = "strength"
187187
elseif tagName == "dex" then
188188
tagName = "dexterity"
189+
elseif tagName == "aoe" then
190+
tagName = "area"
189191
end
190192
-- for :melee we want to exclude gems that DON'T have this tag
191193
-- for :-melee we want to exclude gems that DO have this tag
@@ -590,7 +592,7 @@ function GemSelectClass:AddGemTooltip(gemInstance)
590592
local grantedEffectSecondary = gemInstance.gemData.VaalGem and primary or secondary
591593
self.tooltip:AddLine(fontSizeTitle, colorCodes.GEM .. altQualMap[gemInstance.qualityId]..grantedEffect.name, "FONTIN SC")
592594
self.tooltip:AddSeparator(10)
593-
self.tooltip:AddLine(fontSizeBig, "^x7F7F7F" .. gemInstance.gemData.tagString)
595+
self.tooltip:AddLine(fontSizeBig, "^x7F7F7F" .. gemInstance.gemData.tagString, "FONTIN SC")
594596
self:AddCommonGemInfo(gemInstance, grantedEffect, true)
595597
self.tooltip:AddSeparator(10)
596598
self.tooltip:AddLine(fontSizeTitle, colorCodes.GEM .. (gemInstance.gemData.secondaryEffectName or grantedEffectSecondary.name), "FONTIN SC")

src/Classes/ImportTab.lua

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,6 +1065,23 @@ function ImportTabClass:ImportItem(itemData, slotName)
10651065
end
10661066
end
10671067
end
1068+
if itemData.foilVariation or itemData.isRelic then
1069+
local foilVariants = {
1070+
"Amethyst",
1071+
"Verdant",
1072+
"Ruby",
1073+
"Cobalt",
1074+
"Sunset",
1075+
"Aureate",
1076+
"Celestial Quartz",
1077+
"Celestial Ruby",
1078+
"Celestial Emerald",
1079+
"Celestial Aureate",
1080+
"Celestial Pearl",
1081+
"Celestial Amethyst",
1082+
}
1083+
item.foilType = foilVariants[itemData.foilVariation] or "Rainbow"
1084+
end
10681085

10691086
-- Add and equip the new item
10701087
item:BuildAndParseRaw()

src/Classes/PassiveTreeView.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1111,7 +1111,7 @@ function PassiveTreeViewClass:AddNodeName(tooltip, node, build)
11111111
else
11121112
tooltip.tooltipHeader = tooltipMap[node.type] or "UNKNOWN"
11131113
end
1114-
nodeName = node.dn
1114+
local nodeName = node.dn
11151115
if main.showFlavourText then
11161116
nodeName = "^xF8E6CA" .. node.dn
11171117
end

0 commit comments

Comments
 (0)