Skip to content

Commit 4ef7152

Browse files
committed
Merge branch 'dev' into choir-of-the-storm
2 parents e9de677 + d7cda7d commit 4ef7152

File tree

13 files changed

+80
-20
lines changed

13 files changed

+80
-20
lines changed

CONTRIBUTING.md

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* Please provide detailed instructions on how to reproduce the bug, if possible.
2424
* Provide a build share code for a build that is affected by the bug, if possible.
2525
In the "Import/Export Build" tab, click "Generate", then "Share" and add the link to your post.
26-
26+
2727
Build share codes allow us to reproduce bugs much more quickly.
2828

2929
## Requesting features
@@ -236,6 +236,8 @@ Docker alternative:
236236
* [How skills work in Path of Building](docs/addingSkills.md)
237237

238238
## Exporting GGPK data from Path of Exile
239+
> [!WARNING]
240+
> This will not work on files from the torrent that is released before league launches, as it contains no `Data` section.
239241
240242
Note: This tutorial assumes that you are already familiar with the GGPK and its structure. [poe-tool-dev/ggpk.discussion](https://github.com/poe-tool-dev/ggpk.discussion/wiki)
241243
is a good starting point.
@@ -244,6 +246,9 @@ The `./src/Data` folder contains generated files which are created using the scr
244246
If you change any logic/configuration in `./src/Export`, you will need to regenerate the appropriate `./src/Data` files. You can do so by running the `./src/Export` scripts using the `.dat` viewer at `./src/Export/Launch.lua`:
245247

246248
### Obtain an Oodle extractor
249+
> [!TIP]
250+
> Binaries are usually available at https://github.com/zao/ooz/releases.
251+
247252
Note: For this tutorial, you will need a working installation of [Visual Studio Community](https://visualstudio.microsoft.com/vs/community/)
248253
as well as some familiarity with build tools such as [CMake](https://cmake.org).
249254
1. In Visual Studio, clone the following repository using this command:
@@ -252,13 +257,24 @@ as well as some familiarity with build tools such as [CMake](https://cmake.org).
252257
2. Configure CMake.
253258
3. Build `bun_extract_file.exe`, `libbun.dll` and `libooz.dll`.
254259

255-
### Set up the exporter
256-
1. Copy `bun_extract_file.exe`, `libbun.dll` and `libooz.dll` to `./src/Export/ggpk/`.
257-
2. Create a shortcut to `./runtime/Path{space}of{space}Building.exe` with the path to `./src/Export/Launch.lua` as first argument. You should end up with something like: `"<path to repo>\runtime\Path{space}of{space}Building.exe" "<path to repo>\src\Export\Launch.lua"`.
258-
3. Run the shortcut, and the GGPK data viewer UI will appear. If you get an error, be sure you're using the latest release of Path of Building Community.
259-
4. Paste the path to `Content.ggpk` (or, for Steam users, `C:\Program Files (x86)\Steam\steamapps\common\Path of Exile`) into the text box in the top left, and hit `Enter` to read the GGPK. If successful, you will see a list of the data tables in the GGPK file. Note: This will not work on the GGPK from the torrent file released before league launches, as it contains no `Data` section.
260-
5. Click `Scripts >>` to show the list of available export scripts. Double-clicking a script will run it, and the box to the right will show any output from the script.
261-
6. If you run into any errors, update the code in `./src/Export` as necessary and try again.
260+
### Set up the exporter
261+
1. Copy `bun_extract_file.exe`, `libbun.dll` and `libooz.dll` to `.\src\Export\ggpk\`.
262+
2. Create a shortcut to `.\runtime\Path{space}of{space}Building.exe` with the path to `.\src\Export\Launch.lua` as the first argument. You should end up with something like:
263+
264+
"<path to repo>\runtime\Path{space}of{space}Building.exe" "<path to repo>\src\Export\Launch.lua"
265+
3. Run the shortcut. "Dat View", the GGPK data viewer UI, should appear. If you get an error, be sure you're using the latest release of Path of Building Community.
266+
4. Click `Edit Sources...` to display the "New DAT Source" popup. Click `New` and enter a name.
267+
5. Paste the full path to `Content.ggpk` into the "Source from GGPK/Steam PoE path" box and hit `Enter`. For the stand-alone client, the path must include the file-name. (Do not put anything in the "Source from DAT files" box unless you have already manually unpacked the relevant files.)
268+
269+
Example input for the stand-alone client:
270+
271+
C:\Path of Exile 2\Content.ggpk
272+
Example input for Steam:
273+
274+
C:\Program Files (x86)\Steam\steamapps\common\Path of Exile 2
275+
If successful, you should see some cmd windows pop up as the files are unpacked, and then a list of the data tables in the GGPK file should appear.
276+
6. Click `Scripts >>` to show the list of available export scripts. Double-clicking a script will run it, and the box to the right will show any output from the script.
277+
7. If you run into any errors, update the code in `./src/Export` as necessary and try again.
262278

263279
## Using the inbuilt profiler
264280
The profiler is found at https://github.com/charlesmallah/lua-profiler and is written entirely in lua under a MIT license.

manifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
<File name="Data/ModCorrupted.lua" part="program" sha1="37602fae17e519b99b547dc4b7c377b2e39c928e" />
139139
<File name="Data/ModFlask.lua" part="program" sha1="d577f560c0abe0776a2b37eff17203a452308cdd" />
140140
<File name="Data/ModItem.lua" part="program" sha1="b0c5501478746932c4f5a1a8393f7890afe8f700" />
141-
<File name="Data/ModItemExlusive.lua" part="program" sha1="15bfcca27655f2deb997d5f0f432b0a0ba92cf01" />
141+
<File name="Data/ModItemExclusive.lua" part="program" sha1="15bfcca27655f2deb997d5f0f432b0a0ba92cf01" />
142142
<File name="Data/ModJewel.lua" part="program" sha1="4b3562c18a8242215498e3ac449925db1733e598" />
143143
<File name="Data/ModMap.lua" part="program" sha1="29edb01606d86bf46267fbe91ad1dd51eef52dae" />
144144
<File name="Data/ModRunes.lua" part="program" sha1="a14dfdea09c48f29fd830b00fb37141e66f86359" />

src/Classes/ItemsTab.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,12 +1059,12 @@ function ItemsTabClass:Draw(viewPort, inputEvents)
10591059
if event.type == "KeyDown" then
10601060
if event.key == "v" and IsKeyDown("CTRL") then
10611061
local newItem = Paste()
1062-
if newItem:find("{ ", 0, true) then
1063-
main:OpenConfirmPopup("Warning", "\"Advanced Item Descriptions\" (Ctrl+Alt+c) are unsupported.\n\nAbort paste?", "OK", function()
1064-
self:SetDisplayItem()
1065-
end)
1066-
end
10671062
if newItem then
1063+
if newItem:find("{ ", 0, true) then
1064+
main:OpenConfirmPopup("Warning", "\"Advanced Item Descriptions\" (Ctrl+Alt+c) are unsupported.\n\nAbort paste?", "OK", function()
1065+
self:SetDisplayItem()
1066+
end)
1067+
end
10681068
self:CreateDisplayItemFromRaw(newItem, true)
10691069
end
10701070
elseif event.key == "e" then

src/Data/ModCache.lua

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2253,8 +2253,7 @@ c["Cannot be Poisoned"]={{[1]={flags=0,keywordFlags=0,name="PoisonImmune",type="
22532253
c["Cannot be Shocked"]={{[1]={flags=0,keywordFlags=0,name="ShockImmune",type="FLAG",value=true}},nil}
22542254
c["Cannot gain Spirit from Equipment"]={{[1]={flags=0,keywordFlags=0,name="CannotGainSpiritFromEquipment",type="FLAG",value=true}},nil}
22552255
c["Cannot have Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="CannotHaveES",type="FLAG",value=true}},nil}
2256-
c["Cannot use Charms"]={nil,"Cannot use Charms "}
2257-
c["Cannot use Charms 30% more Recovery from Flasks"]={nil,"Cannot use Charms 30% more Recovery from Flasks "}
2256+
c["Cannot use Charms"]={{[1]={flags=0,keywordFlags=0,name="CharmLimit",type="OVERRIDE",value=0}},nil}
22582257
c["Cannot use Life Flasks"]={nil,"Cannot use Life Flasks "}
22592258
c["Cannot use Shield Skills"]={nil,"Cannot use Shield Skills "}
22602259
c["Carry a Chest which adds 20 Inventory Slots"]={nil,"Carry a Chest which adds 20 Inventory Slots "}
File renamed without changes.

src/Data/Skills/act_int.lua

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3377,6 +3377,17 @@ skills["ChargeInfusionPlayer"] = {
33773377
label = "Charge Infusion",
33783378
incrementalEffectiveness = 0.054999999701977,
33793379
statDescriptionScope = "charge_mastery",
3380+
statMap = {
3381+
["skill_charge_matery_skill_speed_+%_final_with_frenzy_charges"] = {
3382+
mod("Speed", "MORE", nil, 0, 0, { type = "StatThreshold", stat = "FrenzyCharges", threshold = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Charge Infusion", effectCond = "UseFrenzyCharges" }),
3383+
},
3384+
["skill_charge_mastery_crit_chance_+%_final_with_power_charges"] = {
3385+
mod("CritChance", "MORE", nil, 0, 0, { type = "StatThreshold", stat = "PowerCharges", threshold = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Charge Infusion", effectCond = "UsePowerCharges" }),
3386+
},
3387+
["skill_charge_mastery_defences_+%_final_with_endurance_charges"] = {
3388+
mod("Defences", "MORE", nil, 0, 0, { type = "StatThreshold", stat = "EnduranceCharges", threshold = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Charge Infusion", effectCond = "UseEnduranceCharges" }),
3389+
},
3390+
},
33803391
baseFlags = {
33813392
},
33823393
stats = {
@@ -7689,6 +7700,12 @@ skills["FrostBombPlayer"] = {
76897700
incrementalEffectiveness = 0.14000000059605,
76907701
damageIncrementalEffectiveness = 0.0065000001341105,
76917702
statDescriptionScope = "frost_bomb",
7703+
statMap = {
7704+
['skill_cold_exposure_magnitude'] = {
7705+
mod("ColdExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff" }),
7706+
mult = -1
7707+
},
7708+
},
76927709
baseFlags = {
76937710
spell = true,
76947711
area = true,

src/Data/Uniques/Special/Generated.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ data.uniques.generated = { }
99
local excludedItemKeystones = {
1010
}
1111

12-
local uniqueMods = LoadModule("Data/ModItemExlusive")
12+
local uniqueMods = LoadModule("Data/ModItemExclusive")
1313

1414
do
1515
local againstMods = { }

src/Export/Main.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,16 @@ function main:Init()
198198
return not self.curDatFile
199199
end
200200
}
201+
self.controls.clearOutput = new("ButtonControl", nil, {1190, 10, 100, 18}, "Clear", function()
202+
wipeTable(self.scriptOutput)
203+
end) {
204+
shown = function()
205+
return not self.curDatFile
206+
end,
207+
enabled = function()
208+
return #self.scriptOutput > 0
209+
end
210+
}
201211

202212
self.controls.scriptList = new("ScriptListControl", nil, {270, 35, 100, 300}) {
203213
shown = function()

src/Export/Scripts/mods.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ end)
242242
writeMods("../Data/ModJewel.lua", function(mod)
243243
return (mod.Domain == 11 and (mod.GenerationType == 1 or mod.GenerationType == 2)) or (mod.Domain == 21 and mod.GenerationType == 3)
244244
end)
245-
writeMods("../Data/ModItemExlusive.lua", function(mod) -- contains primarily uniques and items implicits but also other mods only available on a single base or unique.
245+
writeMods("../Data/ModItemExclusive.lua", function(mod) -- contains primarily uniques and items implicits but also other mods only available on a single base or unique.
246246
return (mod.Domain == 1 or mod.Domain == 2 or mod.Domain == 11 or mod.Domain == 22) and mod.GenerationType == 3
247247
and (mod.Family[1] and mod.Family[1].Id ~= "AuraBonus" or not mod.Family[1])
248248
and not mod.Id:match("^Synthesis") and not mod.Id:match("Royale") and not mod.Id:match("Cowards") and not mod.Id:match("Map") and not mod.Id:match("Ultimatum") and not mod.Id:match("SpecialCorruption")

src/Export/Scripts/uModsToText.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ local function writeMods(out, statOrder)
5757
end
5858
end
5959

60-
local uniqueMods = LoadModule("../Data/ModItemExlusive.lua")
60+
local uniqueMods = LoadModule("../Data/ModItemExclusive.lua")
6161
for _, name in ipairs(itemTypes) do
6262
local out = io.open("../Data/Uniques/"..name..".lua", "w")
6363
local statOrder = {}

0 commit comments

Comments
 (0)