mikelax/forgingadventures

Design Character Sheet Model, Storage, and Attributes

Closed this issue · 2 comments

Overview

In order to allow a user to join and actually participate in a Game, they will need to be able to create a Character to use for a Game. Having a character, and posting as a character will help give the Game a better theme and feel, as opposed to posts coming from "the user".

Requirements

  • As FA support multiple different Game Engines, and the rules engines for each distinct RPG rulebook can be quite complex, we will implement Characters in phases. FA will define a (very few) basic attributes that we will say every character will have. A Character will then have additional attributes that will be based on the given "Game Label" selected while creating the Character.
  • Once a Character has been created with a given Game Label, the User will not be able to edit the Game Label, it will be to complicated. They will have to create a new Character.
  • A Character should only be able to participate in a single Game at a time.
  • A Character should have a concept of a basic Audit Trail. This will allow the user, or GM, etc to be able to track Changes to the Character and see the progression over time.
  • It can be a basic table that will show fields: User that made change, timestamp, text description of change (composed of field, old value, new value).
  • Implement Character List that can return all characters or available ones. Available would be ones that aren't already in a Game.

Character Attributes

Here is the list of attributes that will be defined columns on the characters db table.

  • id
  • name
  • userId - fk to users table
  • labelId - fk to game_labels table
  • profileImage - jsonb, nullable
  • created, updated, deleted

TODO

Tasks

  • db schema & migrations
  • db seed files to load some sample data
  • objection models, apollo queries & mutations
  • Implement Character List on Profile Page
  • Select existing Character when Joining Game
  • Select existing Character on Game -> Players Tab
    • Display "Still working on it" for Users that haven't selected a Character yet

Resources and Links

@nazar here is the start of what I have for characters. Going to start working down the Task list, depending on progress might split some tasks into separate tickets.

nazar commented

A Character should have a concept of a basic Audit Trail

❤️