Thread: Stop Save Confusion!
-
March 28th, 2020, 21:37 #11"When questing once in noble wood of gray medieval pine, I came upon a tomb, rain-slicked, rubbed cool, ethereal, its inscription long vanished, yet still within its melancholy fissures."
-
March 28th, 2020, 23:07 #12
Ok here it is for PFRPG2
Better save descriptions for PFRPG2
(It seems to work but Im not as experienced with FG code as Damned is)Last edited by Willot; March 29th, 2020 at 08:17.
"When questing once in noble wood of gray medieval pine, I came upon a tomb, rain-slicked, rubbed cool, ethereal, its inscription long vanished, yet still within its melancholy fissures."
-
March 29th, 2020, 01:03 #13---
Fantasy Grounds AD&D Reference Bundle, AD&D Adventure Bundle 1, AD&D Adventure Bundle 2
Documentation for AD&D 2E ruleset.
Custom Maps (I2, S4, T1-4, Barrowmaze,Lost City of Barakus)
Note: Please do not message me directly on this site, post in the forums or ping me in FG's discord.
-
March 29th, 2020, 01:13 #14"When questing once in noble wood of gray medieval pine, I came upon a tomb, rain-slicked, rubbed cool, ethereal, its inscription long vanished, yet still within its melancholy fissures."
-
March 29th, 2020, 02:47 #15
Dax anything that also wants to modify manager_action_save.lua is going to conflict with this extension and vice versa. Youre gonna have to choose which ones do more for you (unlikely this one).
You can try replacing the function applySave(rSource, rOrigin, rAction, sUser) in the other extensions with this one....
Code:function applySave(rSource, rOrigin, rAction, sUser) local msgShort = {font = "msgfont"}; local msgLong = {font = "msgfont"}; msgShort.text = "Save"; msgLong.text = "Save [" .. rAction.nTotal .. "]"; if rAction.nTarget > 0 then msgLong.text = msgLong.text .. "[vs. DC " .. rAction.nTarget .. "]"; end msgShort.text = msgShort.text .. " ->"; msgLong.text = msgLong.text .. " ->"; if rSource then msgShort.text = msgShort.text .. " [for " .. ActorManager.getDisplayName(rSource) .. "]"; msgLong.text = msgLong.text .. " [for " .. ActorManager.getDisplayName(rSource) .. "]"; end if rOrigin then msgShort.text = msgShort.text .. " [vs " .. ActorManager.getDisplayName(rOrigin) .. "]"; msgLong.text = msgLong.text .. " [vs " .. ActorManager.getDisplayName(rOrigin) .. "]"; end msgShort.icon = "roll_cast"; local sAttack = ""; local bHalfMatch = false; if rAction.sSaveDesc then sAttack = rAction.sSaveDesc:match("%[SAVE VS[^]]*%] ([^[]+)") or ""; bHalfMatch = (rAction.sSaveDesc:match("%[HALF ON SAVE%]") ~= nil); end rAction.sResult = ""; if rAction.nTarget > 0 then if rAction.nTotal >= rAction.nTarget then nSaveDesc = math.random(1, 10); if nSaveDesc == 1 then sSaveDesc = " avoids the magic! Successful Save!]" elseif nSaveDesc == 2 then sSaveDesc = " dodges the magic! Successful Save!]" elseif nSaveDesc == 3 then sSaveDesc = " resists the magic! Successful Save!]" elseif nSaveDesc == 4 then sSaveDesc = " seems immune to the magic! Successful Save!]" elseif nSaveDesc == 5 then sSaveDesc = " forges through! Successful Save!]" elseif nSaveDesc == 6 then sSaveDesc = " defies the magic! Successful Save!]" elseif nSaveDesc == 7 then sSaveDesc = " repels the magic! Successful Save!]" elseif nSaveDesc == 8 then sSaveDesc = " thwarts the magic! Successful Save!]" elseif nSaveDesc == 9 then sSaveDesc = " contends with the magic! Successful Save!]" elseif nSaveDesc == 10 then sSaveDesc = " holds out against the magic! Successful Save!]" end msgLong.text = msgLong.text .. " [" .. ActorManager.getDisplayName(rSource) .. sSaveDesc; if rSource then local bHalfDamage = bHalfMatch; local bAvoidDamage = false; if bHalfDamage then if EffectManager5E.hasEffectCondition(rSource, "Avoidance") then bAvoidDamage = true; msgLong.text = msgLong.text .. " [AVOIDANCE]"; elseif EffectManager5E.hasEffectCondition(rSource, "Evasion") then local sSave = rAction.sDesc:match("%[SAVE%] (%w+)"); if sSave then sSave = sSave:lower(); end if sSave == "dexterity" then bAvoidDamage = true; msgLong.text = msgLong.text .. " [EVASION]"; end end end if bAvoidDamage then rAction.sResult = "none"; rAction.bRemoveOnMiss = false; elseif bHalfDamage then rAction.sResult = "half_success"; rAction.bRemoveOnMiss = false; end if rOrigin and rAction.bRemoveOnMiss then TargetingManager.removeTarget(ActorManager.getCTNodeName(rOrigin), ActorManager.getCTNodeName(rSource)); end end else nFailDesc = math.random(1, 5); if nFailDesc == 1 then sFailDesc = " succumbs! Fails Saving Throw!]" elseif nFailDesc == 2 then sFailDesc = " is affected! Fails Saving Throw!]" elseif nFailDesc == 3 then sFailDesc = " is struck! Fails Saving Throw!]" elseif nFailDesc == 4 then sFailDesc = " fails to resist! Fails Saving Throw!]" elseif nFailDesc == 5 then sFailDesc = " wilts! Fails Saving Throw!]" end msgLong.text = msgLong.text .. " [" .. ActorManager.getDisplayName(rSource) .. sFailDesc; " Fails Saving Throw!]"; if rSource then local bHalfDamage = false; if bHalfMatch then if EffectManager5E.hasEffectCondition(rSource, "Avoidance") then bHalfDamage = true; msgLong.text = msgLong.text .. " [AVOIDANCE]"; elseif EffectManager5E.hasEffectCondition(rSource, "Evasion") then local sSave = rAction.sDesc:match("%[SAVE%] (%w+)"); if sSave then sSave = sSave:lower(); end if sSave == "dexterity" then bHalfDamage = true; msgLong.text = msgLong.text .. " [EVASION]"; end end end if bHalfDamage then rAction.sResult = "half_failure"; end end end end ActionsManager.outputResult(rAction.bSecret, rSource, rOrigin, msgLong, msgShort); if rSource and rOrigin then ActionDamage.setDamageState(rOrigin, rSource, StringManager.trim(sAttack), rAction.sResult); end end
-
March 29th, 2020, 02:48 #16
Ill create a new thread with 5E and PF2 versions and new descriptors shortly.
-
March 29th, 2020, 09:18 #17
In the AD&D ruleset's case I made sure to use a variable that can be easily overridden by an extension if someone wants to tweak it.
I was mostly getting concerned at the already-long string of text... particularly since the name of the target is already noted. Tho that could just be in the 2E ruleset. I'm not familiar with the 5E/PF rulesets extensively.
Fail:
Success:
---
Fantasy Grounds AD&D Reference Bundle, AD&D Adventure Bundle 1, AD&D Adventure Bundle 2
Documentation for AD&D 2E ruleset.
Custom Maps (I2, S4, T1-4, Barrowmaze,Lost City of Barakus)
Note: Please do not message me directly on this site, post in the forums or ping me in FG's discord.
-
March 29th, 2020, 09:42 #18
The only thing with that Mike is that its still ambiguous whether the tick means good or tick means bad.
But I love the tick and exclamation!
-
March 29th, 2020, 15:45 #19
.
this is a great topic, and a overdue needed solution X-D
i think the best solution so far is in the image @celstian post -- minus the exclamation and tick marks (see mockup up below).
i need this for pf1 plz! X-D
target-results.jpg
(btw @celestian, how does one post an image and have it display in post like that, as opposed to a link?)
the extra symbols are just more noise and i think would still not resolve the issue.
usability-wise, the symbols draw too much attention to themselves,
and user would still not quickly determine whether target failed/saved or vice versa without reading text next to it.
personally, i've been trained to look at the last line; and that simple addition of the word "target" is simply genius.
-----
roll dice. it builds character.
-
March 29th, 2020, 20:25 #20
The images are more visual versions than the color of the result text (you'll note failure is purple and success is green text as well). If that is a problem then you'd want to remove that color indicator as well... which for me I'm not willing to do at this time. It and the images I find are quick methods to visually know what happened without having to read the text (which in some cases will be a wall of text if you're forcing a room full of orcs to save).
If someone wants to make an extension to tweak it then it would be in manager_action_save.lua in function applySave(rSource, rOrigin, rAction, sUser).
I can help someone with that if they have issues sorting it out but it's pretty simple.
To do inline images....
Last edited by celestian; March 29th, 2020 at 20:32.
---
Fantasy Grounds AD&D Reference Bundle, AD&D Adventure Bundle 1, AD&D Adventure Bundle 2
Documentation for AD&D 2E ruleset.
Custom Maps (I2, S4, T1-4, Barrowmaze,Lost City of Barakus)
Note: Please do not message me directly on this site, post in the forums or ping me in FG's discord.
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks