Giter VIP home page Giter VIP logo

arm5-sheet's People

Contributors

riernar avatar

Watchers

 avatar

arm5-sheet's Issues

[DEV] Use KScaffold for compilation

Requested feature

Use the K-Scaffold framework to build & compile the sheet, instead of prepros

Why:

  • K-Scaffold provide a large library of sheet component ready-to-use
  • K-Scaffold allows passing custom arguments to the PUG compiler, which prepros doesn't. This is necessary e.g. to load external files like the documentation or changelog directly into the sheet.
    Using PUG and Prepros would force a regression in this regard
  • K-Scaffold provides a powerful cascade system to implement sheet attributes that affect each other. It would allow:
    • To improve performances of the sheet by switching from autocal formula to wheetworker with minimal efforts
    • Make implementing further improvements of the sheet much easier

Alternative solutions

Keep using Prepros to compile the PUG and SCSS to HTML and CSS. This would be more in line with the current sheet building community.
However:

  • this forces a regression, because some functionnalities that were available during the python building won't be available with prepros (e.g. reading external files)
  • It forces a harder development environment, since helper code cannot be in external javascript files, where linting tools, autocompletion etc... works. This is not the case in javascript blocks inside PUG
  • It would mean re-implementing many systems and sheet elements that are already provided by k-scaffold

Additional context

@Riernar is a contributor to K-Scaffold

feat: Add Journal

Requested feature

Add a Journal to the sheet to register character evolution and note-worthy event. This is also discussed in the discord server and subsequent posts.

Add automation to that journal in a non-disruptive manner.

Objectives:

  • Enable player to store a timeline of events that happens to the character
  • Do not lock that journaling in a pre-dined format: for instance, multiple adventure may happen in the same season; regio may distort time; houserules may allow multiple source of XP; ...
  • Provide some automation for the journal, without impacting backward-compatibility not existing data

Proposed design:

  • the Journal is a nested repeating section. Each level may contain an arbitrary number of sub-levels. The levels are as follows:
    • The year level: Contains a "year" label and an input. The input is not restricted to number ", to support e.g. multiple year combined in one, a chargen entry, etc...
    • The season level: contains a "season" label and an input for the season. The season is not limited to the 4 standard season (for instance, some faerie mysteries give additional seasons in a year). The number of season entry in a year is not limited
    • The entry level: it contains a free-form textarea that the player may use to write & store any kind of information. Being free-form, it supports any kind of data, though not in a computer-pars able way. This is fine: the goal of this level is to allow storage of all relevant data for the player's benefit, not to allow automation.
    • The automation level: this level contains automation instruction for the entry they are part of. An automation instruction is a computer-understandable piece of data, that tells the sheet to perform some kind of operation. This is the level that perform automation. New automation instructions may be added over time. The data stored in that level is redundant with the free-form.

Proposed automations:

  • Ability XP: this automation instruct the sheet to add a particular amount of XP to an ability. To ensure backward compatibility and stability:
    • Abilities may be either manually managed (the player enters the XP value themselves) or automated, but not both. Automated abilities have a hidden attribute to mark them
    • The automation refuses to take other a non-automated ability, or to create duplicates.
    • When an automation entry is deleted, re-computation of ability XP occurs. For automated entries, this means summing up the relevant automation entry values, and storing the new XP value in the relevant ability (or deleting the automatically-created ability if it no longer has any entry).
    • When the value of an automation entry is modified, re-computation occurs.
      In particular, the distinction between automated and manual abilities is crucial: it avoids having to only add or substrat from the ability stored XP without a known starting point because the player may have modified that field. If that were the case, any modification failure of the sheet would result in an incorrect XP value, that could not be corrected: the amount to be removed would be gone from the sheet.
  • Arts XP: as for ability XP, we distinguish between manual arts and automated arts. Arts being managed by the journal automation are marked as such, and can't be directly modified by the player. This ensure the sheet can compute the correct XP at all times, even after a failure.

Note
To mix automation and a previous manual management the details of which have been lost, it is always possible to have an initial "chargen -> chargen -> Automation -> list of automation" entry in the journal, that merely list the old values. This explicite my register the starting value before automation, so that the automation system is safe.
Adding a button to convert an ability/art to such an entry could be useful, but is a nice-to-have.

Alternative solutions

  • Directly modifying current XP values: that is, automation entries adding or substracting from the current XP value, to directly support previous abilities/arts/... . This is brittle, because if the modification fails and e.g. the sheet has been modified already, the data require to compute the correct XP value is gone. Also, this prevent handling modification of the automation instruction value: when the sheet workers are fired, they no longer have access to the pre-modification value to substrat from the ability XP total before adding the new value. It would be possible to overcome that with additional attributes and code, but this design in inherently more brittle.

