TheOracle icon indicating copy to clipboard operation
TheOracle copied to clipboard

legacy tracks + automatic xp calculation for PCs

Open rsek opened this issue 4 years ago • 2 comments

i'd like to take a crack at these, building on the Progress classes established in my Clocks PR. Starforged's only source of XP is via legacies, so total XP earned could be calculated from that.

interactivity required per track (buttons/menu options):

  • progress roll vs. legacy track
  • 5 Mark Legacy elements (to cover each challenge rank)
  • (optional) "Epic+" mark legacy, to cover the various assets that allow a player to mark a reward 1 rank higher
  • at least one way to clear progress. i'm thinking two amounts: 1 box and 1 tick.

that means there needs to be at least 21 interactive elements to cover all standard legacy functions. for incrementing/decrementing, that could be handled by using a select menu to pick which legacy track to manipulate + how to manipulate it, then an ephemeral follow-up with buttons to pick the amount.

questions to answer:

  • how should it be noted in the database? all that would really be necessary is the number of ticks on a track; unlike regular progress tracks, legacy can accumulate more than 40 ticks.
  • how should they be displayed on the character widget? would some sort of "paging" mechanism make sense?
  • how should Legacy over 10 boxes be conveyed?

rsek avatar Jan 11 '22 10:01 rsek

another possibility, now that the character DB exists, would be a slash command to mark legacy for that character!

rsek avatar Jan 11 '22 10:01 rsek

some more notes:

  • how could legacy be displayed to the user?

    • i have a simple embed-based display ready with the class. it could be a "collapsible" part of the character sheet. it can live in its own embed separate from the character since multiple embeds per message is possible now :D
    • ideally it'd have a nice component to interact with, but if i stick with a slash command as the MVP, a simple text note saying "mark legacy with the /legacy command" will suffice.
  • how could legacy be marked? i reckon the MVP here is a single method, probably a slash command

    • slash command example: /legacy [legacyname] [autocomplete:pcid] [rank/amount]
    • components embedded in legacy display, as noted above
  • how could legacy be rolled?

    • legacies are rolled on occasion, but it's rare. so i'd hesitate to dedicate a command to it atm.
    • exposing the ability to roll legacies via contextual elements might be wiser
  • where would it be useful to present message components to view/interact with legacies?

    • MVP: some text conveying "hey, don't forget to use /legacy to mark your legacy" in the footer or something.
    • when making a progress roll from a quest track
    • when making a progress roll from a connection track
    • when making a progress roll from an expedition track
    • when displaying an asset or move that mentions marking a track
    • when making any progress roll?
  • how could non-legacy xp be handled?

    • to my knowledge, the only place that non-legacy XP is granted is from e.g. Overcome Destruction, where one or more assets are lost
    • the MVP of this would probably be a "refund xp" command
    • a more structured version is possible. as in, a formal component/command to destroy a ship and refund XP via overcome destruction :D but that level of detail is a way off, if its even a direction we want to go
  • speaking of assets - is some sort of asset management system for PCs possible? it might be cool to have a command to buy assets/abilities for a specific PC and have them tracked

    • but that's a whole undertaking on its own and definitely needs its own PR

rsek avatar Jan 22 '22 12:01 rsek