Jump to content

[HELP] Make Self Cast Hostile Status Effect Scale with RES but not INT


Recommended Posts

When a character attacks with the Powder Burns modal, it places a debuff that Distracts them for 10 seconds. This is a hostile effect Resolve reduces duration. Intellect also increases its duration, which I am looking to prevent.

My solution was to apply a StatusEffect (SE) that grants -10000 INT before the Distracted SE is applied. This guarantees 1 INT at the time of Distraction being cast, so you get -45% duration of positive buffs. I then increase base duration of Distraction to 18.181818 seconds so that when the -45% is applied, it goes back down to 10. The -INT SE is removed on attack, so it doesn't affect anything else.

This gives larger numbers than expected using the calculation sheet provided and through in-game testing without the mod using a character that has 10 INT. When reversing the mod (adding 10000 INT and reducing duration of Distraction to 4.44444 seconds) we get smaller numbers than expected. Unexpected values only occur when there are multiple sources of Hostile Effect Reduction (RES + Solitary Ring of the Wanderer for example).

Ideal solution SETS the character's INT to 10 but I don't know how I would achieve this since it requires a dynamic value and I don't know if attributes are compatible with dynamic values.

 

Duration Formula.xlsx

Edited by DragonDrop
  • Like 1
Link to comment
Share on other sites

I'm guessing that OP didn't like having a self-inflicted debuff last longer based on their int 😛

My Deadfire mods
Out With The Good: The mod for tidying up your Deadfire combat tooltip.
Waukeen's Berth: Make all your basic purchases at Queen's Berth.
Carrying Voice: Wider chanter invocations.
Nemnok's Congregation: Lets all priests express their true faith.

Deadfire skill check catalogue right here!

Link to comment
Share on other sites

4 hours ago, Grape_You_In_The_Mouth said:

What was the goal for this?  I'm curious about it.

There's a really sweet build I theorycrafted a while ago that hinges on constantly expiring the powder burns debuff. It's aimed at making FF monk actually viable for reliable healing and wound generation.

Link to comment
Share on other sites

  • 3 weeks later...

So far as I am aware, this would require dll editing to do gracefully (which I don't think is possible currently). The stat -> effect correlations seem to be hard coded. I think the scaling with/without resolve relates to whether the applying attack is flagged as hostile (attacks apply status effects, even beneficial ones).  Duration and duration type are finally set in the actual status effect, but the only option that affects attribute scaling turns them both off (durationtype -> UseDurationTimeUnadjusted ). So far as I am aware, this turns off both int and res scaling. 

One potential (quite complicated) alternative would be to assign a specific affliction type to all of the desired status effects, and turn off ability score scaling. One could then use an ability to apply a hidden status effect based on current resolve to desired characters, with the OutgoingAfflictionTypeDurationMult flag for that afflictiontype and the desired multiplier (e.g. 0.97 for characters with 11 resolve, etc). It would have the issue that if it is actually an affliction or inspiration, it would no longer counter / interact with other affliction / inspirations. Also you would need to force stacking for each ability, otherwise only 1 penalty would apply.

This would require something along the lines of:

A) creating an AfflictionTypeGameData item with a unique GUID to contain the "self hostile" status effects .

B) assigned that AfflictionType GUID to all desired "self hostile" status effects

C) add afflictioncomponent entries to all "self hostile" status effects, each with a unique GUID. Add those GUIDs to the list attached to the AfflictionTypeGameData item.

D) set override StackingRuleOverride for all origin attacks to "Always" (otherwise all of these abilities could be used at once at no downside)

E) create a series of status effects applying permanent OutgoingAfflictionTypeDurationMults for that afflication type, one for each resolve value, except 10 (ie: 11-> 0.97, etc).

F) create a series of abilities applying those status effects,

F.1 with a Boolean IsAttributeScoreValue(Guid, AttributeType, Operator, Int32, Boolean) conditional verifying that resolve = (value) in the ApplicationPrerequisites field (to turn it on)

F.2 and a  Boolean IsAttributeScoreValue(Guid, AttributeType, Operator, Int32, Boolean) conditional verifying that resolve is not equal to (value) in the DeactivationPrerequisites field (to turn it off)

F.3 Set HideFromUI for all these abilities so they don't clutter the UI

G) Add an entry for all these ability at level 0/1 to? everyone's progressiontable.

 

I do not guarantee this would work, and it would require a fair bit of effort. 

 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...