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

Multi-character support #45

Closed
zkat opened this issue May 20, 2024 · 1 comment · Fixed by #368
Closed

Multi-character support #45

zkat opened this issue May 20, 2024 · 1 comment · Fixed by #368
Assignees
Labels
feature New feature or request

Comments

@zkat
Copy link
Member

zkat commented May 20, 2024

This ticket tracks multiple characters in a single campaign. See #104 for multiple campaigns (initially single character) in a vault. That appears to be the more common scenario.

Some notes on multi-character in a single campaign support:

  • Need to pick which character to use
  • Have to deal with shared meters and assets
  • Vows need to be associated with either a character or the party
  • Assumption: you need to switch PCs often-- every move could be with a different PC.
  • Assumption: it's okay to use the same folders for characters, tracks, clocks, etc associated with all PCs in one campaign.
@zkat zkat added the feature New feature or request label May 20, 2024
@zkat zkat moved this to Backlog in Iron Vault Roadmap Jun 26, 2024
@cwegrzyn
Copy link
Collaborator

cwegrzyn commented Jul 1, 2024

(Capturing something I wrote about this in discord for the record)

I think this shouldn't be too bad. Almost everything now calls into determineCharacterActionContext. A first (working but not very friendly) implementation would just have that prompt for a character to use instead of throwing an error. After that, would be easy enough to remember the last character selection (probably not in settings, in case you want to sync those) and add a command to change it, rather than prompting. For the most part, everything else should just flow from that.

The main challenges are:

  1. Shared tracks -- As a first pass, I think you could just play as-is, where everyone shares all tracks (that come from files). It's a bit annoying, but you could just use a naming convention to distinguish personal vs shared tracks. Full support shouldn't be terrible though, as everything should be listing progress tracks via ProgressContext (which itself already uses a CharacterActionContext for listing special tracks). We'd just have to add a property to track files that gives the path of the character it belongs to.

  2. Shared meters (e.g., supply) -- This is trickier. The manual as-is option is to have everyone keep their own supply in sync. We could eventually automate this-- maybe when you take/suffer on a shared meter in a multi-char setting, we could prompt whether you want that to apply to everyone or just you. This would also support party splitting (which I think technically isn't an option RAW for supply). Alternatively, we could add a "party" entity that, if it exists, would house all shared meters.

  3. Shared assets (e.g. starship) -- I think this looks a lot like shared meters. Manual as-is: just keep everyone in sync. Automation option 1 is use the shared asset field to determine whether we should replicate changes to an asset to all characters. Option 2 is move it to the party entity.

@zkat zkat self-assigned this Jul 3, 2024
zkat added a commit that referenced this issue Jul 3, 2024
zkat added a commit that referenced this issue Jul 4, 2024
@zkat zkat moved this from Backlog to In progress in Iron Vault Roadmap Jul 5, 2024
zkat added a commit that referenced this issue Jul 6, 2024
zkat added a commit that referenced this issue Jul 6, 2024
@zkat zkat closed this as completed in #368 Jul 6, 2024
zkat added a commit that referenced this issue Jul 6, 2024
@github-project-automation github-project-automation bot moved this from In progress to Done in Iron Vault Roadmap Jul 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants