Release 1.2.27

- Add cast time override to CwC
- Add Intimidate debuff
- Fix hiding of jewel tooltips with shift
- Fixed display error in Bleed breakdown
- Changed functionality of simple conversion jewels to allow conversion of tagged/flagged nodes
- Enhanced mod parser to allow correct parsing of certain modifiers
This commit is contained in:
Openarl
2016-12-21 23:57:14 +10:00
parent 98bfca9e23
commit af799bb700
12 changed files with 81 additions and 35 deletions

View File

@@ -112,6 +112,9 @@ local varList = {
{ var = "conditionEnemyShocked", type = "check", label = "Is the enemy Shocked?", tooltip = "In addition to allowing any 'against Shocked Enemies' modifiers to apply,\nthis will apply Shock's Damage Taken modifier to the enemy.", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "EnemyShocked" }, "Config", { type = "Condition", var = "Effective" })
end },
{ var = "conditionEnemyIntimidated", type = "check", label = "Is the enemy Intimidated?", tooltip = "This adds the following modifiers:\n10% increased Damage Taken by enemy", apply = function(val, modList, enemyModList)
enemyModList:NewMod("DamageTaken", "INC", 10, "Intimidate")
end },
{ var = "conditionEnemyCoveredInAsh", type = "check", label = "Is the enemy covered in Ash?", tooltip = "This adds the following modifiers:\n20% less enemy Movement Speed\n20% increased Fire Damage Taken by enemy", apply = function(val, modList, enemyModList)
enemyModList:NewMod("FireDamageTaken", "INC", 20, "Ash")
end },

View File

