Skip to content

Commit aa9b60b

Browse files
committed
FEAT: add Khatal's Weeping
1 parent 09cb8a9 commit aa9b60b

4 files changed

Lines changed: 25 additions & 0 deletions

File tree

src/Data/ModCache.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1750,6 +1750,7 @@ c["+88 to maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="BASE",v
17501750
c["+88% to Cold Resistance when Socketed with a Green Gem"]={{[1]={[1]={keyword="dexterity",slotName="{SlotName}",sockets={[1]=1},type="SocketedIn"},flags=0,keywordFlags=0,name="SocketProperty",type="LIST",value={value={flags=0,keywordFlags=0,name="ColdResist",type="BASE",value=88}}}},nil}
17511751
c["+88% to Fire Resistance when Socketed with a Red Gem"]={{[1]={[1]={keyword="strength",slotName="{SlotName}",sockets={[1]=1},type="SocketedIn"},flags=0,keywordFlags=0,name="SocketProperty",type="LIST",value={value={flags=0,keywordFlags=0,name="FireResist",type="BASE",value=88}}}},nil}
17521752
c["+88% to Lightning Resistance when Socketed with a Blue Gem"]={{[1]={[1]={keyword="intelligence",slotName="{SlotName}",sockets={[1]=1},type="SocketedIn"},flags=0,keywordFlags=0,name="SocketProperty",type="LIST",value={value={flags=0,keywordFlags=0,name="LightningResist",type="BASE",value=88}}}},nil}
1753+
c["+89 to maximum Life"]={{[1]={flags=0,keywordFlags=0,name="Life",type="BASE",value=89}},nil}
17531754
c["+9 to maximum Energy Shield"]={{[1]={flags=0,keywordFlags=0,name="EnergyShield",type="BASE",value=9}},nil}
17541755
c["+9% Chance to Block Spell Damage"]={{[1]={flags=0,keywordFlags=0,name="SpellBlockChance",type="BASE",value=9}},nil}
17551756
c["+9% to Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=9}},nil}
@@ -7870,6 +7871,8 @@ c["Can't use Flask in Fifth Slot"]={{[1]={[1]={excludeItemType="Tincture",slotNa
78707871
c["Can't use Helmets"]={{[1]={[1]={slotName="Helmet",type="DisablesItem"},flags=0,keywordFlags=0,name="CanNotUseItem",type="Flag",value=1}},nil}
78717872
c["Can't use Life Flasks"]={nil,"Can't use Life Flasks "}
78727873
c["Can't use Life Flasks +65 to maximum Mana"]={nil,"Can't use Life Flasks +65 to maximum Mana "}
7874+
c["Can't use Mana Flasks"]={nil,"Can't use Mana Flasks "}
7875+
c["Can't use Mana Flasks On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50%"]={nil,"Can't use Mana Flasks On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% "}
78737876
c["Can't use other Rings"]={{[1]={[1]={slotName="Ring 2",type="DisablesItem"},[2]={num=1,type="SlotNumber"},flags=0,keywordFlags=0,name="CanNotUseItem",type="Flag",value=1},[2]={[1]={slotName="Ring 1",type="DisablesItem"},[2]={num=2,type="SlotNumber"},flags=0,keywordFlags=0,name="CanNotUseItem",type="Flag",value=1}},nil}
78747877
c["Cannot Be Slowed to Below Base Speed"]={{[1]={[1]={effectType="Global",type="GlobalEffect",unscalable=true},flags=0,keywordFlags=0,name="MinimumActionSpeed",type="MAX",value=100}},nil}
78757878
c["Cannot Be Stunned while you have Energy Shield"]={{[1]={[1]={type="Condition",var="HaveEnergyShield"},flags=0,keywordFlags=0,name="StunImmune",type="FLAG",value=true}},nil}
@@ -10192,6 +10195,8 @@ c["Offerings Kill affected Damagable targets when Offering Duration expires"]={n
1019210195
c["On Killing a Poisoned Enemy, nearby Enemies are Poisoned"]={nil,"On Killing a Poisoned Enemy, nearby Enemies are Poisoned "}
1019310196
c["On Killing a Poisoned Enemy, nearby Enemies are Poisoned and nearby Allies Regenerate 200 Life per second"]={nil,"On Killing a Poisoned Enemy, nearby Enemies are Poisoned and nearby Allies Regenerate 200 Life per second "}
1019410197
c["On Killing a Rare monster, a random Linked Minion gains its Modifiers for 60 seconds"]={nil,"On Killing a Rare monster, a random Linked Minion gains its Modifiers for 60 seconds "}
10198+
c["On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50%"]={nil,"On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% "}
10199+
c["On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% For each Charge removed this way, that Attack gains +2% to Damage over time Multiplier"]={{[1]={[1]={type="Multiplier",var="KhatalsFlaskChargesRemoved"},[2]={neg=true,skillType=57,type="SkillType"},flags=0,keywordFlags=0,name="DotMultiplier",type="BASE",value=2}},nil}
1019510200
c["Only affects Passives in Large Ring"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="radiusIndex",value=8}}},nil}
1019610201
c["Only affects Passives in Massive Ring"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="radiusIndex",value=10}}},nil}
1019710202
c["Only affects Passives in Medium Ring"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="radiusIndex",value=7}}},nil}
@@ -12262,6 +12267,7 @@ c["While affected by Glorious Madness, inflict Mania on nearby Enemies every sec
1226212267
c["While at Maximum Frenzy Charges, Attacks Poison Enemies"]={{[1]={[1]={stat="FrenzyCharges",thresholdStat="FrenzyChargesMax",type="StatThreshold"},flags=1,keywordFlags=0,name="PoisonChance",type="BASE",value=100}},nil}
1226312268
c["While in Her Embrace, take 0.5% of your total Maximum Life and Energy Shield as Fire Damage per second per Level"]={{[1]={[1]={percent=0.5,stat="Life",type="PercentStat"},[2]={type="Multiplier",var="Level"},[3]={type="Condition",var="HerEmbrace"},flags=0,keywordFlags=0,name="FireDegen",type="BASE",value=1},[2]={[1]={percent=0.5,stat="EnergyShield",type="PercentStat"},[2]={type="Multiplier",var="Level"},[3]={type="Condition",var="HerEmbrace"},flags=0,keywordFlags=0,name="FireDegen",type="BASE",value=1}},nil}
1226412269
c["While not on Full Life, Sacrifice 20% of Mana per Second to Recover that much Life"]={{[1]={[1]={neg=true,type="Condition",var="FullLife"},flags=0,keywordFlags=0,name="ManaDegenPercent",type="BASE",value=20},[2]={[1]={percent=20,stat="Mana",type="PercentStat"},[2]={neg=true,type="Condition",var="FullLife"},flags=0,keywordFlags=0,name="LifeRecovery",type="BASE",value=1}},nil}
12270+
c["While on Low Life, Life Flasks gain 4 Charges every 3 seconds"]={{[1]={[1]={type="Condition",var="LowLife"},flags=0,keywordFlags=0,name="LifeFlaskChargesGenerated",type="BASE",value=1.3333333333333}},nil}
1226512271
c["While there are at least five nearby Allies, you and nearby Allies have Onslaught"]={{[1]={[1]={threshold=5,type="MultiplierThreshold",var="NearbyAlly"},flags=0,keywordFlags=0,name="ExtraAura",type="LIST",value={mod={flags=0,keywordFlags=0,name="Onslaught",type="FLAG",value=true}}}},nil}
1226612272
c["While your Passive Skill Tree connects to a class' starting location, you gain:"]={{},nil}
1226712273
c["Wicked Ward"]={{[1]={flags=0,keywordFlags=0,name="Keystone",type="LIST",value="Wicked Ward"}},nil}

src/Data/Uniques/Special/New.lua

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,17 @@ Trigger level 10 Consecrate when you deal a Critical Strike
5151
14% increased Light Radius
5252
47% increased Rarity of Items Dropped by Enemies killed with a Critical Strike
5353
Inflict Hallowing Flame on Hit while on Consecrated Ground
54+
]],
55+
[[
56+
Khatal's Weeping
57+
Lapis Amulet
58+
LevelReq: 56
59+
Implicits: 1
60+
{tags:jewellery_attribute}+(20-30) to Intelligence
61+
+89 to maximum Life
62+
Can't use Mana Flasks
63+
On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50%
64+
For each Charge removed this way, that Attack gains +2% to Damage over time Multiplier
65+
While on Low Life, Life Flasks gain 4 Charges every 3 seconds
5466
]]
5567
}

