Skip to content

Commit

Permalink
Merge pull request #17 from crash1115/dev
Browse files Browse the repository at this point in the history
v0.4.0
  • Loading branch information
crash1115 authored Jul 19, 2020
2 parents 25b2458 + 4ea58ce commit ad612ac
Show file tree
Hide file tree
Showing 13 changed files with 281 additions and 29 deletions.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,27 @@ Downtime Tracking is a module for Foundry VTT that adds a tab to all actor sheet
Check out some examples for how to use the module [here](/examples.md).

## Multiple Progression Systems
There are two core ways to track activities in this module:
There are three core ways to track activities in this module:

**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 Check Progression** is the fun stuff. When you set up an activity that uses this mode, you also select an associated ability score to go along with it. Every attempt to progress the activity prompts the player for an ability 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. Use this one for training skill or tool proficiencies.
**Ability Check Progression** is the fun stuff. When you set up an activity that uses this mode, you also select an associated ability or skill to go along with it. Every attempt to progress the activity prompts the player for an ability/skill 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. Use this one for training skill or tool proficiencies.

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

**DC Progression (v0.4.0+)** is a hybrid of the first two modes. This progression mode prompts the player to make a skill or ability 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)

## 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.

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

## 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.

Expand Down
11 changes: 11 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Change Log

## 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.2
Improvements:
- Added some missing Korean language translation keys, courtesy of KLO#1490

## Version 0.3.2
Improvements:
- Added some missing Korean language translation keys, courtesy of KLO#1490
Expand Down
37 changes: 34 additions & 3 deletions lang/en.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

