diff --git a/spec/System/TestVaalCaress_spec.lua b/spec/System/TestVaalCaress_spec.lua new file mode 100644 index 0000000000..332b7c1312 --- /dev/null +++ b/spec/System/TestVaalCaress_spec.lua @@ -0,0 +1,29 @@ +describe("Vaal Caress Onslaught", function() + for _, duration in ipairs({ 5, 10, 20 }) do + it("activates the " .. duration .. "-second modifier after recent Vaal skill use", function() + newBuild() + build.skillsTab:PasteSocketGroup("Fireball 1/0 1\n") + build.mainSocketGroup = 1 + runCallback("OnFrame") + assert.are.equal("Fireball", build.calcsTab.mainEnv.player.mainSkill.activeEffect.grantedEffect.name) + local inactiveSpeed = build.calcsTab.mainOutput.Speed + local inactiveMovement = build.calcsTab.mainOutput.MovementSpeedMod + build.configTab.input.customMods = "You gain Onslaught for " .. duration .. " seconds on using a Vaal Skill" + + local function check(input, multiplier) + build.configTab.input.conditionUsedVaalSkillRecently = input.conditionUsedVaalSkillRecently + build.configTab.input.buffOnslaught = input.buffOnslaught + build.configTab:BuildModList() + runCallback("OnFrame") + assert.are.near(inactiveSpeed * multiplier, build.calcsTab.mainOutput.Speed, 1e-9) + assert.are.near(inactiveMovement + multiplier - 1, build.calcsTab.mainOutput.MovementSpeedMod, 1e-9) + end + + check({}, 1) + check({ conditionUsedVaalSkillRecently = true }, 1.2) + check({ conditionUsedVaalSkillRecently = true, buffOnslaught = true }, 1.2) + check({ buffOnslaught = true }, 1.2) + check({}, 1) + end) + end +end) diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index c0ba5d2363..e284961926 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -22850,8 +22850,7 @@ c["You gain Onslaught for 2 seconds on Killing Taunted Enemies"]={{[1]={[1]={typ c["You gain Onslaught for 2 seconds per Endurance Charge when Hit"]={{[1]={[1]={type="Multiplier",var="EnduranceCharge"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," when Hit "} c["You gain Onslaught for 2 seconds per Endurance Charge when Hit You gain Onslaught for 5 seconds per Endurance Charge when Hit"]={{[1]={[1]={type="Multiplier",var="EnduranceCharge"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," when Hit You gain for 5 seconds per Endurance Charge when Hit "} c["You gain Onslaught for 2 seconds when Hit"]={{[1]={flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," when Hit "} -c["You gain Onslaught for 20 seconds on using a Vaal Skill"]={{[1]={flags=0,keywordFlags=512,name="Condition:Onslaught",type="FLAG",value=true}}," on using a "} -c["You gain Onslaught for 20 seconds on using a Vaal Skill +2 to Level of all Vaal Skill Gems"]={{[1]={flags=0,keywordFlags=512,name="Condition:Onslaught",type="FLAG",value=true}}," on using a +2 to Level of all Vaal Skill Gems "} +c["You gain Onslaught for 20 seconds on using a Vaal Skill"]={{[1]={[1]={type="Condition",var="UsedVaalSkillRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} c["You gain Onslaught for 3 seconds on Culling Strike"]={{[1]={flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," on Culling Strike "} c["You gain Onslaught for 3 seconds on Culling Strike 100% chance to Avoid being Chilled during Onslaught"]={{[1]={[1]={type="Condition",var="Onslaught"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," on Culling Strike 100% chance "} c["You gain Onslaught for 3 seconds on Kill"]={{[1]={[1]={type="Condition",var="KilledRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} @@ -22861,8 +22860,7 @@ c["You gain Onslaught for 4 seconds on Hit"]={{[1]={flags=4,keywordFlags=0,name= c["You gain Onslaught for 4 seconds on Kill"]={{[1]={[1]={type="Condition",var="KilledRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} c["You gain Onslaught for 4 seconds on Kill while affected by Haste"]={{[1]={[1]={type="Condition",var="KilledRecently"},[2]={type="Condition",var="AffectedByHaste"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} c["You gain Onslaught for 4 seconds when Hit"]={{[1]={flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," when Hit "} -c["You gain Onslaught for 5 seconds on using a Vaal Skill"]={{[1]={flags=0,keywordFlags=512,name="Condition:Onslaught",type="FLAG",value=true}}," on using a "} -c["You gain Onslaught for 5 seconds on using a Vaal Skill You gain Onslaught for 20 seconds on using a Vaal Skill"]={{[1]={flags=0,keywordFlags=512,name="Condition:Onslaught",type="FLAG",value=true}}," on using a You gain on using a Vaal Skill "} +c["You gain Onslaught for 5 seconds on using a Vaal Skill"]={{[1]={[1]={type="Condition",var="UsedVaalSkillRecently"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}},nil} c["You gain Onslaught for 5 seconds per Endurance Charge when Hit"]={{[1]={[1]={type="Multiplier",var="EnduranceCharge"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," when Hit "} c["You gain Onslaught for 5 seconds per Endurance Charge when Hit 100% increased Effect of Onslaught on you"]={{[1]={[1]={type="Multiplier",var="EnduranceCharge"},flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," when Hit 100% increased "} c["You gain Onslaught for 6 seconds when Hit"]={{[1]={flags=0,keywordFlags=0,name="Condition:Onslaught",type="FLAG",value=true}}," when Hit "} diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 9d5d1db3a0..266223e375 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -4026,6 +4026,7 @@ local specialModList = { -- Buffs/debuffs ["phasing"] = { flag("Condition:Phasing") }, ["onslaught"] = { flag("Condition:Onslaught") }, + ["you gain onslaught for %d+ seconds on using a vaal skill"] = { flag("Condition:Onslaught", { type = "Condition", var = "UsedVaalSkillRecently" }) }, ["rampage"] = { flag("Condition:Rampage") }, ["soul eater"] = { flag("Condition:CanHaveSoulEater") }, ["unholy might"] = { flag("Condition:UnholyMight"), flag("Condition:CanWither"), },