toastygm / HarnMaster-3-FoundryVTT

An unofficial system for playing the HârnMaster 3 game by Columbia Games, Inc., on Foundry VTT.
GNU General Public License v3.0
9 stars 4 forks source link

Remember skill test modifier between invocations #109

Closed scooper4711 closed 3 years ago

scooper4711 commented 3 years ago

Usability enhancement - your character may be in a situation where he/she needs to roll a skill test repeatedly but has an environmental modifier which will apply to that skill repeatedly. But the same environmental modifier doesn't apply to other skills. It would be nice if every time that character rolls that skill, it remembered the modifier used last time that skill was rolled. Does not need to remember it across sessions or across scenes. So if there is non-persistent data storage associated e.g. with a token and it doesn't cause a data migration, that could be one option for implementing.

toastygm commented 3 years ago

I am not sure I like this approach. Often modifiers are situational; for example, the GM provides a negative modifier on an attack because you slipped on a banana. But that same modifier shouldn't keep occurring over time.

Ultimately, this seems like a feature that would not always be desirable; unless you can justify why users can't simply enter the value each time, and how to deal with the problem I stated above, I am inclined to close this request.

jpmcdonald commented 3 years ago

This is a challenging on several fronts and I'd given lots of thought to this as I was developing my roll20 character sheet (It was never really finished as I hit a road block). The challenge is that sometimes modifiers are highly situational, and some-times they should apply across the board.

Special penalties would need to be something like Injuries so they would need their own item class; they would need an indicator of type, (how they apply), and etc. Here are some example special penalties to think about:

Albinism has -10 to most skills. - I'm not sure what most means here? I'm not sure how I'd apply it? Allergy has -20 to "skills" I'm assuming this is only the case during an "Allergic Attack" Frankly I'd treat it as a special kind of very temporary injury... Eye Missing -10 to all combat skills (I'd double that for ranged weapons). Hemophilia -40 to stop a bleeder (this one is very specific). Leg Missing/Peg Leg 50% Agility and half move... (this would require a different approach to implement) Parasites/Fleas. -10 to Rhetoric -20 to Lovecraft ; applies to specific skills.

Combat mods include handedness (by weapon), Outnumbering -10 per extra engaged opponent, Close Mode -10 to higher AC weapon, Opponent Prone +20, etc., etc.

What I was thinking, was to include a list of "special penalties" that could be listed in a section. The fields would be a descriptive name/label. The penalty or bonus +10; -20, etc. it's applicability, e.g. all skills, combat skills, physical skills, specific skills, etc. Plus a toggle on the sheet that would allow the player to turn modifiers on or off before they roll.

This would be somewhat challenging to code, but some thoughts: Handedness penalties might apply if a two handed weapon is equipped and another weapon is also equipped, but not apply if it's the only weapon equipped. The toggle switches on each special penalty listed would be sticky, so the last setting would be applied as the default. The code would need to filter through a moderately complex tree to determine if it applies, e.g. when I attack with a melee weapon, only melee option modifiers would appear in the dialog and the player would check the toggles that apply. If the attack is repeated next round, the toggles would default to the same setting, but can be changed with each strike via the dialog (e.g. the situation has changed and the combatant is no longer outnumber, a prone opponent has risen, etc.)

The other thing I was playing with was listing out all the modifiers in the chat window for the roll, E.g.:

Broadsword ML: 75 Physical Penalty: - 15 Close Mode: -10 Broadsword EML: 50

That way it's clear to GM and players that they've accurately applied the mods.

At a minimum this would be a major effort and a major enhancement; which I would leave as tabled.

scooper4711 commented 3 years ago

I was thinking something simpler. Just remember whatever was input last time and use that. Ie close combat penalty - probably lasts for the whole combat. If the user inputs -10, then next time the modifier field is prepopulated with -10

toastygm commented 3 years ago

Thank you both for the comments, particularly Patrick for the detailed writeup. That puts a whole new spin on this.

I really don't like the idea of "remembering" the last penalty; it seems too much like something that would be easy to get in the way or cause problems for players. I certainly would be annoyed by it.

That said, I think I have a solution for this: buffs/debuffs. I can support a mechanism where you specify a certain buff to a certain skill (or possibly a class of skills/attributes or all rolls), and those will apply to the appropriate rolls. So for instance you could apply a debuff of -10 for Albinism to all skill rolls, and that would apply when rolls are made. These buffs/debuffs could either apply permanently (until removed), or stay on for a certain amount of time, or even for a certain number of combat turns.

In this way, the buffs/debuffs could be stacked (multiple on at once) and added to/removed from at will.

How does that sound?

scooper4711 commented 3 years ago

Are you talking effects? I think that would be a great way to implement this.

toastygm commented 3 years ago

Yes, Active Effects are the FVTT feature that would implement Buffs/Debuffs.

toastygm commented 3 years ago

BTW, duration is specified either in combat turns/rounds or in game world time (e.g., 2 minutes or 1 hour or 3 days, etc., in-world time).

jpmcdonald commented 3 years ago

This sounds like a great solution to me.

toastygm commented 3 years ago

This was implemented using Effects (Active Effects) in version 1.1.0