zischenstand
This commit is contained in:
121
src/modules/koboldworks-pf1-little-helper/API.md
Normal file
121
src/modules/koboldworks-pf1-little-helper/API.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# Little Helper API
|
||||
|
||||
## General
|
||||
|
||||
API is generally accessible via the following:
|
||||
|
||||
```js
|
||||
const api = game.modules.get("koboldworks-pf1-little-helper").api;
|
||||
```
|
||||
|
||||
## Hooks
|
||||
|
||||
### i18n
|
||||
|
||||
Hook: `little-helper.i18n`
|
||||
|
||||
|Parameter|Type|Description|
|
||||
|:---|:---|:---|
|
||||
|`t`|`Object`|Object for i18n data|
|
||||
|
||||
#### Example
|
||||
|
||||
```js
|
||||
Hooks.on('little-helper.i18n', (t) => {
|
||||
t.conditions.yourImaginaryCondition = 'YourModule.TranslationKey';
|
||||
// This key will soon after be passed through game.i18n.localize and have its newline characters transformed into <br>
|
||||
});
|
||||
```
|
||||
|
||||
### Tooltips
|
||||
|
||||
#### Chat card metadata
|
||||
|
||||
Hook: `little-helper.chat.tooltip.meta`
|
||||
|
||||
|Parameter|Type|Description|
|
||||
|:---|:---|:---|
|
||||
|`cm`|`ChatMessage`|ChatMessage the tooltip is for.|
|
||||
|`html`|`HTMLElement`|HTML Element for the tooltip content.|
|
||||
|
||||
#### Active Buffs
|
||||
|
||||
Hooks `little-helper.hud.tooltip.active`
|
||||
|
||||
|Parameter|Type|Description|
|
||||
|:---|:---|:---|
|
||||
|`tooltip`|`Element`|Tooltip element.|
|
||||
|`context`|`object`|Context|
|
||||
|`context.actor`|`Actor`|Actor this tooltip is for.|
|
||||
|`context.item`|`Item` or `null`|Item, such as buff, this tooltip is for.|
|
||||
|`context.condition`|`string` or `null`|Condition this tooltip is for.|
|
||||
|`context.event`|`Event`|Event that triggered the tooltip.|
|
||||
|
||||
### Check Tags
|
||||
|
||||
Hook: `little-helper.checks.hints`
|
||||
|
||||
|Parameter|Type|Description|
|
||||
|:---|:---|:---|
|
||||
|`tags`|`Tag[]`|Insert your new tags here. Or alter it.|
|
||||
|`subject`|`Object`|Chat message subject.|
|
||||
|`cm`|`ChatMessage`|Chat message reference.|
|
||||
|`roll`|`Roll`|Roll instance attached to the chat message.|
|
||||
|`result`|`Number`|Roll result.|
|
||||
|`element`|`Element`|HTML Element associated with the chat message.|
|
||||
|`cls`|`Tag`|Class reference for tags, so you can make your own without awkward imports.|
|
||||
|
||||
#### Example
|
||||
|
||||
```js
|
||||
Hooks.on('little-helper.checks.hints', (tags, { subject, cm, roll, result, element, cls }) => {
|
||||
// your code here
|
||||
});
|
||||
```
|
||||
|
||||
### Details Tab
|
||||
|
||||
Hook: `little-helper.details-tab.content`
|
||||
|
||||
|Parameter|Type|Description|
|
||||
|:---|:---|:---|
|
||||
|`content`|`Element`|HTML Element for details tab content.|
|
||||
|`shared`|`SharedData`|Shared data object.|
|
||||
|
||||
#### Example
|
||||
|
||||
```js
|
||||
Hooks.on('little-helper.details-tab.content', (content, actor) => {
|
||||
// your code here
|
||||
});
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Slots
|
||||
|
||||
|Path|Description|
|
||||
|:---|:---|
|
||||
|`api.slots`|Contains slot ID to slot configuration mapping.|
|
||||
|`api.classes.slot`|Slot configuration class.|
|
||||
|
||||
Slot configuration class has following info:
|
||||
|
||||
|Property|Type|Description|
|
||||
|:---|:---|:---|
|
||||
|`limit`|number|Max number of items in this slot.|
|
||||
|`soft`|boolean|Is limit soft? Lesser warning when exceeded.|
|
||||
|
||||
#### Example
|
||||
|
||||
```js
|
||||
// Introduce new `tail` slot
|
||||
api.slots.tail = new api.classes.slot();
|
||||
// Introduce new `wing` slot with each wing individually
|
||||
api.slots.wing = new api.classes.slot(2);
|
||||
// Introduce new `tattoo` slot with soft limit of 5
|
||||
api.slots.tattoo = new api.classes.slot(5, {soft:true});
|
||||
|
||||
// Increase ring limit
|
||||
api.slots.ring.limit = 4;
|
||||
```
|
||||
1017
src/modules/koboldworks-pf1-little-helper/CHANGELOG.md
Normal file
1017
src/modules/koboldworks-pf1-little-helper/CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
105
src/modules/koboldworks-pf1-little-helper/FEATURES.md
Normal file
105
src/modules/koboldworks-pf1-little-helper/FEATURES.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Features
|
||||
|
||||
- Pathfinder 1e specific
|
||||
- Display caster level on spellbook title to ease with problems relating to CL alterations.
|
||||
- Display little notes for checks.
|
||||
- Skill checks, ability checks, saving throws, concentration, etc.
|
||||
- Various checks chatcards are more detailed.
|
||||
- Attack cards have more descriptive inline rolls for attacks.
|
||||
- Highlights overuse of spells if spontaneous.
|
||||
- Display spells known per level.
|
||||
- Display base spell DC per level.
|
||||
- Display feat, trait, etc. counts.
|
||||
- Dispaly natural reach near size and stature.
|
||||
- Attack button redesign
|
||||
- Quick roll button for chat cards – for quickly and easily assisting with checks other characters do or otherwise doing the same check.
|
||||
- Details tab for actors to provide some insight.
|
||||
- Datalist feeding to various formulas for common formulas or values.
|
||||
- Coin weight display.
|
||||
- Item theory dialog (magnifying glass in items sheet header).
|
||||
- Language selector search.
|
||||
- Active buffs and summaries (displayed near chat log for currently selected token).
|
||||
- Little info tags for compendium packs.
|
||||
- Chat card layout melding
|
||||
- Quick value input to many input fields
|
||||
- Formula validation
|
||||
- Compendium browser filter clarifications
|
||||
- Item sheet extra icons
|
||||
- Basic system troubleshooter guide
|
||||
- Ability scores on summary tab.
|
||||
- Actor List Tooltips
|
||||
- Combat Tracker Tooltips
|
||||
- System agnostic features
|
||||
- Macro directory enrichment
|
||||
- Warn about scene lacking initial view.
|
||||
- Warn about scene lacking player tokens with vision when token vision is enabled.
|
||||
- Sender tag. Little tag on side of chat messages that identifies if the message is from yourself (green), GM (gold), or someone else (grey).
|
||||
- Token HUD conditions label box.
|
||||
- Items & Actor directory enrichment
|
||||
- Auto-expand folders (per folder; right click folder to configure).
|
||||
|
||||
## Screens
|
||||
|
||||
### Actors
|
||||
|
||||
Natural reach:
|
||||

|
||||
|
||||
Spells known and base DC:
|
||||

|
||||
|
||||
Coin weight:
|
||||

|
||||
|
||||
Details tab:
|
||||

|
||||
|
||||
Item Summary enricher:
|
||||

|
||||
|
||||
Active Buffs & conditions:
|
||||

|
||||
|
||||
### Items
|
||||
|
||||
Datalist formula sources:
|
||||

|
||||
|
||||
Dialog skip override:
|
||||

|
||||
|
||||
Roll mode override:
|
||||

|
||||
|
||||
Roll override:
|
||||

|
||||
|
||||
### Chat
|
||||
|
||||
Display raw dice and total modifier in rolls:
|
||||

|
||||
|
||||
Inline attack roll expansion:
|
||||

|
||||
|
||||
Inline Roll Formula:
|
||||

|
||||
|
||||
Quick roll (easy button to roll the same check):
|
||||

|
||||
|
||||
Sender tag:
|
||||

|
||||
|
||||
### Foundry
|
||||
|
||||
Token HUD condition label:
|
||||

|
||||
|
||||
Actor List Tooltips:
|
||||

|
||||
|
||||
### Utility
|
||||
|
||||
Item theory:
|
||||

|
||||
21
src/modules/koboldworks-pf1-little-helper/LICENSE
Normal file
21
src/modules/koboldworks-pf1-little-helper/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021–2023 M.A. <https://gitlab.com/mkahvi>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
55
src/modules/koboldworks-pf1-little-helper/README.md
Normal file
55
src/modules/koboldworks-pf1-little-helper/README.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Koboldworks – Little Helper 🦎 for Pathfinder 1e
|
||||
|
||||

|
||||

|
||||
|
||||
Bunch of little tweaks, notifications, opinionated improvements, etc. that are too small to exist on their own.
|
||||
|
||||
WARNING: Due to limited information available in PF1e system, some of this module's functionality is limited to English due to string matching.
|
||||
PF1 0.78.14 or newer mitigates this problem greatly.
|
||||
|
||||
## Features
|
||||
|
||||
See [Feature Listing](./FEATURES.md) for listing of features and screenshots of them.
|
||||
|
||||
## Compatibility
|
||||
|
||||
### Alt Sheet
|
||||
|
||||
CSS fixes:
|
||||
|
||||
```css
|
||||
.lil-box.natural-reach {
|
||||
display: none;
|
||||
}
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
See [API documentation](./API.md).
|
||||
|
||||
## Install
|
||||
|
||||
Manifest URL: <https://gitlab.com/koboldworks/pf1/little-helper/-/releases/permalink/latest/downloads/module.json>
|
||||
|
||||
**WARNING**: Above manifest gives you the repository master branch, not a proper versioned release.
|
||||
Currently the version is being incremented irregularly, so if you want to update the module, you need to do so manually by re-installing it.
|
||||
The version number currently includes date of the release (local to me) in format of YYYYMMDDHH.
|
||||
|
||||
**UPDATING**: You may need to do so manually by re-installing it. Update checks within Foundry will not work usually due to version number not being updated consistently.
|
||||
|
||||
## Attribution
|
||||
|
||||
If you use any of the code in this project, I would appreciate I or the project was credited for inspiration or whatever where appropriate. Or just drop a line about using my code. I do not mind not having this, but it's just nice knowing something has come out of my efforts.
|
||||
|
||||
## Donations
|
||||
|
||||
[](https://ko-fi.com/mkahvi)
|
||||
|
||||
## License
|
||||
|
||||
This software is distributed under the [MIT License](./LICENSE).
|
||||
|
||||
## Credits
|
||||
|
||||
Active buffs feature was inspired by similar feature in PF2. Only the high concept was re-used (buff icons near chat log in column).
|
||||
422
src/modules/koboldworks-pf1-little-helper/lang/en.json
Normal file
422
src/modules/koboldworks-pf1-little-helper/lang/en.json
Normal file
@@ -0,0 +1,422 @@
|
||||
{
|
||||
"LittleHelper": {
|
||||
"CasterProgressionTitle": "{actor} - {book} - Caster Progression",
|
||||
"XPTable": {
|
||||
"Title": "Experience Progression Table",
|
||||
"Short": "XP Chart",
|
||||
"Cumulative": "Cumulative",
|
||||
"CumulativeHint": "Cumulative XP requirement from all levels.",
|
||||
"Increment": "Per",
|
||||
"IncrementHint": "Per level XP requirement.",
|
||||
"Percent": "±%",
|
||||
"PercentHint": "Percentage increase of the per level XP"
|
||||
},
|
||||
"Macro": {
|
||||
"Author": "Author",
|
||||
"Permission": "Permission",
|
||||
"None": "None",
|
||||
"Visible": "Visible",
|
||||
"Executable": "Executable",
|
||||
"Editable": "Editable"
|
||||
},
|
||||
"Linked": "Linked",
|
||||
"Unlinked": "Unlinked",
|
||||
"Sidebar": {
|
||||
"ActorType": "Type: {type}"
|
||||
},
|
||||
"Action": {
|
||||
"Actions": "Actions",
|
||||
"Migrate": "Migrate",
|
||||
"ExportJSON": "Export JSON",
|
||||
"Configure": "Configure",
|
||||
"Resync": "Re-synchronize",
|
||||
"Migration": {
|
||||
"Status": {
|
||||
"InProgress": "Migrating...",
|
||||
"Unlocking": "Unlocking...",
|
||||
"Locking": "Locking...",
|
||||
"Error": "Error!",
|
||||
"Finished": "Finished"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Checks": {
|
||||
"BaseDC": "Base DC {dc}",
|
||||
"BaseDCFlavor": "Base DC",
|
||||
"Skills": {},
|
||||
"Other": {
|
||||
"concentration": {
|
||||
"DefensiveMaxSL": "Defensive Max SL {level}",
|
||||
"DamagedDC": "Damaged DC 10+SL+DMG",
|
||||
"GrappledDC": "Grappled DC 10+SL+CMB",
|
||||
"EntangledMaxSL": "Entangled Max SL {level}",
|
||||
"EntangledMaxSLHint": "DC 15+SL"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Theory": {
|
||||
"EstimateAbbr": "Est.",
|
||||
"CLOffset": "CL Offset",
|
||||
"Metatype": "Metatype",
|
||||
"MinMax": "Min-Max",
|
||||
"Types": "Types",
|
||||
"NoDamage": "No damage"
|
||||
},
|
||||
"Info": {
|
||||
"SpellsShowPrepared": "All spells.<br>Click to show prepared only",
|
||||
"SpellsShowAll": "Prepared only.<br>Click to show all spells",
|
||||
"Thacoh": "Approximate minimum roll needed to be hit.",
|
||||
"Comparison": "Comparison",
|
||||
"AC": "{ac} AC",
|
||||
"MDex": "{mdex} M.Dex",
|
||||
"MDexAC": "{mdex} M.Dex [{ac} AC]",
|
||||
"ACP": "{acp} ACP",
|
||||
"ASF": "{asf}% ASF",
|
||||
"ComparedAgainst": "vs {name}",
|
||||
"Value": "Value: {gp} gp",
|
||||
"Currency": "{gp} gp",
|
||||
"HP": "HP: {current} / {max}",
|
||||
"Hardness": "Hardness: {hardness}",
|
||||
"ItemCount": "{count} items",
|
||||
"Subcontainers": "Sub-containers",
|
||||
"Critical": "{range}/×{mult} Critical"
|
||||
},
|
||||
"Keybindings": {
|
||||
"ExtraInfo": {
|
||||
"Hold": "Hold to display extra info"
|
||||
}
|
||||
},
|
||||
"Options": {
|
||||
"RollModeOverride": "Roll mode override",
|
||||
"NoOverride": "No override",
|
||||
"ForceDisplay": "Force display",
|
||||
"ForceSkip": "Force skip"
|
||||
},
|
||||
"Settings": {
|
||||
"Category": {
|
||||
"common": "Common",
|
||||
"items": "Items",
|
||||
"hud": "HUD",
|
||||
"dev": "Development",
|
||||
"module": "Module Integration",
|
||||
"system": "PF1 Core",
|
||||
"dialog": "Dialogs",
|
||||
"foundry-ui": "Foundry UI",
|
||||
"macro": "Macro",
|
||||
"token": "Token",
|
||||
"token-hud": "Token HUD",
|
||||
"compendium-browser": "Compendium Browser",
|
||||
"actor-sheet": "Actor Sheet",
|
||||
"chat-card": "Chat Card",
|
||||
"experiment": "Experiments"
|
||||
},
|
||||
"World": "{module} – World Settings",
|
||||
"Client": "{module} – Client Settings",
|
||||
|
||||
"ActorOverrides": "Disable Features",
|
||||
"ActorOverridesButton": "Little Helper <span class='lil-thing'>🦎</span> Overrides",
|
||||
"ActorOverridesTitle": "Little Helper Overrides"
|
||||
},
|
||||
"UI": {
|
||||
"IDButton": "ID",
|
||||
"DataButton": "Data",
|
||||
"OpenItemSheet": "Open Item Sheet",
|
||||
"OpenActorSheet": "Open Actor Sheet",
|
||||
"PopTabHint": "Right click to popout the tab in separate window.",
|
||||
"ClickToEndEffect": "Left click to end effect",
|
||||
"ClickToEndEffectAlt": "Right click to end effect"
|
||||
},
|
||||
"QuickSkills": {
|
||||
"Title": "Quick Skills",
|
||||
"DefaultTitle": "Default Quick Skills",
|
||||
"ActorTitle": "Quick Skills for {name} [{id}]",
|
||||
"AutoSelection": "Auto Selection",
|
||||
"MinRank": "Min Rank",
|
||||
"Percentage": "Percentage",
|
||||
"AutoSelectHint": "Set the values to 0 to disable the criteria. If both are enabled, both criteria must be satisfied.",
|
||||
"UseMaxMod": "Use max modifier ({maxMod}) instead max rank ({maxRank}) for percentage.",
|
||||
"OnlyAutoSelected": "Show only Auto-Selected",
|
||||
"Mod": "Mod.",
|
||||
"Default": "Def.",
|
||||
"Sources": "Sources",
|
||||
"NoneMatched": "No matched skills.",
|
||||
"HelpText": "– Star indicates skills that are enabled by default if unconfigured.<br>– Auto selection is for showing skills based on their rank or modifier meeting a threshold of some kind instead of explicit selection.<br>– Bolding indicates skills that are chosen by auto selection thresholds.",
|
||||
"Reset": {
|
||||
"Title": "Hard reset skill configuration?",
|
||||
"Info": "Do you wish to fully reset the configuration?<br>This removes the configuration fully and can not be undone.",
|
||||
"Soft": "Skills reset. Configuration not yet saved."
|
||||
}
|
||||
},
|
||||
"Warning": {
|
||||
"RefreshNeeded": "Little Helper 🦎 settings change requires refresh to fully take effect.",
|
||||
"SkillMismatch": "Used skills don't match allowed!",
|
||||
"FeatMismatch": "Used feats don't match allowed!",
|
||||
"MismatchedQuantity": "Mismatched quantity: {details}",
|
||||
"UnusedSlots": "Unused slots",
|
||||
"NoArmor": "No armor?",
|
||||
"NoEquipment": "No equipment?",
|
||||
"BadVariable": "Malformed @-variable",
|
||||
"MissingRounding": "Missing rounding.",
|
||||
"NoItemsFound": "No items found.",
|
||||
"EmptyFormula": "Empty formula",
|
||||
"RunInOperator": "Includes run-in operator [- + / *] that may cause roll evaluation to fail.",
|
||||
"FreeLetters": "String that is neither variable nor function",
|
||||
"OrphanBrackets": "Orphaned square brackets.",
|
||||
"TooManySlotItems": "Too many items of the same slot type in use.<br>You have {used} out of {limit} possible.",
|
||||
"TooFewLanguages": "Too few languages.<br>Should know at least {granted}.<br>{missing} missing.",
|
||||
"NoArmorProf": "No armor proficiencies.",
|
||||
"NoWeaponProf": "No weapon proficiencies",
|
||||
"NoShieldWithTwohanded": "Two-handed weapons are not usable with light shield or heavier normally.",
|
||||
"SyncNoSource": "No source ID to synchronize with.",
|
||||
"GM": {
|
||||
"SceneScaleMismatch": "Scene scale set to \"{scale} {units}\" and does not match chosen system of units."
|
||||
}
|
||||
},
|
||||
"Clarify": {
|
||||
"NoActionNeeded": "No action needed."
|
||||
},
|
||||
"Foundry": {
|
||||
"Light": {
|
||||
"Bright": {
|
||||
"Hint": "Bright light emitted by this token visible to all."
|
||||
},
|
||||
"Dim": {
|
||||
"Hint": "Dim light emitted by this token visible to all."
|
||||
}
|
||||
}
|
||||
},
|
||||
"Details": {
|
||||
"BenchPressing": {
|
||||
"Disclaimer": "Expected values are for average track on the bench-pressing table.<br>If you don't know the significance of these numbers, ignore them."
|
||||
},
|
||||
"Token": {
|
||||
"Disposition": "Disposition",
|
||||
"Linked": "Linked",
|
||||
"Sighted": "Sighted",
|
||||
"Blind": "Blind"
|
||||
}
|
||||
},
|
||||
"Scene": {
|
||||
"NoVisionOnToken": "{name} lacks vision on this scene.",
|
||||
"LackingVision": "One or more tokens [{count}] lack vision.",
|
||||
"LackingVisionGM": "Scene Token Vision enabled, but one or more player tokens [{count}] have no vision."
|
||||
},
|
||||
"Conditions": {
|
||||
"_invalid": "⚠️ Invalid condition ID ⚠️",
|
||||
"_missing": "No description.",
|
||||
"bleed": "Losing endless rivers of blood.\nNo other effects.\n\nMight stop with:\n- DC 10 stabilization check\n- DC 15 Heal check",
|
||||
"blind": "-4 penalty to Str and Dex-based skill checks and sight-based Perception checks.\n\nDC 10 Acrobatics to move faster than half-speed or risk falling prone.\n\nAll opponents are effectively invisible.",
|
||||
"confused": "d% to determine behaviour:\n* 01 – 25 : Act normally.\n* 25 – 50 : Do nothing.\n* 51 – 75 : Deal 1d8+Str to self.\n* 76 – 100 : Attack nearest creature.",
|
||||
"cowering": "Unable to act\n\n-2 penalty to AC\nLose Dex to AC",
|
||||
"dazed": "Unable to act\n\nNo penalties.",
|
||||
"dazzled": "-1 penalty to Attacks and Sight-based Perception.",
|
||||
"deaf": "-4 penalty to Initiative checks.\nAutomatically fail hearing based Perception checks.\n-4 penalty on Perception Checks.\n\n20% chance to fail verbal spells.",
|
||||
"entangled": "-2 penalty to Attack rolls\n-4 penalty to Dex\n\nMust concentrate to cast somatic spells.\n\nPrevents movement if anchored.",
|
||||
"exhausted": "-6 penalty to Str and Dex\n\nMove at half speed.\nCan not run or charge.",
|
||||
"fatigued": "-2 penalty to Str and Dex\n\nCan not run or charge.",
|
||||
"frightened": "-2 penalty to attacks, saves, skill checks, and ability checks.\n\nMust escape and use abilties if necessary to do so.\n\nWorsens to panicked, lessens to shaken.",
|
||||
"grappled": "-4 penalty to Dexterity\n-2 penalty to attack rolls, CMB, except to grapple or escape it.\n\nCan take no actions requiring two hands.\nSomatic spells require concentration check.",
|
||||
"helpless": "Dex is set to 0\n\nParalyzed, sleeping, bound, held, unconscious, or otherwise completely at opponent's mercy.",
|
||||
"incorporeal": "Immune to non-magical attacks.\n\nTake only 50% of damage.\nFull damage from incorporeal creatures and force effects.",
|
||||
"invisible": "+2 bonus to attack rolls against sighted enemies.\nTarget is denied Dex to AC.\n\nFull concealment against sighted enemies (50% miss chance).",
|
||||
"nauseated": "Can take only single move action per turn and nothing else.\n\nCan not attack, cast spells, concentrate, or do anything else requiring attention.",
|
||||
"panicked": "-2 penalty on saves, skill checks and ability checks.\n\nCan not attack.\nMust drop all held items.\nMust escape and use abilties if necessary to do so.\nCan take total defense if unable to escape.\n\nLessens to frightened.",
|
||||
"paralyzed": "Str and Dex are set to 0.\n\nUnable to act, but can do purely mental tasks.",
|
||||
"pinned": "Lose Dex to AC\n-4 penalty to AC.",
|
||||
"prone": "+4 bonus to AC against ranged attacks.\n-4 penalty to AC against melee attacks.\n-4 penalty on melee attacks.\n\nCan not attack with ranged weapons except crossbows.",
|
||||
"shaken": "-2 penalty to attacks, saves, skill checks, and ability checks.\n\nWorsens to frightened.",
|
||||
"sickened": "-2 penalty to attacks, weapon damage, saves, skill checks, and ability checks.",
|
||||
"staggered": "Can only take standard action.\n\nReminder: 5-foot step is nonaction.\nCan also take free, swift and immediate actions.",
|
||||
"stunned": "-2 penalty to AC.\nLose Dex to AC.\n\nCan not take any actions.\n\nDrop anything held.",
|
||||
"sleep": "Helpless & unaware.\nEffectively blinded.\n\n+10 to perception check DCs.",
|
||||
"squeezing": "-4 penalty to AC\n-4 penalty to Attacks\nMovement speed is halved\n\nIf squeezing into narrower space than half your space's width:\n- Lose Dex to AC\n- Can't attack\n- Need Escape Artist to move",
|
||||
"disabled": "On the brink of consciousness.\n\nImplies staggered.",
|
||||
"dying": "Losing blood!\n\nDC 10 Heal check to stabilize.\nCon check (DC 10 - HP) to self-stabilize.",
|
||||
"flatFooted": "Has not yet acted in combat.\n\nLose dexterity to AC.",
|
||||
"petrified": "Helpless and unconscious.\n\nLose Dex to AC.",
|
||||
"stable": "Unconscious but alive.\n\nCan try DC 10 Con check per hour to gain consciousness and shift to disabled.\n\nIf you haven't received help, must stabilize every hour to not lose 1 hp.",
|
||||
"unconscious": "Helpless, prone, and blinded.",
|
||||
"dead": "He's dead, John! He's dead!"
|
||||
},
|
||||
"DataSources": {
|
||||
"BABIteratives": "BAB iteratives",
|
||||
"FlurryUnchained": "Flurry (Unchained)",
|
||||
"FlurryChained": "Flurry (Chained)",
|
||||
"Fortune": "Fortune",
|
||||
"DefaultCheck": "Default Check",
|
||||
"AutoCrit": "Automatic Critical",
|
||||
"Misfortune": "Misfortune",
|
||||
"WeaponFocus": "Weapon Focus",
|
||||
"WeaponFocusGt": "Greater Weapon Focus",
|
||||
"CriticalFocus": "Critical Focus",
|
||||
"Situational": "Situational",
|
||||
"Charge": "Charge",
|
||||
"Flanking": "Flanking",
|
||||
"Iterative2nd": "Second Iterative",
|
||||
"Iterative3rd": "Third Iterative",
|
||||
"ShotIntoMelee": "Shot Into Melee",
|
||||
"ShotThrough": "Shot Through a Creature",
|
||||
"ShotThroughIntoMelee": "Shot Into Melee Through Creature",
|
||||
"RacialDCTemplate": "Racial DC template",
|
||||
"ClassDCTemplate": "Class DC template",
|
||||
"SpellFocus": "Spell Focus",
|
||||
"SpellFocusGt": "Greater Spell Focus",
|
||||
"AidAnother": "Aid Another",
|
||||
"AidAnotherX2": "AidAnother ×2",
|
||||
"AidAnotherX3": "AidAnother ×3",
|
||||
"SizeScalingDamage": "Size-scaling 1d6",
|
||||
"SneakAttack": "Sneak Attack",
|
||||
"ThreeQuartersOffset": "3/4 with level+1: Animal Companion",
|
||||
"ThreeQuarters": "3/4 with level+0: Eidolon/Phantom"
|
||||
},
|
||||
"HealthLevel": {
|
||||
"Healthy": "Healthy",
|
||||
"Grazed": "Grazed",
|
||||
"Wounded": "Wounded",
|
||||
"Critical": "Critical",
|
||||
"Dying": "Dying",
|
||||
"Dead": "Dead"
|
||||
},
|
||||
"LinkState": {
|
||||
"Linked": {
|
||||
"Label": "Linked",
|
||||
"TitleTag": "[LINKED]",
|
||||
"Token": "Linked Token",
|
||||
"Prototype": "Linked Prototype Token",
|
||||
"PrototypeShort": "Linked Prototype"
|
||||
},
|
||||
"Unlinked": {
|
||||
"Label": "Unlinked",
|
||||
"TitleTag": "[UNLINKED]",
|
||||
"Token": "Unlinked Token",
|
||||
"Prototype": "Unlinked Prototype Token",
|
||||
"PrototypeShort": "Unlinked Prototype"
|
||||
},
|
||||
"UnexpectedForPC": "Unexpected for PC",
|
||||
"UnexpectedForNPC": "Unexpected for NPC"
|
||||
},
|
||||
"Scribing": "Scribing",
|
||||
"Aura": "{strength} {school}",
|
||||
"Feature": {
|
||||
"natural-reach-display": {
|
||||
"Label": "Display Natural Reach",
|
||||
"Hint": "Displays natural reach in attributes tab with stature."
|
||||
},
|
||||
"new-actor-guide": {
|
||||
"Label": "New Actor Guide",
|
||||
"Hint": "Displays simple hints for what a character has not yet configured."
|
||||
},
|
||||
"missing-bits": {
|
||||
"Label": "Missing Bits",
|
||||
"Hint": "Add warnings about missing bits, such as too few languages, no proficiencies, lacking FCB, unused spells, missing traits, skill point mismatch, and feat mismatch."
|
||||
},
|
||||
"duplicate-slots": {
|
||||
"Label": "Slot Issues (Duplicate & Unused)",
|
||||
"Hint": "Warn about item slot issues and display list of unused slots at bottom of the slotted item category. Supports only default humanoid configuration."
|
||||
},
|
||||
"excess-skill-ranks": {
|
||||
"Label": "Excess Skill Ranks",
|
||||
"Hint": "Display warning when skill ranks exceed their possible maximum."
|
||||
},
|
||||
"creature-type-info": {
|
||||
"Label": "Humanoid?",
|
||||
"Hint": "Display simple statement if character is humanoid near quadruped toggle."
|
||||
},
|
||||
"actor-sheet-condition-durations": {
|
||||
"Label": "Condition Durations",
|
||||
"Hint": "Display condition duration in buffs tab and update it when world time progresses."
|
||||
},
|
||||
"buff-tooltips": {
|
||||
"Label": "Buff Tooltips",
|
||||
"Hint": "Tooltips for buffs that display more detailed info on duration. Requires buff to be active."
|
||||
},
|
||||
"currency-weight-display": {
|
||||
"Label": "Currency Weight",
|
||||
"Hint": "Display currency weight."
|
||||
},
|
||||
"actor-token-name": {
|
||||
"Label": "Token Name",
|
||||
"Hint": "Display token name near actor name if it's different."
|
||||
},
|
||||
"actor-token-mismatch": {
|
||||
"Label": "Token Image Mismatch",
|
||||
"Hint": "Display little marker when portrait does not match token image."
|
||||
},
|
||||
"enhanced-language-selection": {
|
||||
"Label": "Enhanced Language Selector",
|
||||
"Hint": "Clarify language selector by making common languages stand out and give categories with icons to everything."
|
||||
},
|
||||
"quick-roller": {
|
||||
"Label": "Quick Roll",
|
||||
"Hint": "Displays roll button on check chat messages to quickly roll the same check."
|
||||
},
|
||||
"card-hints": {
|
||||
"Label": "Check Hint Labels",
|
||||
"Hint": "Display extra hints for various checks, such as common DCs."
|
||||
},
|
||||
"xp-chart": {
|
||||
"Label": "XP Chart",
|
||||
"Hint": "Experience progression chart for the experience config dialog."
|
||||
}
|
||||
},
|
||||
"CardHints": {
|
||||
"StabilizeDC": "Stabilize DC",
|
||||
"DoorDC": "Door DC 0–30",
|
||||
"DoorDCHint": "Door DC varies from less than zero to around 30. Good luck.",
|
||||
"ContinuousDamageHint": "Continuous damage counts for only half.",
|
||||
"IdentifyMaxLevel": "Identify max level: {level}",
|
||||
"IdentifyMaxLevelHint": "+ Perception DC modifiers.",
|
||||
"IndifferentBaseDC": "Indifferent Base DC {dc}",
|
||||
"DemoralizeDC": "Demoralize DC: 10+HD+Wis",
|
||||
"DemoralizeSizeBonus": "±4/size",
|
||||
"DemoralizeSizeBonusHint": "±4 per size step difference.",
|
||||
"FlySlowDC": "Slow DC {dc}",
|
||||
"FlyHoverDC": "Hover DC {dc}",
|
||||
"FlyOtherDC": "Other DC {dc}",
|
||||
"TumbleDC": "Tumble DC=CMD+5",
|
||||
"TumbleDCHint": "CMD+5 for moving through occupied space.",
|
||||
"JumpHeight": "Height: {value}",
|
||||
"JumpLength": "Length: {value}",
|
||||
"FeintDC": "Feint Base DC {dc}",
|
||||
"FeintDCHint": "DC 10 + (BAB + Wis) or (Sense Motive), whichever is better.",
|
||||
"ClimbNaturalRockDC": "Natural Rock DC {dc}",
|
||||
"DisableDeviceBaseDC": "Device DC {dc} or higher",
|
||||
"DisableLockBaseDC": "Lock DC {dc} or higher",
|
||||
"PalmDC": "Palm DC {dc}",
|
||||
"StealDC": "Steal DC {dc}",
|
||||
"EscapeArtistBaseDC": "Escape DC {dc} or higher",
|
||||
"HandleAnimalBaseDC": "Base DC {dc} or higher",
|
||||
"HealCommonDC": "Stabilize/Longterm DC {dc}",
|
||||
"HealDeadlyDC": "Deadly DC {dc}",
|
||||
"HealDeadlyDCHint": "+2 DC per missing healer's kit charge",
|
||||
"RideFastMountDC": "Fast (Dis)Mount DC {dc}",
|
||||
"SubsistDC": "Subsist DC {dc}",
|
||||
"SubsistDCHint": "+1 fed per 2 over",
|
||||
"SubsistFed": "Fed {count}",
|
||||
"UMDWandDC": "Wand DC {dc}",
|
||||
"UMDScrollMaxLevel": "Scroll max level: {level}",
|
||||
"UMDScrollMaxLevelHint": "Ignores need for emulated ability score.<br>Base DC = 20 + Spell Level",
|
||||
"UntrainedKnowledgeMaxDC": "Untrained DC {dc}",
|
||||
"CommonKnowledgeHint": "Any common knowledge is DC 5 to 10 range.",
|
||||
"KnowledgeBaseDC": "Common Base DC {dc}",
|
||||
"KnowledgeBaseDCHint": "Base DC usually ranges from 15 to 30 plus CR or level of the thing.",
|
||||
"OpposedBy": "Opposed by {skill}",
|
||||
"SwimSpeed": "Move: {speed}",
|
||||
"SwimSpeedHint": "Quarter speed as move action. Half as full-round.",
|
||||
"ClimbSpeed": "Move: {speed}",
|
||||
"ClimbSpeedHint": "Quarter speed as move action. Half as full-round.",
|
||||
"FastClimb": "Accelerated: {speed}",
|
||||
"FastClimbHint": "By accepting -5 penalty before roll, you can move at half-speed instead of quarter.",
|
||||
"NaturalSpeed": "Natural Speed"
|
||||
}
|
||||
},
|
||||
"Koboldworks": {
|
||||
"Missing": {
|
||||
"PF1": {
|
||||
"Distance": "{distance} {unit}",
|
||||
"Qualities": "Qualities",
|
||||
"DurationLeft": "{time} {unit} left"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
408
src/modules/koboldworks-pf1-little-helper/lang/es.json
Normal file
408
src/modules/koboldworks-pf1-little-helper/lang/es.json
Normal file
@@ -0,0 +1,408 @@
|
||||
{
|
||||
"LittleHelper": {
|
||||
"Action": {
|
||||
"Resync": "Volver a sincronizar",
|
||||
"Migration": {
|
||||
"Status": {
|
||||
"Error": "¡Error!",
|
||||
"Locking": "Bloqueando...",
|
||||
"InProgress": "Migrando...",
|
||||
"Unlocking": "Desbloqueando...",
|
||||
"Finished": "Terminado"
|
||||
}
|
||||
},
|
||||
"Actions": "Acciones",
|
||||
"ExportJSON": "Exportar JSON",
|
||||
"Migrate": "Migrar",
|
||||
"Configure": "Configurar"
|
||||
},
|
||||
"Macro": {
|
||||
"Author": "Autor",
|
||||
"Executable": "Ejecutable",
|
||||
"Permission": "Permiso",
|
||||
"Visible": "Visible",
|
||||
"Editable": "Se puede editar",
|
||||
"None": "Ninguno"
|
||||
},
|
||||
"CasterProgressionTitle": "{actor} - {book} - Progresión del lanzador",
|
||||
"Checks": {
|
||||
"BaseDC": "CD base {dc}",
|
||||
"BaseDCFlavor": "CD base",
|
||||
"Other": {
|
||||
"concentration": {
|
||||
"DamagedDC": "CD Daño 10+Nivel del conjuro+Daño",
|
||||
"DefensiveMaxSL": "Nivel de conjuro máximo para lanzar a la defensiva {level}",
|
||||
"Entangled Max SL": "Nivel de conjuro máximo para lanzar enmarañado {level}",
|
||||
"GrappledDC": "CD Apresado 10+Nivel del conjuro+BMC",
|
||||
"EntangledMaxSL": "Nivel de conjuro máximo para lanzar enmarañado {level}",
|
||||
"EntangledMaxSLHint": "CD 15+Nivel de conjuro"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Sidebar": {
|
||||
"ActorType": "Tipo: {type}"
|
||||
},
|
||||
"Unlinked": "Desenlazado",
|
||||
"Linked": "Enlazado",
|
||||
"Theory": {
|
||||
"Types": "Tipos",
|
||||
"MinMax": "Min. - Máx.",
|
||||
"EstimateAbbr": "Est.",
|
||||
"NoDamage": "Sin daño",
|
||||
"CLOffset": "Compensación de NL",
|
||||
"Estimate": "Estimado",
|
||||
"Metatype": "Meta-tipo"
|
||||
},
|
||||
"Info": {
|
||||
"SpellsShowAll": "Solo preparados.<br>Haz click para ver todos los conjuros",
|
||||
"Thacoh": "Tirada mínima aproximada para ser golpeado/a.",
|
||||
"Comparison": "Comparación",
|
||||
"SpellsShowPrepared": "Todos los conjuros<br>Haz click para ver solo los preparados",
|
||||
"AC": "{ac} CA",
|
||||
"Currency": "{gp} po",
|
||||
"HP": "PG: {current} / {max}",
|
||||
"Critical": "Crítico {range}/×{mult}",
|
||||
"Subcontainers": "Sub-contenedores",
|
||||
"MDex": "{mdex} Máx. Des.",
|
||||
"ASF": "{asf}% Fallo de conjuro arcano",
|
||||
"MDexAC": "{mdex} Máx. Des. [{ac} CA]",
|
||||
"ACP": "{acp} PdA",
|
||||
"ComparedAgainst": "vs {name}",
|
||||
"ItemCount": "{count} objetos",
|
||||
"Value": "Valor: {gp} po",
|
||||
"Hardness": "Dureza: {hardness}"
|
||||
},
|
||||
"Scroll": {
|
||||
"ScrollToBottom": "Desliza hasta abajo",
|
||||
"EndOfMessages": "Final de los mensajes"
|
||||
},
|
||||
"Settings": {
|
||||
"Category": {
|
||||
"system": "PF1 Sistema",
|
||||
"token-hud": "Interfaz de la ficha (Token HUD)",
|
||||
"token": "Ficha (Token)",
|
||||
"hud": "Interfaz (HUD)",
|
||||
"experiment": "Experimentos",
|
||||
"dialog": "Diálogos",
|
||||
"module": "Integración con módulos",
|
||||
"items": "Objetos",
|
||||
"compendium-browser": "Buscador de compendios",
|
||||
"dev": "Desarrollo",
|
||||
"common": "Común",
|
||||
"foundry-ui": "Interfaz de Foundry",
|
||||
"macro": "Macro",
|
||||
"actor-sheet": "Hoja de personaje",
|
||||
"chat-card": "Tarjeta del chat"
|
||||
},
|
||||
"ActorOverridesButton": "Sobreescritura de Little Helper <span class='lil-thing'>🦎</span>",
|
||||
"ActorOverrides": "Desactivar características",
|
||||
"ActorOverridesTitle": "Sobreescritura de Little Helper",
|
||||
"Client": "{module} - Configuración de cliente",
|
||||
"World": "{module} - Configuración del mundo"
|
||||
},
|
||||
"Options": {
|
||||
"RollModeOverride": "Sobreescritura del modo de tirada",
|
||||
"ForceDisplay": "Forzar despliegue",
|
||||
"ForceSkip": "Forzar omisión",
|
||||
"NoOverride": "Sin sobreescritura"
|
||||
},
|
||||
"UI": {
|
||||
"OpenActorSheet": "Abrir ficha de personaje",
|
||||
"ClickToEndEffect": "Click izquierdo para finalizar el efecto",
|
||||
"OpenItemSheet": "Abrir ficha del objeto",
|
||||
"DataButton": "Datos",
|
||||
"IDButton": "ID",
|
||||
"PopTabHint": "Click derecho para desplegar la pestaña en una ventana nueva.",
|
||||
"ClickToEndEffectAlt": "Click derecho para finalizar el efecto"
|
||||
},
|
||||
"QuickSkills": {
|
||||
"ActorTitle": "Habilidades de acceso rápido para {name} [{id}]",
|
||||
"DefaultTitle": "Habilidades de acceso rápido por defecto",
|
||||
"Sources": "Fuentes",
|
||||
"Title": "Habilidades de acceso rápido",
|
||||
"NoneMatched": "No hay habilidades coincidentes."
|
||||
},
|
||||
"Keybindings": {
|
||||
"ExtraInfo": {
|
||||
"Hold": "Mantén para mostrar información adicional"
|
||||
}
|
||||
},
|
||||
"Warning": {
|
||||
"RefreshNeeded": "Los cambios en la configuración de Little Helper 🦎 requieren que se refresque para que tengan efecto.",
|
||||
"BadVariable": "Error de sintaxis @-variable",
|
||||
"RunInOperator": "Incluye operador incorporado [- + / *] que puede hacer que falle la evaluación de la tirada.",
|
||||
"NoItemsFound": "Objetos no encontrados.",
|
||||
"MissingRounding": "Redondeo no encontrado.",
|
||||
"SkillMismatch": "¡Las habilidades usadas no corresponden con las permitidas!",
|
||||
"FeatMismatch": "¡Las dotes usadas no corresponden con las permitidas!",
|
||||
"MismatchedQuantity": "Cantidad de desajuste: {details}",
|
||||
"NoShieldWithTwohanded": "No se pueden usar armas a dos manos con escudos ligeros o pesados.",
|
||||
"SyncNoSource": "No se han encontrado ID de fuentes con las que sincronizar.",
|
||||
"GM": {
|
||||
"SceneScaleMismatch": "La escala de la escena está puesta como \"{scale} {units}\" y no coincide con el sistema de unidades elegido."
|
||||
},
|
||||
"EmptyFormula": "Fórmula vacía",
|
||||
"FreeLetters": "Cadena que no es ni una variable ni una función",
|
||||
"OrphanBrackets": "Corchetes huérfanos.",
|
||||
"TooManySlotItems": "Demasiados objetos del mismo tipo de espacio en uso.<br>Llevas {used} de {limit} posibles.",
|
||||
"TooFewLanguages": "Muy pocos idiomas.<br>Deberías saber al menos {granted}.<br>Falta {missing}.",
|
||||
"NoArmorProf": "Sin competencias con armadura.",
|
||||
"NoWeaponProf": "Sin competencia con armas"
|
||||
},
|
||||
"Scene": {
|
||||
"NoVisionOnToken": "{name} no tiene visión en esta escena.",
|
||||
"LackingVisionGM": "Se ha activado la visión de ficha (token) en la escena, pero uno o más jugadores [{count}] no tienen visión.",
|
||||
"LackingVision": "Una o más fichas (tokens) [{count}] no tienen visión."
|
||||
},
|
||||
"Conditions": {
|
||||
"blind": "Penalizador de -4 a las pruebas de habilidades basadas en Fue. y Des. y las pruebas de Percepción basadas en la visión.\n\nAcrobacias CD 10 para moverse más rápido que la mitad de la velocidad o arriesgarse a quedar tumbado/a.\n\nTodos los oponentes se tratan como si fueran invisibles.",
|
||||
"bleed": "Perdiendo interminables ríos de sangre.\nSin otros efectos.\n\nSe puede parar con:\n- Prueba de estabilizar CD 10\n- Prueba de Curar CD 15",
|
||||
"deaf": "Penalizador -4 a las pruebas de Iniciativa.\nFalla automáticamente cualquier prueba de Percepción basada en el oído.\nPenalizador -4 en las pruebas de Percepción.\n\nPosibilidad del 20% de que los conjuros verbales fallen.",
|
||||
"fatigued": "Penalizador -2 a la Fue. y Des.\n\nNo puede correr ni cargar.",
|
||||
"entangled": "Penalizador -2 a las tiradas de ataque\nPenalizador -4 a la Des.\n\nSe debe concentrar para lanzar conjuros con componentes somáticos.\n\nIncapaz de moverse si está atado/a.",
|
||||
"frightened": "Penalizador -2 a los ataques, tiradas de salvación, pruebas de habilidad y pruebas de característica.\n\nDebe escapar, usando sus habilidades si es necesario.\n\nEmpeora en despavorido, disminuye en estremecido.",
|
||||
"grappled": "Penalizador -4 a la Destreza\nPenalizador -2 a las tiradas de ataque, BMC excepto para apresar o escapar de una presa.\n\nNo puede realizar acciones que requieran dos manos.\nLos conjuros somáticos requieren una tirada a concentración.",
|
||||
"_invalid": "⚠️ ID de la condición inválido ⚠️",
|
||||
"_missing": "Sin descripción.",
|
||||
"confused": "d% para determinar el comportamiento:\n* 01 – 25: actúa con normalidad.\n* 25 – 50: no hace nada.\n* 51 – 75: se hiere 1d8+Fue. a sí mismo/a.\n* 76 - 100: ataca a la criatura más cercana.",
|
||||
"cowering": "Incapaz de actuar.\n\nPenalizador -2 a la CA\nPierde el bonificador por Des. a la CA",
|
||||
"dazed": "Incapaz de actuar\n\nSin penalizaciones.",
|
||||
"dazzled": "Penalizador -1 a los ataques y las pruebas de Percepción basadas en la visión.",
|
||||
"exhausted": "Penalizador -6 a la Fue. y a la Des\n\nSe mueve a la mitad de velocidad.\nNo puede correr o cargar.",
|
||||
"paralyzed": "La Fue. y Des. pasan a ser 0.\n\nNo puede actuar, pero puede realizar tareas puramente mentales.",
|
||||
"pinned": "Pierde el bonificador por Des. a la CA.\nPenalizador -4 a la CA.",
|
||||
"shaken": "Penalizador -2 a los ataques, salvaciones, pruebas de habilidad y pruebas de característica.\n\nEmpeora en asustado/a.",
|
||||
"sickened": "Penalizador -2 a las tiradas de ataque, tiradas de daño, salvaciones, pruebas de habilidad y pruebas de característica.",
|
||||
"stunned": "Penalizador -2 a la CA.\nPierde el bonificador por Des. a la CA.\n\nNo puede realizar ninguna acción.\n\nDeja caer todo lo que lleve sujeto.",
|
||||
"sleep": "Indefenso/a e inconsciente.\nEfectivamente ciego.\n\n+10 a la CD para las pruebas de Percepción.",
|
||||
"disabled": "Al borde de la conciencia.\n\nImplicar estar grogui.",
|
||||
"flatFooted": "No ha actuado aún en combate.\n\nPierde el bonificador por Destreza a la CA.",
|
||||
"dying": "¡Perdiendo sangre!\n\nPrueba de Curar CD 10 para estabilizar.\nPrueba de Con. - PG negativos (CD 10) para estabilizarse uno/a mismo/a.",
|
||||
"nauseated": "Solo puede realizar una acción de movimiento por turno y nada más.\n\nNo puede atacar, lanzar conjuros, concentrarse, ni hacer nada que requiera atención.",
|
||||
"petrified": "Indefenso/a e inconsciente.\n\nPierde el bonificador por Des. a la CA.",
|
||||
"prone": "Bonificador +4 ala CA contra ataques a distancia.\nPenalizador -4 a la CA contra ataques cuerpo a cuerpo.\nPenalizador -4 en ataques cuerpo a cuerpo.\n\nNo puede atacar con armas a distancia, excepto ballestas.",
|
||||
"panicked": "Penalizador -2 a las salvaciones, pruebas de habilidad y pruebas de característica.\n\nNo puede atacar.\nDebe dejar caer todos los objetos.\nDebe escapar, usando sus habilidades si es necesario.\nSi no puede escapar usa la acción de defensa total.\n\nDisminuye a asustado/a.",
|
||||
"staggered": "Solo puede llevar a cabo una única acción estándar.\n\nRecordatorio: el paso de 5 pies (1,5 m) no es una acción.\nAdemás puede realizar acciones gratuitas, rápidas e inmediatas.",
|
||||
"squeezing": "Penalizador -4 a la CA\nPenalizador -4 a los ataques\nLa velocidad de movimiento es reducida a la mitad.\n\nSi se está escurriendo a un espacio menor que la mitad del personaje:\n- Pierde el bonificador por Des. a la CA\n- No puede atacar\n- Necesita usar Escapismo para moverse",
|
||||
"stable": "Inconsciente pero vivo/a.\n\nPuede realizar una prueba de Con. CD 10 cada hora para recuperar la consciencia y pasar a incapacitado/a.\n\nSi no has recibido ayuda, debe estabilizarte cada hora para no perder 1 pg.",
|
||||
"dead": "¡Está muerto, John! ¡Está muerto!",
|
||||
"invisible": "Bonificador +2 a las tiradas de ataque contra oponentes con vista.\nAl objetivo se le deniega su bonificador por Des. a la CA.\n\nOcultación total contra enemigos con vista (posibilidad del 50% de fallar).",
|
||||
"helpless": "Des. pasa a ser 0\n\nParalizado, dormido, atado, inconsciente o de cualquier otra manera a merced del oponente.",
|
||||
"unconscious": "Indefenso/a, tumbado/a y ciego/a.",
|
||||
"incorporeal": "Inmune a los ataques no mágicos.\n\nSufre solo la mitad del daño (50%).\nSufre el daño completo de criaturas incorporales y efectos de fuerza."
|
||||
},
|
||||
"Clarify": {
|
||||
"NoActionNeeded": "No se necesita ninguna acción."
|
||||
},
|
||||
"Foundry": {
|
||||
"Sight": {
|
||||
"Bright": {
|
||||
"Hint": "Luz brillante emitida por esta ficha (token) y solo visible para sí mismo/a."
|
||||
},
|
||||
"Dim": {
|
||||
"Hint": "Luz tenue emitida por esta ficha (token) y solo visible para sí mismo/a."
|
||||
}
|
||||
},
|
||||
"Light": {
|
||||
"Bright": {
|
||||
"Hint": "Luz brillante emitida por esta ficha (token) y visible para todos."
|
||||
},
|
||||
"Dim": {
|
||||
"Hint": "Luz tenue emitida por esta ficha (token) y visible para todos."
|
||||
}
|
||||
}
|
||||
},
|
||||
"Details": {
|
||||
"Token": {
|
||||
"Disposition": "Disposición",
|
||||
"Linked": "Enlazado",
|
||||
"Sighted": "Visto",
|
||||
"Blind": "Ciego/a"
|
||||
},
|
||||
"BenchPressing": {
|
||||
"Disclaimer": "Los valores esperados son para el promedio de seguimiento en una tabla de \"bench-pressing\".<br>Si no conoces el significado de estas cifras, ignóralas."
|
||||
}
|
||||
},
|
||||
"DataSources": {
|
||||
"BABIteratives": "Iterativos de At. Base",
|
||||
"Iterative2nd": "Segundo iterativo",
|
||||
"FlurryUnchained": "Ráfaga (Unchained)",
|
||||
"FlurryChained": "Ráfaga (Chained)",
|
||||
"DefaultCheck": "Prueba por defecto",
|
||||
"AutoCrit": "Crítico automático",
|
||||
"Misfortune": "Infortunio",
|
||||
"WeaponFocus": "Soltura con un arma",
|
||||
"WeaponFocusGt": "Soltura con un arma mayor",
|
||||
"CriticalFocus": "Soltura con los críticos",
|
||||
"SpellFocusGt": "Soltura con los conjuros mayor",
|
||||
"AidAnotherX2": "Prestar ayuda ×2",
|
||||
"ShotThroughIntoMelee": "Disparo en cuerpo a cuerpo a través de una criatura",
|
||||
"RacialDCTemplate": "Plantilla de CD racial",
|
||||
"ClassDCTemplate": "Plantilla de CD de clase",
|
||||
"SpellFocus": "Soltura con los conjuros",
|
||||
"AidAnother": "Prestar ayuda",
|
||||
"ThreeQuarters": "3/4 con nivel+0: Eidolón/Fantasma",
|
||||
"AidAnotherX3": "Prestar ayuda ×3",
|
||||
"SizeScalingDamage": "Escalado por tamaño 1d6",
|
||||
"SneakAttack": "Ataque furtivo",
|
||||
"Iterative3rd": "Tercer iterativo",
|
||||
"ShotIntoMelee": "Disparo en cuerpo a cuerpo",
|
||||
"ShotThrough": "Disparo a través de una criatura",
|
||||
"ThreeQuartersOffset": "3/4 con nivel+1: Compañero animal",
|
||||
"Charge": "Carga",
|
||||
"Situational": "Situacional",
|
||||
"Fortune": "Fortuna",
|
||||
"Flanking": "Flanqueo"
|
||||
},
|
||||
"HealthLevel": {
|
||||
"Dead": "Muerto/a",
|
||||
"Healthy": "Sano/a",
|
||||
"Grazed": "Rozado/a",
|
||||
"Wounded": "Herido/a",
|
||||
"Critical": "Crítico/a",
|
||||
"Dying": "Muriendo"
|
||||
},
|
||||
"LinkState": {
|
||||
"Linked": {
|
||||
"Label": "Enlazado",
|
||||
"TitleTag": "[ENLAZADO]",
|
||||
"Prototype": "Prototipo de ficha (token) enlazado",
|
||||
"PrototypeShort": "Prototipo enlazado",
|
||||
"Token": "Ficha (token) enlazada"
|
||||
},
|
||||
"Unlinked": {
|
||||
"Label": "Desenlazado",
|
||||
"TitleTag": "[DESENLAZADO]",
|
||||
"Token": "Ficha (token) desenlazado",
|
||||
"PrototypeShort": "Prototipo desenlazado",
|
||||
"Prototype": "Prototipo de ficha (token) desenlazado"
|
||||
},
|
||||
"UnexpectedForPC": "Inesperado para un PJ",
|
||||
"UnexpectedForNPC": "Inesperado para un PNJ"
|
||||
},
|
||||
"Feature": {
|
||||
"natural-reach-display": {
|
||||
"Label": "Mostrar alcance natural",
|
||||
"Hint": "Mostrar alcance natural en la pestaña de atributos al lado de tamaño."
|
||||
},
|
||||
"new-actor-guide": {
|
||||
"Label": "Guía para nuevos actores",
|
||||
"Hint": "Muestra sugerencias sencillas sobre lo que un personaje aún no ha configurado."
|
||||
},
|
||||
"missing-bits": {
|
||||
"Label": "Partes faltantes",
|
||||
"Hint": "Añade advertencias sobre las partes que faltan, como muy pocos idiomas, ninguna competencia, falta de BCF, conjuros no utilizados, rasgos que faltan, desajuste de puntos de habilidad y desajuste de dotes."
|
||||
},
|
||||
"duplicate-slots": {
|
||||
"Label": "Problemas en los espacios (Duplicados y aquellos sin usar)",
|
||||
"Hint": "Avisa de los problemas de espacios para objetos y muestra una lista de los espacios no utilizados en la parte inferior de la categoría de objetos con espacio. Sólo admite la configuración humanoide predeterminada."
|
||||
},
|
||||
"creature-type-info": {
|
||||
"Label": "¿Humanoide?",
|
||||
"Hint": "Mostrar una simple indicación si el personaje es humanoide cerca de la casilla de cuadrúpedo."
|
||||
},
|
||||
"actor-sheet-condition-durations": {
|
||||
"Label": "Duración de los estados",
|
||||
"Hint": "Muestra la duración de los estados en la pestaña Buffs y se actualiza cuando el tiempo del mundo avanza."
|
||||
},
|
||||
"buff-tooltips": {
|
||||
"Label": "Información de potenciadores (Buffs)",
|
||||
"Hint": "Información sobre la duración de los potenciadores (Buffs). Requiere que el potenciador (buff) esté activo."
|
||||
},
|
||||
"currency-weight-display": {
|
||||
"Label": "Peso de las monedas",
|
||||
"Hint": "Muestra el peso de las monedas."
|
||||
},
|
||||
"actor-token-mismatch": {
|
||||
"Label": "Desajuste en la imagen de la ficha (token)",
|
||||
"Hint": "Muestra un pequeño marcador cuando el retrato no coincide con la imagen de la ficha (token)."
|
||||
},
|
||||
"enhanced-language-selection": {
|
||||
"Label": "Selector de idiomas mejorado",
|
||||
"Hint": "Aclarar el selector de idiomas haciendo destacar los idiomas comunes y asignar categorías con iconos a todos."
|
||||
},
|
||||
"quick-roller": {
|
||||
"Label": "Tirada rápida",
|
||||
"Hint": "Muestra un botón de tirada en las tarjetas de mensaje de las pruebas para volver a hacer la misma tirada rápidamente."
|
||||
},
|
||||
"card-hints": {
|
||||
"Label": "Etiquetas de ayuda para las pruebas",
|
||||
"Hint": "Mostrar ayudas adicionales para varias pruebas, por ejemplo CDs comunes."
|
||||
},
|
||||
"excess-skill-ranks": {
|
||||
"Hint": "Mostrar advertencia cuando los rangos de habilidad exceden su máximo posible.",
|
||||
"Label": "Rangos de habilidad en exceso"
|
||||
},
|
||||
"actor-token-name": {
|
||||
"Label": "Nombre de la ficha (token)",
|
||||
"Hint": "Muestra el nombre de la ficha (token) al lado del nombre del actor si son diferentes."
|
||||
}
|
||||
},
|
||||
"Aura": "{strength} {school}",
|
||||
"Scribing": "Escribiendo",
|
||||
"CardHints": {
|
||||
"JumpHeight": "Altura: {value}",
|
||||
"SwimSpeed": "Se mueve: {speed}",
|
||||
"OpposedBy": "Contra {skill}",
|
||||
"IdentifyMaxLevel": "Identificar nivel máximo: {level}",
|
||||
"DemoralizeDC": "CD para desmoralizar: 10+DG+Sab.",
|
||||
"DemoralizeSizeBonusHint": "±4 por rango de diferencia en el tamaño.",
|
||||
"FlyHoverDC": "CD para flotar {dc}",
|
||||
"TumbleDC": "CD para rodear=DMC+5",
|
||||
"TumbleDCHint": "DMC+5 por moverse a través de un espacio ocupado.",
|
||||
"JumpLength": "Longitud: {value}",
|
||||
"FeintDC": "CD base para fintar {dc}",
|
||||
"PalmDC": "CD para ocultar en la palma de la mano {dc}",
|
||||
"SubsistDC": "CD para subsistir {dc}",
|
||||
"SubsistDCHint": "Alimento +1 por cada 2 por encima",
|
||||
"SubsistFed": "Alimentados/as {count}",
|
||||
"UMDScrollMaxLevel": "Nivel máximo de pergamino: {level}",
|
||||
"UntrainedKnowledgeMaxDC": "CD sin entrenar {dc}",
|
||||
"CommonKnowledgeHint": "Cualquier conocimiento común es una CD de 5 a 10.",
|
||||
"KnowledgeBaseDCHint": "La CD base oscila de 15 a 30 más VD o nivel de la cosa o criatura.",
|
||||
"ContinuousDamageHint": "El daño continuo sólo cuenta la mitad.",
|
||||
"FlyOtherDC": "CD para otras pruebas {dc}",
|
||||
"StealDC": "CD para robar {dc}",
|
||||
"DemoralizeSizeBonus": "±4/tamaño",
|
||||
"HealDeadlyDCHint": "CD +2 por cada carga de equipo de curandero que falte",
|
||||
"KnowledgeBaseDC": "CD base común {dc}",
|
||||
"FeintDCHint": "CD 10 + (At. Base + Sab.) o (Averiguar intenciones), lo que sea mejor.",
|
||||
"DisableLockBaseDC": "CD de la cerradura {dc} o mayor",
|
||||
"EscapeArtistBaseDC": "CD para escapar {dc} o mayor",
|
||||
"RideFastMountDC": "CD de (des)monta rápida {dc}",
|
||||
"UMDWandDC": "CD para varita {dc}",
|
||||
"UMDScrollMaxLevelHint": "Ignora la necesidad de emular la puntuación de característica.<br>CD base = 20 + nivel de conjuro",
|
||||
"StabilizeDC": "CD para estabilizar",
|
||||
"DoorDC": "CD de puerta 0-30",
|
||||
"DoorDCHint": "La CD de las puertas varía desde menos de 0 hasta aproximadamente 30. Buena suerte.",
|
||||
"FlySlowDC": "CD para lento (menos de la mitad de vel.) {dc}",
|
||||
"ClimbNaturalRockDC": "CD para rocas naturales {dc}",
|
||||
"DisableDeviceBaseDC": "CD del dispositivo {dc} o mayor",
|
||||
"HealCommonDC": "CD para estabilizar/cuidados a largo plazo {dc}",
|
||||
"HealDeadlyDC": "CD para heridas mortales {dc}",
|
||||
"HandleAnimalBaseDC": "CD base {dc} o mayor",
|
||||
"IndifferentBaseDC": "CD base para indiferente {dc}",
|
||||
"IdentifyMaxLevelHint": "+ los modificadores de CD a la Percepción.",
|
||||
"FastClimb": "Acelerado/a: {speed}",
|
||||
"FastClimbHint": "A cambio de tener un penalizador -5 antes de la tirada, te puedes mover la mitad de tu velocidad en lugar de un cuarto.",
|
||||
"SwimSpeedHint": "El cuarto del movimiento como acción de movimiento. La mitad como acción de asalto completo.",
|
||||
"ClimbSpeed": "Se mueve: {speed}",
|
||||
"ClimbSpeedHint": "El cuarto del movimiento como acción de movimiento. La mitad como acción de asalto completo.",
|
||||
"NaturalSpeed": "Velocidad natural"
|
||||
}
|
||||
},
|
||||
"Koboldworks": {
|
||||
"Missing": {
|
||||
"PF1": {
|
||||
"Distance": "{distance} {unit}",
|
||||
"ChargesSharedFrom": "Cargas compartidas desde",
|
||||
"Qualities": "Cualidades"
|
||||
}
|
||||
},
|
||||
"Generic": {
|
||||
"Half": "Mitad",
|
||||
"Chance": "Probabilidad",
|
||||
"Full": "Total"
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
158
src/modules/koboldworks-pf1-little-helper/little-helper.mjs.map
Normal file
158
src/modules/koboldworks-pf1-little-helper/little-helper.mjs.map
Normal file
File diff suppressed because one or more lines are too long
59
src/modules/koboldworks-pf1-little-helper/module.json
Normal file
59
src/modules/koboldworks-pf1-little-helper/module.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "koboldworks-pf1-little-helper",
|
||||
"title": "Koboldworks – Little Helper 🦎 for Pathfinder 1e",
|
||||
"description": "Little helpful thing for Pathfinder 1e. Experimental and very opinionated in nature.<br>Main features:<ul><li>Enhanced roll details, display natural rolls and total bonus along with total result.</li><li>Attack rolls are enhanced in detail and look more like other rolls.</li><li>Common roll DCs or their baselines</li><li>Small notes for most checks for quick reference.</li><li>Compressed main character sheet</li><li>Additional details in character sheet, such as natural reach, overuse of item slots, unused item slots,...</li><li>Compressed sidebar listings</li><li>Damage type icons</li><li>Helpful warnings about unlinked tokens, under or overused skill points, feats, etc.</li><li>Attack card button redesign and relabel</li><li>Spells known and base DC per level</li><li>Charge configuration origin statement</li><li>Formula display in inline rolls</li><li>ID header button for all sheets</li><li>Helpful warnigns about scene setup omissions for GMs.</li><li>and more! probably</li></ul><br>Note: Feature set is slightly different for older versions of Foundry and PF1.",
|
||||
"version": "0.6.7.4",
|
||||
"authors": [
|
||||
{
|
||||
"name": "MKAh",
|
||||
"url": "https://gitlab.com/mkahvi",
|
||||
"discord": "manaflower",
|
||||
"ko-fi": "mkahvi"
|
||||
}
|
||||
],
|
||||
"esmodules": ["little-helper.mjs"],
|
||||
"styles": ["little-helper.css"],
|
||||
"languages": [
|
||||
{
|
||||
"lang": "en",
|
||||
"path": "lang/en.json"
|
||||
},
|
||||
{
|
||||
"lang": "es",
|
||||
"path": "lang/es.json"
|
||||
}
|
||||
],
|
||||
"relationships": {
|
||||
"systems": [
|
||||
{
|
||||
"id": "pf1",
|
||||
"compatibility": {
|
||||
"minimum": "10.0",
|
||||
"verified": "10.5"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requires": [
|
||||
{
|
||||
"id": "lib-wrapper",
|
||||
"type": "module"
|
||||
}
|
||||
]
|
||||
},
|
||||
"compatibility": {
|
||||
"minimum": 11,
|
||||
"verified": 12
|
||||
},
|
||||
"license": "https://gitlab.com/koboldworks/pf1/little-helper/-/raw/master/LICENSE",
|
||||
"readme": "https://gitlab.com/koboldworks/pf1/little-helper/-/raw/master/README.md",
|
||||
"changelog": "https://gitlab.com/koboldworks/pf1/little-helper/-/raw/master/CHANGELOG.md",
|
||||
"manifest": "https://gitlab.com/koboldworks/pf1/little-helper/-/releases/permalink/latest/downloads/module.json",
|
||||
"download": "https://gitlab.com/koboldworks/pf1/little-helper/-/releases/0.6.7.4/downloads/little-helper.zip",
|
||||
"url": "https://gitlab.com/koboldworks/pf1/little-helper",
|
||||
"flags": {
|
||||
"hotReload": {
|
||||
"extensions": ["css", "hbs", "json"]
|
||||
}
|
||||
},
|
||||
"bugs": "https://gitlab.com/koboldworks/pf1/little-helper/-/issues"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<form autocomplete='off'>
|
||||
<h3>{{localize 'LittleHelper.Settings.ActorOverrides'}}</h3>
|
||||
|
||||
<div class='form-group {{#unless features.new-actor-guide}}disabled{{/unless}}'>
|
||||
<label class='checkbox' data-tooltip="LittleHelper.Feature.new-actor-guide.Hint">
|
||||
<input type='checkbox' name='flags.{{id}}.overrides.ready' {{checked flags.ready}}>
|
||||
{{localize "LittleHelper.Feature.new-actor-guide.Label"}}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class='form-group {{#unless features.missing-bits}}disabled{{/unless}}'>
|
||||
<label class='checkbox' data-tooltip="LittleHelper.Feature.missing-bits.Hint">
|
||||
<input type='checkbox' name='flags.{{id}}.overrides.complete' {{checked flags.complete}}>
|
||||
{{localize "LittleHelper.Feature.missing-bits.Label"}}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class='form-group {{#unless features.excess-skill-ranks}}disabled{{/unless}}'>
|
||||
<label class='checkbox' data-tooltip="LittleHelper.Feature.excess-skill-ranks.Hint">
|
||||
<input type='checkbox' name='flags.{{id}}.overrides.excess' {{checked flags.excess}}>
|
||||
{{localize "LittleHelper.Feature.excess-skill-ranks.Label"}}
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class='form-group {{#unless features.duplicate-slots}}disabled{{/unless}}'>
|
||||
<label class='checkbox' data-tooltip="LittleHelper.Feature.duplicate-slots.Hint">
|
||||
<input type='checkbox' name='flags.{{id}}.overrides.equipped' {{checked flags.equipped}}>
|
||||
{{localize "LittleHelper.Feature.duplicate-slots.Label"}}
|
||||
</label>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,5 @@
|
||||
<form autocomplete='off'>
|
||||
<div class='container'>
|
||||
{{editor enrichedContent target=target owner=owner editable=editable button=true engine='prosemirror'}}
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,66 @@
|
||||
<form autocomplete='off' class='main-content'>
|
||||
<header>
|
||||
</header>
|
||||
|
||||
<p class='help'>Options with reddish background and crown are only available to GM.</p>
|
||||
|
||||
<div class='search'>
|
||||
<input class='search-input' type='search' placeholder='Search...'>
|
||||
</div>
|
||||
|
||||
<section class='content'>
|
||||
{{#each sorted}}
|
||||
<details class='group' open>
|
||||
<summary class='title'>{{label}}</summary>
|
||||
<ul>
|
||||
{{#each group}}
|
||||
<li class='setting{{#if disabled}} disabled{{/if}}{{#if gmOnly}} gm{{/if}}' data-setting-id='{{setting}}'>
|
||||
<label>
|
||||
<input type='checkbox' data-dtype='Boolean' name='{{setting}}.enabled' {{checked (and enabled (not disabled))}} {{#if disabled}}disabled{{/if}}>
|
||||
<span class='setting-name'>{{label}}</span>
|
||||
{{#if disabled}}
|
||||
<span class="requirements">
|
||||
{{#if gmOnly}}{{#unless @root.isGM}} (GM-only){{/unless}}{{/if}}
|
||||
{{#if requirements}}
|
||||
{{#if requirements.module}} (module missing/inactive){{/if}}
|
||||
{{#if requirements.system}} (need system version: {{requirements.system}}){{/if}}
|
||||
{{#if requirements.system}} (need Foundry version: {{requirements.core}}){{/if}}
|
||||
{{/if}}
|
||||
</span>
|
||||
{{#if conflict}}
|
||||
<span class="conflicts">
|
||||
{{#with conflict.details}}
|
||||
(conflict(s):
|
||||
{{#if system.active}}PF1 {{system.version.threshold}}{{/if}}
|
||||
{{#if core.active}}{{#if system.active}} & {{/if}}Foundry {{core.version.threshold}}{{/if}}
|
||||
{{#if module.active}}
|
||||
{{#if (or system.active core.active)}} & {{/if}}
|
||||
<i>{{module.cause}}</i> module(s)
|
||||
{{/if}})
|
||||
{{/with}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</label>
|
||||
{{#if gmOnly}} <i class='{{@root.icons.crown.string}} gm-only' data-tooltip='GM-only' data-tooltip-direction='UP'></i>{{/if}}
|
||||
<p class='hint'>{{hint}}</p>
|
||||
{{#if notification}}<p class='hint lh-notification'>{{notification}}</p>{{/if}}
|
||||
{{#if warning}}<p class='hint lh-warning'>{{warning}}</p>{{/if}}
|
||||
{{#if subsettings}}
|
||||
{{~> "modules/koboldworks-pf1-little-helper/template/subsettings.hbs" settings=subsettings parent=setting}}
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</details>
|
||||
{{/each}}
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<div class='buttons flexrow'>
|
||||
<button type='reset'><i class='{{@root.icons.recycle.string}}'></i> {{localize 'Reset'}}</button>
|
||||
<button type='clear'><i class='{{@root.icons.recycle.string}}'></i> Disable All</button>
|
||||
<button type='submit'><i class='{{@root.icons.save.string}}'></i> {{localize 'Save'}}</button>
|
||||
</div>
|
||||
</footer>
|
||||
</form>
|
||||
@@ -0,0 +1,59 @@
|
||||
<form autocomplete='off'>
|
||||
<h2>{{pack.title}}</h2>
|
||||
|
||||
<fieldset>
|
||||
<legend>Compendium</legend>
|
||||
|
||||
<div class='flexrow'>
|
||||
<label>Identifier</label>
|
||||
<span class='value id'>{{pack.collection}}</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='flexrow'>
|
||||
<label>Package Type</label>
|
||||
<span class='value id'>{{pack.metadata.packageType}}</span>
|
||||
</div>
|
||||
|
||||
<!--div class='flexrow'>
|
||||
<label>Package</label>
|
||||
<span class='value'>{{packageName}}</span>
|
||||
</div-->
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>Content</legend>
|
||||
|
||||
<div class='flexrow'>
|
||||
<label>Document Type</label>
|
||||
<span class='value'>{{pack.documentName}}</span>
|
||||
</div>
|
||||
|
||||
<div class='flexrow'>
|
||||
<label>Entries</label>
|
||||
<span class='progress value' name='total'>{{pack.index.size}}</span>
|
||||
</div>
|
||||
|
||||
<div class='flexrow'>
|
||||
<label>Index Size</label>
|
||||
<span class='value' name='index-size'>{{indexSize}} kB</span>
|
||||
</div>
|
||||
|
||||
<div class='flexrow'>
|
||||
<label>Total Data</label>
|
||||
<span class='value' name='doc-total'>{{docTotal}}</span>
|
||||
</div>
|
||||
|
||||
<div class='flexrow'>
|
||||
<label>Avg. Data</label>
|
||||
<span class='value' name='doc-avg'>{{docAvg}}</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class='flexrow status'>
|
||||
<label>Status</label>
|
||||
<span class='value {{state.id}}' name='status'>{{state.icon}} {{state.label}}</span>
|
||||
</div>
|
||||
|
||||
<p class='hint'><i class='{{@root.icons.exclamationTrinagle.string}}'></i> This process can NOT be cancelled.</p>
|
||||
</form>
|
||||
@@ -0,0 +1,100 @@
|
||||
<div id='lil-data-sources' style='display:none;'>
|
||||
<!-- Formulaic Attack Count -->
|
||||
<datalist id='lil-premade-fac-list'>
|
||||
<option data-choice='bab-iteratives' value='ceil(@attributes.bab.total / 5) - 1'>{{localize 'LittleHelper.DataSources.BABIteratives'}}</option>
|
||||
<option data-choice='flurry-unchained' value='ceil(@attributes.bab.total / 5) - 1 + floor((@classes.monkUnchained.level + 9) / 10)'>{{localize 'LittleHelper.DataSources.FlurryUnchained'}}</option>
|
||||
<option data-choice='flurry-chained' value='ceil(@classes.monk.level / 5) + ceil((@classes.monk.level - 7) / 7)'>{{localize 'LittleHelper.DataSources.FlurryChained'}}</option>
|
||||
</datalist>
|
||||
|
||||
<!-- Formulaic Attack Bonus -->
|
||||
<datalist id='lil-premade-fab-list'>
|
||||
<option data-choice='bab-iteratives' value='@formulaicAttack * -5'>{{localize 'LittleHelper.DataSources.BABIteratives'}}</option>
|
||||
<option data-choice='flurry-unchained' value='max(0, @formulaicAttack - floor((@classes.monkUnchained.level + 9) / 10)) * -5'>{{localize 'LittleHelper.DataSources.FlurryUnchained'}}</option>
|
||||
<option data-choice='flurry-chained' value='-(floor(@formulaicAttack / 2) * 5)'>{{localize 'LittleHelper.DataSources.FlurryChained'}}</option>
|
||||
</datalist>
|
||||
|
||||
<!-- Roll Dialog Options -->
|
||||
<datalist id='lil-premade-roll-list'>
|
||||
<option data-choice='default-check' value='1d20'>{{localize "LittleHelper.DataSources.DefaultCheck"}}</option>
|
||||
<option data-choice='auto-crit' value='20'>{{localize "LittleHelper.DataSources.AutoCrit"}}</option>
|
||||
<option data-choice='fortune-check' value='2d20kh'>{{localize 'LittleHelper.DataSources.Fortune'}}</option>
|
||||
<option data-choice='misfortune-check' value='2d20kl'>{{localize 'LittleHelper.DataSources.Misfortune'}}</option>
|
||||
</datalist>
|
||||
|
||||
<!-- Attack Roll Bonus -->
|
||||
<datalist id='lil-premade-ab-list'>
|
||||
<option data-choice='weapon-focus' value='1[{{localize 'LittleHelper.DataSources.WeaponFocus'}}]'></option>
|
||||
<option data-choice='weapon-focus-greater' value='1[{{localize 'LittleHelper.DataSources.WeaponFocus'}}] + 1[{{localize 'LittleHelper.DataSources.WeaponFocusGt'}}]'></option>
|
||||
</datalist>
|
||||
|
||||
<!-- Critical Confirmation Bonus -->
|
||||
<datalist id='lil-premade-cf-list'>
|
||||
<option data-choice='critical-focus' value='4[{{localize 'LittleHelper.DataSources.CriticalFocus'}}]'></option>
|
||||
</datalist>
|
||||
|
||||
<!-- Attack Dialog Attack Bonus -->
|
||||
<datalist id='lil-premade-attack-bonus-list'>
|
||||
<option data-choice='situational' value='1[{{localize 'LittleHelper.DataSources.Situational'}}]'></option>
|
||||
<option data-choice='situational' value='-1[{{localize 'LittleHelper.DataSources.Situational'}}]'></option>
|
||||
<option data-choice='charge' value='2[{{localize 'LittleHelper.DataSources.Charge'}}]'></option>
|
||||
<option data-choice='flanking' value='2[{{localize 'LittleHelper.DataSources.Flanking'}}]'></option>
|
||||
<option data-choice='flanking-charge' value='2[{{localize 'LittleHelper.DataSources.Charge'}}] + 2[{{localize 'LittleHelper.DataSources.Flanking'}}]'></option>
|
||||
<option data-choice='shot-into-melee' value='-4[{{localize 'LittleHelper.DataSources.ShotIntoMelee'}}]'></option>
|
||||
<option data-choice='shot-through' value='-4[{{localize 'LittleHelper.DataSources.ShotThrough'}}]'></option>
|
||||
<option data-choice='shot-through-into-melee' value='-8[{{localize 'LittleHelper.DataSources.ShotThroughIntoMelee'}}]'></option>
|
||||
<option data-choice='iterative-2' value='-5[{{localize 'LittleHelper.DataSources.Iterative2nd'}}]'></option>
|
||||
<option data-choice='iterative-3' value='-10[{{localize 'LittleHelper.DataSources.Iterative3rd'}}]'></option>
|
||||
</datalist>
|
||||
|
||||
<!-- Attack Damage Formula Field -->
|
||||
<datalist id='lil-premade-damage-formula-list'>
|
||||
<option data-choice='size-damage' value='sizeRoll(1, 6, @size)'>{{localize 'LittleHelper.DataSources.SizeScalingDamage'}}</option>
|
||||
<option data-choice='sneak-attack' value='ceil(@classes.rogue.level / 2)d6'>{{localize 'LittleHelper.DataSources.SneakAttack'}}</option>
|
||||
</datalist>
|
||||
|
||||
<!-- Attack Dialog Roll Bonus -->
|
||||
<datalist id='lil-premade-roll-bonus-list'>
|
||||
<option data-choice='aid-another' value='2[{{localize 'LittleHelper.DataSources.AidAnother'}}]'></option>
|
||||
<option data-choice='aid-another-x2' value='4[{{localize 'LittleHelper.DataSources.AidAnotherX2'}}]'></option>
|
||||
<option data-choice='aid-another-x3' value='6[{{localize 'LittleHelper.DataSources.AidAnotherX3'}}]'></option>
|
||||
<!--
|
||||
<option value='1d6[Inspiration]'></option>
|
||||
<option value='1d8[Amazing Inspiration]'></option>
|
||||
<option value='2d6[True Inspiration]'></option>
|
||||
<option value='2d8[True Amazing Inspiration]'></option>
|
||||
<option value='2d8kh[True Amazing Tenacious Inspiration]'></option>
|
||||
-->
|
||||
</datalist>
|
||||
|
||||
<!-- Attack Damage Formula Damage Types -->
|
||||
<datalist id='lil-premade-damage-type-list'>
|
||||
{{#each registry.damageTypes}}<option value='{{this}}'></option>{{/each}}
|
||||
<!-- {{#each extra.damageTypes}}<option value='{{this}}'></option>{{/each}} -->
|
||||
</datalist>
|
||||
|
||||
<!-- DC Formula -->
|
||||
<datalist id='lil-premade-dc-list'>
|
||||
<option data-choice='racial-dc' value='10 + floor(@attributes.hd.total / 2) + @abilities.cha.mod'>{{localize 'LittleHelper.DataSources.RacialDCTemplate'}}</option>
|
||||
<option data-choice='class-dc-linked' value='10 + floor(@class.level / 2) + @abilities.X.mod'>{{localize 'LittleHelper.DataSources.ClassDCTemplate'}}</option>
|
||||
<option data-choice='class-dc-unlinked' value='10 + floor(@classes.X.level / 2) + @abilities.X.mod'>{{localize 'LittleHelper.DataSources.ClassDCTemplate'}}</option>
|
||||
</datalist>
|
||||
|
||||
<!-- DC Offset -->
|
||||
<datalist id='lil-premade-spell-dc-list'>
|
||||
<option data-choice='spell-focus' value='1[{{localize 'LittleHelper.DataSources.SpellFocus'}}]'>{{localize 'LittleHelper.DataSources.SpellFocus'}}</option>
|
||||
<option data-choice='spell-focus-greater' value='1[{{localize 'LittleHelper.DataSources.SpellFocus'}}] + 1[{{localize 'LittleHelper.DataSources.SpellFocusGt'}}]'>{{localize 'LittleHelper.DataSources.SpellFocusGt'}}</option>
|
||||
</datalist>
|
||||
|
||||
<!-- Power Attack Multiplier -->
|
||||
<datalist id='lil-power-attack-mult'>
|
||||
<option data-choice='off-hand' value='0.5'>{{localize 'PF1.WeaponHoldTypeOffhand'}}</option>
|
||||
<option data-choice='normal' value='1'>{{localize 'PF1.WeaponHoldTypeNormal'}}</option>
|
||||
<option data-choice='two-handed' value='1.5'>{{localize 'PF1.WeaponHoldTypeTwoHanded'}}</option>
|
||||
</datalist>
|
||||
|
||||
<!-- Class Custom HD -->
|
||||
<datalist id='lil-class-hd'>
|
||||
<option data-choice='three-quarters-offset' value='ceil((@item.level + 1) * 0.75)'>{{localize 'LittleHelper.DataSources.ThreeQuartersOffset'}}</option>
|
||||
<option data-choice='three-quarters' value='ceil(@item.level * 0.75)'>{{localize 'LittleHelper.DataSources.ThreeQuarters'}}</option>
|
||||
</datalist>
|
||||
</div>
|
||||
@@ -0,0 +1,40 @@
|
||||
<form autocomplete='off'>
|
||||
<div class='flexrow main-body'>
|
||||
{{#if isSpontaneous}}
|
||||
<div class='casts-per-day'>
|
||||
<h2>Casts</h2>
|
||||
<ul style='--max-level:{{maxLevel}};'>
|
||||
<li class='header'>
|
||||
<div class='cell header'>CL\SL</div>
|
||||
{{#each castsLevels}}<div class='sl cell'>{{this}}</div>{{/each}}
|
||||
</li>
|
||||
{{#each casts}}
|
||||
<li data-level='{{level}}' class='{{#if (eq @root.cl level)}}current{{/if}}'>
|
||||
<div class='cl cell header'>{{level}}</div>
|
||||
{{#each slots}}<div data-spell-level='{{level}}' class='cell {{#if active}}active{{else}}inactive{{/if}}'>{{#unless infinite}}{{slots}}{{else}}<i class='{{@root.icons.infinity.string}}'></i>{{/unless}}</div>{{/each}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class='spells-per-day'>
|
||||
<h2>{{#if (and @root.isSpontaneous (ne @root.prepMode 'hybrid'))}}Known{{else}}Prepared{{/if}}</h2>
|
||||
<ul class='{{#if @root.isSpontaneous}}spontaneous{{/if}}' style='--max-level:{{maxLevel}};'>
|
||||
<li class='header'>
|
||||
{{#unless @root.isSpontaneous}}
|
||||
<div class='cell header'>CL\SL</div>
|
||||
{{/unless}}
|
||||
{{#each prepLevels}}<div class='sl cell'>{{this}}</div>{{/each}}
|
||||
</li>
|
||||
{{#each prep}}
|
||||
<li data-level='{{level}}' class='{{#if (eq @root.cl level)}}current{{/if}}'>
|
||||
{{#unless @root.isSpontaneous}}
|
||||
<div class='cl cell header'>{{level}}</div>
|
||||
{{/unless}}
|
||||
{{#each slots}}<div data-spell-level='{{level}}' class='cell {{#if active}}active{{else}}inactive{{/if}}'>{{#unless infinite}}{{slots}}{{else}}<i class='{{@root.icons.infinity.string}}'></i>{{/unless}}</div>{{/each}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,20 @@
|
||||
<form autocomplete='off'>
|
||||
{{#if failed}}
|
||||
<p class='resync-error'>Failed to retrieve & transform source document.</p>
|
||||
<p class='error-message'>{{error}}</p>
|
||||
{{else if diff}}
|
||||
{{#if empty}}
|
||||
<p class='sync-notification'>Source data synchronization would not alter this item.</p>
|
||||
{{else}}
|
||||
<h2>Data to be written:</h2>
|
||||
<textarea class='sync-preview' readonly='true'>{{~diff~}}</textarea>
|
||||
<p>Synchronization overwrites data, it does not remove excess data (outside of deletions due to Foundry's handling of arrays).</p>
|
||||
<p>This can NOT be undone.</p>
|
||||
<div class='buttons'>
|
||||
<button type='button' class='commit'>Commit</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<p class='resync-pull'>Fetching source data...</p>
|
||||
{{/if}}
|
||||
</form>
|
||||
@@ -0,0 +1,33 @@
|
||||
<form autocomplete='off'>
|
||||
<p class='warning'>Applying to NOT targeted tokens.</p>
|
||||
<ul class='targets'>
|
||||
<li class='header' data-token-id='{{id}}'>
|
||||
<span class='targeted'> </span>
|
||||
<span class='name'>Name</span>
|
||||
</li>
|
||||
{{#*inline "targetListing"}}
|
||||
{{#each this}}
|
||||
<li class='target' data-token-id='{{id}}'>
|
||||
<span class='targeted {{#if selected}}{{#if targeted}}true{{else}}false{{/if}}{{else}}unselected{{/if}}'>
|
||||
{{#if selected}}✔{{else}}☐{{/if}}
|
||||
</span>
|
||||
<span class='name'>{{token.name}}</span>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{/inline}}
|
||||
|
||||
<li class='category'><span> </span><span>Untargeted</span></li>
|
||||
{{> targetListing targets}}
|
||||
|
||||
{{#if included.length}}
|
||||
<li class='category'><span> </span><span>Inluded Actual Targets</span></li>
|
||||
{{> targetListing included}}
|
||||
{{/if}}
|
||||
|
||||
{{#if excluded.length}}
|
||||
<li class='category'><span> </span><span>Excluded Actual Targets</span></li>
|
||||
{{> targetListing excluded}}
|
||||
{{/if}}
|
||||
</ul>
|
||||
<p class='question'>Is this correct?</p>
|
||||
</form>
|
||||
@@ -0,0 +1,11 @@
|
||||
<form autocomplete='off'>
|
||||
<p class='hint'>Select image to synchronize both with.</p>
|
||||
<div class='actor-image'>
|
||||
<h3>Actor</h3>
|
||||
<img src='{{actor.img}}'>
|
||||
</div>
|
||||
<div class='token-image'>
|
||||
<h3>Token</h3>
|
||||
<img src='{{token.texture.src}}'>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,16 @@
|
||||
<ol class='xp-chart'>
|
||||
<li class='header'>
|
||||
<label class='level'>{{localize 'PF1.Level'}}</label>
|
||||
<label class='total cumulative' data-tooltip='LittleHelper.XPTable.CumulativeHint'>{{localize 'LittleHelper.XPTable.Cumulative'}}</label>
|
||||
<label class='value increment' data-tooltip='LittleHelper.XPTable.IncrementHint'>{{localize 'LittleHelper.XPTable.Increment'}}</label>
|
||||
<label class='percent increase' data-tooltip='LittleHelper.XPTable.PercentHint'>{{localize 'LittleHelper.XPTable.Percent'}}</label>
|
||||
</li>
|
||||
{{#each track}}
|
||||
<li class='level' data-level='{{level}}'>
|
||||
<label class='level'>{{level}}</label>
|
||||
<span class='total cumulative'>{{total}}</span>
|
||||
<span class='value increment'>{{value}}</span>
|
||||
<span class='percent increase'>{{#if pct}}{{numberFormat pct sign=true decimals=1}}%{{else}}—{{/if}}</span>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
@@ -0,0 +1,74 @@
|
||||
<div class='lil-advanced-options'>
|
||||
<h3 class='form-header'><i class='{{@root.icons.puzzlePiece.string}}'></i> Little Helper 🦎</h3>
|
||||
|
||||
{{#unless libwrapper}}
|
||||
<p class="warning">
|
||||
<i class="fa-solid fa-triangle-exclamation"></i>
|
||||
Please install & enable libWrapper module to allow for most of these options to function.
|
||||
</p>
|
||||
{{/unless}}
|
||||
|
||||
{{#if hasAction}}
|
||||
<div class='flexrow'>
|
||||
<label>
|
||||
<input class='lil-hide-attack' type='checkbox' name='flags.lilhelper.item.hideAttacks' {{checked hideAttacks}}>
|
||||
Hide attack rolls
|
||||
</label>
|
||||
<p class='hint'>Attacks can't be omitted for things that have multiple instances of damage, e.g. magic missile, this helps deal with that.</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasAction}}
|
||||
<div class='flexrow'>
|
||||
<label>
|
||||
<input class='lil-power-attack' type='checkbox' name='flags.lilhelper.item.autoPowerAttack' {{checked autoPowerAttack}}>
|
||||
Automatic Power Attack
|
||||
</label>
|
||||
<p class='hint'>Automatically enable power attack for this attack. This can still be disabled via the dialog.</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasAction}}
|
||||
<div class='flexrow'>
|
||||
<label>
|
||||
<input class='lil-keen' type='checkbox' name='flags.lilhelper.item.keen' {{checked keen}}>
|
||||
Keen
|
||||
</label>
|
||||
<p class='hint'>Extend critical threat range as per Keen property.</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasAction}}
|
||||
<div class='flexrow'>
|
||||
<label>Use dialog override</label>
|
||||
<select class='lil-skip-dialog-override' data-dtype='Number' name='flags.lilhelper.item.skipDialog'>
|
||||
{{selectOptions choices.skipDialog selected=skipDialog localize=true}}
|
||||
</select>
|
||||
<p class='hint'>Force dialog behaviour to be display or skip regardless of system settings or shift being held. Primarily intended for disabling the dialog for abilities you never want to see it for.</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasAction}}
|
||||
<div class='flexrow'>
|
||||
<label>{{localize 'LittleHelper.Options.RollModeOverride'}}</label>
|
||||
<select class='lil-rollmode-override {{#if (eq rollmodeOverride.value 'garbage')}}bad-value{{/if}}' data-dtype='String' name='flags.lilhelper.item.rollmodeOverride'>
|
||||
{{selectOptions choices.rollmodes selected=rollmodeOverride localize=true}}
|
||||
</select>
|
||||
<p class='hint'>Force roll mode to this regardless what the currently selected roll mode is. Does not override roll mode when it's forced by scripts.</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if hasAction}}
|
||||
<div class='flexrow'>
|
||||
<label>Roll override</label>
|
||||
<input type='text' class='lil-roll-override' data-dtype='String' value='{{rollOverride}}' placeholder='1d20' name='flags.lilhelper.item.rollOverride'>
|
||||
<p class='hint'>Force dice to this if not otherwise forced.</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#unless hasAction}}
|
||||
<div class='flexrow'>
|
||||
<p class='hint'>No options available for item of this type.</p>
|
||||
</div>
|
||||
{{/unless}}
|
||||
</div>
|
||||
@@ -0,0 +1,116 @@
|
||||
<form autocomplete='off'>
|
||||
<div class='config'>
|
||||
{{#if actions}}
|
||||
<div>
|
||||
<label>{{localize 'PF1.Action'}}</label>
|
||||
<select name='action'>
|
||||
{{selectOptions actions selected=selectedAction}}
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class='size config-item'>
|
||||
<label>{{localize 'PF1.Size'}}</label>
|
||||
<select data-dtype='Number' name='size'>
|
||||
{{selectOptions options.size selected=d.config.size}}
|
||||
</select>
|
||||
</div>
|
||||
{{#if isSpell}}
|
||||
<div class='spell'>
|
||||
<div class='cl config-item'>
|
||||
<label>{{localize 'LittleHelper.Theory.CLOffset'}}</label>
|
||||
<input data-dtype='Number' name='clOffset' type='number' min='-15' max='15' step='1' value='{{d.config.clOffset}}'>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{#with attack}}
|
||||
<div class='attack'>
|
||||
<div class='damage'>
|
||||
<h2>{{localize 'PF1.Damage'}}</h2>
|
||||
{{#if @root.item.hasDamage}}
|
||||
<ul class='formulas'>
|
||||
<li class='header'>
|
||||
<h3 class='enabled vis-hidden'></h3>
|
||||
<h3 class='formula'>{{localize 'PF1.Formula'}}</h3>
|
||||
<h3 class='estimate' data-tooltip='Estimation' data-tooltip-direction='UP'>{{localize 'LittleHelper.Theory.EstimateAbbr'}}</h3>
|
||||
<h3 class='min-max' data-tooltip='Minimum to Maximum Range' data-tooltip-direction='UP'>{{localize 'LittleHelper.Theory.MinMax'}}</h3>
|
||||
<h3 class='types'>{{localize 'LittleHelper.Theory.Types'}}</h3>
|
||||
<h3 class='metatype'>{{localize 'LittleHelper.Theory.Metatype'}}</h3>
|
||||
</li>
|
||||
{{!-- DAMAGE INSTANCES --}}
|
||||
{{#each damage.groups}}
|
||||
<li class='sub-header {{#unless label}}hidden collapsed{{/unless}}'>
|
||||
<span class='vis-hidden'></span>
|
||||
<h3>{{label}}</h3>
|
||||
</li>
|
||||
{{#if items}}
|
||||
{{#each items}}
|
||||
{{#if label}}
|
||||
<li class='label {{#if enabled}}enabled{{else}}disabled{{/if}}'>
|
||||
<span class='vis-hidden'></span>
|
||||
<h5>{{label}}</h5>
|
||||
</li>
|
||||
{{/if}}
|
||||
<li class='{{#if conditional}}conditional{{/if}} {{#if enabled}}enabled{{else}}disabled{{/if}} {{#if error}}error{{/if}}'>
|
||||
<input type='checkbox' data-dtype='Boolean' name='attacks.0.damage.{{#unless ../custom}}{{index}}{{else}}custom{{/unless}}.enabled' {{checked enabled}} {{#if ../base}}readonly disabled{{/if}}>
|
||||
{{#unless ../custom}}
|
||||
<label class='formula modified' {{#if error}}data-tooltip='{{error}}' data-tooltip-direction='UP'{{/if}}>{{strippedFormula}}</label>
|
||||
{{else}}
|
||||
<input class='formula original' data-dtype='String' name='damage.custom.formula' type='text' value='{{formula}}' placeholder='Custom formula' {{#if error}}data-tooltip='{{error}}' data-tooltip-direction='UP'{{/if}}>
|
||||
{{/unless}}
|
||||
<label class='estimate'>{{est}}</label>
|
||||
<label class='min-max {{#if (eq min.total max.total)}}faded{{/if}}'>{{#if (eq min.total max.total)}}–{{else}}{{min.total}} – {{max.total}}{{/if}}</label>
|
||||
<label class='types'>{{#if (or type.values type.custom)}}{{#each type.values}}<span>{{this}}</span>{{/each}}{{#if type.custom}}<span>{{type.custom}}</span>{{/if}}{{else}}n/a{{/if}}</label>
|
||||
<label class='metatype'>{{#if metatype}}{{metatype}}{{else}}n/a{{/if}}</label>
|
||||
</li>
|
||||
<li class='details {{#unless verbose}}{{#if (or static staticFormula)}}hidden collapsed{{/if}}{{/unless}} {{#if enabled}}enabled{{else}}disabled{{/if}}'>
|
||||
<span class='vis-hidden'></span>
|
||||
<label class='formula {{#unless ../custom}}original{{else}}modified{{/unless}}' {{#if variables}}data-tooltip='{{variablesFormatted}}' data-tooltip-direction='UP'{{/if}}>{{#unless ../custom}}{{originalFormula}}{{else}}{{finalFormula}}{{/unless}}</label>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<li class='info'>
|
||||
<span class='vis-hidden'></span>
|
||||
<label>{{localize 'LittleHelper.Warning.NoItemsFound'}}</label>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
{{!-- TOTAL --}}
|
||||
<li class='total'>
|
||||
{{#with damage.total}}
|
||||
<span class='vis-hidden'></span>
|
||||
<span class='vis-hidden'></span>
|
||||
<h3 class='estimate'>{{est}}</h3>
|
||||
<h3 class='min-max {{#if static}}faded{{/if}}'>{{#if static}}–{{else}}{{min}} – {{max}}{{/if}}</h3>
|
||||
<span class='vis-hidden'></span>
|
||||
<span class='vis-hidden'></span>
|
||||
{{/with}}
|
||||
</li>
|
||||
{{#if @root.d.config.full}}
|
||||
<li class='full-attack'>
|
||||
{{#with @root.fullAttack}}
|
||||
<span class='vis-hidden'></span>
|
||||
<label>Full attack with {{attackCount}} attacks</label>
|
||||
<h3 class='estimate'>{{est}}</h3>
|
||||
<h3 class='min-max {{#if static}}faded{{/if}}'>{{#if static}}–{{else}}{{min}} – {{max}}{{/if}}</h3>
|
||||
<span class='vis-hidden'></span>
|
||||
<span class='vis-hidden'></span>
|
||||
{{/with}}
|
||||
</li>
|
||||
{{/if}}
|
||||
<li class='footer'>
|
||||
<span class='vis-hidden'></span>
|
||||
<span class='vis-hidden'></span>
|
||||
<h3 class='total'>{{localize 'PF1.Total'}}</h3>
|
||||
<span class='vis-hidden'></span>
|
||||
<span class='vis-hidden'></span>
|
||||
</li>
|
||||
</ul>
|
||||
{{else}}
|
||||
<p>{{localize 'LittleHelper.Theory.NoDamage'}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/with}}
|
||||
</form>
|
||||
42
src/modules/koboldworks-pf1-little-helper/template/news.hbs
Normal file
42
src/modules/koboldworks-pf1-little-helper/template/news.hbs
Normal file
@@ -0,0 +1,42 @@
|
||||
<form class='main-content'>
|
||||
<p class='hint'>You have discovered new features in Little Helper 🦎...</p>
|
||||
|
||||
<section class='content'>
|
||||
{{#each sorted}}
|
||||
<details class='group' open>
|
||||
<summary class='title'>{{localize label}}</summary>
|
||||
<ul>
|
||||
{{#each group as |feature|}}
|
||||
<li class='setting {{#if disabled}}disabled{{/if}} {{#if gmOnly}}gm{{/if}}' data-setting-id='{{setting}}'>
|
||||
<input id='little-helper-client-{{setting}}' type='checkbox' data-dtype='Boolean' name='{{setting}}.enabled' {{checked (and enabled (not disabled))}} {{#if disabled}}disabled{{/if}}>
|
||||
<label for='little-helper-client-{{setting}}'>
|
||||
{{label}}
|
||||
{{#if disabled}}
|
||||
{{#if gmOnly}}{{#unless @root.isGM}} (GM-only){{/unless}}{{/if}}
|
||||
{{#if requirements}}
|
||||
{{#if requirements.module}} (module missing/inactive){{/if}}
|
||||
{{#if requirements.system}} (need system version: {{requirements.system}}){{/if}}
|
||||
{{#if requirements.core}} (need Foundry version: {{requirements.core}}){{/if}}
|
||||
{{/if}}
|
||||
{{#if conflict}} (conflict(s): {{#if conflict.system}}PF1 {{conflict.system}}{{/if}}{{#if conflict.core}}{{#if conflict.system}} & {{/if}}Foundry {{conflict.core}}{{/if}}{{#if conflict.module}}{{#if (or conflict.system conflict.core)}} & {{/if}}<i>{{conflict.module}}</i> module{{/if}}){{/if}}
|
||||
{{/if}}
|
||||
</label>
|
||||
{{#if gmOnly}} <i class='{{@root.icons.crown.string}} gm-only' data-tooltip='GM-only' data-tooltip-direction='UP'></i>{{/if}}
|
||||
<p class='hint'>{{hint}}</p>
|
||||
{{#if notification}}<p class='hint lh-notification'>{{notification}}</p>{{/if}}
|
||||
{{#if warning}}<p class='hint lh-warning'>{{warning}}</p>{{/if}}
|
||||
{{#if subsettings}}
|
||||
{{~> "modules/koboldworks-pf1-little-helper/template/subsettings.hbs" settings=subsettings parent=setting}}
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</details>
|
||||
{{/each}}
|
||||
</section>
|
||||
|
||||
<div class='buttons'>
|
||||
<hr>
|
||||
<button type='submit'><i class='{{@root.icons.save.string}}'></i> Save new settings and don't show this again.</button>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,74 @@
|
||||
<form>
|
||||
{{#if user}}
|
||||
<div class='threshold'>
|
||||
<fieldset class='auto-select'>
|
||||
<legend>{{localize 'LittleHelper.QuickSkills.AutoSelection'}}</legend>
|
||||
<div class='flexrow slider min-rank align-center'>
|
||||
<label>{{localize 'LittleHelper.QuickSkills.MinRank'}}</label>
|
||||
<input type='number' min='0' step='1' max='40' data-dtype='Number' value='{{minRank}}' name='minRank'>
|
||||
</div>
|
||||
<div class='flexrow slider align-center'>
|
||||
<label>{{localize 'LittleHelper.QuickSkills.Percentage'}}</label>
|
||||
<input type='range' min='0' max='1' step='0.01' data-dtype='Number' value='{{threshold}}' name='threshold'>
|
||||
<span class='percentage'>{{thresholdPct}}%</span>
|
||||
</div>
|
||||
<p class='hint'>{{localize 'LittleHelper.QuickSkills.AutoSelectHint'}}</p>
|
||||
<div class='slider-config'>
|
||||
<label class='flexrow align-center usemod-toggle'>
|
||||
<input type='checkbox' name='useMod' data-dtype='Boolean' {{checked useMod}}>
|
||||
<span>{{{localize 'LittleHelper.QuickSkills.UseMaxMod' maxMod=labels.maxMod maxRank=labels.maxRank}}}</span>
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class='settings'>
|
||||
<label class='flexrow align-center' data-tooltip='For simpler view for configuring auto-selection.<br>Affects only this dialog.' data-tooltip-direction='UP'>
|
||||
<input type='checkbox' class='hide-unselected'>
|
||||
<span>{{localize 'LittleHelper.QuickSkills.OnlyAutoSelected'}}</span>
|
||||
</label>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<ul class='skill-list{{#if @root.user}} actor{{/if}}'>
|
||||
<li class='skill-list-header'>
|
||||
<label>{{localize 'PF1.Skill'}}</label>
|
||||
{{#if @root.user}}
|
||||
<span class='skill-rank' data-tooltip='Skill Rank' data-tooltip-direction='UP'>{{localize 'PF1.Rank'}}</span>
|
||||
<span class='skill-mod' data-tooltip='Total Modifier' data-tooltip-direction='UP'>{{localize 'LittleHelper.QuickSkills.Mod'}}</span>
|
||||
<span class='default' data-tooltip='Default' data-tooltip-direction='UP'>{{localize 'LittleHelper.QuickSkills.Default'}}</span>
|
||||
{{/if}}
|
||||
</li>
|
||||
|
||||
{{#each skills}}
|
||||
<li data-skill-id='{{id}}' data-skill='{{parentId}}' {{#if subId}}data-sub-skill='{{subId}}'{{/if}}
|
||||
class='skill align-center {{#if default}}default{{/if}}' data-rank='{{rank}}' data-mod='{{mod}}'>
|
||||
<label>
|
||||
<input type='checkbox' data-dtype='Boolean' name='skill.{{id}}' {{checked selected}}>
|
||||
<span class='skill-name'>{{name}}</span>
|
||||
</label>
|
||||
{{#if @root.user}}
|
||||
<span class='skill-rank'>{{rank}}</span>
|
||||
<span class='skill-mod'>{{mod}}</span>
|
||||
<span class='default' data-tooltip='Enabled by default if not configured.' data-tooltip-direction='UP'>
|
||||
{{#if default}}<i class='{{@root.icons.star}}'></i>{{/if}}
|
||||
</span>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{#if user}}
|
||||
<p class='hint'>{{{localize 'LittleHelper.QuickSkills.HelpText'}}}</p>
|
||||
{{/if}}
|
||||
<hr>
|
||||
|
||||
<div class='buttons flexrow'>
|
||||
<button type='submit' data-action='save'>
|
||||
<i class="{{@root.icons.save}}"></i>
|
||||
{{localize 'Save'}}
|
||||
</button>
|
||||
<button type='reset' data-action='reset'>
|
||||
<i class="{{@root.icons.reset}}"></i>
|
||||
{{localize 'Reset'}}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,15 @@
|
||||
<fieldset class='sub-settings'>
|
||||
<legend>Sub-settings</legend>
|
||||
{{#each settings as |setting ssid|}}
|
||||
<label>
|
||||
{{#if (eq type.name 'Boolean')}}
|
||||
<input type='checkbox' data-dtype='Boolean' name='{{../parent}}.config.{{ssid}}' {{checked value}}>
|
||||
<span class='setting-name'>{{label}}</span>
|
||||
{{else if (eq type.name 'Object')}}
|
||||
<button type='button' data-callback='{{../parent}}.config.{{ssid}}'>{{callback.label}}</button>
|
||||
<label class='setting-value'>{{display}}</label>
|
||||
{{/if}}
|
||||
</label>
|
||||
{{#if hint}}<p class='hint'>{{{hint}}}</p>{{/if}}
|
||||
{{/each}}
|
||||
</fieldset>
|
||||
@@ -0,0 +1,47 @@
|
||||
<div class='grid-4'>
|
||||
{{!-- HEALTH --}}
|
||||
<div class='health'>
|
||||
<label class='label'>{{localize "PF1.HPShort"}}</label>
|
||||
<div class='health-data simple-value'>
|
||||
<span class='health effective value'>{{health.effective}}</span> / <span class='health max value'>{{health.max}}</span>
|
||||
(<span class='health percentage value'>{{numberFormat health.percentage decimals=0}}%</span>)
|
||||
</div>
|
||||
|
||||
<label class='label'>Status</label>
|
||||
<span class='simple-value value text span-3'>{{health.label}}</span>
|
||||
</div>
|
||||
|
||||
{{!-- Normal AC --}}
|
||||
<div class='defenses armor normal'>
|
||||
<label class='label'>{{localize "PF1.ACNormal"}}</label>
|
||||
<span class='armor normal value'>{{defenses.ac.value}}</span>
|
||||
<label class='label'>FF</label>
|
||||
<span class='armor normal flat-footed value'>{{defenses.ac.ff}}</span>
|
||||
</div>
|
||||
|
||||
{{!-- Touch AC --}}
|
||||
<div class='defenses armor touch'>
|
||||
<label class='label'>TAC</label>
|
||||
<span class='armor touch value'>{{defenses.touch.value}}</span>
|
||||
<label class='label'>FF</label>
|
||||
<span class='armor touch flat-footed value'>{{defenses.touch.ff}}</span>
|
||||
</div>
|
||||
|
||||
{{!-- CMD --}}
|
||||
<div class='defenses cmd'>
|
||||
<label class='label'>{{localize "PF1.CMDAbbr"}}</label>
|
||||
<span class='cmd normal value'>{{defenses.cmd.value}}</span>
|
||||
<label class='label'>FF</label>
|
||||
<span class='cmd flat-foted value'>{{defenses.cmd.ff}}</span>
|
||||
</div>
|
||||
</div>
|
||||
{{!-- Active Effects --}}
|
||||
|
||||
{{#if effects}}
|
||||
<ul class='active-effects'>
|
||||
<h3 class='header'>{{localize "PF1.Effects"}}</h3>
|
||||
{{#each effects}}
|
||||
<li>{{name}}</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
@@ -0,0 +1,16 @@
|
||||
<form autocomplete='off'>
|
||||
<header>
|
||||
<h3>WIP</h3>
|
||||
</header>
|
||||
|
||||
<section class='content'>
|
||||
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<div class='buttons flexrow'>
|
||||
<button type='reset'>Reset</button>
|
||||
<button type='submit'>Save</button>
|
||||
</div>
|
||||
</footer>
|
||||
</form>
|
||||
Reference in New Issue
Block a user