Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Improving the combat system #2013

Open
IHappyEndI opened this issue Oct 28, 2024 · 21 comments · May be fixed by #2017
Open

[Feature Request] Improving the combat system #2013

IHappyEndI opened this issue Oct 28, 2024 · 21 comments · May be fixed by #2017

Comments

@IHappyEndI
Copy link

IHappyEndI commented Oct 28, 2024

Good afternoon. Is there an option in the system to add default macros for an attack and be able to respond to this attack (for example, a button with defense in a chat)?
An example of how this is implemented in a different system for gurps:

example.mp4
@chrismaille
Copy link
Contributor

chrismaille commented Nov 1, 2024

We have several requests to improve GGA combat and have thought about this quite a bit. I would like to share my mindset and what I have for the next release about this.

I think we can divide the combat, for the GM, in two moments:

  1. I need a quick combat. Too many tokens, tons of rules, many details to remember. That is, I believe, where VTT must shine - let the GM be focus with the roleplay than trying to remember if maneuver X has step movement.

  2. I need a realistic combat. Forté of GURPS, this is the time when everyone thinks strategically. At these moments, I think that both GM and players agree that the VTT is just a boardgame.

A typical combat, ideally, should permit alternate between these two moments at ease - for different tokens or even for the same token.

I believe the best place to start the needed modifications in Foundry is the Combat Tracker. The following solutions are ready to test:

The "Auto-Dodge" Button

