Release 1.4.7
- Added map mod/self curse section to Configuration tab - Added support for Self-Flagellation
This commit is contained in:
@@ -38,7 +38,97 @@ local varList = {
|
||||
{ var = "summonLightningGolemEnableWrath", type = "check", label = "Enable Wrath Aura:", ifSkill = "Summon Lightning Golem", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("SkillData", "LIST", { key = "enable", value = true }, "Config", { type = "SkillId", skillId = "LightningGolemWrath" })
|
||||
end },
|
||||
--[[ { section = "Map Modifiers and Player Debuffs", col = 2 },
|
||||
{ section = "Map Modifiers and Player Debuffs", col = 2 },
|
||||
{ label = "Map Prefix Modifiers:" },
|
||||
{ var = "enemyHasPhysicalReduction", type = "list", label = "Enemy Physical Damage reduction:", tooltip = "'Armoured'", list = {{val=0,label="None"},{val=20,label="20% (Low tier)"},{val=30,label="30% (Mid tier)"},{val=40,label="40% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("PhysicalDamageReduction", "INC", val, "Config")
|
||||
end },
|
||||
{ var = "enemyIsHexproof", type = "check", label = "Enemy is Hexproof?", tooltip = "'Hexproof'", apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("Hexproof", "FLAG", true, "Config")
|
||||
end },
|
||||
{ var = "enemyHasLessCurseEffectOnSelf", type = "list", label = "Less effect of Curses on Enemy:", tooltip = "'Hexwarded'", list = {{val=0,label="None"},{val=25,label="25% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=60,label="60% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
enemyModList:NewMod("CurseEffectOnSelf", "MORE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "enemyCanAvoidPoisonBlindBleed", type = "list", label = "Enemy avoid Poison/Blind/Bleed:", tooltip = "'Impervious'", list = {{val=0,label="None"},{val=25,label="25% (Low tier)"},{val=45,label="45% (Mid tier)"},{val=65,label="65% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
enemyModList:NewMod("AvoidPoison", "BASE", val, "Config")
|
||||
enemyModList:NewMod("AvoidBleed", "BASE", val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "enemyHasResistances", type = "list", label = "Enemy has Elemental/Chaos Resist:", tooltip = "'Resistant'", list = {{val=0,label="None"},{val="LOW",label="20%/15% (Low tier)"},{val="MID",label="30%/20% (Mid tier)"},{val="HIGH",label="40%/25% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
local map = { ["LOW"] = {20,15}, ["MID"] = {30,20}, ["HIGH"] = {40,25} }
|
||||
if map[val] then
|
||||
enemyModList:NewMod("ElementalResist", "BASE", map[val][1], "Config")
|
||||
enemyModList:NewMod("ChaosResist", "BASE", map[val][2], "Config")
|
||||
end
|
||||
end },
|
||||
{ label = "Map Suffix Modifiers:" },
|
||||
{ var = "playerHasElementalEquilibrium", type = "check", label = "Player has Elemental Equilibrium?", tooltip = "'of Balance'", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Keystone", "LIST", "Elemental Equilibrium", "Config")
|
||||
end },
|
||||
{ var = "playerCannotLeech", type = "check", label = "Cannot Leech Life/Mana?", tooltip = "'of Congealment'", apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("CannotLeechLifeFromSelf", "FLAG", true, "Config")
|
||||
enemyModList:NewMod("CannotLeechManaFromSelf", "FLAG", true, "Config")
|
||||
end },
|
||||
{ var = "playerGainsReducedFlaskCharges", type = "list", label = "Gains reduced Flask Charges:", tooltip = "'of Drought'", list = {{val=0,label="None"},{val=30,label="30% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=50,label="50% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("FlaskChargesGained", "INC", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasMinusMaxResist", type = "number", label = "-X% maximum Resistances:", tooltip = "'of Exposure'\nMid tier: 5-8%\nHigh tier: 9-12%", apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("FireResistMax", "BASE", -val, "Config")
|
||||
modList:NewMod("ColdResistMax", "BASE", -val, "Config")
|
||||
modList:NewMod("LightningResistMax", "BASE", -val, "Config")
|
||||
modList:NewMod("ChaosResistMax", "BASE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasLessAreaOfEffect", type = "list", label = "Less Area of Effect:", tooltip = "'of Impotence'", list = {{val=0,label="None"},{val=15,label="15% (Low tier)"},{val=20,label="20% (Mid tier)"},{val=25,label="25% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("AreaOfEffect", "MORE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "enemyCanAvoidStatusAilment", type = "list", label = "Enemy avoid Elem. Status Ailments:", tooltip = "'of Insulation'", list = {{val=0,label="None"},{val=30,label="30% (Low tier)"},{val=60,label="60% (Mid tier)"},{val=90,label="90% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
enemyModList:NewMod("AvoidIgnite", "BASE", val, "Config")
|
||||
enemyModList:NewMod("AvoidShock", "BASE", val, "Config")
|
||||
enemyModList:NewMod("AvoidFreeze", "BASE", val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "enemyHasIncreasedAccuracy", type = "list", label = "Unlucky Dodge/Enemy has inc. Acc.:", tooltip = "'of Miring'", list = {{val=0,label="None"},{val=30,label="30% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=50,label="50% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("DodgeChanceIsUnlucky", "FLAG", true, "Config")
|
||||
enemyModList:NewMod("Accuracy", "INC", val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasLessArmourandBlock", type = "list", label = "Reduced Block Chance/less Armour:", tooltip = "'of Rust'", list = {{val=0,label="None"},{val="LOW",label="20%/20% (Low tier)"},{val="MID",label="30%/25% (Mid tier)"},{val="HIGH",label="40%/30% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
local map = { ["LOW"] = {20,20}, ["MID"] = {30,25}, ["HIGH"] = {40,30} }
|
||||
if map[val] then
|
||||
modList:NewMod("BlockChance", "INC", -map[val][1], "Config")
|
||||
modList:NewMod("Armour", "MORE", -map[val][2], "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasPointBlank", type = "check", label = "Player has Point Blank?", tooltip = "'of Skirmishing'", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Keystone", "LIST", "Point Blank", "Config")
|
||||
end },
|
||||
{ var = "playerHasLessLifeESRecovery", type = "list", label = "Less Recovery of Life & Energy Shield:", tooltip = "'of Smothering'", list = {{val=0,label="None"},{val=20,label="20% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=60,label="60% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("LifeRecovery", "MORE", -val, "Config")
|
||||
modList:NewMod("EnergyShieldRecovery", "MORE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerCannotRegenLifeManaEnergyShield", type = "check", label = "Cannot Regen Life/Mana/ES?", tooltip = "'of Stasis'", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("NoLifeRegen", "FLAG", true, "Config")
|
||||
modList:NewMod("NoEnergyShieldRegen", "FLAG", true, "Config")
|
||||
modList:NewMod("NoManaRegen", "FLAG", true, "Config")
|
||||
end },
|
||||
{ var = "enemyTakesReducedExtraCritDamage", type = "number", label = "Enemy takes red. Extra Crit Damage:", tooltip = "'of Toughness'\nLow tier: 25-30%\nMid tier: 31-35%\nHigh tier: 36-40%" , apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
enemyModList:NewMod("SelfCritMultiplier", "INC", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ label = "Player is cursed by:" },
|
||||
{ var = "playerCursedWithAssassinsMark", type = "number", label = "Assassin's Mark:", tooltip = "Sets the level of Assassin's Mark to apply to the player.", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("ExtraCurse", "LIST", { name = "Assassin's Mark", level = val, applyToPlayer = true })
|
||||
@@ -64,6 +154,9 @@ local varList = {
|
||||
{ var = "playerCursedWithProjectileWeakness", type = "number", label = "Projectile Weakness:", tooltip = "Sets the level of Projectile Weakness to apply to the player.", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("ExtraCurse", "LIST", { name = "Projectile Weakness", level = val, applyToPlayer = true })
|
||||
end },
|
||||
{ var = "playerCursedWithPunishment", type = "number", label = "Punishment:", tooltip = "Sets the level of Punishment to apply to the player.", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("ExtraCurse", "LIST", { name = "Punishment", level = val, applyToPlayer = true })
|
||||
end },
|
||||
{ var = "playerCursedWithTemporalChains", type = "number", label = "Temporal Chains:", tooltip = "Sets the level of Temporal Chains to apply to the player.\nIn mid tier maps, 'of Temporal Chains' applies level 10.\nIn high tier maps, 'of Temporal Chains' applies level 15.", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("ExtraCurse", "LIST", { name = "Temporal Chains", level = val, applyToPlayer = true })
|
||||
end },
|
||||
@@ -73,73 +166,6 @@ local varList = {
|
||||
{ var = "playerCursedWithWarlordsMark", type = "number", label = "Warlord's Mark:", tooltip = "Sets the level of Warlord's Mark to apply to the player.", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("ExtraCurse", "LIST", { name = "Warlord's Mark", level = val, applyToPlayer = true })
|
||||
end },
|
||||
{ label = "Map Prefix Modifiers:" },
|
||||
{ var = "enemyHasPhysicalReduction", type = "list", label = "Enemy Physical Damage reduction:", list = {{val=0,label="No"},{val=20,label="20% (Low tier)"},{val=30,label="30% (Mid tier)"},{val=40,label="40% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("PhysicalDamageReduction", "INC", val, "Config")
|
||||
end },
|
||||
{ var = "enemyHasLessCurseEffectOnSelf", type = "list", label = "Less effect of Curses on Enemy:", list = {{val=0,label="No"},{val=25,label="25% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=60,label="60% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
enemyModList:NewMod("CurseEffectOnSelf", "MORE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ label = "Map Suffix Modifiers:" },
|
||||
{ var = "playerHasElementalEquilibrium", type = "check", label = "Player has Elemental Equilibrium?", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Keystone", "LIST", "Elemental Equilibrium", "Config")
|
||||
end },
|
||||
{ var = "playerHasPointBlank", type = "check", label = "Player has Point Blank?", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("Keystone", "LIST", "Point Blank", "Config")
|
||||
end },
|
||||
{ var = "playerGainsReducedFlaskCharges", type = "list", label = "Gains reduced Flask Charges:", list = {{val=0,label="No"},{val=30,label="30% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=50,label="50% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("FlaskChargesGained", "INC", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasLessAreaOfEffect", type = "list", label = "Less Area of Effect:", list = {{val=0,label="No"},{val=15,label="15% (Low tier)"},{val=20,label="20% (Mid tier)"},{val=25,label="25% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("AreaOfEffect", "MORE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "enemyHasIncreasedAccuracy", type = "list", label = "Unlucky Dodge/Enemy has inc. Acc.:", list = {{val=0,label="No"},{val=30,label="30% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=50,label="50% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("DodgeChanceIsUnlucky", "FLAG", true, "Config")
|
||||
enemyModList:NewMod("Accuracy", "INC", val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasLessArmourandBlock", type = "list", label = "Reduced Block Chance/less Armour:", list = {{val=0,label="No"},{val="LOW",label="20%/20% (Low tier)"},{val="MID",label="30%/25% (Mid tier)"},{val="HIGH",label="40%/30% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
local map = { ["LOW"] = {20,20}, ["MID"] = {30,25}, ["HIGH"] = {40,30} }
|
||||
if map[val] then
|
||||
modList:NewMod("BlockChance", "INC", -map[val][1], "Config")
|
||||
modList:NewMod("Armour", "LESS", -map[val][2], "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasLessLifeESRecovery", type = "list", label = "Less Recovery of Life & Energy Shield:", list = {{val=0,label="No"},{val=20,label="20% (Low tier)"},{val=40,label="40% (Mid tier)"},{val=60,label="60% (High tier)"}}, apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("LifeRecovery", "MORE", -val, "Config")
|
||||
modList:NewMod("EnergyShieldRecovery", "MORE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "enemyTakesReducedExtraCritDamage", type = "number", label = "Enemy takes red. Extra Crit Damage:", tooltip = "Low tier: 25-30%\nMid tier: 31-35%\nHigh tier: 36-40%" , apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
enemyModList:NewMod("SelfCritMultiplier", "INC", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerHasMinusMaxResist", type = "number", label = "-X% maximum Resistances:", tooltip = "Mid tier: 5-8%\nHigh tier: 9-12%", apply = function(val, modList, enemyModList)
|
||||
if val ~= 0 then
|
||||
modList:NewMod("FireResistMax", "BASE", -val, "Config")
|
||||
modList:NewMod("ColdResistMax", "BASE", -val, "Config")
|
||||
modList:NewMod("LightningResistMax", "BASE", -val, "Config")
|
||||
modList:NewMod("ChaosResistMax", "BASE", -val, "Config")
|
||||
end
|
||||
end },
|
||||
{ var = "playerCannotRegenLifeManaEnergyShield", type = "check", label = "Cannot Regen Life/Mana/ES?", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("NoLifeRegen", "FLAG", true, "Config")
|
||||
modList:NewMod("NoEnergyShieldRegen", "FLAG", true, "Config")
|
||||
modList:NewMod("NoManaRegen", "FLAG", true, "Config")
|
||||
end },
|
||||
{ var = "playerCannotLeech", type = "check", label = "Cannot Leech Life/Mana?", apply = function(val, modList, enemyModList)
|
||||
enemyModList:NewMod("CannotLeechLifeFromSelf", "FLAG", true, "Config")
|
||||
enemyModList:NewMod("CannotLeechManaFromSelf", "FLAG", true, "Config")
|
||||
end },]]
|
||||
{ section = "When In Combat", col = 1 },
|
||||
{ var = "usePowerCharges", type = "check", label = "Do you use Power Charges?", apply = function(val, modList, enemyModList)
|
||||
modList:NewMod("UsePowerCharges", "FLAG", true, "Config", { type = "Condition", var = "Combat" })
|
||||
|
||||
@@ -236,6 +236,9 @@ function SkillsTabClass:CreateGemSlot(index)
|
||||
|
||||
-- Gem name specification
|
||||
slot.nameSpec = common.New("GemSelectControl", nil, 0, 0, 300, 20, self, index, function(buf, addUndo)
|
||||
if not self.displayGroup then
|
||||
return
|
||||
end
|
||||
if not self.displayGroup.gemList[index] then
|
||||
self.displayGroup.gemList[index] = { nameSpec = "", level = 20, quality = 0, enabled = true }
|
||||
slot.level:SetText("20")
|
||||
|
||||
@@ -465,7 +465,7 @@ Implicits: 2
|
||||
{variant:1}18% increased Accuracy Rating
|
||||
{variant:2}40% increased Accuracy Rating
|
||||
+1 to Level of Active Socketed Skill Gems
|
||||
(60-80)% increased Physical Damage
|
||||
(40-60)% increased Physical Damage
|
||||
Adds (60-65) to (90-105) Chaos Damage
|
||||
{variant:2}Adds 1 to 2 Physical Damage to Attacks per Level
|
||||
{variant:1}+1 Life gained on Kill per Level
|
||||
|
||||
@@ -295,7 +295,7 @@ function calcs.defence(env, actor)
|
||||
end
|
||||
output.AttackDodgeChance = m_min(modDB:Sum("BASE", nil, "AttackDodgeChance"), 75)
|
||||
output.SpellDodgeChance = m_min(modDB:Sum("BASE", nil, "SpellDodgeChance"), 75)
|
||||
if modDB:Sum("FLAG", nil, "DodgeChanceIsUnlucky") then
|
||||
if env.mode_effective and modDB:Sum("FLAG", nil, "DodgeChanceIsUnlucky") then
|
||||
output.AttackDodgeChance = output.AttackDodgeChance / 100 * output.AttackDodgeChance
|
||||
output.SpellDodgeChance = output.SpellDodgeChance / 100 * output.SpellDodgeChance
|
||||
end
|
||||
|
||||
@@ -1047,6 +1047,23 @@ function calcs.offence(env, actor)
|
||||
output.BleedChanceOnHit = 100 - (1 - output.BleedChanceOnHit / 100) * (1 - globalOutput.PierceChance / 100) * 100
|
||||
output.BleedChanceOnCrit = 100 - (1 - output.BleedChanceOnCrit / 100) * (1 - globalOutput.PierceChance / 100) * 100
|
||||
end
|
||||
if env.mode_effective then
|
||||
local bleedMult = (1 - enemyDB:Sum("BASE", nil, "AvoidBleed") / 100)
|
||||
output.BleedChanceOnHit = output.BleedChanceOnHit * bleedMult
|
||||
output.BleedChanceOnCrit = output.BleedChanceOnCrit * bleedMult
|
||||
local poisonMult = (1 - enemyDB:Sum("BASE", nil, "AvoidPoison") / 100)
|
||||
output.PoisonChanceOnHit = output.PoisonChanceOnHit * poisonMult
|
||||
output.PoisonChanceOnCrit = output.PoisonChanceOnCrit * poisonMult
|
||||
local igniteMult = (1 - enemyDB:Sum("BASE", nil, "AvoidIgnite") / 100)
|
||||
output.IgniteChanceOnHit = output.IgniteChanceOnHit * igniteMult
|
||||
output.IgniteChanceOnCrit = output.IgniteChanceOnCrit * igniteMult
|
||||
local shockMult = (1 - enemyDB:Sum("BASE", nil, "AvoidShock") / 100)
|
||||
output.ShockChanceOnHit = output.ShockChanceOnHit * shockMult
|
||||
output.ShockChanceOnCrit = output.ShockChanceOnCrit * shockMult
|
||||
local freezeMult = (1 - enemyDB:Sum("BASE", nil, "AvoidFreeze") / 100)
|
||||
output.FreezeChanceOnHit = output.FreezeChanceOnHit * freezeMult
|
||||
output.FreezeChanceOnCrit = output.FreezeChanceOnCrit * freezeMult
|
||||
end
|
||||
|
||||
local function calcSecondaryEffectBase(type, sourceHitDmg, sourceCritDmg)
|
||||
-- Calculate the inflict chance and base damage of a secondary effect (bleed/poison/ignite/shock/freeze)
|
||||
|
||||
@@ -524,7 +524,8 @@ function calcs.perform(env)
|
||||
srcList:ScaleAddList(activeSkill.debuffModList, activeSkill.skillData.stackCount or 1)
|
||||
mergeBuff(srcList, debuffs, activeSkill.activeGem.name)
|
||||
end
|
||||
if activeSkill.curseModList or (activeSkill.skillFlags.curse and activeSkill.buffModList) then
|
||||
if (activeSkill.curseModList or (activeSkill.skillFlags.curse and activeSkill.buffModList))
|
||||
and (not enemyDB:Sum("FLAG", nil, "Hexproof") or modDB:Sum("FLAG", nil, "CursesIgnoreHexproof")) then
|
||||
local curse = {
|
||||
name = activeSkill.activeGem.name,
|
||||
fromPlayer = true,
|
||||
@@ -557,7 +558,7 @@ function calcs.perform(env)
|
||||
for _, activeSkill in ipairs(activeSkill.minion.activeSkillList) do
|
||||
local skillModList = activeSkill.skillModList
|
||||
local skillCfg = activeSkill.skillCfg
|
||||
if activeSkill.curseModList and activeSkill.skillData.enable then
|
||||
if activeSkill.curseModList and activeSkill.skillData.enable and not enemyDB:Sum("FLAG", nil, "Hexproof") then
|
||||
local curse = {
|
||||
name = activeSkill.activeGem.name,
|
||||
priority = 1,
|
||||
@@ -594,7 +595,7 @@ function calcs.perform(env)
|
||||
-- Sources for curses on the player don't usually respect any kind of limit, so there's little point bothering with slots
|
||||
modDB.multipliers["CurseOnSelf"] = (modDB.multipliers["CurseOnSelf"] or 0) + 1
|
||||
modDB:ScaleAddList(curseModList, (1 + modDB:Sum("INC", nil, "CurseEffectOnSelf") / 100) * modDB:Sum("MORE", nil, "CurseEffectOnSelf"))
|
||||
else
|
||||
elseif not enemyDB:Sum("FLAG", nil, "Hexproof") or modDB:Sum("FLAG", nil, "CursesIgnoreHexproof") then
|
||||
local curse = {
|
||||
name = value.name,
|
||||
fromPlayer = true,
|
||||
|
||||
@@ -429,7 +429,7 @@ local modTagList = {
|
||||
["for each rare item you have equipped"] = { tag = { type = "Multiplier", var = "RareItem" } },
|
||||
["for each unique item you have equipped"] = { tag = { type = "Multiplier", var = "UniqueItem" } },
|
||||
["per curse on enemy"] = { tag = { type = "Multiplier", var = "CurseOnEnemy" } },
|
||||
["per curse on you"] = { tag = { type = "Multiplier", var = "CurseOnPlayer" } },
|
||||
["per curse on you"] = { tag = { type = "Multiplier", var = "CurseOnSelf" } },
|
||||
["to you and allies"] = { },
|
||||
-- Per stat
|
||||
["per (%d+) strength"] = function(num) return { tag = { type = "PerStat", stat = "Str", div = num } } end,
|
||||
@@ -841,6 +841,7 @@ local specialModList = {
|
||||
["deal no elemental damage"] = { flag("DealNoLightning"), flag("DealNoCold"), flag("DealNoFire") },
|
||||
["attacks have blood magic"] = { flag("SkillBloodMagic", nil, ModFlag.Attack) },
|
||||
["socketed lightning spells have (%d+)%% increased spell damage if triggered"] = function(num) return { mod("Damage", "INC", num, nil, ModFlag.Spell, { type = "SocketedIn", keyword = "lightning" }, { type = "Condition", var = "SkillIsTriggered" }) } end,
|
||||
["your curses can apply to hexproof enemies"] = { flag("CursesIgnoreHexproof") },
|
||||
-- Skill-specific enchantment modifiers
|
||||
["(%d+)%% increased decoy totem life"] = function(num) return { mod("TotemLife", "INC", num, { type = "SkillName", skillName = "Decoy Totem" }) } end,
|
||||
["(%d+)%% increased ice spear critical strike chance in second form"] = function(num) return { mod("CritChance", "INC", num, { type = "SkillName", skillName = "Ice Spear" }, { type = "SkillPart", skillPart = 2 }) } end,
|
||||
|
||||
@@ -47,6 +47,12 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
|
||||

|
||||
|
||||
## Changelog
|
||||
### 1.4.7 - 2017/04/20
|
||||
* A new section has been added to the Configuration tab for Map Modifiers and Player Debuffs
|
||||
* This section contains options for simulating many map modifiers, as well as self-curses
|
||||
* Added support for Self-Flagellation
|
||||
* Corrected the range of the increased Physical Damage modifier on Edge of Madness
|
||||
|
||||
### 1.4.6 - 2017/04/20
|
||||
* Fixed bug introduced in 1.4.5 that prevented Onslaught and Unholy Might from applying correctly
|
||||
* The minion modifiers on the jewel templates are now correctly hidden when their value is set to 0
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
VERSION[1.4.7][2017/04/20]
|
||||
* A new section has been added to the Configuration tab for Map Modifiers and Player Debuffs
|
||||
* This section contains options for simulating many map modifiers, as well as self-curses
|
||||
* Added support for Self-Flagellation
|
||||
* Corrected the range of the increased Physical Damage modifier on Edge of Madness
|
||||
VERSION[1.4.6][2017/04/20]
|
||||
* Fixed bug introduced in 1.4.5 that prevented Onslaught and Unholy Might from applying correctly
|
||||
* The minion modifiers on the jewel templates are now correctly hidden when their value is set to 0
|
||||
|
||||
18
manifest.xml
18
manifest.xml
@@ -1,20 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<PoBVersion>
|
||||
<Version number="1.4.6"/>
|
||||
<Version number="1.4.7"/>
|
||||
<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="7912b22666567d5f0ff46378f5cb22e589e84efd" name="Launch.lua" part="program"/>
|
||||
<File sha1="d8e42beeb38baabcc197d658e4c0af33419eeff3" name="UpdateCheck.lua" part="program"/>
|
||||
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
|
||||
<File sha1="9d709b9a4919f7d2c9e013a637977519b598835a" name="changelog.txt" part="program"/>
|
||||
<File sha1="9d872e95c0cc788c5088d8b11e747dacf06354a8" name="changelog.txt" part="program"/>
|
||||
<File sha1="74fff9f369b6e2c98cfdf978c251c9828bcf39dc" name="Classes/BuildListControl.lua" part="program"/>
|
||||
<File sha1="deffd663ba726d938fcbe2870aab8a4e982587fa" name="Classes/ButtonControl.lua" part="program"/>
|
||||
<File sha1="afd403ab0b4c766d5b1b1cfec402bd42e64175a4" name="Classes/CalcBreakdownControl.lua" part="program"/>
|
||||
<File sha1="f7bced0e554bd4d99ef56bd87cf43294957cd179" name="Classes/CalcSectionControl.lua" part="program"/>
|
||||
<File sha1="125e891b36ba51345662be93e53a10d2733e63c8" name="Classes/CalcsTab.lua" part="program"/>
|
||||
<File sha1="573b791867ada18da1e93de8fc33ce6cf9ec9ab3" name="Classes/CheckBoxControl.lua" part="program"/>
|
||||
<File sha1="5d77101d0ee342de835353d2b6af3838b289bf99" name="Classes/ConfigTab.lua" part="program"/>
|
||||
<File sha1="6cf5832c148fb66bc3620baa9d788d86ad4864a2" name="Classes/ConfigTab.lua" part="program"/>
|
||||
<File sha1="bbb08f183746d6ec023e2bd08fb7a89d365381da" name="Classes/Control.lua" part="program"/>
|
||||
<File sha1="45be3d636d1eaff18bed7095478c22abfd0590ef" name="Classes/ControlHost.lua" part="program"/>
|
||||
<File sha1="9f05f72260f896eea09c1a8fb28f58973ce4d3ff" name="Classes/DropDownControl.lua" part="program"/>
|
||||
@@ -38,7 +38,7 @@
|
||||
<File sha1="86fee3127d9520144fc741f6fccc3c1d9f1aa532" name="Classes/ScrollBarControl.lua" part="program"/>
|
||||
<File sha1="261dcf54a4542e6160fd7024d8edf4fc095d9c71" name="Classes/SectionControl.lua" part="program"/>
|
||||
<File sha1="f1429ae4113b1172ed45eefd4c1f0c06a0972e67" name="Classes/SkillListControl.lua" part="program"/>
|
||||
<File sha1="2b8ad2fa8696232d22da1ad0ce29db833dd0b5ca" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="4058233e90371f2b6aca05bfd9a7de3e74db9037" name="Classes/SkillsTab.lua" part="program"/>
|
||||
<File sha1="6317bd9ba391832dccafcb62409a5ce2988d1928" name="Classes/SliderControl.lua" part="program"/>
|
||||
<File sha1="ada27b91a3c466689111429105edd4ee28ad0c3f" name="Classes/TextListControl.lua" part="program"/>
|
||||
<File sha1="64aa26df76dfbdd479db81580cbe9126541a1a43" name="Classes/TreeTab.lua" part="program"/>
|
||||
@@ -47,9 +47,9 @@
|
||||
<File sha1="8a07fe01c53b785ebb6256236e781fbaabd36c0e" name="Modules/BuildList.lua" part="program"/>
|
||||
<File sha1="5aa4d8544c1d1a2d6085696068bf02426986c517" name="Modules/CalcActiveSkill.lua" part="program"/>
|
||||
<File sha1="be5c20701be3c2cc39c4cc7201915abfb4af8a34" name="Modules/CalcBreakdown.lua" part="program"/>
|
||||
<File sha1="9a2acecbe87d03a0ba046b3e736d651ed51c772b" name="Modules/CalcDefence.lua" part="program"/>
|
||||
<File sha1="166a1a4662c8bca351294a2e100a2070d7579d06" name="Modules/CalcOffence.lua" part="program"/>
|
||||
<File sha1="47b3fb2bac830b1f260c82ce0091d779024ac34b" name="Modules/CalcPerform.lua" part="program"/>
|
||||
<File sha1="65b0790d1ff75311fd9f44ba9a7e6bc3cde61f57" name="Modules/CalcDefence.lua" part="program"/>
|
||||
<File sha1="8e1691172e944e997791a81d264c57199bf6f80d" name="Modules/CalcOffence.lua" part="program"/>
|
||||
<File sha1="265be804ccecbcad9862ee0b22aea7db6b8e72ad" name="Modules/CalcPerform.lua" part="program"/>
|
||||
<File sha1="92539a1d6f6188c028f630d62e224bd4d82d827c" name="Modules/Calcs.lua" part="program"/>
|
||||
<File sha1="d0804fb547c867851745cafb3fbd599847615372" name="Modules/CalcSections.lua" part="program"/>
|
||||
<File sha1="46e9ebba2afe4a10998e470d98249d1f8307a150" name="Modules/CalcSetup.lua" part="program"/>
|
||||
@@ -58,7 +58,7 @@
|
||||
<File sha1="ae86cb5a442699f3bf5ffe5b22195b7b49bb2fcd" name="Modules/Data.lua" part="program"/>
|
||||
<File sha1="157cee2eefb52a9a1804139a242266bc5774e483" name="Modules/ItemTools.lua" part="program"/>
|
||||
<File sha1="127e6e91fc340fa976d03591601038281045f45b" name="Modules/Main.lua" part="program"/>
|
||||
<File sha1="156209a226bc871926f41ea9accdc80c12e8f1f6" name="Modules/ModParser.lua" part="program"/>
|
||||
<File sha1="767ee85adcb9626901faf31ffb9e24f6ab87b71f" name="Modules/ModParser.lua" part="program"/>
|
||||
<File sha1="08bfd94f291b10dbdc75c94d7f2928c8bbd1a1d7" 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"/>
|
||||
@@ -115,7 +115,7 @@
|
||||
<File sha1="3ec41f8199a0c1d3e9376fac864d51e45d10f1e4" name="Data/Uniques/ring.lua" part="program"/>
|
||||
<File sha1="fafbb3a7071b3ac11f5d7abd1698a5836b9c94a1" name="Data/Uniques/shield.lua" part="program"/>
|
||||
<File sha1="633652f8861e52b7905957b819a63e52718b3eaa" name="Data/Uniques/staff.lua" part="program"/>
|
||||
<File sha1="adba8edd9a116bd51bda42febfbed96a51aacf36" name="Data/Uniques/sword.lua" part="program"/>
|
||||
<File sha1="1f58eb308e673f32b34eac0c98bacef33a627641" name="Data/Uniques/sword.lua" part="program"/>
|
||||
<File sha1="b4611a28551b3480d0886c624b81242c9cdae6f2" name="Data/Uniques/wand.lua" part="program"/>
|
||||
<File platform="win32" sha1="7e5a3242c9a4296dc8377feb4c9d824f3f0a3cc1" name="Path of Building.exe" part="runtime"/>
|
||||
<File platform="win32" sha1="7a973d3c0b5121e6aad0dcb9323be5b432fc63e7" name="lua51.dll" part="runtime"/>
|
||||
|
||||
Reference in New Issue
Block a user