{
"C5ETRAINING.Ability": "Ability",
"C5ETRAINING.AbilityCha": "Charisma",
"C5ETRAINING.AbilityCheck": "Ability Check",
"C5ETRAINING.AbilityCon": "Constitution",
Expand All @@ -17,27 +18,36 @@
"C5ETRAINING.AnnounceActivityCompletionFor": "Announce Activity Completion For:",
"C5ETRAINING.AnnounceActivityCompletionForHint": "Choose which actor types you would like to have trigger chat messages upon activity completion.",
"C5ETRAINING.Apply": "Apply",
"C5ETRAINING.Attempt": "Attempt",
"C5ETRAINING.AttemptsToComplete": "Attempts to complete",
"C5ETRAINING.AuditLog": "Change Log",
"C5ETRAINING.AuditLogDeleteNote": "Note: Dismissing changes does NOT revert them. If you'd like to revert changes you see here, you must do so manually, but this log can serve as a guide to help you figure out what changes to make if required.",
"C5ETRAINING.AuditLogInstructionsGm": "This log shows a list of all changes made to the progress of each of this character's downtime activities. You may remove items from this list after you've reviewed them by checking the box in the Dismiss column and hitting the button at the bottom of the window. Once you do this, neither you nor the player will be able to see them anymore.",
"C5ETRAINING.AuditLogInstructionsPlayer": "This log shows a list of changes made to the progress of each of your downtime activities that have not yet been reviewed by your GM. Once they are reviewed, they will no longer be visible here.",

"C5ETRAINING.Cancel": "Cancel",
"C5ETRAINING.CheckDC": "Check DC",
"C5ETRAINING.Completed": "completed",
"C5ETRAINING.CompletedADowntimeActivity": "completed a downtime activity.",
"C5ETRAINING.CompletionTarget": "Completion Target",
"C5ETRAINING.Create": "Create",
"C5ETRAINING.CreateNewDowntimeActivity": "Create New Downtime Activity",
"C5ETRAINING.CurrentProgress": "Current Progress",
"C5ETRAINING.Custom": "Custom",
"C5ETRAINING.CustomRoll": "Custom Roll",

"C5ETRAINING.DC": "DC",
"C5ETRAINING.DefaultAbility": "Default Attribute for Ability Check Progression",
"C5ETRAINING.DefaultAbilityHint": "Sets the default attribute assigned to a downtime activity upon creation. This can be edited after activity creation.",
"C5ETRAINING.DefaultAbilityCompletion": "Default Activity Completion Target (Ability Checks)",
"C5ETRAINING.DefaultAbilityCompletionHint": "Sets the default target number required to reach 100% activity completion for downtime activities using ability check progression. A good rule of thumb is that the average individual will be able to contribute about 10 points to their total per check to progress the activity. The default is 300 (or 30 days for the average individual training once a day).",
"C5ETRAINING.DefaultSimpleCompletion": "Default Activity Completion Target (Simple)",
"C5ETRAINING.DefaultAbilityCompletionHint": "Sets the default target number required to reach 100% activity completion for downtime activities using ability check progression. A good rule of thumb is that the average individual will be able to contribute about 10 points to their total per check to progress the activity. The default is 300 (or 30 days for the average individual training once a day).",
"C5ETRAINING.DefaultDcDifficulty": "Default Check Difficulty (DC)",
"C5ETRAINING.DefaultDcDifficultyHint": "Sets the default DC for ability checks used by downtime activities using the DC progression system. Defaults to 10.",
"C5ETRAINING.DefaultDcSuccesses": "Default Activity Completion Target (DC)",
"C5ETRAINING.DefaultDcSuccessesHint": "Sets the default target number of check successes required to reach 100% activity completion for downtime activities using the DC progression system. The default is 5 successes.",
"C5ETRAINING.DefaultSimpleCompletion": "Default Activity Completion Target (Simple)",
"C5ETRAINING.DefaultSimpleCompletionHint": "Sets the default target number of attempts required to reach 100% activity completion for downtime activities using simple progression. The default is 10 attempts.",
"C5ETRAINING.DefaultTimeCompletion": "Default Activity Completion Target (Time)",
"C5ETRAINING.DefaultTimeCompletion": "Default Activity Completion Target (Time)",
"C5ETRAINING.DefaultTimeCompletionHint": "Sets the default target number of DAYS required to reach 100% activity completion for downtime activities using time-based progression. The default is 30 days. (Requires About Time)",
"C5ETRAINING.Delete": "Delete",
"C5ETRAINING.DeleteConfirmation": "Are you sure you want to delete this item?",
Expand Down Expand Up @@ -68,11 +78,32 @@
"C5ETRAINING.ProgressionType": "Progression Type",

"C5ETRAINING.ReviewChanges": "Review Changes",
"C5ETRAINING.Roll": "Roll",

"C5ETRAINING.SelectAnAbility": "Select an ability to use for progression",
"C5ETRAINING.ShowDowntimeTab": "Show Downtime Tab",
"C5ETRAINING.ShowDowntimeTabHint": "Toggling this on will display the training tab on all player character sheets. You will need to close and reopen sheets for this to take effect.",
"C5ETRAINING.Simple": "Simple",
"C5ETRAINING.Skill": "Skill",
"C5ETRAINING.SkillAcr": "Acrobatics",
"C5ETRAINING.SkillAni": "Animal Handling",
"C5ETRAINING.SkillArc": "Arcana",
"C5ETRAINING.SkillAth": "Athletics",
"C5ETRAINING.SkillDec": "Deception",
"C5ETRAINING.SkillHis": "History",
"C5ETRAINING.SkillIns": "Insight",
"C5ETRAINING.SkillInv": "Investigation",
"C5ETRAINING.SkillItm": "Intimidation",
"C5ETRAINING.SkillMed": "Medicine",
"C5ETRAINING.SkillNat": "Nature",
"C5ETRAINING.SkillPer": "Persuasion",
"C5ETRAINING.SkillPrc": "Perception",
"C5ETRAINING.SkillPrf": "Performance",
"C5ETRAINING.SkillRel": "Religion",
"C5ETRAINING.SkillSlt": "Sleight of Hand",
"C5ETRAINING.SkillSte": "Stealth",
"C5ETRAINING.SkillSur": "Survival",
"C5ETRAINING.SuccessesRequired": "Successes Required",

"C5ETRAINING.Time": "Time (UTC)",

Expand Down
34 changes: 34 additions & 0 deletions lang/missing/ko.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,38 @@

{
"C5ETRAINING.Ability": "Ability",
"C5ETRAINING.Attempt": "Attempt",

"C5ETRAINING.CheckDC": "Check DC",
"C5ETRAINING.Custom": "Custom",
"C5ETRAINING.CustomRoll": "Custom Roll",

"C5ETRAINING.DC": "DC",
"C5ETRAINING.DefaultDcDifficulty": "Default Check Difficulty (DC)",
"C5ETRAINING.DefaultDcDifficultyHint": "Sets the default DC for ability checks used by downtime activities using the DC progression system. Defaults to 10.",
"C5ETRAINING.DefaultDcSuccesses": "Default Activity Completion Target (DC)",
"C5ETRAINING.DefaultDcSuccessesHint": "Sets the default target number of check successes required to reach 100% activity completion for downtime activities using the DC progression system. The default is 5 successes.",

"C5ETRAINING.Roll": "Roll",

"C5ETRAINING.Skill": "Skill",
"C5ETRAINING.SkillAcr": "Acrobatics",
"C5ETRAINING.SkillAni": "Animal Handling",
"C5ETRAINING.SkillArc": "Arcana",
"C5ETRAINING.SkillAth": "Athletics",
"C5ETRAINING.SkillDec": "Deception",
"C5ETRAINING.SkillHis": "History",
"C5ETRAINING.SkillIns": "Insight",
"C5ETRAINING.SkillInv": "Investigation",
"C5ETRAINING.SkillItm": "Intimidation",
"C5ETRAINING.SkillMed": "Medicine",
"C5ETRAINING.SkillNat": "Nature",
"C5ETRAINING.SkillPer": "Persuasion",
"C5ETRAINING.SkillPrc": "Perception",
"C5ETRAINING.SkillPrf": "Performance",
"C5ETRAINING.SkillRel": "Religion",
"C5ETRAINING.SkillSlt": "Sleight of Hand",
"C5ETRAINING.SkillSte": "Stealth",
"C5ETRAINING.SkillSur": "Survival",
"C5ETRAINING.SuccessesRequired": "Successes Required"
}
3 changes: 2 additions & 1 deletion load-templates.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
export const preloadTemplates = async function() {
const templatePaths = [
"modules/5e-training/templates/partials/ability.html",
"modules/5e-training/templates/partials/simple.html"
"modules/5e-training/templates/partials/simple.html",
"modules/5e-training/templates/partials/dc.html"
];
return loadTemplates(templatePaths);
};
4 changes: 2 additions & 2 deletions module.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "5e-training",
"title": "Crash's 5e Downtime Tracking",
"description": "Adds a section to the character sheet to keep track of downtime activity progression. Track proficiency training, spell scribing, and anything else you can think of.",
"version": "0.3.3",
"version": "0.4.0",
"author": "CRASH1115#2944",
"minimumCoreVersion": "0.6.0",
"compatibleCoreVersion": "0.7.0",
Expand All @@ -23,5 +23,5 @@
],
"url": "https://github.com/crash1115/5e-training",
"manifest": "https://raw.githubusercontent.com/crash1115/5e-training/master/module.json",
"download": "https://github.com/crash1115/5e-training/releases/download/v0.3.3/5e-training.zip"
"download": "https://github.com/crash1115/5e-training/releases/download/v0.4.0/5e-training.zip"
}
6 changes: 5 additions & 1 deletion styles/training.css
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
}

