Larian Banner
Previous Thread
Next Thread
Print Thread
#650655 26/10/18 03:55 AM
Joined: Oct 2018
stranger
OP Offline
stranger
Joined: Oct 2018
Hey guys, I'm still pretty new with the Divinity Engine 2 and Ive come in a bit of a stump in my small project.

For reference I'm making a variation of the Sawtooth Knife ability, but I'm trying to get it to apply a Stronger version of Bleeding if the target is already bleeding.
I've made a chain of skill properties like this: Bleeding; if Bleeding: Bleeding2; If Bleeding2: Bleeding3.
This however didn't work as the game reads it in order and automatically afflicts the target with Bleeding3.

Ive tried reversing the chain to this: If Bleeding2: Bleeding3; If Bleeding1: Bleeding2; Bleeding.
This however also didn't work since no matter what status the target had before, Bleeding would be the last to apply and replaces the stronger variations.

Had anyone tried doing a CC or Status Chain like this? Any insight would be helpful...
Is there a like I can use in Skill Properties like this: If(HasNoStatus:Bleeding3, Bleeding2): Bleeding,100,3?
Or perhaps is there a way to get the game to choose the stronger Stack of status so that it is not replaced by a weaker one?

EDIT: Nevermind, Silly me. I just found the Stack Priority Column under the status Editor. Ignore me :P

Last edited by HunterXero; 26/10/18 04:14 AM. Reason: Answered my own question
Joined: Nov 2017
L
member
Offline
member
L
Joined: Nov 2017
The systemic way to treat this is usually to make it work the way Warm + Warm = Burning works:

Make the skill set just 'Bleeding', then have a game script with something like
Code
EVENT CharacterSetBleeding
VARS
	CHARACTER:_Character
	LIST<STATUS>:_RemoveList
	STATUS:_Result
ON 
	FetchCharacterApplyStatusData(_Character, BLEEDING)
ACTIONS
	Set(_Result,BLEEDING)
	ListClear(_RemoveList)
	IF "c1"
		CharacterHasStatus(_Character, WARM)
	THEN	
		ListAdd(_RemoveList,BLEEDING)
		Set(_Result,BLEEDING2)		
	RETURN(_RemoveList,_Result,null)

Joined: May 2017
enthusiast
Offline
enthusiast
Joined: May 2017
I have an example of an incremental status done with a gameScript here: MyMod_Statuses.gameScript. It utilizes the same event/function that LarIlya mentioned - FetchCharacterApplyStatusData, though it increments up to a 5th version, and uses what I call a "proxy status" to apply the actual status, which in this case, is MYMOD_PAIN_APPLY. Your skill would apply MYMOD_PAIN_APPLY, and the script would handle applying the actual status, or incrementing it to a higher version if PAIN 1-4 is already active on the target.


Moderated by  Larian_Koala, Larian_KVN 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5