Skip to content

Commit

Permalink
Merge pull request #52 from crash1115/dev
Browse files Browse the repository at this point in the history
v0.6.0
  • Loading branch information
crash1115 authored May 18, 2021
2 parents ac70e25 + a580ed2 commit 7b80718
Show file tree
Hide file tree
Showing 47 changed files with 2,762 additions and 1,361 deletions.
113 changes: 10 additions & 103 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,116 +1,23 @@
![GitHub All Releases](https://img.shields.io/github/downloads/crash1115/5e-training/total) ![GitHub Releases](https://img.shields.io/github/downloads/crash1115/5e-training/latest/total) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/crash1115/5e-training?label=latest%20version)

# Crash's Tracking & Training (5e)
Does your group do a lot of downtime activities? Do you have a hard time keeping track of it all? Then this is the mod for you!

Tracking & Training is a module for the dnd5e system in Foundry VTT that adds a tab to all actor sheets (character and NPC) that lets you add and keep track of downtime activities. Finally working on that History proficiency? It's in here. Learning how to use thieves tools? In here. Need to keep track of how much of the town's water supply you've accidentally (I hope) poisoned? If you can measure it with a percentage, you can track it in here.

[![Image from Gyazo](https://i.gyazo.com/7f072b341c266eed397c772b0328c542.png)](https://gyazo.com/7f072b341c266eed397c772b0328c542)

## Example Uses
Check out some examples for how to use the module [here](/examples.md).

## Multiple Progression Systems
There are three core ways to track activities in this module, and one extra fancy bonus way:

**Simple Progression** is exactly what it says on the tin. Every attempt to progress the activity adds one to the progress score. Just set the completion threshold based on the number of attempts you'd like the activity to take. This is handy for things with static requirements like scribing spells, or anything you just need a simple way to track. Hence the name, Simple Mode.

[![Image from Gyazo](https://i.gyazo.com/5f7d0c52b2e1632dceebe94f5de842d4.gif)](https://gyazo.com/5f7d0c52b2e1632dceebe94f5de842d4)

**Ability(/Skill/Tool) Check Progression** is the fun stuff. When you set up an activity that uses this mode, you also select an associated ability, skill, or tool to go along with it. Every attempt to progress the activity prompts the player for an ability/skill/tool check. Currently, this uses the core 5e roll system and prompts for advantage/disadvantage, and modifiers. The check is rolled, and the total gets added to the progress score.

[![Image from Gyazo](https://i.gyazo.com/83287fa524afe4fc618d0c9014b66bff.gif)](https://gyazo.com/83287fa524afe4fc618d0c9014b66bff)

**Check With DC Progression (v0.4.0+)** is a hybrid of the first two modes. This progression mode prompts the player to make a skill, ability, or tool check against a set DC. If the roll is successful, the progression score increases by one. If the roll fails, no progress is gained. Currently, this uses the core 5e roll system and prompts for advantage/disadvantage, and modifiers.

[![Image from Gyazo](https://i.gyazo.com/75ff889b77d7a3e1aced719503cf3eeb.gif)](https://gyazo.com/75ff889b77d7a3e1aced719503cf3eeb)

**Macro Progression (v0.5.0+)** is the fancy stuff. Throw in the name of a macro you'd like to run when you click on an activity, then reference this module's API to do all sorts of neat stuff.

## Customizable
Several settings allow you to get the functionality you want out of the module. Current settings allow you to:
- Enable and disable the tab on actor sheets.
- Customize the name of the Downtime tab. Wanna call it "Training" because you only use it for skill proficiencies? You got it. Need to call it "Oh No, Not Again" because your players are just *like that*? You can do that, too. I've totally been there.
- Set defaults for each type of downtime activity progression. If you want really slow progression, you can make it happen. If you want to really reward your players for taking the time to train stuff by letting them do it quickly, you can do that, too. Go wild. Find whatever works for you.
- Choose which types of actors display activity completion notifications.
- Choose whether or not to show the activities tab to players, or only the GM.

## Speedy Progress Updates
You know what sucks? Accidentally rolling with disadvantage when you didn't mean to. If something gets messed up, or if you need to adjust a progress value quickly, we got you covered. You can edit progress values right from the activity's entry! The input accepts relative and absolute values, so entering "-15" will subtract 15 from the progress total, and entering "57" will set it to 57.

[![Image from Gyazo](https://i.gyazo.com/338f2a9c664e7f0361fb8721ba85ad72.gif)](https://gyazo.com/338f2a9c664e7f0361fb8721ba85ad72)

## Activity Completion Notifications (v0.2.0+)
Want the whole world to know your ranger finally finished that Animal Handling proficiency that they should have taken at level 1? You can do it. Want to broadcast the completion of each stage of the BBEG's plans? You can do that too. Set the module to display chat cards for PC's, NPC's, both, or neither if that's your jam.
[![Header Image](https://raw.githubusercontent.com/crash1115/5e-training/master/media/cover.png)]

[![Image from Gyazo](https://i.gyazo.com/134ff41df1018f6057b46f799fd22843.gif)](https://gyazo.com/134ff41df1018f6057b46f799fd22843)

## Audit Log (v0.3.0+)
Sometimes we forget things. Sometimes we mess up. Version 0.3.0 of the module adds a handy change log so you can keep track of what's been done. GM's have the ability to dismiss items from the log so it doesn't get cluttered up with stuff you did last year.

[![Image from Gyazo](https://i.gyazo.com/5fa7f966fd12c3ad321bb2bf4359be55.png)](https://gyazo.com/5fa7f966fd12c3ad321bb2bf4359be55)

## Localization (v0.3.0+)
This module includes support for localization. Currently supported languages are:
- English
- Korean
![GitHub All Releases](https://img.shields.io/github/downloads/crash1115/5e-training/total) ![GitHub Releases](https://img.shields.io/github/downloads/crash1115/5e-training/latest/total) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/crash1115/5e-training?label=latest%20version)

If you'd like to contribute, please get in touch with me or create a pull request (use the `dev` branch) with your translations. For existing translations, new keys may get added as the module is updated so keep checking back to make sure you're up to date.
Does your group do a lot of downtime activities? Got a lot of factions? Need a simple quest log or timer? Do you have a hard time keeping track of... well... anything? Then this is the mod for you!

## Compatibility
### Supported Modules
- Should work with most alternate sheet modules
Tracking & Training is a module for the dnd5e system in Foundry VTT that adds a tab to all actor sheets (character and NPC) that lets you add and keep track of just about anything you can keep track of with a number and a progress bar. Finally working on that History proficiency? It's in here. Learning how to use thieves tools? In here. Need to keep track of how much of the town's water supply you've accidentally (I hope) poisoned? Quest progress! Countdown timers! Faction reputation! If you can measure it with a percentage, you can track it with this module.

### Unsupported Modules
- Obsidian (no plans to support at this time)
- MARS 5e (I'm currently looking into what it'll take to support this, but haven't yet had the time)
## How To Use
Check out the [wiki](https://github.com/crash1115/5e-training/wiki) for instructions, screenshots, sample macros, compatibility info, API documentation, and more!

## Got Questions? Find a Bug?
Contact me on Discord (CRASH1115#2944) to chat, or create an issue right here on GitHub.

## Attributions and Special Thanks
- Thanks to platypus_pi for help with English localization
- Thanks to KLO#1490 for Korean localization
- Thanks to hmqgg#5775 for Chinese localization
- Thanks to platypus_pi for help with English translations
- Thanks to KLO#1490 for Korean translations
- Thanks to hmqgg#5775 for Chinese translations
- Thanks to MS-PBS for Spanish translations

## License
- This work is licensed under a [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/legalcode).
- This work is licensed under the [Foundry Virtual Tabletop EULA - Limited License Agreement for Module Development](https://foundryvtt.com/article/license/).


# API Info
This is sort of a work in progress, but here's what's available.

### CrashTNT.updateActivityProgress(actorName, itemName, newProgress)
Ex: `CrashTNT.updateActivity("Nazir", "Smithing Proficiency", 75)`

Params
- `actorName` is a string that matches the name of the actor that owns the Activity you'd like to change. It's case sensitive.
- `itemName` is a string that matches the name of the Activity you'd like to updatee. It's case sensitive.
- `newProgress` is an integer. This is the value you'd like to set the activity's progress to.

Returns
- Nothing. This method will update the selected Activity, replacing the value of the `progress` property with the value provided.

---

### CrashTNT.getActivitiesForActor(actorName)
Ex: `CrashTNT.getActivitiesForActor("Mary Sue")`

Params
- `actorName` is a string that matches the name of the actor you'd like to get activities for. It's case sensitive.

Returns
- An array of Activity objects

---

### CrashTNT.getActivity(actorName, itemName)
Ex: `CrashTNT.getActivity("Val Fletcher", "Craft Magic Armor")`

Params
- `actorName` is a string that matches the name of the actor that owns the activity you're trying to get. It's case sensitive.
- `itemName` is a string that matches the name of the activity you're trying to get. It's case sensitive.

Returns
- An single Activity object
61 changes: 41 additions & 20 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,27 @@
# Change Log
# Version 0.6.0 (Foundry 0.8.x)

## Version 0.5.0
NOTICE: This version will prompt you to perform a migration that will automatically update all of the items tracked on your actors to a new data structure. Please back up your data before installing this update. If the migration fails for any reason, please reach out to me and I can try to help you fix anything that breaks.

New Features
- Compatibility update for Foundry 0.8.2+. This version will not work with Foundry 0.7.x. Previous versions remain compatible with Foundry 0.7.x.
- Enhanced the tracked item creation and edit workflow.
- Users can now create categories and add tracked items to them.
- Users can now add images to tracked items.
- Users can now change the progression type of an item when you edit it.
- Completed items will automatically get "checked off" in the tracking tab so you can easily see what's been done.
- User can now export and import all tracked items on a per-actor basis. Importing allows you to overwrite, or merge with existing activities. Merge serves as a way to copy activities between actors.
- New and improved documentation. Check out the wiki on the github repo for sample macros, API info, screenshots, use instructions, etc.

Fixes
- Added warnings when a macro activity gets run but errors occur.
- Removed several module settings that weren't used very often.

Breaking Changes
- Using Compatibility Mode in Ethck's Downtime Tracking breaks the category functionality in this module. Works fine separately.
- All the non-english translations are definitely out of date.


# Version 0.5.0 (Foundry 0.7.x)
- Fixed an issue where activities would not roll when Better Rolls was enabled.
- Fixed an issue where the roll indicator wasn't displaying on hover.
- Added a setting that allows the user to make the character sheet wider when it opens. This is a client-specific setting, so users can change it as they need to if they're using different sheets or have different preferences.
Expand All @@ -10,39 +31,39 @@
- Added the ability to set a macro to run when an activity gets rolled
- Opened up an accessible API and added the `updateActivityProgress`, `getActivitiesForActor`, and `getActivity` methods in order to facilitate macro use.

## Version 0.4.11
# Version 0.4.11
- Fixed an issue where the downtime tab would attempt to display on actor sheets inside compendiums and throw some errors.

## Version 0.4.10
# Version 0.4.10
- Compatibility patch for Tidy5e v0.4.x. It's not pretty, but you can see the buttons now.

## Version 0.4.9
# Version 0.4.9
- Compatibility with Foundry 0.7.9 and dnd5e 1.2.0

## Version 0.4.8
# Version 0.4.8
- Compatibility with Foundry 0.7.6 and dnd5e 1.1.0

## Version 0.4.7
# Version 0.4.7
- Added the `CrashTrainingTabReady` hook, which fires when the downtime tab is ready. Example usage:
```js
Hooks.on(`CrashTrainingTabReady`, (app, html, data) => {
console.log("Crash's Tracking & Training (5e) | Downtime tab ready!");
});
```

## Version 0.4.6
# Version 0.4.6
Improvements:
- Changed the way activity data is updated behind the scenes so things don't explode for no good reason. Special thanks to Ethck#6879 for slogging through it with me.
- Added Chinese localization thanks to hmqgg#5775

Fixes:
- Fixed a bug where the names of the rolls were displaying as ??? in the audit log. This doesn't fix any activities that have been logged as ??? already, but will prevent them from saving that way going forward.

## Version 0.4.5
# Version 0.4.5
Compatibility patch for 0.7.1+
- Modifies the way flags are updated to prevent data loss when using Foundry core versions higher than 0.7.0

## Version 0.4.4
# Version 0.4.4
Improvements:
- Added the ability to select tools in addition to skills and ability checks. Tools are limited to those the actor has in their inventory. This means they're not available on NPC sheets.

Expand All @@ -51,34 +72,34 @@ Changes:
- "DC" progression mode is now called "Check with DC".
- Together, these modes are referred to as "Check-Based" progression modes, since they both utilize checks. You'll see them referred to this way in the module settings.

## Version 0.4.3
# Version 0.4.3
Fixes:
- Enhanced compatibility with Ethck's very cool downtime module. Clicking things will no longer open dialogs from two modules, and styles no longer wreak havoc with one another.

## Version 0.4.2
# Version 0.4.2
Improvements:
- Added an option to toggle the display of the downtime tab on NPC sheets independently.

Removed:
- The downtime tab no longer shows up on vehicle actor sheets.

## Version 0.4.1
# Version 0.4.1
Improvements:
- Added a description field to the add/edit dialogs so you can add notes to your downtime activities. Clicking the activity's name on the downtime tab will display the notes.
- Changed the default option in dialogs from 'No' to 'Yes' so hitting Enter submits the dialog rather than closing it.

## Version 0.4.0
# Version 0.4.0
New Features:
- Added a DC progression type. This is a hybrid between Simple and Ability Check types. When you create a downtime item of this type, you can select the number of successes required to complete the activity, a skill or ability associated with it, and the DC of the check. Passing the check will increase the success count by one. Failing the check will not increase it.

Improvements:
- You can now select skills when selecting what kind of ability check to roll for Ability Check progression

## Version 0.3.3
# Version 0.3.3
Improvements:
- Added some missing Korean language translation keys, courtesy of KLO#1490

## Version 0.3.2
# Version 0.3.2
Improvements:
- Increased width of progress adjustment column to allow for larger values
- Updated styling for the activity completion notifications
Expand All @@ -90,11 +111,11 @@ Removed:
Fixes:
- Fixed some styling for the item control buttons

## Version 0.3.1
# Version 0.3.1
Fixes:
- Fixed an issue where enabling MQoL's Item Delete Check setting prevented downtime activities from being deleted on some character sheets.

## Version 0.3.0
# Version 0.3.0
New Features:
- Added localization support. Currently we've only got English, but if you'd like to contribute, please get in touch!
- Added a setting to allow the GM to choose which actor types trigger the display of chat messages upon activity completion. This can be set to PC's only, NPC's only, Both, or Neither.
Expand All @@ -111,7 +132,7 @@ Fixes:
Behind The Scenes:
- Converted several repeated blocks of code into functions for quicker use and readability

## Version 0.2.0
# Version 0.2.0
New Features:
- Added chat messages when activities are completed
- Sped up the flow for creating new downtime activities
Expand All @@ -123,5 +144,5 @@ Fixes:
Behind The Scenes:
- Refactored some things to allow for easier additions of more progression systems

## Version 0.1.0
# Version 0.1.0
Initial Release
Loading

0 comments on commit 7b80718

Please sign in to comment.