diff --git a/Modules/ConfigOptions.lua b/Modules/ConfigOptions.lua index 9bf2e401..51cc0f51 100644 --- a/Modules/ConfigOptions.lua +++ b/Modules/ConfigOptions.lua @@ -32,6 +32,9 @@ return { { var = "conditionMoving", type = "check", label = "Are you always moving?", ifCond = "Moving", apply = function(val, modList, enemyModList) modList:NewMod("Condition:Moving", "FLAG", true, "Config") end }, + { var = "insane", type = "check", label = "Are you insane?", ifCond = "Insane", apply = function(val, modList, enemyModList) + modList:NewMod("Condition:Insane", "FLAG", true, "Config") + end }, { var = "conditionFullLife", type = "check", label = "Are you always on Full Life?", tooltip = "You will automatically be considered to be on Full Life if you have Chaos Inoculation,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList) modList:NewMod("Condition:FullLife", "FLAG", true, "Config") end }, diff --git a/Modules/ModParser.lua b/Modules/ModParser.lua index 5a413d06..500d23e7 100644 --- a/Modules/ModParser.lua +++ b/Modules/ModParser.lua @@ -1876,6 +1876,9 @@ local specialModList = { ["critical strike chance is increased by lightning resistance"] = { mod("CritChance", "INC", 1, { type = "PerStat", stat = "LightningResist", div = 1 }) }, ["non%-critical strikes deal (%d+)%% damage"] = function(num) return { mod("Damage", "MORE", -100 + num, nil, ModFlag.Hit, { type = "Condition", var = "CriticalStrike", neg = true }) } end, ["critical strikes penetrate (%d+)%% of enemy elemental resistances while affected by zealotry"] = function(num) return { mod("ElementalPenetration", "BASE", num, { type = "Condition", var = "CriticalStrike" }, { type = "Condition", var = "AffectedByZealotry" }) } end, + ["(%d+)%% more critical strike chance while insane"] = function(num) return { + mod("CritChance", "MORE", num, { type = "Condition", var = "Insane" }), + } end, -- Generic Ailments ["enemies take (%d+)%% increased damage for each type of ailment you have inflicted on them"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num) }, { type = "ActorCondition", actor = "enemy", var = "Frozen" }), @@ -2118,6 +2121,9 @@ local specialModList = { ["gain brutal charges instead of endurance charges"] = { flag("EnduranceChargesConvertToBrutalCharges") }, ["gain affliction charges instead of frenzy charges"] = { flag("FrenzyChargesConvertToAfflictionCharges") }, ["gain absorption charges instead of power charges"] = { flag("PowerChargesConvertToAbsorptionCharges") }, + ["regenerate (%d+)%% life over one second when hit while sane"] = function(num) return { + mod("LifeRegenPercent", "BASE", num, { type = "Condition", var = "Insane", neg = true }, { type = "Condition", var = "BeenHitRecently" }), + } end, -- Traps, Mines and Totems ["traps and mines deal (%d+)%-(%d+) additional physical damage"] = function(_, min, max) return { mod("PhysicalMin", "BASE", tonumber(min), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)), mod("PhysicalMax", "BASE", tonumber(max), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)) } end, ["traps and mines deal (%d+) to (%d+) additional physical damage"] = function(_, min, max) return { mod("PhysicalMin", "BASE", tonumber(min), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)), mod("PhysicalMax", "BASE", tonumber(max), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)) } end, @@ -2353,6 +2359,10 @@ local specialModList = { ["your movement speed is (%d+)%% of its base value"] = function(num) return { mod("MovementSpeed", "OVERRIDE", num / 100) } end, ["armour also applies to lightning damage taken from hits"] = { flag("ArmourAppliesToLightningDamageTaken") }, ["lightning resistance does not effect lightning damage taken"] = { flag("SelfIgnoreLightningResistance") }, + ["(%d+)%% less physical and chaos damage taken while sane"] = function(num) return { + mod("PhysicalDamageTaken", "MORE", -num, { type = "Condition", var = "Insane", neg = true }), + mod("ChaosDamageTaken", "MORE", -num, { type = "Condition", var = "Insane", neg = true }), + } end, -- Knockback ["cannot knock enemies back"] = { flag("CannotKnockback") }, ["knocks back enemies if you get a critical strike with a staff"] = { mod("EnemyKnockbackChance", "BASE", 100, nil, ModFlag.Staff, { type = "Condition", var = "CriticalStrike" }) },