Additional context

Wizard Maker is a project in development to make a Character Generation software for ArM5. It is centered around the journal, and so much of their careful thoughts and designs could be leverage to avoid problems.

feat: Support Deidne spontaneous casting

Requested feature

Deidne spontaneous magic works differently:

  • Non-Fatiguing can be at /2 instead of /5, in which case we should roll a stress die to test for botches. That stress die is not added to the total
  • Fatiguing at /2 includes a built-in focus, which may be in addition to another focus

Alternative solutions

Using the current button works, but requires:

  • to manually deduce the rolled die when using a non-fatiguing with a /2
  • to manually compute the double focus when both Deidne Magic and A Fcous apply

Additional context

  • Since Deidne magic is a virute that hidden, it would be intersting to hide it from other players ?
  • Issue initially reported in a discord message

[FEAT] Split the "sheet" tab into modal windows

Requested feature

Leverage the new +modal mixin from k-Scaffold to remote the sheet tab and put it in modal windows.

Alternative solutions

N/A

Additional context

The sheet tab is awkward, taking space, and requires dedicated CSS to work properly

ci: Add CI/CD

Requested feature

Add a CI and a CD:

  • CI should:
    • compile the sheet and run tests (if applicable) in PRs and main branch
    • Verify that commit message conform to expected format for the main branch. For PR, check the PR title
    • Verify that github issue link systematically include the Org/repo prefix, to avoid mixup when merging in Roll20/roll20-character-sheets
  • CD should trigger on new github release and open a PR into the root Roll20/roll20-character-sheets with a release build

Alternative solutions

Manual release. Those are error-prone and painful due to the use of git subtrees.

Additional context

Tab reorganization master issue

Requested feature

This issue tracks proposal about changing how the tabs are laid out in the sheet.

All inputs are welcome

Proposed Changed

  • Split the "Lab" section into it's own page
    • Laboratoy are not limited to hermetic or magic characters, Natural Philosophers make use of them
    • Laboratory section doesn't support Lab Text, Philosophiae Formulae etc... A dedicated tab would provide the space to do so
  • Split the "Magic" tab into sub-tabs, one for each supported tradition
    • The current content becomes the "Hermetic" tab
    • Visible sub-tabs can be controlled in the settings (multi-selection allowed of course)
    • Add a section to compute Magic Resistance by summing Forms and Parma
    • See:

Alternative solutions

N/A

Additional context

N/A

[BUG] Logic: Leading `+` sign in lab quality breaks lab total computation

Describe the bug

When the general quality of a lab is written with a leading + sign, the computation of the lab total fails.

To Reproduce

  • Set the quality to e.g. +0
  • See the Lab Total field being incorrect

Expected behavior

The computation should be correct

Screenshots

N/A

Desktop

  • Browser: firefox
  • Version: ??
  • Sheet version: ??

Additional context

Reported in a Discord message

feat: add a journal to character sheet that modifies the sheet

Requested feature

A a time-orderer journal to the character sheet, where each entry has the ability to edit the sheet correspondingly: add XP in abilities/arts, age-up the character, add virtues/flaws or boons/hooks, add spells, add enchanted devices, ...

Alternative solutions

n/a

Additional context

n/a

bug: Additional fatigue level not implemented properly

Describe the bug

Additional fatigue levels are currently incorrectly handled. See RoP:M, p41 for correct rules.

To Reproduce

Go to the fatigue tab.

Expected behavior

Additional fatigue levels should follow the rules

Screenshots

N/A

Desktop

(please complete the following information):

  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]
  • Sheet version

Additional context

Reported in a discord message by Van Silke

feat: add a covenant sheet

Requested feature

Add a covenant sheet to enter covenants.

  • Boons & Hooks tracker
  • Library
  • Vis Source
    • Vis stock management
  • Enchanted Devices

Alternative solutions

N/A

Additional context

N/A

feat: use Custom Roll Parsing to properly support stress dies

Requested feature

The current stress die support is based on Roll20's dice system using clever hacks. It doesn't quite support the actual stress rolls, with e.g. critical & botches requiring a second roll, and botched rolls still having a non-zero value.

We can leverage Custom Roll Parsing to correctly implement rolls.

Alternative solutions

N/A

Additional context

When the current roll mechanism was built, CRP was not available

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.