@@ -425,7 +425,7 @@ function PassiveTreeViewClass:Draw(build, viewPort, inputEvents)
DrawImage(self.highlightRing, scrX - size, scrY - size, size * 2, size * 2)
SetDrawLayer(nil, 0)
end
if node == hoverNode and (node.type ~= "socket" or not IsKeyDown("SHIFT") or self.traceMode) then
if node == hoverNode and (node.type ~= "socket" or not IsKeyDown("SHIFT")) then
-- Draw tooltip
SetDrawLayer(nil, 10)
local size = m_floor(hoverNode.size * scale)
@@ -527,10 +527,11 @@ function PassiveTreeViewClass:AddNodeTooltip(node, build)
else
main:AddTooltipLine(24, "^7"..node.dn..(launch.devMode and IsKeyDown("ALT") and " ["..node.id.."]" or ""))
end
main:AddTooltipSeparator(14)
if socket:IsEnabled() then
main:AddTooltipSeparator(14)
main:AddTooltipLine(14, "^x80A080Tip: Right click this socket to go to the items page and choose the jewel for this socket.")
end
main:AddTooltipLine(14, "^x80A080Tip: Hold Shift to hide this tooltip.")
return
end
@@ -604,8 +605,8 @@ function PassiveTreeViewClass:AddNodeTooltip(node, build)
end
-- Pathing distance
main:AddTooltipSeparator(14)
if node.path and #node.path > 0 then
main:AddTooltipSeparator(14)
if self.traceMode and isValueInArray(self.tracePath, node) then
main:AddTooltipLine(14, "^7"..#self.tracePath .. " nodes in trace path")
else
@@ -617,6 +618,9 @@ function PassiveTreeViewClass:AddNodeTooltip(node, build)
end
end
end
if node.type == "socket" then
main:AddTooltipLine(14, "^x80A080Tip: Hold Shift to hide this tooltip.")
end
if node.depends and #node.depends > 1 then
main:AddTooltipSeparator(14)
main:AddTooltipLine(14, "^7"..#node.depends .. " points gained from unallocating these nodes")

View File

@@ -579,6 +579,7 @@ You can only Socket Corrupted Gems in this item
{variant:19}Unwavering Stance
{variant:20}Vaal Pact
{variant:21}Zealot's Oath
Corrupted
]],[[
The Red Dream
Crimson Jewel

View File

@@ -2155,7 +2155,7 @@ local function performCalcs(env)
if output.CritEffect ~= 1 then
t_insert(breakdown.BleedDPS, s_format("x %.3f ^8(crit effect modifier)", output.CritEffect))
end
t_insert(breakdown.BleedDPS, "x 0.2 ^8(bleed deals 20% per second)")
t_insert(breakdown.BleedDPS, "x 0.1 ^8(bleed deals 10% per second)")
t_insert(breakdown.BleedDPS, s_format("= %.1f", baseVal, 1))
t_insert(breakdown.BleedDPS, "Bleed DPS:")
dotBreakdown(breakdown.BleedDPS, baseVal, inc, more, effMult, output.BleedDPS)
@@ -2572,7 +2572,7 @@ function calcs.buildOutput(build, mode)
output.CombatList = table.concat(combatList, ", ")
output.CurseList = table.concat(curseList, ", ")
infoDump(env)
--infoDump(env)
end
return env

View File

@@ -15,7 +15,7 @@ local s_format = string.format
common = { }
-- External libraries
common.curl = require("lcurl")
common.curl = require("lcurl.safe")
common.xml = require("xml")
common.base64 = require("base64")

View File

@@ -356,6 +356,8 @@ function itemLib.buildItemModListForSlotNum(item, baseList, slotNum)
end
elseif tag.type == "SocketedIn" then
tag.slotName = slotName
elseif tag.type == "Condition" and tag.var == "XHandAttack" then
tag.var = (slotNum == 1) and "MainHandAttack" or "OffHandAttack"
end
end
if add then

View File

@@ -20,7 +20,7 @@ local formList = {
["^([%+%-][%d%.]+)%%?"] = "BASE",
["^([%+%-][%d%.]+)%%? to"] = "BASE",
["^([%+%-][%d%.]+)%%? base"] = "BASE",
["^([%+%-]?[%d%.]+)%% additional"] = "BASE",
["^([%+%-]?[%d%.]+)%%? additional"] = "BASE",
["^you gain ([%d%.]+)"] = "BASE",
["^([%+%-]?%d+)%% chance"] = "CHANCE",
["^([%+%-]?%d+)%% additional chance"] = "CHANCE",
@@ -145,6 +145,8 @@ local modNameList = {
["energy shield gained for each enemy hit by your attacks"] = { "EnergyShieldOnHit", flags = ModFlag.Attack },
["life and mana gained for each enemy hit"] = { "LifeOnHit", "ManaOnHit", flags = ModFlag.Attack },
-- Projectile modifiers
["projectile"] = "ProjectileCount",
["projectiles"] = "ProjectileCount",
["pierce chance"] = "PierceChance",
["of projectiles piercing"] = "PierceChance",
["of arrows piercing"] = { "PierceChance", flags = ModFlag.Bow },
@@ -187,6 +189,8 @@ local modNameList = {
["physical weapon damage"] = { "PhysicalDamage", flags = ModFlag.Weapon },
["physical melee damage"] = { "PhysicalDamage", flags = ModFlag.Melee },
["melee physical damage"] = { "PhysicalDamage", flags = ModFlag.Melee },
["projectile damage"] = { "Damage", flags = ModFlag.Projectile },
["projectile attack damage"] = { "Damage", flags = bor(ModFlag.Projectile, ModFlag.Attack) },
["bow damage"] = { "Damage", flags = ModFlag.Bow },
["wand damage"] = { "Damage", flags = ModFlag.Wand },
["wand physical damage"] = { "PhysicalDamage", flags = ModFlag.Wand },
@@ -194,7 +198,6 @@ local modNameList = {
["damage over time"] = { "Damage", flags = ModFlag.Dot },
["physical damage over time"] = { "PhysicalDamage", flags = ModFlag.Dot },
["burning damage"] = { "FireDamage", flags = ModFlag.Dot },
["righteous fire damage"] = { "Damage", tag = { type = "SkillName", skillName = "Righteous Fire" } }, -- Parser mis-interprets this one (Righteous/Fire Damage instead of Righteous Fire/Damage)
-- Crit/accuracy/speed modifiers
["critical strike chance"] = "CritChance",
["critical strike multiplier"] = "CritMultiplier",
@@ -257,7 +260,6 @@ local modFlagList = {
["with melee attacks"] = { flags = ModFlag.Melee },
["on melee hit"] = { flags = ModFlag.Melee },
["with poison"] = { keywordFlags = KeywordFlag.Poison },
["projectile"] = { flags = ModFlag.Projectile },
["area"] = { flags = ModFlag.Area },
["mine"] = { keywordFlags = KeywordFlag.Mine },
["with mines"] = { keywordFlags = KeywordFlag.Mine },
@@ -290,6 +292,8 @@ local preFlagList = {
["^minions deal "] = { keywordFlags = KeywordFlag.Minion },
["^attacks used by totems have "] = { keywordFlags = KeywordFlag.Totem },
["^spells cast by totems have "] = { keywordFlags = KeywordFlag.Totem },
["^attacks with this weapon "] = { tag = { type = "Condition", var = "XHandAttack" } },
["^attacks with this weapon have "] = { tag = { type = "Condition", var = "XHandAttack" } },
["^attacks have "] = { flags = ModFlag.Attack },
["^melee attacks have "] = { flags = ModFlag.Melee },
["^left ring slot: "] = { tag = { type = "SlotNumber", num = 1 } },
@@ -343,6 +347,7 @@ local modTagList = {
["if all worn items are corrupted"] = { tag = { type = "Condition", var = "UsingAllCorruptedItems" } },
["with main hand"] = { tag = { type = "Condition", var = "MainHandAttack" } },
["with off hand"] = { tag = { type = "Condition", var = "OffHandAttack" } },
["with this weapon"] = { tag = { type = "Condition", var = "XHandAttack" } }, -- The X is replaced when the item modifiers are generated
-- Player status conditions
["when on low life"] = { tag = { type = "Condition", var = "LowLife" } },
["while on low life"] = { tag = { type = "Condition", var = "LowLife" } },
@@ -558,7 +563,8 @@ local specialModList = {
["critical strike chance is increased by uncapped lightning resistance"] = { mod("CritChance", "INC", 1, { type = "PerStat", stat = "LightningResistTotal", div = 1 }) },
["critical strikes deal no damage"] = { flag("NoCritDamage") },
["enemies chilled by you take (%d+)%% increased burning damage"] = function(num) return { mod("Misc", "LIST", { type = "EnemyModifier", mod = mod("BurningDamageTaken", "INC", num) }, { type = "Condition", var = "EnemyChilled" }) } end,
["attacks with this weapon penetrate (%d+)%% elemental resistances"] = function(num) return { mod("ElementalPenetration", "BASE", num, nil, ModFlag.Weapon) } end,
["attacks with this weapon penetrate (%d+)%% elemental resistances"] = function(num) return { mod("ElementalPenetration", "BASE", num, { type = "Condition", var = "XHandAttack" }) } end,
["attacks with this weapon deal double damage to chilled enemies"] = { mod("Damage", "MORE", 100, nil, ModFlag.Hit, { type = "Condition", var = "XHandAttack" }, { type = "Condition", var = "EnemyChilled" }) },
["(%d+)%% of maximum life converted to energy shield"] = function(num) return { mod("LifeConvertToEnergyShield", "BASE", num) } end,
}
local keystoneList = {
@@ -641,10 +647,11 @@ end
local function getSimpleConv(src, dst, type, factor)
return function(nodeMods, out, data)
if nodeMods then
local nodeVal = nodeMods:Sum(type, nil, src)
if nodeVal ~= 0 then
out:NewMod(src, type, -nodeVal, "Tree:Jewel")
out:NewMod(dst, type, nodeVal * factor, "Tree:Jewel")
for _, mod in ipairs(nodeMods) do
if mod.name == src and mod.type == type then
out:NewMod(src, type, -mod.value, "Tree:Jewel", mod.flags, mod.keywordFlags, unpack(mod.tagList))
out:NewMod(dst, type, mod.value * factor, "Tree:Jewel", mod.flags, mod.keywordFlags, unpack(mod.tagList))
end
end
end
end
@@ -762,7 +769,7 @@ local function scan(line, patternList, plain)
return bestMatch[1], bestMatch[2], bestMatch[3]
end
local function parseMod(line)
local function parseMod(line, order)
-- Check if this is a special modifier
local specialMod, specialLine, cap = scan(line, specialModList)
if specialMod and #specialLine == 0 then
@@ -803,14 +810,16 @@ local function parseMod(line)
end
end
-- Scan for modifier name
local modName
modName, line = scan(line, modNameList, true)
-- Scan for skill name
local skillTag
-- Scan for modifier name and skill name
local modName, skillTag
if order == 1 then
modName, line = scan(line, modNameList, true)
end
skillTag, line = scan(line, skillNameList, true)
if order == 2 then
modName, line = scan(line, modNameList, true)
end
-- Scan for flags if one hasn't been found already
if not modFlag then
modFlag, line = scan(line, modFlagList, true)
@@ -917,7 +926,11 @@ local unsupported = { }
local count = 0
return function(line)
if not cache[line] then
cache[line] = { parseMod(line) }
local modList, extra = parseMod(line, 1)
if modList and extra then
modList, extra = parseMod(line, 2)
end
cache[line] = { modList, extra }
--[[if not cache[line][1] then
local form = line:gsub("[%+%-]?%d+%.?%d*","{num}")
if not unsupported[form] then

View File

@@ -48,6 +48,18 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
![ss3](https://cloud.githubusercontent.com/assets/19189971/18089780/f0ff234a-6f04-11e6-8c88-6193fe59a5c4.png)
## Changelog
### 1.2.27 - 2016/12/21
* Cast when Channelling now overrides the cast rate of the triggered skill, allowing the DPS of that skill
to be calculated correctly
* Added an option to the Configuration tab to enable the Intimidate debuff on the enemy
* Jewel tooltips on the passive tree can now be hidden by holding Shift
* Corrected a display issue in the breakdown for Bleed that showed the wrong percentage of base damage
* Energised Armour now correctly converts the ES-from-Shield node in the Mind Barrier cluster
* Many skill-specific modifiers (such as helmet enchants) that weren't previously recognised should now be working
* New installer versions are available, and are recommended if you need to install the program again
* The new standalone install no longer forces an update check when run for the first time, and will never ask for
administrator privileges to update itself (as currently happens when certain files need to be updated)
### 1.2.26 - 2016/12/14
* The sidebar now displays a DPS or Average Hit total that factors in Poison
* Added support for the Bone Nova skill granted by Uul-Netol's Embrace

View File

@@ -1,3 +1,14 @@
VERSION[1.2.27][2016/12/21]
* Cast when Channelling now overrides the cast rate of the triggered skill, allowing the DPS of that skill
to be calculated correctly
* Added an option to the Configuration tab to enable the Intimidate debuff on the enemy
* Jewel tooltips on the passive tree can now be hidden by holding Shift
* Corrected a display issue in the breakdown for Bleed that showed the wrong percentage of base damage
* Energised Armour now correctly converts the ES-from-Shield node in the Mind Barrier cluster
* Many skill-specific modifiers (such as helmet enchants) that weren't previously recognised should now be working
* New installer versions are available, and are recommended if you need to install the program again
* The new standalone install no longer forces an update check when run for the first time, and will never ask for
administrator privileges to update itself (as currently happens when certain files need to be updated)
VERSION[1.2.26][2016/12/14]
* The sidebar now displays a DPS or Average Hit total that factors in Poison
* Added support for the Bone Nova skill granted by Uul-Netol's Embrace

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<PoBVersion>
<Version number="1.2.26"/>
<Version number="1.2.27"/>
<Source part="program" url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/"/>
<Source part="tree" url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/tree.zip"/>
<Source url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/runtime-win32.zip" part="runtime" platform="win32"/>
<File sha1="46a39bc720b0339359fe598ea2828a9a43ecbcea" name="Launch.lua" part="program"/>
<File sha1="d8e42beeb38baabcc197d658e4c0af33419eeff3" name="UpdateCheck.lua" part="program"/>
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
<File sha1="5f305c4ef988faa6a298d63e8fea7ded3429f400" name="changelog.txt" part="program"/>
<File sha1="102a0652df57d352f9a493a84a3438d4f024bb11" name="changelog.txt" part="program"/>
<File sha1="231a4fe264d84294427edacbf3e29ec4b301712e" name="Classes/BuildListControl.lua" part="program"/>
<File sha1="47c28993f5653955c9e76714775d87ac22b077da" name="Classes/ButtonControl.lua" part="program"/>
<File sha1="5a4b4930533a97f4d87231a6024b7f48ff0bad89" name="Classes/CalcBreakdownControl.lua" part="program"/>
<File sha1="23171916fa590c5344b17e67bd8d378574922388" name="Classes/CalcSectionControl.lua" part="program"/>
<File sha1="0256fbb994946900a82b45ec4108a94643bd0c91" name="Classes/CalcsTab.lua" part="program"/>
<File sha1="5d30e33c23cabf22917c02eb7df1963a5a27cb6a" name="Classes/CheckBoxControl.lua" part="program"/>
<File sha1="9513e7419c7f84ca372e3c3b441c135982e7f4a0" name="Classes/ConfigTab.lua" part="program"/>
<File sha1="680b3f1a2a08478e2af2702e4e8399c5d907764e" name="Classes/ConfigTab.lua" part="program"/>
<File sha1="bbb08f183746d6ec023e2bd08fb7a89d365381da" name="Classes/Control.lua" part="program"/>
<File sha1="ae55fe1093e727872bc01cc94fa987395f944313" name="Classes/ControlHost.lua" part="program"/>
<File sha1="3e1ac525cb454844527ee3c586ed21b9e2b0446b" name="Classes/DropDownControl.lua" part="program"/>
@@ -31,7 +31,7 @@
<File sha1="9bc0d8791e7825e52070e96e7894d29fad70cf98" name="Classes/NotesTab.lua" part="program"/>
<File sha1="013f8761ad15f6e500b1d05ae868b61551bb8937" name="Classes/PassiveSpec.lua" part="program"/>
<File sha1="9a6bce38a62d9c07851cdd095e91f088e37cea4e" name="Classes/PassiveTree.lua" part="program"/>
<File sha1="19de46da15b5e4efb1064e283f8740aee59b876e" name="Classes/PassiveTreeView.lua" part="program"/>
<File sha1="da9d500ba296d6a58d1ab9cafb54a7b0288ac593" name="Classes/PassiveTreeView.lua" part="program"/>
<File sha1="fd75c7a6a55b13163ac4068bbef9cb49a898eb24" name="Classes/PopupDialog.lua" part="program"/>
<File sha1="86fee3127d9520144fc741f6fccc3c1d9f1aa532" name="Classes/ScrollBarControl.lua" part="program"/>
<File sha1="261dcf54a4542e6160fd7024d8edf4fc095d9c71" name="Classes/SectionControl.lua" part="program"/>
@@ -44,17 +44,17 @@
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
<File sha1="691acfe73dfa05be2c49adc42321cf770fd1f6a2" name="Modules/Build.lua" part="program"/>
<File sha1="8a07fe01c53b785ebb6256236e781fbaabd36c0e" name="Modules/BuildList.lua" part="program"/>
<File sha1="3cc5ef2fd0001443bbec2d3614c868a2f9e0babc" name="Modules/Calcs.lua" part="program"/>
<File sha1="d725f7834a28b23d85c632b4b0dab602240d1ae7" name="Modules/Calcs.lua" part="program"/>
<File sha1="602c7ba4d1792162a43d2f64160ca7d7d624194f" name="Modules/CalcSections.lua" part="program"/>
<File sha1="f207df4010cb3c7bc6cce98be2529a3b8a708b8f" name="Modules/Common.lua" part="program"/>
<File sha1="0f9df7b91a548b008693102854b108693205309c" name="Modules/Common.lua" part="program"/>
<File sha1="2b393e960721c36dc4c99645a507d7232cbd6f0e" name="Modules/Data.lua" part="program"/>
<File sha1="f9da7f619a30c41c69a54a341f37d0499e7fd767" name="Modules/ItemTools.lua" part="program"/>
<File sha1="96b7b7c46896daee375be295cd27e4bb9f213203" name="Modules/ItemTools.lua" part="program"/>
<File sha1="6165a0baf0c7d1cb6adf9bef68bfa9d9d3ad67ec" name="Modules/Main.lua" part="program"/>
<File sha1="be5fdf2809274483ba8ec0962e20f4a4171ce733" name="Modules/ModParser.lua" part="program"/>
<File sha1="db69c47d41e38b6c6f4d01a354bf0cb3af84952c" name="Modules/ModParser.lua" part="program"/>
<File sha1="5f93a9d8f58e0d5990a1f84e1ab1d53fbd35fb56" name="Modules/ModTools.lua" part="program"/>
<File sha1="e7ee7e5b6388facb7bf568517ecc401590757df7" name="Assets/ring.png" part="program"/>
<File sha1="9a320bfe629b1cf3f14fc77fbbf2508d0a5b2841" name="Assets/small_ring.png" part="program"/>
<File sha1="31f81f103a7e8735ffdd104b386eddcd42be24a6" name="Data/New.lua" part="program"/>
<File sha1="24596d013ecc9170990670c4e02f1b38c326db9e" name="Data/New.lua" part="program"/>
<File sha1="dc2595dd73bab52832752e096398e51c10c48cfe" name="Data/Rares.lua" part="program"/>
<File sha1="fdb03ca4905c93b22b4954ec92fe1933d4733816" name="Data/Gems/act_dex.lua" part="program"/>
<File sha1="70e0589dc2370e5431c041e6e35e8c94558d3983" name="Data/Gems/act_int.lua" part="program"/>
@@ -99,9 +99,9 @@
<File sha1="5fa6696ce2be10a120bbfdcc290d0821a3b80176" name="Data/Uniques/staff.lua" part="program"/>
<File sha1="299479094ef80df2fcc1e3232ef56685349b26bf" name="Data/Uniques/sword.lua" part="program"/>
<File sha1="3054ba5a1cdc0720a39e4f69496564b9ad9b9dc8" name="Data/Uniques/wand.lua" part="program"/>
<File platform="win32" sha1="e8581e70cefa0b68583be298483418c004c8152f" name="Path of Building.exe" part="runtime"/>
<File platform="win32" sha1="02b465f6b896e907d48afad0d56828b1da9ddc59" name="Path of Building.exe" part="runtime"/>
<File platform="win32" sha1="914d42ca1836c5152a5f60aad23020a86bcb46d9" name="lua51.dll" part="runtime"/>
<File platform="win32" sha1="f75df13b566a057de386b3f30d306f09e4061c9f" name="SimpleGraphic.dll" part="runtime"/>
<File platform="win32" sha1="8e66ef8369c020ed540a567f46621b4c328a1e05" name="SimpleGraphic.dll" part="runtime"/>
<File platform="win32" sha1="9ccb34c5cbf6a74c05ddc9ead1b36d32cc5b7979" name="libcurl.dll" part="runtime"/>
<File platform="win32" sha1="87566683fe12d693cf012b03f11b0af511853d6b" name="lcurl.dll" part="runtime"/>
<File platform="win32" sha1="61d5ddef00d18ecddbd1d6d77caf80d0aac73110" name="lzip.dll" part="runtime"/>
@@ -138,7 +138,7 @@
<File sha1="18629865eb351e483178b6524fb3935cbc9b8297" name="lua/base64.lua" part="runtime"/>
<File sha1="31e325cd40a9c0234c6265689cf70b97ef676f20" name="lua/sha1.lua" part="runtime"/>
<File sha1="859e09104842f91a4aaa9a4d9fadf667535877e2" name="lua/xml.lua" part="runtime"/>
<File sha1="feef361b91d67d93f8090ff605e3c5eddc1bfe24" name="TreeData/tree.lua" part="tree"/>
<File sha1="e18641029e7b4cf8c6d2fce3301b93ffe9c13685" name="TreeData/tree.lua" part="tree"/>
<File sha1="a29d12d7710c3cb8f81a6ae431302e59fe44b510" name="TreeData/skill_sprite-3-6340617adde92c3d2a6d908b53092cb4.jpg" part="tree"/>
<File sha1="457d940b537d7207cb386c78a40c444893b5a5ce" name="TreeData/skill_sprite-active-3-18ba11635a6d283635c2fbdbfd30e7f6.jpg" part="tree"/>
<File sha1="0ba429a9704c51b3cbc5bff88a105dadaf72fa76" name="TreeData/skill_sprite-active-3-bcd39673e9d14074c3fc75a13f66d6e6.png" part="tree"/>

Binary file not shown.

BIN
tree.zip

Binary file not shown.