moo-man / AoS-Soulbound-FoundryVTT

The official system for playing the Warhammer Age of Sigmar: Soulbound RPG on Foundry Virtual Tabletop
GNU General Public License v3.0
10 stars 12 forks source link

Quick Mettle manage during combat #30

Open Kasyks opened 3 years ago

Kasyks commented 3 years ago

Mettle is the most used attribute during a combat which have to be changed after each additional action/attack and there is no easy way to manage(now you have to go to character sheet and edit current value). GM also can easy check how much mettle everybody have in this point of combat. End in the new turn everybody, who have at least 1 total mettle, regain 1 mettle. Maybe it can be solved in better way....

Propositions:

  1. add third attribute bar for current Mettle quick manage obraz

  2. Add Mettle to encounter tab. Rules:

    • visible only for MG
    • display current Mettle/Total Mettle on bar for every player/NPC even for these which have total Mettle 0. Can happened that Mettle will be granted to character with total Mettle 0 as temporary effect during current combat and modify character sheet make no sens.
    • "re-fill" Mettle button (manage by MG only) will add 1 Mettle for every one(defeated excluded) who is on encounter list and have total Mettle 1 or more. Using "re-fill" button cant go with current Mettle value over total Mettle
    • Plus button beside current Mettle value field on bar should allow add mettle over total Mettle (short temp special effect from spell or something else, useful during this turn/combat and not important letter so the is no sense to modify character sheet). I know that these +/- button dont look great but clicking button is much faster then mark the value and input new value from keyboard. Maybe drop list with values 0-7 will be better ..i dont know. But manage Mettle on encounter tab will be much faster for GM then edit value like in point 1(which also will be available for GM and players)
    • When encounter list is cleaned, all player character should have set current Mettle equal to total Mettle and the same for all other NPC on list.

obraz

Edit: I see that Mettle can be displayed on bars from point 2 but cant be modified there.

moo-man commented 3 years ago

Thanks for the detailed description, regarding option one, I assume since wounds aren't editable they could be replaced?

Kasyks commented 3 years ago

I did some research in available modules almost all can be covered by 3 modules(maybe will be useful for someone): 1.Combat Enhancements - add in Encounter tab editable field which is connected with token bar1. Problem is that when I set in token bar1 mettle.value the editable field which should display value is disappear. For wound and toughness is work great. I assume the reason is that there is no defined Attribute Bar in token attribute for mettle like for the wound and toughness. I dont know if also health word is not required in attribute name. The other problem is that there is no mettle.total to choose in Combat Tracker Setting -> Tracked resource so i cant set it as fixed value to know max mettle from encounter tab.

obraz

### Two Propositions: Please add new Attribute Bar in token configuration "combat.health.mettle" like for the combat.health.wounds/toughness obraz

Please add new Tracked Resource combat.mettle.total in Combat Tracker Resource obraz

  1. Resource Icons - I can add mettle.total over the token
  2. Bar Brawl - allow add bar3. but as you can see there is no bar for mettle because of lack of Attribute Bar for mettle. obraz

And the last thing - add 1 mettle to current value for all alive in encounter bar if they have mettle.total>0 and mettle.current<=mettle.total. Maybe there is possibility to create a macro which can be placed in hotbar?

Vendare commented 3 years ago

You can create a script macro to grant focus to all tokens on the canvas who have mettle, are not already full and inCombat mode :

let tokens = canvas.tokens.ownedTokens.filter(t => t.inCombat === true);
for(let token of tokens) {
    let mettle = token.actor.combat.mettle;
    if(mettle.total > 0 && mettle.value < mettle.total) {
        token.actor.update({"data.combat.mettle.value" : mettle.value  + 1});
    }
}
Kasyks commented 3 years ago

Thank you, working great :)

Maybe you can tell me how to add (or maybe it is not possible or require too much changes)? new Attribute Bar in token configuration "combat.health.mettle" like for the combat.health.wounds/toughness new Tracked Resource combat.mettle.total in Combat Tracker Resource

Vendare commented 3 years ago

Looking at other systems foundry needs Objects that work as a token bar to have the properties value and max. So mettle.total would need to be renamed to mettle.max and it should work as a token bar.

Kasyks commented 3 years ago

Vendare Attribute bar mettle working as I expected, thx :)