src/Modules/ConfigOptions.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,6 +1889,9 @@ Huge sets the radius to 11.
18891889
{ var = "conditionEnemyLightningResZero", type = "check", label = "Enemy hit you with ^xADAA47Light. Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^xADAA47Lightning Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList)
18901890
enemyModList:NewMod("LightningResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}, { type = "ActorCondition", actor = "enemy", var = "HaveTrickstersSmile" })
18911891
end },
1892+
{ var = "multiplierKhatalsFlaskChargesRemoved", type = "count", label = "Khatal's Weeping # of Flask Charges removed:", ifMult = "KhatalsFlaskChargesRemoved", apply = function(val, modList, enemyModList)
1893+
modList:NewMod("Multiplier:KhatalsFlaskChargesRemoved", "BASE", val, "Config", { type = "Condition", var = "Effective" })
1894+
end },
18921895
{ var = "maniaDebuffsCount", type = "countAllowZero", label = "# of Mania Stacks", ifFlag = "Condition:CanInflictMania", defaultState = 15, tooltip = "Mania Stacks apply:\n\t4% inc Damage Taken per stack\n\t2% reduced Action Speed per stack\n\t10% reduced ^xE05030Life ^7and ^x88FFFFEnergy Shield ^7Recovery Rate per stack", apply = function(val, modList, enemyModList)
18931896
val = m_min(val, 15)
18941897
enemyModList:NewMod("DamageTaken", "INC", val * 4, val.." Mania Stacks", { type = "GlobalEffect", effectType = "Debuff" }, { type = "Condition", var = "AfflictedByMania" })

src/Modules/ModParser.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3340,6 +3340,7 @@ local specialModList = {
33403340
["gain a flask charge when you deal a critical strike"] = { mod("FlaskChargeOnCritChance", "BASE", 100) },
33413341
["gain a flask charge when you deal a critical strike while affected by precision"] = { mod("FlaskChargeOnCritChance", "BASE", 100, { type = "Condition", var = "AffectedByPrecision" }) },
33423342
["gain a flask charge when you deal a critical strike while at maximum frenzy charges"] = { mod("FlaskChargeOnCritChance", "BASE", 100, { type = "StatThreshold", stat = "FrenzyCharges", thresholdStat = "FrenzyChargesMax" }) },
3343+
["on non%-channelling attack, set a life flask with greater than %d+%% of maximum charges remaining to %d+%% for each charge removed this way, that attack gains %+(%d+)%% to damage over time multiplier"] = function(num) return{ mod("DotMultiplier", "BASE", num, { type = "Multiplier", var = "KhatalsFlaskChargesRemoved" }, { type = "SkillType", skillType = SkillType.Channel, neg = true }) } end,
33433344
["enemies poisoned by you cannot deal critical strikes"] = { mod("EnemyModifier", "LIST", { mod = flag("NeverCrit", { type = "Condition", var = "Poisoned" }) }), mod("EnemyModifier", "LIST", { mod = flag("Condition:NeverCrit", { type = "Condition", var = "Poisoned" })}) },
33443345
["marked enemy cannot deal critical strikes"] = { mod("EnemyModifier", "LIST", { mod = flag("NeverCrit", { type = "Condition", var = "Marked" }) }), mod("EnemyModifier", "LIST", { mod = flag("Condition:NeverCrit", { type = "Condition", var = "Marked" })}) },
33453346
["marked enemy cannot evade attacks"] = { mod("EnemyModifier", "LIST", { mod = flag("CannotEvade", { type = "Condition", var = "Marked" }) }) },
@@ -4868,6 +4869,9 @@ local specialModList = {
48684869
["life flasks gain (%d+) charges? every (%d+) seconds"] = function(num, _, div) return {
48694870
mod("LifeFlaskChargesGenerated", "BASE", num / div)
48704871
} end,
4872+
["while on low life, life flasks gain (%d+) charges? every (%d+) seconds"] = function(num, _, div) return {
4873+
mod("LifeFlaskChargesGenerated", "BASE", num / div, { type = "Condition", var = "LowLife" })
4874+
} end,
48714875
["mana flasks gain (%d+) charges? every (%d+) seconds"] = function(num, _, div) return {
48724876
mod("ManaFlaskChargesGenerated", "BASE", num / div)
48734877
} end,

0 commit comments

Comments
 (0)