PathOfBuilding icon indicating copy to clipboard operation
PathOfBuilding copied to clipboard

Self curse implementation and changes to curses from config

Open Paliak opened this issue 3 years ago • 41 comments

Fixes #5056 , https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/5069.

Description of the problem being solved:

This pr improves ui and curse mechanics. Implements self curse handling and fixes related issues.

Currently work in progress. TODO:

  • Drop down for curses in the config. :heavy_check_mark:
  • Handling for increased curse effect from curses. :heavy_check_mark:
  • Handling multiple sources of the same curse with different strengths :heavy_check_mark:
  • Make config curses take priority. :heavy_check_mark:
  • Implement handling for reflected curses. :heavy_check_mark:
  • Implement self duration modifiers from temp chains and other sources :heavy_check_mark:
  • Refactor the drop down list selection into a new control ?

Paliak avatar Sep 13 '22 18:09 Paliak

Would you mind using "no" (or similar) instead of "dont" in variable names? Sorry for the pedantry. :)

Nightblade avatar Sep 15 '22 05:09 Nightblade

Less curse effect against players on gem doesn't seem to work but does for config? Maybe add self curses to the Aura and Buff Skills config section so you can see them apply effects to the player. image Divine blessing aura doesn't seem to work temp chains reduced buff effect. There are some skills that it probably shouldn't effect image image

Most likey doesn't

  • Galvanic field.
  • Conc Path
  • Toxic Rain
  • Pretty much all the other skill duration skills the create something with a duration e.g. creeping frost, vortex, etc.

Unsure (currently does)

  • Herald of Thunder
  • Convocation
  • Herald of purity

