From db97141232b5123cfcd99fa1e47323628b1dbf78 Mon Sep 17 00:00:00 2001 From: Blitz54 Date: Tue, 6 Jan 2026 05:24:55 -0600 Subject: [PATCH 1/6] Initial support for Transcendent Limbs --- src/Classes/ImportTab.lua | 2 +- src/Classes/Item.lua | 2 +- src/Classes/ItemDBControl.lua | 2 +- src/Classes/ItemsTab.lua | 5 +- src/Data/Bases/incursionlimb.lua | 88 ++++++++++++++++++++++++++++ src/Data/ModCorrupted.lua | 40 ++++++------- src/Data/ModIncursionLimb.lua | 17 ++++++ src/Data/Uniques/incursionlimb.lua | 6 ++ src/Export/Bases/incursionlimb.txt | 7 +++ src/Export/Classes/GGPKData.lua | 2 + src/Export/Scripts/bases.lua | 1 + src/Export/Scripts/mods.lua | 3 + src/Export/Scripts/uModsToText.lua | 1 + src/Export/Uniques/incursionlimb.lua | 6 ++ src/Modules/Data.lua | 2 + 15 files changed, 160 insertions(+), 24 deletions(-) create mode 100644 src/Data/Bases/incursionlimb.lua create mode 100644 src/Data/ModIncursionLimb.lua create mode 100644 src/Data/Uniques/incursionlimb.lua create mode 100644 src/Export/Bases/incursionlimb.txt create mode 100644 src/Export/Uniques/incursionlimb.lua diff --git a/src/Classes/ImportTab.lua b/src/Classes/ImportTab.lua index 92bbb20cd1..39f1773d7a 100644 --- a/src/Classes/ImportTab.lua +++ b/src/Classes/ImportTab.lua @@ -914,7 +914,7 @@ function ImportTabClass:ImportItemsAndSkills(charData) end local rarityMap = { [0] = "NORMAL", "MAGIC", "RARE", "UNIQUE", [9] = "RELIC", [10] = "RELIC" } -local slotMap = { ["Weapon"] = "Weapon 1", ["Offhand"] = "Weapon 2", ["Weapon2"] = "Weapon 1 Swap", ["Offhand2"] = "Weapon 2 Swap", ["Helm"] = "Helmet", ["BodyArmour"] = "Body Armour", ["Gloves"] = "Gloves", ["Boots"] = "Boots", ["Amulet"] = "Amulet", ["Ring"] = "Ring 1", ["Ring2"] = "Ring 2", ["Ring3"] = "Ring 3", ["Belt"] = "Belt" } +local slotMap = { ["Weapon"] = "Weapon 1", ["Offhand"] = "Weapon 2", ["Weapon2"] = "Weapon 1 Swap", ["Offhand2"] = "Weapon 2 Swap", ["Helm"] = "Helmet", ["BodyArmour"] = "Body Armour", ["Gloves"] = "Gloves", ["Boots"] = "Boots", ["Amulet"] = "Amulet", ["Ring"] = "Ring 1", ["Ring2"] = "Ring 2", ["Ring3"] = "Ring 3", ["Belt"] = "Belt", ["IncursionArmLeft"] = "Transcendent Arm 2", ["IncursionArmRight"] = "Transcendent Arm 1", ["IncursionLegLeft"] = "Transcendent Leg 2", ["IncursionLegRight"] = "Transcendent Leg 1" } function ImportTabClass:ImportItem(itemData, slotName) if not slotName then diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index b30967c2c0..d0e180f888 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -709,7 +709,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.affixes = (self.base.subType and data.itemMods[self.base.type..self.base.subType]) or data.itemMods[self.base.type] or data.itemMods.Item - self.corruptible = self.base.type ~= "Flask" and self.base.type ~= "Charm" and self.base.type ~= "Rune" and self.base.type ~= "SoulCore" + self.corruptible = self.base.type ~= "Flask" and self.base.type ~= "Charm" and self.base.type ~= "Rune" and self.base.type ~= "SoulCore" and self.base.type ~= "Transcendent Arm" and self.base.type ~= "Transcendent Leg" self.clusterJewel = data.clusterJewels and data.clusterJewels.jewels[self.baseName] self.requirements.str = self.base.req.str or 0 self.requirements.dex = self.base.req.dex or 0 diff --git a/src/Classes/ItemDBControl.lua b/src/Classes/ItemDBControl.lua index 9de768ef69..d1ece88689 100644 --- a/src/Classes/ItemDBControl.lua +++ b/src/Classes/ItemDBControl.lua @@ -26,7 +26,7 @@ local ItemDBClass = newClass("ItemDBControl", "ListControl", function(self, anch self.leaguesAndTypesLoaded = false self.leagueList = { "Any league", "No league" } self.typeList = { "Any type", "Armour", "Jewellery", "One Handed Melee", "Two Handed Melee" } - self.slotList = { "Any slot", "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring", "Belt", "Jewel" } + self.slotList = { "Any slot", "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring", "Belt", "Jewel", "Transcendent Arm 1", "Transcendent Arm 2", "Transcendent Leg 1", "Transcendent Leg 2", } local baseY = dbType == "RARE" and -22 or -62 self.controls.slot = new("DropDownControl", {"BOTTOMLEFT",self,"TOPLEFT"}, {0, baseY, 179, 18}, self.slotList, function(index, value) self.listBuildFlag = true diff --git a/src/Classes/ItemsTab.lua b/src/Classes/ItemsTab.lua index 22827e5b67..8a208507ed 100644 --- a/src/Classes/ItemsTab.lua +++ b/src/Classes/ItemsTab.lua @@ -27,7 +27,7 @@ local socketDropList = { { label = colorCodes.SCION.."S", color = "W" } } -local baseSlots = { "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring 1", "Ring 2", "Ring 3","Belt", "Charm 1", "Charm 2", "Charm 3", "Flask 1", "Flask 2" } +local baseSlots = { "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring 1", "Ring 2", "Ring 3","Belt", "Charm 1", "Charm 2", "Charm 3", "Flask 1", "Flask 2", "Transcendent Arm 1", "Transcendent Arm 2", "Transcendent Leg 1", "Transcendent Leg 2" } local catalystQualityFormat = { "^x7F7F7FQuality (Life Modifiers): "..colorCodes.MAGIC.."+%d%% (augmented)", @@ -2038,6 +2038,9 @@ function ItemsTabClass:CraftItem() raritySel = 1 end end + if base.base.type == "Transcendent Arm" or base.base.type == "Transcendent Leg" then + raritySel = 1 + end if raritySel == 2 or raritySel == 3 then item.crafted = true end diff --git a/src/Data/Bases/incursionlimb.lua b/src/Data/Bases/incursionlimb.lua new file mode 100644 index 0000000000..320b4f9e6f --- /dev/null +++ b/src/Data/Bases/incursionlimb.lua @@ -0,0 +1,88 @@ +-- This file is automatically generated, do not edit! +-- Item data (c) Grinding Gear Games +local itemBases = ... + +itemBases["Guarding Arm"] = { + type = "Transcendent Arm", + tags = { default = true, }, + implicit = "(8-12)% increased Block chance", + implicitModTypes = { { "block" }, }, + req = { }, +} +itemBases["Combat Arm"] = { + type = "Transcendent Arm", + tags = { default = true, }, + implicit = "(6-10)% increased Attack Speed", + implicitModTypes = { { "attack", "speed" }, }, + req = { }, +} +itemBases["Caster Arm"] = { + type = "Transcendent Arm", + tags = { default = true, }, + implicit = "(6-10)% increased Cast Speed", + implicitModTypes = { { "caster", "speed" }, }, + req = { }, +} +itemBases["Decrepifying Arm"] = { + type = "Transcendent Arm", + tags = { default = true, }, + implicit = "(12-16)% increased Curse Magnitudes", + implicitModTypes = { { "caster", "curse" }, }, + req = { }, +} +itemBases["Deflective Arm"] = { + type = "Transcendent Arm", + tags = { default = true, }, + implicit = "(6-10)% increased Deflection Rating", + implicitModTypes = { { "evasion", "defences" }, }, + req = { }, +} +itemBases["Commanding Arm"] = { + type = "Transcendent Arm", + tags = { default = true, }, + implicit = "(15-25)% increased Presence Area of Effect", + implicitModTypes = { { }, }, + req = { }, +} +itemBases["Evasive Leg"] = { + type = "Transcendent Leg", + tags = { default = true, }, + implicit = "(20-30)% increased Evasion Rating", + implicitModTypes = { { "evasion", "defences" }, }, + req = { }, +} +itemBases["Sprinters Leg"] = { + type = "Transcendent Leg", + tags = { default = true, }, + implicit = "(6-10)% increased Movement Speed while Sprinting", + implicitModTypes = { { }, }, + req = { }, +} +itemBases["Sturdy Leg"] = { + type = "Transcendent Leg", + tags = { default = true, }, + implicit = "(15-25)% increased Stun Threshold", + implicitModTypes = { { }, }, + req = { }, +} +itemBases["Surefooted Leg"] = { + type = "Transcendent Leg", + tags = { default = true, }, + implicit = "(5-10)% reduced Movement Speed Penalty from using Skills while moving", + implicitModTypes = { { "speed" }, }, + req = { }, +} +itemBases["Calm Leg"] = { + type = "Transcendent Leg", + tags = { default = true, }, + implicit = "(20-30)% increased Mana Regeneration Rate while moving", + implicitModTypes = { { "resource", "mana" }, }, + req = { }, +} +itemBases["Restorative Leg"] = { + type = "Transcendent Leg", + tags = { default = true, }, + implicit = "(6-10)% of Damage taken Recouped as Life", + implicitModTypes = { { "resource", "life" }, }, + req = { }, +} diff --git a/src/Data/ModCorrupted.lua b/src/Data/ModCorrupted.lua index 469c3c64ed..e368ee055c 100644 --- a/src/Data/ModCorrupted.lua +++ b/src/Data/ModCorrupted.lua @@ -109,24 +109,24 @@ return { ["CorruptionAlliesInPresenceIncreasedCastSpeed1"] = { type = "Corrupted", affix = "", "Allies in your Presence have (5-10)% increased Cast Speed", statOrder = { 894 }, level = 1, group = "AlliesInPresenceIncreasedCastSpeed", weightKey = { "sceptre", "default", }, weightVal = { 1, 0 }, modTags = { "caster", "speed" }, tradeHash = 289128254, }, ["CorruptionAlliesInPresenceCriticalStrikeMultiplier1"] = { type = "Corrupted", affix = "", "Allies in your Presence have (10-15)% increased Critical Damage Bonus", statOrder = { 892 }, level = 1, group = "AlliesInPresenceCriticalStrikeMultiplier", weightKey = { "sceptre", "default", }, weightVal = { 1, 0 }, modTags = { "damage", "critical" }, tradeHash = 3057012405, }, ["CorruptionChanceToPierce1"] = { type = "Corrupted", affix = "", "(20-30)% chance to Pierce an Enemy", statOrder = { 1001 }, level = 1, group = "ChanceToPierce", weightKey = { "quiver", "default", }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 2321178454, }, - ["CorruptionChainFromTerrain1"] = { type = "Corrupted", affix = "", "Projectiles have (10-20)% chance to Chain an additional time from terrain", statOrder = { 8959 }, level = 1, group = "ChainFromTerrain", weightKey = { "quiver", "default", }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 4081947835, }, - ["CorruptionJewelStrength1"] = { type = "Corrupted", affix = "", "+(4-6) to Strength", statOrder = { 943 }, level = 1, group = "Strength", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "attribute" }, tradeHash = 4080418644, }, - ["CorruptionJewelDexterity1"] = { type = "Corrupted", affix = "", "+(4-6) to Dexterity", statOrder = { 944 }, level = 1, group = "Dexterity", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "attribute" }, tradeHash = 3261801346, }, - ["CorruptionJewelIntelligence1"] = { type = "Corrupted", affix = "", "+(4-6) to Intelligence", statOrder = { 945 }, level = 1, group = "Intelligence", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "attribute" }, tradeHash = 328541901, }, - ["CorruptionJewelFireResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Fire Resistance", statOrder = { 954 }, level = 1, group = "FireResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "elemental", "fire", "resistance" }, tradeHash = 3372524247, }, - ["CorruptionJewelColdResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Cold Resistance", statOrder = { 955 }, level = 1, group = "ColdResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "elemental", "cold", "resistance" }, tradeHash = 4220027924, }, - ["CorruptionJewelLightningResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Lightning Resistance", statOrder = { 956 }, level = 1, group = "LightningResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "elemental", "lightning", "resistance" }, tradeHash = 1671376347, }, - ["CorruptionJewelChaosResist1"] = { type = "Corrupted", affix = "", "+(3-7)% to Chaos Resistance", statOrder = { 957 }, level = 1, group = "ChaosResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "chaos", "resistance" }, tradeHash = 2923486259, }, - ["CorruptionJewelMaimImmunity1"] = { type = "Corrupted", affix = "", "Immune to Maim", statOrder = { 6752 }, level = 1, group = "ImmuneToMaim", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 3429557654, }, - ["CorruptionJewelHinderImmunity1"] = { type = "Corrupted", affix = "", "You cannot be Hindered", statOrder = { 9764 }, level = 1, group = "YouCannotBeHindered", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "blue_herring" }, tradeHash = 721014846, }, - ["CorruptionJewelCorruptedBloodImmunity1"] = { type = "Corrupted", affix = "", "Corrupted Blood cannot be inflicted on you", statOrder = { 4866 }, level = 1, group = "CorruptedBloodImmunity", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "bleed", "physical", "ailment" }, tradeHash = 1658498488, }, - ["CorruptionJewelBlindImmunity1"] = { type = "Corrupted", affix = "", "Cannot be Blinded", statOrder = { 2599 }, level = 1, group = "ImmunityToBlind", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 1436284579, }, - ["SpecialCorruptionWarcrySpeed1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Warcry Speed", statOrder = { 2875 }, level = 1, group = "WarcrySpeed", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { "speed" }, tradeHash = 1316278494, }, - ["SpecialCorruptionCurseEffect1"] = { type = "SpecialCorrupted", affix = "", "(5-10)% increased Curse Magnitudes", statOrder = { 2258 }, level = 1, group = "CurseEffectiveness", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { "caster", "curse" }, tradeHash = 2353576063, }, - ["SpecialCorruptionAreaOfEffect1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Area of Effect", statOrder = { 1554 }, level = 1, group = "AreaOfEffect", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 280731498, }, - ["SpecialCorruptionPresenceRadius1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Presence Area of Effect", statOrder = { 998 }, level = 1, group = "PresenceRadius", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 101878827, }, - ["SpecialCorruptionCooldownRecovery1"] = { type = "SpecialCorrupted", affix = "", "(8-12)% increased Cooldown Recovery Rate", statOrder = { 4509 }, level = 1, group = "GlobalCooldownRecovery", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 1004011302, }, - ["SpecialCorruptionSkillEffectDuration1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Skill Effect Duration", statOrder = { 1569 }, level = 1, group = "SkillEffectDuration", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 3377888098, }, - ["SpecialCorruptionEnergyGeneration1"] = { type = "SpecialCorrupted", affix = "", "Meta Skills gain (20-30)% increased Energy", statOrder = { 5918 }, level = 1, group = "EnergyGeneration", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 4236566306, }, - ["SpecialCorruptionDamageGainedAsChaos1"] = { type = "SpecialCorrupted", affix = "", "Gain (5-8)% of Damage as Extra Chaos Damage", statOrder = { 1599 }, level = 1, group = "DamageGainedAsChaos", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { "chaos_damage", "damage", "chaos" }, tradeHash = 3398787959, }, + ["CorruptionChainFromTerrain1"] = { type = "Corrupted", affix = "", "Projectiles have (10-20)% chance to Chain an additional time from terrain", statOrder = { 8970 }, level = 1, group = "ChainFromTerrain", weightKey = { "quiver", "default", }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 4081947835, }, + ["CorruptionJewelStrength1"] = { type = "Corrupted", affix = "", "+(4-6) to Strength", statOrder = { 947 }, level = 1, group = "Strength", weightKey = { "default", }, weightVal = { 1 }, modTags = { "attribute" }, tradeHash = 4080418644, }, + ["CorruptionJewelDexterity1"] = { type = "Corrupted", affix = "", "+(4-6) to Dexterity", statOrder = { 948 }, level = 1, group = "Dexterity", weightKey = { "default", }, weightVal = { 1 }, modTags = { "attribute" }, tradeHash = 3261801346, }, + ["CorruptionJewelIntelligence1"] = { type = "Corrupted", affix = "", "+(4-6) to Intelligence", statOrder = { 949 }, level = 1, group = "Intelligence", weightKey = { "default", }, weightVal = { 1 }, modTags = { "attribute" }, tradeHash = 328541901, }, + ["CorruptionJewelFireResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Fire Resistance", statOrder = { 958 }, level = 1, group = "FireResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "elemental", "fire", "resistance" }, tradeHash = 3372524247, }, + ["CorruptionJewelColdResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Cold Resistance", statOrder = { 959 }, level = 1, group = "ColdResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "elemental", "cold", "resistance" }, tradeHash = 4220027924, }, + ["CorruptionJewelLightningResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Lightning Resistance", statOrder = { 960 }, level = 1, group = "LightningResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "elemental", "lightning", "resistance" }, tradeHash = 1671376347, }, + ["CorruptionJewelChaosResist1"] = { type = "Corrupted", affix = "", "+(3-7)% to Chaos Resistance", statOrder = { 961 }, level = 1, group = "ChaosResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "chaos", "resistance" }, tradeHash = 2923486259, }, + ["CorruptionJewelMaimImmunity1"] = { type = "Corrupted", affix = "", "Immune to Maim", statOrder = { 6850 }, level = 1, group = "ImmuneToMaim", weightKey = { "default", }, weightVal = { 1 }, modTags = { }, tradeHash = 3429557654, }, + ["CorruptionJewelHinderImmunity1"] = { type = "Corrupted", affix = "", "You cannot be Hindered", statOrder = { 9946 }, level = 1, group = "YouCannotBeHindered", weightKey = { "default", }, weightVal = { 1 }, modTags = { "blue_herring" }, tradeHash = 721014846, }, + ["CorruptionJewelCorruptedBloodImmunity1"] = { type = "Corrupted", affix = "", "Corrupted Blood cannot be inflicted on you", statOrder = { 4906 }, level = 1, group = "CorruptedBloodImmunity", weightKey = { "default", }, weightVal = { 1 }, modTags = { "bleed", "physical", "ailment" }, tradeHash = 1658498488, }, + ["CorruptionJewelBlindImmunity1"] = { type = "Corrupted", affix = "", "Cannot be Blinded", statOrder = { 2608 }, level = 1, group = "ImmunityToBlind", weightKey = { "default", }, weightVal = { 1 }, modTags = { }, tradeHash = 1436284579, }, + ["SpecialCorruptionWarcrySpeed1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Warcry Speed", statOrder = { 2884 }, level = 1, group = "WarcrySpeed", weightKey = { }, weightVal = { }, modTags = { "speed" }, tradeHash = 1316278494, }, + ["SpecialCorruptionCurseEffect1"] = { type = "SpecialCorrupted", affix = "", "(5-10)% increased Curse Magnitudes", statOrder = { 2266 }, level = 1, group = "CurseEffectiveness", weightKey = { }, weightVal = { }, modTags = { "caster", "curse" }, tradeHash = 2353576063, }, + ["SpecialCorruptionAreaOfEffect1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Area of Effect", statOrder = { 1557 }, level = 1, group = "AreaOfEffect", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 280731498, }, + ["SpecialCorruptionPresenceRadius1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Presence Area of Effect", statOrder = { 1002 }, level = 1, group = "PresenceRadius", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 101878827, }, + ["SpecialCorruptionCooldownRecovery1"] = { type = "SpecialCorrupted", affix = "", "(8-12)% increased Cooldown Recovery Rate", statOrder = { 4539 }, level = 1, group = "GlobalCooldownRecovery", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 1004011302, }, + ["SpecialCorruptionSkillEffectDuration1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Skill Effect Duration", statOrder = { 1572 }, level = 1, group = "SkillEffectDuration", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 3377888098, }, + ["SpecialCorruptionEnergyGeneration1"] = { type = "SpecialCorrupted", affix = "", "Meta Skills gain (20-30)% increased Energy", statOrder = { 5987 }, level = 1, group = "EnergyGeneration", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 4236566306, }, + ["SpecialCorruptionDamageGainedAsChaos1"] = { type = "SpecialCorrupted", affix = "", "Gain (5-8)% of Damage as Extra Chaos Damage", statOrder = { 1602 }, level = 1, group = "DamageGainedAsChaos", weightKey = { }, weightVal = { }, modTags = { "chaos_damage", "damage", "chaos" }, tradeHash = 3398787959, }, } \ No newline at end of file diff --git a/src/Data/ModIncursionLimb.lua b/src/Data/ModIncursionLimb.lua new file mode 100644 index 0000000000..3f0dbfe69c --- /dev/null +++ b/src/Data/ModIncursionLimb.lua @@ -0,0 +1,17 @@ +-- This file is automatically generated, do not edit! +-- Item data (c) Grinding Gear Games + +return { + ["IncursionLeg1"] = { affix = "", "(20-30)% increased Evasion Rating", statOrder = { 866 }, level = 0, group = "GlobalEvasionRatingPercent", weightKey = { }, weightVal = { }, modTags = { "evasion", "defences" }, tradeHash = 2106365538, }, + ["IncursionLeg2"] = { affix = "", "(6-10)% increased Movement Speed while Sprinting", statOrder = { 9465 }, level = 0, group = "MovementVelocityWhileSprinting", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 3107707789, }, + ["IncursionLeg3"] = { affix = "", "(15-25)% increased Stun Threshold", statOrder = { 2878 }, level = 0, group = "IncreasedStunThreshold", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 680068163, }, + ["IncursionLeg4"] = { affix = "", "(5-10)% reduced Movement Speed Penalty from using Skills while moving", statOrder = { 8594 }, level = 0, group = "MovementVelocityPenaltyWhilePerformingAction", weightKey = { }, weightVal = { }, modTags = { "speed" }, tradeHash = 2590797182, }, + ["IncursionLeg5"] = { affix = "", "(20-30)% increased Mana Regeneration Rate while moving", statOrder = { 7532 }, level = 0, group = "ManaRegenerationRateWhileMoving", weightKey = { }, weightVal = { }, modTags = { "resource", "mana" }, tradeHash = 1327522346, }, + ["IncursionLeg6"] = { affix = "", "(6-10)% of Damage taken Recouped as Life", statOrder = { 970 }, level = 0, group = "DamageTakenGainedAsLife", weightKey = { }, weightVal = { }, modTags = { "resource", "life" }, tradeHash = 1444556985, }, + ["IncursionArm1"] = { affix = "", "(8-12)% increased Block chance", statOrder = { 1064 }, level = 0, group = "IncreasedBlockChance", weightKey = { }, weightVal = { }, modTags = { "block" }, tradeHash = 4147897060, }, + ["IncursionArm2"] = { affix = "", "(6-10)% increased Attack Speed", statOrder = { 941 }, level = 0, group = "IncreasedAttackSpeed", weightKey = { }, weightVal = { }, modTags = { "attack", "speed" }, tradeHash = 681332047, }, + ["IncursionArm3"] = { affix = "", "(6-10)% increased Cast Speed", statOrder = { 942 }, level = 0, group = "IncreasedCastSpeed", weightKey = { }, weightVal = { }, modTags = { "caster", "speed" }, tradeHash = 2891184298, }, + ["IncursionArm4"] = { affix = "", "(12-16)% increased Curse Magnitudes", statOrder = { 2266 }, level = 0, group = "CurseEffectiveness", weightKey = { }, weightVal = { }, modTags = { "caster", "curse" }, tradeHash = 2353576063, }, + ["IncursionArm5"] = { affix = "", "(6-10)% increased Deflection Rating", statOrder = { 5721 }, level = 0, group = "GlobalDeflectionRating", weightKey = { }, weightVal = { }, modTags = { "evasion", "defences" }, tradeHash = 3040571529, }, + ["IncursionArm6"] = { affix = "", "(15-25)% increased Presence Area of Effect", statOrder = { 1002 }, level = 0, group = "PresenceRadius", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 101878827, }, +} \ No newline at end of file diff --git a/src/Data/Uniques/incursionlimb.lua b/src/Data/Uniques/incursionlimb.lua new file mode 100644 index 0000000000..9bbfb09533 --- /dev/null +++ b/src/Data/Uniques/incursionlimb.lua @@ -0,0 +1,6 @@ +-- Item data (c) Grinding Gear Games + +return { +-- Transcendent Limb + +} diff --git a/src/Export/Bases/incursionlimb.txt b/src/Export/Bases/incursionlimb.txt new file mode 100644 index 0000000000..7c051c4c70 --- /dev/null +++ b/src/Export/Bases/incursionlimb.txt @@ -0,0 +1,7 @@ +-- Item data (c) Grinding Gear Games +local itemBases = ... + +#type Transcendent Arm +#baseMatch Metadata/Items/Incursion/Arm%d+ +#type Transcendent Leg +#baseMatch Metadata/Items/Incursion/Leg%d+ \ No newline at end of file diff --git a/src/Export/Classes/GGPKData.lua b/src/Export/Classes/GGPKData.lua index ea69052c33..f32d4deae5 100644 --- a/src/Export/Classes/GGPKData.lua +++ b/src/Export/Classes/GGPKData.lua @@ -371,6 +371,8 @@ function GGPKClass:GetNeededFiles() local itFiles = { "Metadata/Items/Equipment.it", "Metadata/Items/Item.it", + "Metadata/Items/Incursion2/Arm.it", + "Metadata/Items/Incursion2/Leg.it", "Metadata/Items/Weapons/AbstractWeapon.it", "Metadata/Items/Weapons/TwoHandWeapons/AbstractTwoHandWeapon.it", "Metadata/Items/Weapons/TwoHandWeapons/TwoHandSwords/StormbladeTwoHand.it", diff --git a/src/Export/Scripts/bases.lua b/src/Export/Scripts/bases.lua index 6f65b5a101..5e82aa9518 100644 --- a/src/Export/Scripts/bases.lua +++ b/src/Export/Scripts/bases.lua @@ -469,6 +469,7 @@ local itemTypes = { "jewel", "flask", "talisman", + "incursionlimb", } for _, name in pairs(itemTypes) do processTemplateFile(name, "Bases/", "../Data/Bases/", directiveTable) diff --git a/src/Export/Scripts/mods.lua b/src/Export/Scripts/mods.lua index f0a5c1113d..57ea1673c6 100644 --- a/src/Export/Scripts/mods.lua +++ b/src/Export/Scripts/mods.lua @@ -170,6 +170,9 @@ end) writeMods("../Data/ModJewel.lua", function(mod) return (mod.Domain == 11 and (mod.GenerationType == 1 or mod.GenerationType == 2)) or (mod.Domain == 21 and mod.GenerationType == 3) end) +writeMods("../Data/ModIncursionLimb.lua", function(mod) + return (mod.Domain == 37 and mod.GenerationType == 3) +end) writeMods("../Data/ModItemExclusive.lua", function(mod) -- contains primarily uniques and items implicits but also other mods only available on a single base or unique. return (mod.Domain == 1 or mod.Domain == 2 or mod.Domain == 11 or mod.Domain == 22) and mod.GenerationType == 3 and (mod.Family[1] and mod.Family[1].Id ~= "AuraBonus" or not mod.Family[1]) diff --git a/src/Export/Scripts/uModsToText.lua b/src/Export/Scripts/uModsToText.lua index 5f0d09e6c2..82866eef2e 100644 --- a/src/Export/Scripts/uModsToText.lua +++ b/src/Export/Scripts/uModsToText.lua @@ -43,6 +43,7 @@ local itemTypes = { "jewel", "flask", "soulcore", + "incursionlimb", } local function writeMods(out, statOrder) local orders = { } diff --git a/src/Export/Uniques/incursionlimb.lua b/src/Export/Uniques/incursionlimb.lua new file mode 100644 index 0000000000..9bbfb09533 --- /dev/null +++ b/src/Export/Uniques/incursionlimb.lua @@ -0,0 +1,6 @@ +-- Item data (c) Grinding Gear Games + +return { +-- Transcendent Limb + +} diff --git a/src/Modules/Data.lua b/src/Modules/Data.lua index 0bcf7dbc60..93d1e5ae9d 100644 --- a/src/Modules/Data.lua +++ b/src/Modules/Data.lua @@ -50,6 +50,7 @@ local itemTypes = { "belt", "jewel", "flask", + "incursionlimb" } local function makeSkillMod(modName, modType, modVal, flags, keywordFlags, ...) @@ -617,6 +618,7 @@ data.itemMods = { Item = LoadModule("Data/ModItem"), Flask = LoadModule("Data/ModFlask"), Charm = LoadModule("Data/ModCharm"), + IncursionLimb = LoadModule("Data/ModIncursionLimb"), Jewel = LoadModule("Data/ModJewel"), Corruption = LoadModule("Data/ModCorrupted"), Runes = LoadModule("Data/ModRunes"), From 5d71bf0da9e3c8ec447ac322602e7f8a8ce8f893 Mon Sep 17 00:00:00 2001 From: Blitz54 Date: Tue, 6 Jan 2026 06:16:14 -0600 Subject: [PATCH 2/6] Flavour text --- src/Classes/ItemsTab.lua | 9 +++++++-- src/Data/FlavourText.lua | 8 ++++++++ src/Export/Scripts/flavourText.lua | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Classes/ItemsTab.lua b/src/Classes/ItemsTab.lua index 8a208507ed..ac5e27fd0b 100644 --- a/src/Classes/ItemsTab.lua +++ b/src/Classes/ItemsTab.lua @@ -3065,8 +3065,13 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode) end -- Show flavour text: - if item.rarity == "UNIQUE" or item.rarity == "RELIC" then - local flavourTable = flavourLookup[item.title] + if item.rarity == "UNIQUE" or item.rarity == "RELIC" or item.base.type:find("Transcendent") and main.showFlavourText then + local flavourTable + if item.base.type:find("Transcendent") then + flavourTable = flavourLookup["Transcendent Limb"] + else + flavourTable = flavourLookup[item.title] + end if flavourTable then local flavour = nil diff --git a/src/Data/FlavourText.lua b/src/Data/FlavourText.lua index 77222a2e9a..c9b4b87e0a 100644 --- a/src/Data/FlavourText.lua +++ b/src/Data/FlavourText.lua @@ -3224,4 +3224,12 @@ return { "lung. You never know what Vaal technology will cost you...\"", }, }, + [402] = { + id = "VaalLimbReplacements", + name = "Transcendent Limb", + text = { + "\"Behold! A marvel of innovation! Pay no mind the cost of flesh...\"", + "- Guatelitzi, Architect of Flesh", + }, + }, } diff --git a/src/Export/Scripts/flavourText.lua b/src/Export/Scripts/flavourText.lua index 1102c00536..fa40ee8505 100644 --- a/src/Export/Scripts/flavourText.lua +++ b/src/Export/Scripts/flavourText.lua @@ -32,6 +32,7 @@ local forcedNameMap = { ["FourUniqueSceptre6a"] = "Guiding Palm of the Heart", ["FourUniqueSceptre6b"] = "Guiding Palm of the Eye", ["FourUniqueSceptre6c"] = "Guiding Palm of the Mind", + ["VaalLimbReplacements"] = "Transcendent Limb", } for row in dat("UniqueStashLayout"):Rows() do From 5f54e1d1831677a74f27920b5f87754385fcfff0 Mon Sep 17 00:00:00 2001 From: Blitz54 Date: Fri, 9 Jan 2026 03:58:25 -0600 Subject: [PATCH 3/6] Shorten slot name and use sub type to lock to slot --- src/Classes/ImportTab.lua | 2 +- src/Classes/Item.lua | 6 ++++- src/Classes/ItemDBControl.lua | 2 +- src/Classes/ItemsTab.lua | 8 +++++-- src/Data/Bases/incursionlimb.lua | 37 ++++++++++++++++++++---------- src/Export/Bases/incursionlimb.txt | 6 +++-- 6 files changed, 42 insertions(+), 19 deletions(-) diff --git a/src/Classes/ImportTab.lua b/src/Classes/ImportTab.lua index 39f1773d7a..715638707b 100644 --- a/src/Classes/ImportTab.lua +++ b/src/Classes/ImportTab.lua @@ -914,7 +914,7 @@ function ImportTabClass:ImportItemsAndSkills(charData) end local rarityMap = { [0] = "NORMAL", "MAGIC", "RARE", "UNIQUE", [9] = "RELIC", [10] = "RELIC" } -local slotMap = { ["Weapon"] = "Weapon 1", ["Offhand"] = "Weapon 2", ["Weapon2"] = "Weapon 1 Swap", ["Offhand2"] = "Weapon 2 Swap", ["Helm"] = "Helmet", ["BodyArmour"] = "Body Armour", ["Gloves"] = "Gloves", ["Boots"] = "Boots", ["Amulet"] = "Amulet", ["Ring"] = "Ring 1", ["Ring2"] = "Ring 2", ["Ring3"] = "Ring 3", ["Belt"] = "Belt", ["IncursionArmLeft"] = "Transcendent Arm 2", ["IncursionArmRight"] = "Transcendent Arm 1", ["IncursionLegLeft"] = "Transcendent Leg 2", ["IncursionLegRight"] = "Transcendent Leg 1" } +local slotMap = { ["Weapon"] = "Weapon 1", ["Offhand"] = "Weapon 2", ["Weapon2"] = "Weapon 1 Swap", ["Offhand2"] = "Weapon 2 Swap", ["Helm"] = "Helmet", ["BodyArmour"] = "Body Armour", ["Gloves"] = "Gloves", ["Boots"] = "Boots", ["Amulet"] = "Amulet", ["Ring"] = "Ring 1", ["Ring2"] = "Ring 2", ["Ring3"] = "Ring 3", ["Belt"] = "Belt", ["IncursionArmLeft"] = "Arm 2", ["IncursionArmRight"] = "Arm 1", ["IncursionLegLeft"] = "Leg 2", ["IncursionLegRight"] = "Leg 1" } function ImportTabClass:ImportItem(itemData, slotName) if not slotName then diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index d0e180f888..fd365c00c8 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -709,7 +709,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.affixes = (self.base.subType and data.itemMods[self.base.type..self.base.subType]) or data.itemMods[self.base.type] or data.itemMods.Item - self.corruptible = self.base.type ~= "Flask" and self.base.type ~= "Charm" and self.base.type ~= "Rune" and self.base.type ~= "SoulCore" and self.base.type ~= "Transcendent Arm" and self.base.type ~= "Transcendent Leg" + self.corruptible = self.base.type ~= "Flask" and self.base.type ~= "Charm" and self.base.type ~= "Rune" and self.base.type ~= "SoulCore" and self.base.type ~= "Transcendent Limb" self.clusterJewel = data.clusterJewels and data.clusterJewels.jewels[self.baseName] self.requirements.str = self.base.req.str or 0 self.requirements.dex = self.base.req.dex or 0 @@ -1445,6 +1445,10 @@ function ItemClass:GetPrimarySlot() return "Ring 1" elseif self.type == "Flask" then return "Flask 1" + elseif self.type == "Transcendent Leg" then + return "Leg 1" + elseif self.type == "Transcendent Arm" then + return "Arm 1" else return self.type end diff --git a/src/Classes/ItemDBControl.lua b/src/Classes/ItemDBControl.lua index d1ece88689..9de768ef69 100644 --- a/src/Classes/ItemDBControl.lua +++ b/src/Classes/ItemDBControl.lua @@ -26,7 +26,7 @@ local ItemDBClass = newClass("ItemDBControl", "ListControl", function(self, anch self.leaguesAndTypesLoaded = false self.leagueList = { "Any league", "No league" } self.typeList = { "Any type", "Armour", "Jewellery", "One Handed Melee", "Two Handed Melee" } - self.slotList = { "Any slot", "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring", "Belt", "Jewel", "Transcendent Arm 1", "Transcendent Arm 2", "Transcendent Leg 1", "Transcendent Leg 2", } + self.slotList = { "Any slot", "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring", "Belt", "Jewel" } local baseY = dbType == "RARE" and -22 or -62 self.controls.slot = new("DropDownControl", {"BOTTOMLEFT",self,"TOPLEFT"}, {0, baseY, 179, 18}, self.slotList, function(index, value) self.listBuildFlag = true diff --git a/src/Classes/ItemsTab.lua b/src/Classes/ItemsTab.lua index ac5e27fd0b..b792791571 100644 --- a/src/Classes/ItemsTab.lua +++ b/src/Classes/ItemsTab.lua @@ -27,7 +27,7 @@ local socketDropList = { { label = colorCodes.SCION.."S", color = "W" } } -local baseSlots = { "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring 1", "Ring 2", "Ring 3","Belt", "Charm 1", "Charm 2", "Charm 3", "Flask 1", "Flask 2", "Transcendent Arm 1", "Transcendent Arm 2", "Transcendent Leg 1", "Transcendent Leg 2" } +local baseSlots = { "Weapon 1", "Weapon 2", "Helmet", "Body Armour", "Gloves", "Boots", "Amulet", "Ring 1", "Ring 2", "Ring 3","Belt", "Charm 1", "Charm 2", "Charm 3", "Flask 1", "Flask 2", "Arm 1", "Arm 2", "Leg 1", "Leg 2" } local catalystQualityFormat = { "^x7F7F7FQuality (Life Modifiers): "..colorCodes.MAGIC.."+%d%% (augmented)", @@ -1926,6 +1926,10 @@ function ItemsTabClass:IsItemValidForSlot(item, slotName, itemSet, flagState) elseif item.baseName:match("Mana Flask") and slotName:match("Flask 2") then return true end + elseif item.base.subType == "Transcendent Arm" and slotType == "Arm" then + return true + elseif item.base.subType == "Transcendent Leg" and slotType == "Leg" then + return true elseif item.type == slotType then return true elseif slotName == "Weapon 1" or slotName == "Weapon 1 Swap" or slotName == "Weapon" then @@ -2038,7 +2042,7 @@ function ItemsTabClass:CraftItem() raritySel = 1 end end - if base.base.type == "Transcendent Arm" or base.base.type == "Transcendent Leg" then + if base.base.type == "Transcendent Limb" then raritySel = 1 end if raritySel == 2 or raritySel == 3 then diff --git a/src/Data/Bases/incursionlimb.lua b/src/Data/Bases/incursionlimb.lua index 320b4f9e6f..eb7b76c052 100644 --- a/src/Data/Bases/incursionlimb.lua +++ b/src/Data/Bases/incursionlimb.lua @@ -2,85 +2,98 @@ -- Item data (c) Grinding Gear Games local itemBases = ... + itemBases["Guarding Arm"] = { - type = "Transcendent Arm", + type = "Transcendent Limb", + subType = "Transcendent Arm", tags = { default = true, }, implicit = "(8-12)% increased Block chance", implicitModTypes = { { "block" }, }, req = { }, } itemBases["Combat Arm"] = { - type = "Transcendent Arm", + type = "Transcendent Limb", + subType = "Transcendent Arm", tags = { default = true, }, implicit = "(6-10)% increased Attack Speed", implicitModTypes = { { "attack", "speed" }, }, req = { }, } itemBases["Caster Arm"] = { - type = "Transcendent Arm", + type = "Transcendent Limb", + subType = "Transcendent Arm", tags = { default = true, }, implicit = "(6-10)% increased Cast Speed", implicitModTypes = { { "caster", "speed" }, }, req = { }, } itemBases["Decrepifying Arm"] = { - type = "Transcendent Arm", + type = "Transcendent Limb", + subType = "Transcendent Arm", tags = { default = true, }, implicit = "(12-16)% increased Curse Magnitudes", implicitModTypes = { { "caster", "curse" }, }, req = { }, } itemBases["Deflective Arm"] = { - type = "Transcendent Arm", + type = "Transcendent Limb", + subType = "Transcendent Arm", tags = { default = true, }, implicit = "(6-10)% increased Deflection Rating", implicitModTypes = { { "evasion", "defences" }, }, req = { }, } itemBases["Commanding Arm"] = { - type = "Transcendent Arm", + type = "Transcendent Limb", + subType = "Transcendent Arm", tags = { default = true, }, implicit = "(15-25)% increased Presence Area of Effect", implicitModTypes = { { }, }, req = { }, } itemBases["Evasive Leg"] = { - type = "Transcendent Leg", + type = "Transcendent Limb", + subType = "Transcendent Leg", tags = { default = true, }, implicit = "(20-30)% increased Evasion Rating", implicitModTypes = { { "evasion", "defences" }, }, req = { }, } itemBases["Sprinters Leg"] = { - type = "Transcendent Leg", + type = "Transcendent Limb", + subType = "Transcendent Leg", tags = { default = true, }, implicit = "(6-10)% increased Movement Speed while Sprinting", implicitModTypes = { { }, }, req = { }, } itemBases["Sturdy Leg"] = { - type = "Transcendent Leg", + type = "Transcendent Limb", + subType = "Transcendent Leg", tags = { default = true, }, implicit = "(15-25)% increased Stun Threshold", implicitModTypes = { { }, }, req = { }, } itemBases["Surefooted Leg"] = { - type = "Transcendent Leg", + type = "Transcendent Limb", + subType = "Transcendent Leg", tags = { default = true, }, implicit = "(5-10)% reduced Movement Speed Penalty from using Skills while moving", implicitModTypes = { { "speed" }, }, req = { }, } itemBases["Calm Leg"] = { - type = "Transcendent Leg", + type = "Transcendent Limb", + subType = "Transcendent Leg", tags = { default = true, }, implicit = "(20-30)% increased Mana Regeneration Rate while moving", implicitModTypes = { { "resource", "mana" }, }, req = { }, } itemBases["Restorative Leg"] = { - type = "Transcendent Leg", + type = "Transcendent Limb", + subType = "Transcendent Leg", tags = { default = true, }, implicit = "(6-10)% of Damage taken Recouped as Life", implicitModTypes = { { "resource", "life" }, }, diff --git a/src/Export/Bases/incursionlimb.txt b/src/Export/Bases/incursionlimb.txt index 7c051c4c70..e6668be425 100644 --- a/src/Export/Bases/incursionlimb.txt +++ b/src/Export/Bases/incursionlimb.txt @@ -1,7 +1,9 @@ -- Item data (c) Grinding Gear Games local itemBases = ... -#type Transcendent Arm +#type Transcendent Limb + +#subType Transcendent Arm #baseMatch Metadata/Items/Incursion/Arm%d+ -#type Transcendent Leg +#subType Transcendent Leg #baseMatch Metadata/Items/Incursion/Leg%d+ \ No newline at end of file From d8bd949244dea78829bd2f4b6c0f47c4ac9fa28d Mon Sep 17 00:00:00 2001 From: Blitz54 Date: Fri, 9 Jan 2026 04:12:56 -0600 Subject: [PATCH 4/6] tiny fix for subtype --- src/Classes/Item.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index fd365c00c8..18f58c22b8 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -1445,9 +1445,9 @@ function ItemClass:GetPrimarySlot() return "Ring 1" elseif self.type == "Flask" then return "Flask 1" - elseif self.type == "Transcendent Leg" then + elseif self.base.subType == "Transcendent Leg" then return "Leg 1" - elseif self.type == "Transcendent Arm" then + elseif self.base.subType == "Transcendent Arm" then return "Arm 1" else return self.type From 1bddb5d318c7db0a668df15bdde0963707377876 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Tue, 13 Jan 2026 18:38:59 +1100 Subject: [PATCH 5/6] Revert corrupted mods part --- src/Data/ModCorrupted.lua | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Data/ModCorrupted.lua b/src/Data/ModCorrupted.lua index e368ee055c..469c3c64ed 100644 --- a/src/Data/ModCorrupted.lua +++ b/src/Data/ModCorrupted.lua @@ -109,24 +109,24 @@ return { ["CorruptionAlliesInPresenceIncreasedCastSpeed1"] = { type = "Corrupted", affix = "", "Allies in your Presence have (5-10)% increased Cast Speed", statOrder = { 894 }, level = 1, group = "AlliesInPresenceIncreasedCastSpeed", weightKey = { "sceptre", "default", }, weightVal = { 1, 0 }, modTags = { "caster", "speed" }, tradeHash = 289128254, }, ["CorruptionAlliesInPresenceCriticalStrikeMultiplier1"] = { type = "Corrupted", affix = "", "Allies in your Presence have (10-15)% increased Critical Damage Bonus", statOrder = { 892 }, level = 1, group = "AlliesInPresenceCriticalStrikeMultiplier", weightKey = { "sceptre", "default", }, weightVal = { 1, 0 }, modTags = { "damage", "critical" }, tradeHash = 3057012405, }, ["CorruptionChanceToPierce1"] = { type = "Corrupted", affix = "", "(20-30)% chance to Pierce an Enemy", statOrder = { 1001 }, level = 1, group = "ChanceToPierce", weightKey = { "quiver", "default", }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 2321178454, }, - ["CorruptionChainFromTerrain1"] = { type = "Corrupted", affix = "", "Projectiles have (10-20)% chance to Chain an additional time from terrain", statOrder = { 8970 }, level = 1, group = "ChainFromTerrain", weightKey = { "quiver", "default", }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 4081947835, }, - ["CorruptionJewelStrength1"] = { type = "Corrupted", affix = "", "+(4-6) to Strength", statOrder = { 947 }, level = 1, group = "Strength", weightKey = { "default", }, weightVal = { 1 }, modTags = { "attribute" }, tradeHash = 4080418644, }, - ["CorruptionJewelDexterity1"] = { type = "Corrupted", affix = "", "+(4-6) to Dexterity", statOrder = { 948 }, level = 1, group = "Dexterity", weightKey = { "default", }, weightVal = { 1 }, modTags = { "attribute" }, tradeHash = 3261801346, }, - ["CorruptionJewelIntelligence1"] = { type = "Corrupted", affix = "", "+(4-6) to Intelligence", statOrder = { 949 }, level = 1, group = "Intelligence", weightKey = { "default", }, weightVal = { 1 }, modTags = { "attribute" }, tradeHash = 328541901, }, - ["CorruptionJewelFireResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Fire Resistance", statOrder = { 958 }, level = 1, group = "FireResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "elemental", "fire", "resistance" }, tradeHash = 3372524247, }, - ["CorruptionJewelColdResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Cold Resistance", statOrder = { 959 }, level = 1, group = "ColdResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "elemental", "cold", "resistance" }, tradeHash = 4220027924, }, - ["CorruptionJewelLightningResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Lightning Resistance", statOrder = { 960 }, level = 1, group = "LightningResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "elemental", "lightning", "resistance" }, tradeHash = 1671376347, }, - ["CorruptionJewelChaosResist1"] = { type = "Corrupted", affix = "", "+(3-7)% to Chaos Resistance", statOrder = { 961 }, level = 1, group = "ChaosResistance", weightKey = { "default", }, weightVal = { 1 }, modTags = { "chaos", "resistance" }, tradeHash = 2923486259, }, - ["CorruptionJewelMaimImmunity1"] = { type = "Corrupted", affix = "", "Immune to Maim", statOrder = { 6850 }, level = 1, group = "ImmuneToMaim", weightKey = { "default", }, weightVal = { 1 }, modTags = { }, tradeHash = 3429557654, }, - ["CorruptionJewelHinderImmunity1"] = { type = "Corrupted", affix = "", "You cannot be Hindered", statOrder = { 9946 }, level = 1, group = "YouCannotBeHindered", weightKey = { "default", }, weightVal = { 1 }, modTags = { "blue_herring" }, tradeHash = 721014846, }, - ["CorruptionJewelCorruptedBloodImmunity1"] = { type = "Corrupted", affix = "", "Corrupted Blood cannot be inflicted on you", statOrder = { 4906 }, level = 1, group = "CorruptedBloodImmunity", weightKey = { "default", }, weightVal = { 1 }, modTags = { "bleed", "physical", "ailment" }, tradeHash = 1658498488, }, - ["CorruptionJewelBlindImmunity1"] = { type = "Corrupted", affix = "", "Cannot be Blinded", statOrder = { 2608 }, level = 1, group = "ImmunityToBlind", weightKey = { "default", }, weightVal = { 1 }, modTags = { }, tradeHash = 1436284579, }, - ["SpecialCorruptionWarcrySpeed1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Warcry Speed", statOrder = { 2884 }, level = 1, group = "WarcrySpeed", weightKey = { }, weightVal = { }, modTags = { "speed" }, tradeHash = 1316278494, }, - ["SpecialCorruptionCurseEffect1"] = { type = "SpecialCorrupted", affix = "", "(5-10)% increased Curse Magnitudes", statOrder = { 2266 }, level = 1, group = "CurseEffectiveness", weightKey = { }, weightVal = { }, modTags = { "caster", "curse" }, tradeHash = 2353576063, }, - ["SpecialCorruptionAreaOfEffect1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Area of Effect", statOrder = { 1557 }, level = 1, group = "AreaOfEffect", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 280731498, }, - ["SpecialCorruptionPresenceRadius1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Presence Area of Effect", statOrder = { 1002 }, level = 1, group = "PresenceRadius", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 101878827, }, - ["SpecialCorruptionCooldownRecovery1"] = { type = "SpecialCorrupted", affix = "", "(8-12)% increased Cooldown Recovery Rate", statOrder = { 4539 }, level = 1, group = "GlobalCooldownRecovery", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 1004011302, }, - ["SpecialCorruptionSkillEffectDuration1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Skill Effect Duration", statOrder = { 1572 }, level = 1, group = "SkillEffectDuration", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 3377888098, }, - ["SpecialCorruptionEnergyGeneration1"] = { type = "SpecialCorrupted", affix = "", "Meta Skills gain (20-30)% increased Energy", statOrder = { 5987 }, level = 1, group = "EnergyGeneration", weightKey = { }, weightVal = { }, modTags = { }, tradeHash = 4236566306, }, - ["SpecialCorruptionDamageGainedAsChaos1"] = { type = "SpecialCorrupted", affix = "", "Gain (5-8)% of Damage as Extra Chaos Damage", statOrder = { 1602 }, level = 1, group = "DamageGainedAsChaos", weightKey = { }, weightVal = { }, modTags = { "chaos_damage", "damage", "chaos" }, tradeHash = 3398787959, }, + ["CorruptionChainFromTerrain1"] = { type = "Corrupted", affix = "", "Projectiles have (10-20)% chance to Chain an additional time from terrain", statOrder = { 8959 }, level = 1, group = "ChainFromTerrain", weightKey = { "quiver", "default", }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 4081947835, }, + ["CorruptionJewelStrength1"] = { type = "Corrupted", affix = "", "+(4-6) to Strength", statOrder = { 943 }, level = 1, group = "Strength", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "attribute" }, tradeHash = 4080418644, }, + ["CorruptionJewelDexterity1"] = { type = "Corrupted", affix = "", "+(4-6) to Dexterity", statOrder = { 944 }, level = 1, group = "Dexterity", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "attribute" }, tradeHash = 3261801346, }, + ["CorruptionJewelIntelligence1"] = { type = "Corrupted", affix = "", "+(4-6) to Intelligence", statOrder = { 945 }, level = 1, group = "Intelligence", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "attribute" }, tradeHash = 328541901, }, + ["CorruptionJewelFireResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Fire Resistance", statOrder = { 954 }, level = 1, group = "FireResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "elemental", "fire", "resistance" }, tradeHash = 3372524247, }, + ["CorruptionJewelColdResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Cold Resistance", statOrder = { 955 }, level = 1, group = "ColdResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "elemental", "cold", "resistance" }, tradeHash = 4220027924, }, + ["CorruptionJewelLightningResist1"] = { type = "Corrupted", affix = "", "+(5-10)% to Lightning Resistance", statOrder = { 956 }, level = 1, group = "LightningResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "elemental", "lightning", "resistance" }, tradeHash = 1671376347, }, + ["CorruptionJewelChaosResist1"] = { type = "Corrupted", affix = "", "+(3-7)% to Chaos Resistance", statOrder = { 957 }, level = 1, group = "ChaosResistance", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "chaos", "resistance" }, tradeHash = 2923486259, }, + ["CorruptionJewelMaimImmunity1"] = { type = "Corrupted", affix = "", "Immune to Maim", statOrder = { 6752 }, level = 1, group = "ImmuneToMaim", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 3429557654, }, + ["CorruptionJewelHinderImmunity1"] = { type = "Corrupted", affix = "", "You cannot be Hindered", statOrder = { 9764 }, level = 1, group = "YouCannotBeHindered", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "blue_herring" }, tradeHash = 721014846, }, + ["CorruptionJewelCorruptedBloodImmunity1"] = { type = "Corrupted", affix = "", "Corrupted Blood cannot be inflicted on you", statOrder = { 4866 }, level = 1, group = "CorruptedBloodImmunity", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { "bleed", "physical", "ailment" }, tradeHash = 1658498488, }, + ["CorruptionJewelBlindImmunity1"] = { type = "Corrupted", affix = "", "Cannot be Blinded", statOrder = { 2599 }, level = 1, group = "ImmunityToBlind", weightKey = { "jewel", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 1436284579, }, + ["SpecialCorruptionWarcrySpeed1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Warcry Speed", statOrder = { 2875 }, level = 1, group = "WarcrySpeed", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { "speed" }, tradeHash = 1316278494, }, + ["SpecialCorruptionCurseEffect1"] = { type = "SpecialCorrupted", affix = "", "(5-10)% increased Curse Magnitudes", statOrder = { 2258 }, level = 1, group = "CurseEffectiveness", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { "caster", "curse" }, tradeHash = 2353576063, }, + ["SpecialCorruptionAreaOfEffect1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Area of Effect", statOrder = { 1554 }, level = 1, group = "AreaOfEffect", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 280731498, }, + ["SpecialCorruptionPresenceRadius1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Presence Area of Effect", statOrder = { 998 }, level = 1, group = "PresenceRadius", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 101878827, }, + ["SpecialCorruptionCooldownRecovery1"] = { type = "SpecialCorrupted", affix = "", "(8-12)% increased Cooldown Recovery Rate", statOrder = { 4509 }, level = 1, group = "GlobalCooldownRecovery", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 1004011302, }, + ["SpecialCorruptionSkillEffectDuration1"] = { type = "SpecialCorrupted", affix = "", "(15-25)% increased Skill Effect Duration", statOrder = { 1569 }, level = 1, group = "SkillEffectDuration", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 3377888098, }, + ["SpecialCorruptionEnergyGeneration1"] = { type = "SpecialCorrupted", affix = "", "Meta Skills gain (20-30)% increased Energy", statOrder = { 5918 }, level = 1, group = "EnergyGeneration", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { }, tradeHash = 4236566306, }, + ["SpecialCorruptionDamageGainedAsChaos1"] = { type = "SpecialCorrupted", affix = "", "Gain (5-8)% of Damage as Extra Chaos Damage", statOrder = { 1599 }, level = 1, group = "DamageGainedAsChaos", weightKey = { "helmet", "default" }, weightVal = { 1, 0 }, modTags = { "chaos_damage", "damage", "chaos" }, tradeHash = 3398787959, }, } \ No newline at end of file From 886c5e09d5994c16f238451716581e6149f101f4 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Tue, 13 Jan 2026 18:42:13 +1100 Subject: [PATCH 6/6] More explicit check --- src/Classes/ItemsTab.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Classes/ItemsTab.lua b/src/Classes/ItemsTab.lua index 7a5eab01bf..57cbe8013c 100644 --- a/src/Classes/ItemsTab.lua +++ b/src/Classes/ItemsTab.lua @@ -3071,9 +3071,9 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode) end -- Show flavour text: - if item.rarity == "UNIQUE" or item.rarity == "RELIC" or item.base.type:find("Transcendent") and main.showFlavourText then + if item.rarity == "UNIQUE" or item.rarity == "RELIC" or item.base.type =="Transcendent Limb" and main.showFlavourText then local flavourTable - if item.base.type:find("Transcendent") then + if item.base.type =="Transcendent Limb" then flavourTable = flavourLookup["Transcendent Limb"] else flavourTable = flavourLookup[item.title]