/* Type Column */
.training .item-detail.type {
.dnd5e.sheet.actor .training .inventory-list .item-detail.type {
text-transform: capitalize;
flex: 0 0 140px;
}

/* Override Column */
Expand Down Expand Up @@ -98,8 +99,11 @@
.audit-log .action-table table tr td {
padding-top: 5px;
padding-bottom: 5px;
text-transform: capitalize;
}



.audit-log .action-table table tr:nth-of-type(even) td {
background-color: rgba(0,0,0,0.2);
}
Expand Down
1 change: 1 addition & 0 deletions templates/add-training-dialog.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<select name="progressionStyleInput" id="progressionStyleInput">
<option value="ability" {{#if (eq training.progressionStyle "ability")}} selected {{/if}}>{{ localize "C5ETRAINING.AbilityCheck" }}</option>
<option value="simple" {{#if (eq training.progressionStyle "simple")}} selected {{/if}}>{{ localize "C5ETRAINING.Simple" }}</option>
<option value="dc" {{#if (eq training.progressionStyle "dc")}} selected {{/if}}>{{ localize "C5ETRAINING.DC" }}</option>
</select>
</div>
</form>
30 changes: 24 additions & 6 deletions templates/partials/ability.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,30 @@
<div class="field">
<label for="ability">{{ localize 'C5ETRAINING.SelectAnAbility' }}:</label>
<select name="abilityInput" id="abilityInput"" {{#if (eq training.progressionStyle "simple")}}style="visibility:hidden;"{{/if}}>
<option value="str" {{#if (eq training.ability "str")}} selected {{/if}}>{{ localize 'C5ETRAINING.AbilityStr' }}</option>
<option value="dex" {{#if (eq training.ability "dex")}} selected {{/if}}>{{ localize 'C5ETRAINING.AbilityDex' }}</option>
<option value="con" {{#if (eq training.ability "con")}} selected {{/if}}>{{ localize 'C5ETRAINING.AbilityCon' }}</option>
<option value="int" {{#if (eq training.ability "int")}} selected {{/if}}>{{ localize 'C5ETRAINING.AbilityInt' }}</option>
<option value="wis" {{#if (eq training.ability "wis")}} selected {{/if}}>{{ localize 'C5ETRAINING.AbilityWis' }}</option>
<option value="cha" {{#if (eq training.ability "cha")}} selected {{/if}}>{{ localize 'C5ETRAINING.AbilityCha' }}</option>
<option value="str" {{#if (eq training.ability "str")}} selected {{/if}}>{{ localize 'C5ETRAINING.Ability' }}: {{ localize 'C5ETRAINING.AbilityStr' }}</option>
<option value="dex" {{#if (eq training.ability "dex")}} selected {{/if}}>{{ localize 'C5ETRAINING.Ability' }}: {{ localize 'C5ETRAINING.AbilityDex' }}</option>
<option value="con" {{#if (eq training.ability "con")}} selected {{/if}}>{{ localize 'C5ETRAINING.Ability' }}: {{ localize 'C5ETRAINING.AbilityCon' }}</option>
<option value="int" {{#if (eq training.ability "int")}} selected {{/if}}>{{ localize 'C5ETRAINING.Ability' }}: {{ localize 'C5ETRAINING.AbilityInt' }}</option>
<option value="wis" {{#if (eq training.ability "wis")}} selected {{/if}}>{{ localize 'C5ETRAINING.Ability' }}: {{ localize 'C5ETRAINING.AbilityWis' }}</option>
<option value="cha" {{#if (eq training.ability "cha")}} selected {{/if}}>{{ localize 'C5ETRAINING.Ability' }}: {{ localize 'C5ETRAINING.AbilityCha' }}</option>
<option value="acr" {{#if (eq training.ability "acr")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillAcr' }}</option>
<option value="ani" {{#if (eq training.ability "ani")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillAni' }}</option>
<option value="arc" {{#if (eq training.ability "arc")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillArc' }}</option>
<option value="ath" {{#if (eq training.ability "ath")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillAth' }}</option>
<option value="dec" {{#if (eq training.ability "dec")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillDec' }}</option>
<option value="his" {{#if (eq training.ability "his")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillHis' }}</option>
<option value="ins" {{#if (eq training.ability "ins")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillIns' }}</option>
<option value="inv" {{#if (eq training.ability "inv")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillInv' }}</option>
<option value="itm" {{#if (eq training.ability "itm")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillItm' }}</option>
<option value="med" {{#if (eq training.ability "med")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillMed' }}</option>
<option value="nat" {{#if (eq training.ability "nat")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillNat' }}</option>
<option value="per" {{#if (eq training.ability "per")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillPer' }}</option>
<option value="prc" {{#if (eq training.ability "prc")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillPrc' }}</option>
<option value="prf" {{#if (eq training.ability "prf")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillPrf' }}</option>
<option value="rel" {{#if (eq training.ability "rel")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillRel' }}</option>
<option value="slt" {{#if (eq training.ability "slt")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillSlt' }}</option>
<option value="ste" {{#if (eq training.ability "ste")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillSte' }}</option>
<option value="sur" {{#if (eq training.ability "sur")}} selected {{/if}}>{{ localize 'C5ETRAINING.Skill' }}: {{ localize 'C5ETRAINING.SkillSur' }}</option>
</select>
</div>

Expand Down
Loading

0 comments on commit ad612ac

Please sign in to comment.