Select the token and click on the auto-dodge button. When you select that token (using Foundry's targeting system) and roll an attack, the system will roll the dodge roll for the token. And if dodge fails, system will automatically roll damage for the attack maded.

image

GGAAutoDodge

The Maneuver Button

For each token, there is now a Maneuver button, showing the current maneuver for that token. To change maneuver, just click on the button and choose the new one. (the initiative number is now in the token image tooltip)

image

GGAManeuverButton

These are the first initiatives for this release. This work is complex and it is safer to go in stages. For example, the next stage is to reflect on the "auto-dodge" logic, the maneuvers effects. Yes, feint, deceptive attacks and other nasty things to develop.

I know @IHappyEndI, this is not what you expect, based on the original message. But I believe this can be a good start.

Let me know if this helps with this issue.

@IHappyEndI
Copy link
Author

@chrismaille This is a great addition that will speed up the battles! But still, for me as a GM, the main problem is the immersion of players, which collapses very quickly due to the clutter of the interface. Remember the modifiers, put them in a "Bucket", then open the sheet and select the attack you need. These actions are often monotonous and repetitive, but take a lot of time. For me, as a GM, this is not a problem because I prepare everything in advance, but it is a problem for the player. It would be nice to have support for the part related to the player's experience with the system, and then with the GM. One of the good solutions I saw in "The Witcher TRPG" system, where there are also many options for attack, and it was the interface for choosing maneuvers and modifiers when clicking on an attack. It looked about the same as in the video example I indicated at the beginning of the request, and the defensive response was to click on the attack in the chat and select the "Defense" option, which opened a similar window. It would be nice to see this in this system as well. Gurps is my favorite system, but because of the low automation, it is very difficult to lure players into it.

But in any case, thank you so much for your work in this direction!

@mjeffw
Copy link
Collaborator

mjeffw commented Nov 1, 2024

@chrismaille and @IHappyEndI We may not be able to do this level of automation. Steve Jackson Games gave @crnormand permission to make the GURPS Foundry system on condition that we don't make it so "we play the game for the user". Auto dodge is a step in that direction.

Placing the options in chat or combining them with another action on the sheet should be possible, though.

@mjeffw
Copy link
Collaborator

mjeffw commented Nov 1, 2024

Also, if you use Token Action HUD the players don't have to open their character sheets to select their maneuvers or attacks.

@chrismaille
Copy link
Contributor

chrismaille commented Nov 1, 2024

Good points. Let me try to unite the points @mjeffw .

  • Auto-Dodge - If SJ Games permission says "do not play the game for the players" then this button it's clear off limits. We need to rethink or remove.
  • The HUDs - Both ARGON Combat HUD and Token Action HUD can simplify the character sheet and/or token handling. No issues here.
  • Bucket calculations? The point @IHappyEndI mentioned. It's a grey area? Suppose the player choose a maneuver which gives to them +2 for all defense rolls in that turn. Automatically add +2 on the bucket every time the players rolls his defense check can be considered "playing for the user" too? How about more complex scenarios, like feint or simpler, like aim?

@StefanLeng
Copy link
Contributor

With the module Categorized Character Sheet I plan to walk this balance by presenting the situation appropriate modifier OTFs dynamicaly on the sheet, but not appling them automaticaly. This way, also the fexibility to ignor or alter rules is unaffected.

@mjeffw
Copy link
Collaborator

mjeffw commented Nov 1, 2024

This way, also the fexibility to ignor or alter rules is unaffected.

This is also a good point -- GURPS players, more than any other system I've observed, want to apply or ignore or modify even basic/core rules. I just had another request to add custom attributes to the system, for example.

@chrismaille
Copy link
Contributor

Agreed. It's seems the "suggest before roll" is a good solution. Let me cook for a little.

@StefanLeng
Copy link
Contributor

StefanLeng commented Nov 1, 2024

What I am envisioning are three regions on the charactersheet, one for all situional attack modifiers, one for situational defence modifiers and on for situional damage modifiers that get populated automaticaly dependend on manuever, posture, active effects, chosen target etc.. And with a button to apply them all with one click, if desiered.

That would be much easier, if modifiers could from active effects could be categorized that way,...

@PrinceOfIonia
Copy link

PrinceOfIonia commented Nov 4, 2024

@chrismaille and @IHappyEndI We may not be able to do this level of automation. Steve Jackson Games gave @crnormand permission to make the GURPS Foundry system on condition that we don't make it so "we play the game for the user". Auto dodge is a step in that direction.

Placing the options in chat or combining them with another action on the sheet should be possible, though.

@mjeffw @chrismaille "play the game for the user" is an extreme vague term that needs to be defined more clearly. I would assume that "playing the game for the user" would mean near total automation for the entire combat round. Whereas right now the GM still basically has to decide how everything is handled specifically and what rules to use, and how to use them. This is nowhere close to total automation and I believe you guys have more room to spare here.

@chrismaille
Copy link
Contributor

chrismaille commented Nov 4, 2024

Hi @PrinceOfIonia, thanks for the message. To me, a clear and unambiguous definition of what can be considered "playing the game for the user" is: whenever the system rolls a die for the player.

With that in mind, I believe there is still room for improvements to the system - such as suggesting effects and/or modifiers for a specific roll, or changing the UI to reflect the player's intentions/needs.

Unfortunately, I now believe we cannot implement an Auto-Dodge mechanic - it's sad (and a little frustrating) for me - but we don't need to risk upsetting Uncle Steve - SJ Games is extremely protective of its intellectual property.

@PrinceOfIonia
Copy link

@chrismaille Ok, I don't want to be mean at all here, but I do need to point out my concern.

"whenever the system rolls a die for the player" is not a very clear term. Does clicking any of the yellow buttons on your character sheet count as "rolling dice for the player"? What about the damage calculator? What about those little chat-popups asking the player if they want to roll HT to avoid a stun check or whatever?

@chrismaille
Copy link
Contributor

Sure. No hard feelings. Let me rephrase the statement: "whenever the system rolls a die for the player instead of that player."

So, if you need to roll dodge after a successful attack and click on the yellow link - system is a good dog. If you need to check dodge and the system start to roll, without any action from you - bad dog.

  • Clicking on the yellow links (you decided and started the roll) - good dog.
  • Damage calculator sums the total modifiers for a single test, and apply to the roll you started - good dog.
  • Everything which "ask" or "suggest" a save, check or test, but did not start the roll - good dog.

Using this "Suggest before roll" mindset I'm working on new options for this issue - I'believe I can show to you on the next few days and we can go back to reflect if these are good solutions again.

I hope this makes it clearer that issue. But please, let me know if you have more doubts.

@PrinceOfIonia
Copy link

@chrismaille Ok, now I understand. Thanks for the clarification. As for the automatic dodge, perhaps having the system have a chat popup reminding the player if the targeted token wants to dodge would be a better solution? If that's still too far, one very helpful feature is keeping track of how many times a token has used an active defense for that turn. Like if they parried twice, and blocked once, then that is very useful info for the GM that I see they often forget.

@mjeffw
Copy link
Collaborator

mjeffw commented Nov 5, 2024

I agree with @chrismaille's interpretation of the SJG guidance. I do think that prompting the user is allowed.

I think there's a lot we're can do to make this a stand out Foundry system without violating our agreement with Evil Stevie.

I like the idea of recording how many defenses a token has rolled since its last turn. We could even leverage that to count number of turns aiming.

@chrismaille
Copy link
Contributor

Ok, round two.

These are the new Features planned for Release 4. I'll preview all of them here and I'll create a more detailed github issue for each one next week.

Let's start with the new toy in Combat Tracker. Auto-Dodge is gone - at his place we have a new button:

The Quick Roll Menu

Think this like is a Token Action HUD Lite (heh). When you click the new button you will something see this:
image

You can use the settings options to enable/disable/configure sections. This is a full example:
image

How can you add skills, spells, attacks and checks rolls to the Quick Roll Menu? Using the new Add to Quick Roll field in Item Editor Sheet.
image
image

Tagged Effect Modifiers

Now, Effect modifiers can be tagged. Format is <modifier> <description> <tags>.... Example: +1 GM's Luck #hit #damage #check

You can add the Effect Modifiers in two ways:

  1. On the original Effect Modifier dialog
  2. Inside each Actor Component or Item.

Let me give an example: suppose your clothes gives +2 to the Camouflage skill. On the Cloth Armor item you'll add:
image

In Effect Modifiers, you'll see something like this:
image

Now, on Camouflage skill I'll add the tags this skill must lookup, in the Mod. Effect Tags field:
image

When I roll the Skill, Bucket will show this:
image

Why? Because all skill checks look for the #check tag (automatically) and all the tags you defined in the Skill sheet. Every modifier found will be automatically added to the Modifier Bucket when you start to roll.

And since we have tags now...

Create Modifier Effects from Maneuvers automatically

In combat, system will automatically add and remove Effect Modifiers based on the Maneuver you select.

Let's give a example. Max Clever will fight against Cultist 3. On the first turn, Max selects Aim. On second turn you will see this on Max modifiers:
image

System adds the Acc for each ranged attack Max have. If he decides to attack, this is their bucket (for the #hit tags):
image

This feature works for Aim, Evaluate, bonus/penalties for AoA and AoD and accumulative Parry penalties per turn.

But if the system automatically adds the bonuses/penalties to the Modifier Bucket after I click for the roll, this means we need:

Confirmation Roll Dialog

Now we have a confirmation dialog, which shows after you click in a link roll, but before the roll is evaluated (works with OTFs too). On the example above, when Max clicks on the ranged attack, system will show this:
image

This means the GM or the player can review their Modifier Bucket before decide for the roll. This works for damage rolls too.

For the last:

Check for Attack or Defense roll based on Maneuver Selected

A small quality of life you can disable in settings. If you click on Attack or Defense roll, during combat only, system will check against the select maneuver for that turn.


All these options can be disabled in settings. This is important because I expect bugs, especially on the tagged modifier rolls and the combat maneuver effects - there is a insanely amount of possibilities to test for these two features.

I think these features can cover many requests for the combat system - not all of them - but we need to check how these features can really help on real games before look to the other requests.

Please let me know what you think. I'll still need another week to make sure system is stable, but all the code is already on the Pull Request, if you want to look, or even test (make sure you create a backup first!)

@IHappyEndI
Copy link
Author

@chrismaille Looks like a great update for battle combat! The only thing I would like to ask is whether it will be possible to change the values for automatic maneuver modifiers, as well as how they react to things like weapon master, etc. Of course, I see the possibility to add all these modifiers through tags in certain traits, but will there be any additional configuration of such modifiers for individual character sheets? Because having a master of weapons, you need to remember about the existence of Fencing Weapons, which will have a different penalty for multiple parries.

Well, and about the roll confirmation dialog. Is it possible to add the output of the list of applied modifiers there?

But so far it all looks great!

@chrismaille
Copy link
Contributor

chrismaille commented Nov 10, 2024

Weapon Master, Trained by a Master and Altered Time Rate got (limited) supported in the TokenActions class (which resolves the maneuver effects and parry penalties) - if you can send to me a GCS/GCA exported file with these traits, I can double check this initial support.

@PrinceOfIonia
Copy link

Will these new tags be detected via a GCS sheet? Or is it like OTFs, where you have to word your GCS sheet in a specific way to detect them by GGA?

@chrismaille
Copy link
Contributor

The tagged effects are placed inside the Modifier Effect Popout or inside each Actor Component/Item (spell, skill, traits, equipment) on the Actor Sheet. This means this information is not stored or needed on the original GCS/GCA files.

The expected behavior is, after every import, these effects are preserved on the actor sheet.

@IHappyEndI
Copy link
Author

@chrismaille Here, for example, is a character quickly made in GCS with a master of weapons. *The sheet is made in Russian
Тестовый персонаж.zip
I would like to test the new build myself, but I have a game in a couple of days and I don't want to take any chances yet, I apologize for that ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants