HouseRules

HouseRules

1.2k Downloads

Revamp how HouseRules info text appears on screens.

orendain opened this issue · 5 comments

commented

Comments from discord:

On PC version, you can only read part of the custom game rules at the start of the match. It’s covered up by the cards. Can you bring the rules forward so they are on top? Also, If there’s a lot of rules then they go below the screen and you can’t read them either. Can these be fixed?

Perhaps if they're static like on the side of the table like the book is for the map you're about to drop into or in a fixed position lol
Gets in my way too

commented

I got kind of annoyed by the long list of text since most of my rulesets use lots of rules so I trimmed my own down to just the House Rule welcome, name of the ruleset, and number of rules loaded.

commented

It would be good to have the option to provide a description at a ruleset level, and if provided it would replace the text generated by the individual rules.

Would be great if we can find a better location for the text. I always liked the idea of putting the House Rules up on the wall of the basement (using the same PaperBackground we do for the NonVR HouseRules menu), but unless they were using MuKen's WorldViewUnbound mod NonVR users would struggle to find them there. Maybe we can display them at the side of the table somehow though.

commented

What do we think of the following?

Goal

  • Display rules statically throughout each game.
  • Improve the helpfulness of descriptions.

Proposal

Display rules at the side of the table

Render a box, like the one we use for ruleset selection in VR, at the side of the table. This would appear throughout the game. The current welcome pop-up text would be shortened and most content moved to this UI.

We could optionally expose a config to toggle this display.

Modify rule descriptions to include how it's configured

Rewrite each rule's description, so that instead of:

Card additions are overridden.

We end up with something like:

Card additions are overridden:
    Guardian:
        Vortex
        Fireball
    Warlock:
        Sneak
        Arrow
        Fireball
    Bard:
        SongOfResilience
        HealingPotion
        Bone

Deciding on formatting could be done separately (I see now we may need to go with commas to reduce total height).

We could optionally expose a config to toggle the displaying of rules.

Allow longer ruleset descriptions

Add a second description field to rulesets, which if provided it would replace the text generated by the individual rules or could serve as background/lore/context. This description would appear in the in-game UI along with everything else.

commented

Some of our JSON ruleset are very large.. Arachnophobia (in JSON form) is 581 lines long. The StatusEffectConfigOverridden rule take verbose config which is very repetitive and as with most of our Overridden rules you're often specifying many config values which are the same as the originals used by the game,

I think the only change from the default config in the example below is the durationTurns.

      "Rule": "StatusEffectConfig",
      "Config": [
        {
          "effectStateType": "HealingSong",
          "durationTurns": 5,
          "tickWhen": "EndTurn",
          "stacks": true,
          "damagePerTurn": 0,
          "clearOnNewLevel": false,
          "damageTags": null,
          "healPerTurn": 3,
          "healthBoost": 0,
          "killOnExpire": false,
          "counterAttackDirections": 0,
          "counterAttackDamage": 0,
          "applyAfterDissipate": "Diseased",
          "useOnDissipate": 0
        },

Even with neat text formatting it's going to be hard to cram all of that onto a single pane unless it's either a very large pane, or very small text, and I'm not sure that displaying all of this is going to be particularly helpful.

I'm wondering if each rule within a ruleset should have the option for a user-provided string description. I can sum up 100 lines worth of the Acachnophobia ruleset as 'Bard song-based buff effect durations changed to allow the bard to spend more time fighting when allies are fully buffed.' - This conveys the reasons why the rule exists, rather than the specifics of the change. (A bit like the practice of putting the 'why' in the git commit message, rather than the 'what changed' which is obvious when you look at the code).

A per-rule user-provided description might be a better fit than a ruleset-wide description. That way, if you are copy/pasting rules between different ruleset files, then the correct description would go along with them. We would of course still want to autogenerate text when a description hasn't been supplied.

Rendering a box at the side of the table would certainly be a big improvement over the current in-your-face text that we have right now though.

commented

I believe we've handled this with commits 479 and 480