Should (currently doesn't)

  • Corrupting fever primary buff.

Blade Vortex and Winter Orb Probably works. Minion duration shouldn't be affected but (currently are) this is more of general issue with minion duration belonging to the player not the minion. Probably should affect our ailment duration image

Players cursed shouldn't effect minion skills image These could probably use spaces image Hexproof is currently implemented as 100% reduced curse effect on self. This might stop reflected marks from applying to the player. https://www.poewiki.net/wiki/Hexproof image Probably add support for this as well. (Enemy Hits inflict Temporal Chains on you) image Breakdown looks a little mangled image It also doesn't hide when it does nothing e.g. image

Was the fixes meant to be https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/5069 or it fixes both?

QuickStick123 avatar Sep 22 '22 04:09 QuickStick123

image Phantasmal haste might have slightly different functionallity to temp chains and might stack additivly instead of multiplicibly. (faster bleed is inc according to PoB testing might be a good idea.) But is implemeneted the same way. There is also shapers presence that seems to stack additivly https://www.poewiki.net/wiki/Shaper%27s_Presence but is currently not supported. image

QuickStick123 avatar Sep 22 '22 12:09 QuickStick123

Was the fixes meant to be https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/5069 or it fixes both?

It was initially meant to fix https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/5069 but ever since @Regisle mentioned he'd like to implement some changes to curses this pr blew up in scope as i read the code more and had more and more ideas. I'll likely focus on breaking this pr up into 2 separate ones:

  • Fix for: https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/5056 , Ui changes for config and self curse implementation as the fix is rather simple and those two were the main things i had in mind with this pr
  • Temp chains duration mod as a separate pr as it will require more changes than i initially expected. https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/5102

Paliak avatar Sep 22 '22 14:09 Paliak

Switching back to draft in the mean time as i move things around.

Paliak avatar Sep 22 '22 14:09 Paliak

Hex proof is currently implemented as 100% reduced effect of curses. This will still apply to marks. A new mod probably needs implementing hexEffectOnSelf as 100% less or a mod flag such as I think if you are an occulist and use can apply to hexproof enimies you might be able to override vidiri's veil.

QuickStick123 avatar Sep 23 '22 03:09 QuickStick123

From my testing it seems occultist doesn't work on players. Which makes sense as it applies to enemies atleast with shackles. ~~Rotblood applies regardless of hex proof state.~~ Marks don't work with shackles / rotblood

QuickStick123 avatar Sep 24 '22 00:09 QuickStick123

I left the player mark slot code in place as i think it may be useful to let the ExtraCurse apply them. Though it doesn't do anything currently.

Paliak avatar Sep 24 '22 03:09 Paliak

Support for duration of reflected curses required https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/5102 to be merge back in here.

Paliak avatar Sep 30 '22 14:09 Paliak

image https://pobb.in/n8UnEKeUNEg1 Goto grace in calc tab.

QuickStick123 avatar Oct 01 '22 00:10 QuickStick123

Problems I noticed while testing this:

  1. Its increasing duration of stuff like frost shield and spark what is incorrect (but I think this was already mentioned earlier)
  2. Self curse effect mods are also applying to the enemy part of the curse, e.g suddenly I am getting a lot of damage from self curse mods with Temp Chains on poison build and that is also incorrect

deathbeam avatar Oct 01 '22 10:10 deathbeam

Spark being affected is fixed. The fix for frost shield might cause some skills that should be affected to not be affected. Can you send me the build for the poison issue @deathbeam ? I can't seem to really replicate.

Paliak avatar Oct 01 '22 11:10 Paliak

Hmm when I pulled your last 2 commits the issue dissapeared I think (or at least pob is showing more reasonable damage) but go to commit 87ab9dead97988a30d910ba5b8186e02f44d7dac with this https://pobb.in/L4o78bt1vMUU and check poison duration.

deathbeam avatar Oct 01 '22 11:10 deathbeam

Actually nvm in your latest change temp chains just stopped working completely for poison duration

deathbeam avatar Oct 01 '22 11:10 deathbeam

Matching buffs/debuffs correctly is quite the challenge. Temp chains doesn't seem to affect poison duration in release pob so i assume it's a separate issue. I'll look into it.

Paliak avatar Oct 01 '22 11:10 Paliak

Temp chains definitely affects poison duration in release pob

deathbeam avatar Oct 01 '22 11:10 deathbeam

Yeah just noticed i had it setup wrong. durationMult is reused for ailment duration and that seems to cause issues. Working on a solution.

Paliak avatar Oct 01 '22 11:10 Paliak

https://github.com/PathOfBuildingCommunity/PathOfBuilding/pull/5102#issuecomment-1256842896 Most of the unticked ones are either not supported durations or debuffs that regular temp chains should apply too (not self curse.)

QuickStick123 avatar Oct 01 '22 12:10 QuickStick123

Moving this here for clarity.

Scales With Self Curse Temporal Chains:

  • [x] blood rage
  • [x] winter orb
  • [x] bv
  • [x] cf (buff)
  • [x] self curses except temp chains
  • [x] link skills
  • [x] immortal call, steel skin
  • [x] molten shell
  • [x] warcries
  • [x] static strike (buff)
  • [x] smite (buff)
  • [x] boneshatter (trauma)
  • [ ] vigilant strike (fortify)
  • [x] all buff/debuffs (charges/fortify/onsalught/poision/ignited etc).
  • [x] divine blessing
  • [ ] lifetap / behead / cruelty / inspiration
  • [x] cyclone
  • [x] smoke mine (secondary buff)
  • [x] venom gyre blades buff
  • [x] flicker strike movespeed buff
  • [x] shattering steel (steel ward buff)
  • [x] ambush (buff only skill duration secondary is a debuff enemies expiry will work.)
  • [x] phase run (primary obviously as phasing secondary not sure.)

Does Not Scale With Self Curse Temporal Chains:

  • [x] herald of purity
  • [x] bladestorm
  • [x] conc path
  • [ ] dom blow minion duration (primary duration may be a debuff applied to enemies and should scale with enemy expiry rate same with other similar mechanics e.g. absolution / herald of purity)
  • [x] all other minions
  • [x] all other attack skills e.g. earthquake, rage vortex, bladestorm, etc.
  • [x] all totems
  • [x] all banners
  • [x] all mines / traps
  • [x] artic armour
  • [x] frost blink / flame dash / creeping frost / vortex / cold snap /(the duration is the trail of the chill ground)
  • [ ] Frost bomb (secondary is a debuff and should scale with enemy expiry).
  • [x] ek / bladefall
  • [x] desecrate + alchemist mark
  • [x] mirror arrow + blink arrow
  • [ ] tornado primary is a debuff on enemy (hinder), secondary is length of tornado (unscalable by expiry rate)
  • [ ] perstillent strike (debuffs on enmies)
  • [x] cremation
  • [ ] withering step / withering touch / wither (wither debuff will scale with enemy expiry rate)
  • [x] frost wall
  • [ ] blight (debuff)
  • [ ] siphoning trap (debuff)
  • [x] lightning spire / seismic / flamethrower / explosive (created effect that occurs for time period)
  • [x] storm call \ flame surge (created thing duraiton)
  • [x] offerings (don't seem to work didn't test with necro node.)
  • [x] galvanic field
  • [x] frost shield / sigil of power
  • [x] minion ability durations.
  • [x] hydrosphere + void sphere.

unsure stun duration? leech? convokation (there is no buff so I suspect this doesn't work but is impossible to test as you can't get enough following minions. maybe with max zombies + alberon + skelly warriors.) herald of thunder

QuickStick123 avatar Oct 02 '22 01:10 QuickStick123

Marking for review again. I tested the skills QuickStick123 posted above and they all seem to work correctly. I could not get the drop down to break either. Someone should still look it over before merging though.

Paliak avatar Oct 29 '22 14:10 Paliak

Your recent changes haven't updated the list just checked over everything. A lot of these durations just aren't labelled correctly or implemented. The only real major ones that I would like fixed are:

  • galvanic field
  • blade vortex
  • arctic armour
  • molten shell
  • link skills
  • herald of purity
  • warcries
  • banners

The rest will see minimal use and most already aren't supported or missing duration tag see https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/5125.

QuickStick123 avatar Oct 29 '22 23:10 QuickStick123

Galvanic doesn't work. Blade vortex doesn't. I think i misunderstood your list.

Arctic seems to work obraz

Molten shell doesn't work.

Links don't work.

Herald of purity seems to work obraz

War cries don't work.

Some Banners seem to work obraz

I'll implement the ones you listed and look into adding the duration tags where needed.

I'm also considering reworking the drop down menu into a separate class.

Paliak avatar Oct 30 '22 07:10 Paliak

Unticked ones behave differently ingame is basicly how I structured my list.

QuickStick123 avatar Oct 30 '22 07:10 QuickStick123

Oh, Okay. I'll test again and get to fixing. Thanks for checking.

Paliak avatar Oct 30 '22 07:10 Paliak

Here is a PoB with all the skills I was testing so you don't have to manually add them. https://pobb.in/3u0Cd16ZDudK

QuickStick123 avatar Oct 30 '22 07:10 QuickStick123

arctic armour shouldnt work, the duration on the skill is duration of the chilled ground pretty sure, it shouldnt be affected by expiry rate. same with durations of minions. Banners shouldnt work either, at leats not the base duration, its duration of the banner on ground.

deathbeam avatar Oct 30 '22 11:10 deathbeam

Yeah i misunderstood QuickStick's list. Working on a fix.

Paliak avatar Oct 30 '22 11:10 Paliak

Affected by self temp chains:

  • [x] Blood Rage
  • [x] Winter Orb
  • [x] Blade Vortex
  • [x] Corrupting Fever
  • Primary duration affected by self temp chains. Secondary duration affected by temp chains on enemy.
  • [x] Self Curses
  • Tested with Shackles of the Wretched. Don't think there's any other way to apply a curse to self with duration. Config curses have no duration. Temp Chains is excluded.
  • [x] Link Skills
  • [x] Immortal Call
  • [x] Steelskin
  • [x] Molten Shell
  • [x] Warcries
  • [x] Static Strike
  • [x] Smite
  • [ ] BoneShatter (Trauma)
  • Should work but i don't think it's implemented in dev branch yet
  • [ ] Vigilant Strike
  • Fortify duration from vigilant strike doesn't seem to be supported by pob
  • [x] all buff/debuffs (charges/fortify/onsalught/poision/ignited etc).
  • The things supported by pob should work. Buff/Debuff and ailment duration on self works.
  • [x] Divine Blessing
  • [ ] lifetap / behead / cruelty / inspiration
  • Duration for these does not seem to be supported by pob.
  • [x] Cyclone
  • Implemented stage duration.
  • [ ] Smoke Mine
  • Duration does not seem to be supported by pob.
  • [x] Venom Gyre blades buff
  • [x] Flicker Strike movement speed buff
  • [ ] Shattering Steel (steel ward buff)
  • Duration does not seem to be supported by pob.
  • [x] Ambush
  • Primary is affected by self temp chains. Secondary is affected by temp chains on enemy.
  • [x] Phase Run
  • Both primary and secondary buffs are affected by self temp chains.
  • [x] Herald Of Thunder

Not affected by self temp chains:

  • [x] Herald Of Purity
  • [x] Bladestorm
  • [x] Consecrated Path
  • [x] Dominating Blow
  • Primary scales with temp chains on enemy
  • [x] Minions
  • [x] Attack Skills
  • Tested Earthquake and Rage Vortex
  • [x] Totems
  • Tested Decoy totem and Ancestral Protector
  • [x] Banners
  • [x] Mines/Traps
  • [x] Arctic Armour
  • [x] Frost Blink / Flame dash / Creeping Frost / Vortex / Cold snap /(the duration is the trail of the chill ground)
  • [x] Frost Bomb
  • Secondary scales with temp chains on enemy.
  • [x] Ethernal Knives / Bladefall
  • [x] Desecrate + Alchemist mark
  • Not sure how test in pob but Alchemist mark is not affected
  • [x] Mirror Arrow/Blink Arrow
  • [x] Tornado
  • Primary duration is affected by by temp chains on enemy.
  • [x] Pestilent Strike
  • Not affected by temp chains on enemy either. I assume it should ?
  • [x] Cremation
  • [x] withering step / Withering touch / Wither (wither debuff will scale with enemy expiry rate)
  • Wither scales with temp chains on enemy
  • [x] Frost Wall
  • [x] Blight
  • Both primary and secondary scale with temp chains on enemy
  • [x] Siphoning Trap
  • Not affected by either self or on enemy temp chains. I think it should scale with enemy temp chains.
  • [x] Storm Call \ Flame surge
  • [x] Offerings
  • [x] Galvanic field
  • [x] Frost shield / Sigil of power
  • [x] Minion ability durations.
  • [x] Hydrosphere / Void sphere.

I'll try to fix the ones that should be affected by enemy temp chains if i find some time this week. I thought about separating the drop down menu into it's own class but i think that would make the already messy code even messier. The pob user input system really doesn't seem to be easily compatible with widgets like that.

Paliak avatar Nov 15 '22 16:11 Paliak

There are still some expiry rate mod using more multipliers instead of inc.

QuickStick123 avatar Nov 16 '22 00:11 QuickStick123

Galvanic field shouldn't scale with self curse. Cyclone duration should scale with stages. Sometimes breakdown seems to show mod even though it doesn't apply image The missing durations might be caused by https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/5125.

Everything else seems to work as expected. :)

QuickStick123 avatar Nov 16 '22 00:11 QuickStick123