pjb518 / foundryvtt-level-up-official Goto Github PK
View Code? Open in Web Editor NEWAn official implementation of the Level Up: Advanced 5th Edition system for FoundryVTT.
License: MIT License
An official implementation of the Level Up: Advanced 5th Edition system for FoundryVTT.
License: MIT License
If two people are editing different Items at the same time, one person will lose their work, while the other will retain their work. It has been observed with the following conditions:
I didn't test if this issue also applies to Actors (Actor & Item, Item & Actor, Actor & Actor cases).
Add a getter on the Item Document get actions ()
that returns an ActionManager class. This should be the default interface for interacting with actions on an item.
actionManager.itemId
Object.entries(actionManager)
or actionManager
.Future improvements include sub managers for each action to easily get prompt data, Target data, roll data, and Consumers.
Refactor the existing interface for adding roll and prompt buttons to be less crowded.
This includes the following:
The current implementation of the token hp randomisation feature assumes that there is a valid hp formula to use. If a token's hit dice haven't been configured (decently likely if this is a user-created Actor), then the token's hp will end up being 0.
In cases where there are no hit dice configured, we should fall back to using the base Actor's max hp value instead.
Re-implement item rolling for our new actions system. This issue includes the following tasks.
Localize the item interface & switch any A5E imports to use global CONFIG
Currently, the data value for the Saving Throw Type is being saved in the Rarity field of the Item:
Additionally, "Effect of Successful Save" is not displaying in the collapsed view even when the field is populated:
Steps to reproduce Saving Throw Type issue:
Steps to reproduce Effect of Successful Save display error:
This will make it easier to populate things like staves with particular spells, for example.
The new text editor in use for Biography/Journal/Notes/etc. does not function properly in Firefox 97.0.1 (64-bit), but functions properly within the Foundry application and in Chrome 99.0.4844.51 (Official Build) (64-bit). This seems to apply for all text fields that previously used Tiny, both for PC and NPC sheets.
Details:
Create a radial menu for spells that allows for upcasting of spells. The menu pops up on when the roll icon for a spell is clicked. The menu displays numbers from spell level up to 9. Click hold and dragging to a number casts the spell at that level.
This can possibly be created with the use of TJSMenu
Change how senses data is stored and store it as the following
{
"value" : 0,
"unit" : ""
}
This helps remove the need for a custom handler for senses while implementing active effects.
An overview tab of your character sheet like the module tidy5esheet does would be need!
That would also give us the resources part where we can track things such as sorcery points or other stuff.
Another feature I'd like to see is an "always prepared" version of preparing spells for classes that just learn the spells and are not prepared casters.
Convert any leftover mockup text to localization keys.
Convert the Dialog configuration of the generic actor resource to use TJSMenu and be inline rather than be a TJSDialog
At the moment Inventory can get quite messy when a lot of items are added, so it'd be great to have either sections such as weapons, equipment, and consumables (similar to Foundry's built in 5e system) or the ability to move inventory within the sheet so that it may be organized as desired.
I feel like we should provide a temporary solution to actors consuming spell slots/points and exertion for 0.9.0 while we implement a proper resource consumer in 1.0.0
The following are the required migrations needed for 0.9.0:
I realise this is early on, and it requires the other side to get involved, but ACH is really good. Ta :)
For any non-basic maneuver, we should provide a checkbox in the item config to mark the maneuver as a stance.
Multiple issues observed when adding making modifications to an NPC Actor (both via the Foundry application and via web browser):
I'm seeing a lot of unregistered callbacks for hooks in the console, as well. Not sure if those are related, but hopefully it's helpful.
Implement sorting for item reducers.
Future improvement included custom sort when TJS DynMapReducers add support for sorting.
Add the broken condition to item data.
This includes the following:
Implement very basic chat cards for rolling actions. These are basically the same as our previous chat cards for items just in svelte. Additional functionality can be added in future versions of 0.9.x
Rework the system settings to use the TRL Library's provided API to get a svelte-based settings UI. This would allow us to provide a good an easy to create an interface for #29 and further complex system settings.
Add settings to allow GMs to add custom data to the world CONFIG.
This includes but is not limited to the following:
This can be accomplished by pulling the settings data while setting up the world and appending the settings data to the built-in config.
Currently, the skills config can't handle the addition of new skills but will do so in the future.
Implement helpers to make it easier to work with our new actions system data.
This includes but is not limited to the following:
get actions()
get activationTypes()
get prompts
...Implement jack of all trades for actors.
This task includes the following:
FoundryVTT-Level-Up-Official/src/documents/actor.js
Lines 216 to 218 in a1d2eb9
Update the placeholder item wrapper to show information about the item and it's actions.
This includes the following:
Unchecking "add proficiency bonus" doesn't work; immediately re-checks it. (Current workaround, add "-@prof" to the attack bonus field.)
Only a single instance of a character sheet can be opened at a time. Attempting to open an open sheet simply brings that sheet to the top of the pile. This currently isn't the case for our configuration dialogs. Clicking a given config button over and over again will repeatedly generate new dialog windows. This is undesirable behaviour.
The way that Foundry handles this is by storing a specific sheet instance internally on the actor or item when the sheet is first opened. On subsequent renders, the stored sheet is reused, and Foundry sheets (including dialogs) internally store their own rendered state. This prevents multiple instances of the same sheet being created and rendered.
I propose that we do something similar for our config dialogs.
When clicking the delete button for items on an actor sheet, we should provide an optional dialog to confirm the deletion. This will help prevent accidental deletions.
The new svelte version introduces a new handler for on:press
, we should replace all uses of on:click
with on:press
events. This helps us get rid of all the <!-- svelte-ignore a11y-click-events-have-key-events -->
comments and increases accessibility.
Add a warning while accessing actions via system.actions
to use the ActionManager instead.
Add a new checkbox to the movement configuration dialog where users can mark whether a creature is able to hover.
There are a few ways that we can go about storing the data for this new piece of configuration.
Option 1
"movement": {
"burrow": 0,
"climb": 0,
"fly": 0,
"swim": 0,
"walk": 30,
"hover": false
}
Option 2
"movement": {
"burrow": 0,
"climb": 0,
"fly": {
"distance": 0,
"hover": false
}
"swim": 0,
"walk": 30
}
Option 3
"movement": {
"burrow": 0,
"climb": 0,
"fly": 0,
"swim": 0,
"walk": 30
"traits": {
"hover": false
}
}
Open to other suggestions as well.
The sheets provided by this module are marked as incompatible with the PopOut! module for FoundryVTT. I removed the _disable_popout_module
property from the sheets and could not find any incompatibility when testing it. Is there a reason these incompatibility flags have been added?
In 0.9.x
, the click handlers on actor sheets allow for fast-forwarding initiative rolls by holding down alt while clicking the initiative button. This skips the roll dialog and rolls initiative using Dexterity as the default ability (like in 5e).
We need to add our own handlers for the initiative roll buttons in the main Foundry interface to match the sheet behaviour.
Provide a "spell modifier" shortcut in rollData
for users to reference. This can be in the form of @spellMod
.
References:
RollData can be made available in the actor.getRollData()
method.
FoundryVTT-Level-Up-Official/src/modules/actor/entity.js
Lines 243 to 267 in 627c07c
An example of how to get the spellcasting ability modifier can be found here.
Since this is an entirely new system instead of building on top of 5e, it is incompatible with 5e compendiums as well as pre-created 5e adventures or other community shared content.
Is this intended? It seems very odd for a system that promises "backwards compatibility"...
Edit: I just saw the note in the readme.
For anyone else that cannot read like me: Compatibility Note: Level Up is not based on the 5e system implementation in Foundry and 5e-specific modules should not be expected to work.
Bummer as I depend on too much 5e specific content to switch to this. I guess I will attempt to whip something up that works for my own needs. Cheers.
Loving the work so far, and I know it's super early days, but I was hoping for two things.
Thanks for your hard work, and looking forward to whatever comes of this.
Localize the actor interface & switch any A5E imports to use global CONFIG.
A line in the chat-card style sheet overwrites the backgrounds for all chat cards. While a minor change, and better for legibility, it's currently overwriting Foundry's default ability to visually distinguish between types of chat messages. In my game's use particular use case, it is impossible to tell when an incoming message is a single-target whisper. (A multi-target whisper includes a To: line indicating all recipients). There may be other scenarios this affects; for instance, different role types are also visually distinguished by the chat-card's background color.
Would you consider removing this change, or implementing other classes to maintain a visible difference between chat types?
Expected: Captured by using the development tools to nullify the background
attribute in the #chat-log .message
class. The lower card is a whisper, the top is not.
Current: Same cards, no modifications. The lower card is a whisper, the top is not.
Refactor the action svelte components to make use of #49.
Receiving the following error message when attempting to install the system.json from the link:
https://github.com/Pjb518/FoundryVTT-Level-Up-Official/releases/download/0.1.0/system.json
Installation failed: the "path" argument must be of type string. Received undefined.
Using Foundry Version: Version 9 - Build 242 - Stable
More config is needed to store additional information, such as prerequisites, crafting components, secret information, and so on.
Currently, the following information is required as part of 0.9.0
.
Add a new Svelte dialog for when a user triggers a rest to replace the old Vue version.
Actor sheets include a row of generic resources that users can use to track arbitrary numeric values (see below):
This section sits right above the favourites section and takes up about 77px once you include the spacing above and below. This is about the same as the space taken up by two features. Some users may not have any need for this resource bar, and would prefer to prioritise favourite features instead, so we should offer a setting to hide this piece of the interface.
Tasks are as follows:
showResourceInterface
should change to true
or false
as appropriate.false
and PCs should default to true
. Make sure the checkbox is checked as appropriate for these default.A PR for this issue should target development
as this is a 0.9.x
feature. It won't be back-ported to 0.8.x
.
We should test whether a roll formula is valid in the roll dialog and prevent form submission if submitting will result in an error.
This could be improved further by highlighting the specific roll terms which are problematic.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.