Skip to content

Commit

Permalink
Rage Rework
Browse files Browse the repository at this point in the history
initial rage rework stuff
  • Loading branch information
Regisle committed Jul 18, 2024
1 parent 80704de commit d208b1f
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
9 changes: 3 additions & 6 deletions src/Modules/CalcSetup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -476,12 +476,9 @@ function calcs.initEnv(build, mode, override, specEnv)
modDB:NewMod("PhysicalDamageReduction", "BASE", 4, "Base", { type = "Multiplier", var = "EnduranceCharge" })
modDB:NewMod("ElementalResist", "BASE", 4, "Base", { type = "Multiplier", var = "EnduranceCharge" })
modDB:NewMod("Multiplier:RageEffect", "BASE", 1, "Base")
modDB:NewMod("Damage", "INC", 1, "Base", ModFlag.Attack, { type = "Multiplier", var = "Rage" }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageCastSpeed", neg = true })
modDB:NewMod("Damage", "INC", 1, "Base", ModFlag.Cast, { type = "Multiplier", var = "Rage" }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageCastSpeed"})
modDB:NewMod("Speed", "INC", 1, "Base", ModFlag.Attack, { type = "Multiplier", var = "Rage", div = 2 }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageSpellDamage", neg = true })
modDB:NewMod("Speed", "INC", 1, "Base", ModFlag.Cast, { type = "Multiplier", var = "Rage", div = 2 }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageSpellDamage" })
modDB:NewMod("MovementSpeed", "INC", 1, "Base", { type = "Multiplier", var = "Rage", div = 5 }, { type = "Multiplier", var = "RageEffect" })
modDB:NewMod("MaximumRage", "BASE", 50, "Base")
modDB:NewMod("Damage", "MORE", 1, "Base", ModFlag.Attack, { type = "Multiplier", var = "Rage" }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageCastSpeed", neg = true })
--modDB:NewMod("Damage", "INC", 1, "Base", ModFlag.Cast, { type = "Multiplier", var = "Rage" }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageCastSpeed"})
modDB:NewMod("MaximumRage", "BASE", 30, "Base")
modDB:NewMod("Multiplier:GaleForce", "BASE", 0, "Base")
modDB:NewMod("MaximumGaleForce", "BASE", 10, "Base")
modDB:NewMod("MaximumFortification", "BASE", 20, "Base")
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/ConfigOptions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -916,7 +916,7 @@ Huge sets the radius to 11.
{ var = "multiplierDefiance", type = "count", label = "Defiance:", ifMult = "Defiance", apply = function(val, modList, enemyModList)
modList:NewMod("Multiplier:Defiance", "BASE", m_min(val, 10), "Config", { type = "Condition", var = "Combat" })
end },
{ var = "multiplierRage", type = "count", label = "Rage:", ifFlag = "Condition:CanGainRage", tooltip = "Base Maximum Rage is 50, and inherently grants the following:\n\t1% increased Attack Damage per 1 Rage\n\t1% increased Attack Speed per 2 Rage\n\t1% increased Movement Speed per 5 Rage\nYou lose 1 Rage every 0.5 seconds if you have not been Hit or gained Rage Recently.", apply = function(val, modList, enemyModList)
{ var = "multiplierRage", type = "count", label = "Rage:", ifFlag = "Condition:CanGainRage", tooltip = "Base Maximum Rage is 30, and inherently grants 1% More Attack Damage per 1 Rage\nYou lose 10 Rage every 1 seconds if you have not been Hit or gained Rage in the last 2 seconds.", apply = function(val, modList, enemyModList)
modList:NewMod("Multiplier:RageStack", "BASE", val, "Config", { type = "IgnoreCond" }, { type = "Condition", var = "Combat" }, { type = "Condition", var = "CanGainRage" })
end },
{ var = "conditionLeeching", type = "check", label = "Are you Leeching?", ifCond = "Leeching", tooltip = "You will automatically be considered to be Leeching if you have '^xE05030Life ^7Leech effects are not removed at Full ^xE05030Life^7',\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList)
Expand Down
20 changes: 20 additions & 0 deletions src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,7 @@ local modNameList = {
["warcry effect"] = { "BuffEffect", keywordFlags = KeywordFlag.Warcry },
["aspect of the avian buff effect"] = { "BuffEffect", tag = { type = "SkillName", skillName = "Aspect of the Avian" } },
["maximum rage"] = "MaximumRage",
["minimum rage"] = "MinimumRage",
["maximum fortification"] = "MaximumFortification",
["fortification"] = "MinimumFortification",
-- Charges
Expand Down Expand Up @@ -1167,6 +1168,8 @@ local preFlagList = {
-- While in the presence of...
["^while a unique enemy is in your presence, "] = { tag = { type = "ActorCondition", actor = "enemy", var = "RareOrUnique" } },
["^while a pinnacle atlas boss is in your presence, "] = { tag = { type = "ActorCondition", actor = "enemy", var = "PinnacleBoss" } },
-- Other
["^every rage also grants"] = { tag = { type = "Multiplier", var = "Rage" } },
}

-- List of modifier tags
Expand Down Expand Up @@ -1492,6 +1495,7 @@ local modTagList = {
["while at maximum frenzy charges"] = { tag = { type = "StatThreshold", stat = "FrenzyCharges", thresholdStat = "FrenzyChargesMax" } },
["while on full frenzy charges"] = { tag = { type = "StatThreshold", stat = "FrenzyCharges", thresholdStat = "FrenzyChargesMax" } },
["while at maximum endurance charges"] = { tag = { type = "StatThreshold", stat = "EnduranceCharges", thresholdStat = "EnduranceChargesMax" } },
["while at maximum rage"] = { tag = { type = "Condition", var = "HaveMaximumRage" } },
["while at maximum fortification"] = { tag = { type = "Condition", var = "HaveMaximumFortification" } },
["while you have at least (%d+) crab barriers"] = function(num) return { tag = { type = "StatThreshold", stat = "CrabBarriers", threshold = num } } end,
["while you have at least (%d+) fortification"] = function(num) return { tag = { type = "StatThreshold", stat = "FortificationStacks", threshold = num } } end,
Expand Down Expand Up @@ -2218,6 +2222,19 @@ local specialModList = {
["gain %d+ rage on hit with attacks, no more than once every [%d%.]+ seconds"] = {
flag("Condition:CanGainRage"),
},
["gain %d+ rage on melee hit"] = {
flag("Condition:CanGainRage"),
},
["gain %d+ rage on hit with axes"] = {
flag("Condition:CanGainRage"),
},
["gain %d+ rage when hit by an enemy"] = {
flag("Condition:CanGainRage"),
},
["every rage also grants (%d+)%% increased attack speed"] = function(num) return {
mod("Speed", "INC", num, "Base", ModFlag.Attack, { type = "Multiplier", var = "Rage" }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageSpellDamage", neg = true }),
mod("Speed", "INC", num, "Base", ModFlag.Cast, { type = "Multiplier", var = "Rage" }, { type = "Multiplier", var = "RageEffect" }, { type = "Condition", var = "RageSpellDamage" })
} end,
["while a unique enemy is in your presence, gain %d+ rage on hit with attacks, no more than once every [%d%.]+ seconds"] = {
flag("Condition:CanGainRage", { type = "ActorCondition", actor = "enemy", var = "RareOrUnique" }),
},
Expand All @@ -2226,6 +2243,9 @@ local specialModList = {
},
["inherent effects from having rage are tripled"] = { mod("Multiplier:RageEffect", "BASE", 2) },
["inherent effects from having rage are doubled"] = { mod("Multiplier:RageEffect", "BASE", 1) },
--["(%d+)%% increased rage effect"] = function(num) return {
-- mod("Multiplier:RageEffect", "BASE", num / 100)
--} end,
["cannot be stunned while you have at least (%d+) rage"] = function(num) return { flag("StunImmune", { type = "MultiplierThreshold", var = "Rage", threshold = num }) } end,
["lose ([%d%.]+)%% of life per second per rage while you are not losing rage"] = function(num) return { mod("LifeDegen", "BASE", 1, { type = "PercentStat", stat = "Life", percent = num }, { type = "Multiplier", var = "Rage" }) } end,
["if you've warcried recently, you and nearby allies have (%d+)%% increased attack speed"] = function(num) return { mod("ExtraAura", "LIST", { mod = mod("Speed", "INC", num, nil, ModFlag.Attack) }, { type = "Condition", var = "UsedWarcryRecently" }) } end,
Expand Down

0 comments on commit d208b1f

Please sign in to comment.