mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-04-21 23:13:39 +02:00
Compare commits
5 commits
cf28e011f2
...
24073e4a16
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24073e4a16 | ||
|
|
cc5bfbe27d | ||
|
|
f66088971d | ||
|
|
882143c1bb | ||
|
|
baa72ff461 |
13 changed files with 80 additions and 35 deletions
|
|
@ -405,6 +405,8 @@ Hooks.on('chatMessage', (_, message) => {
|
|||
});
|
||||
|
||||
const updateActorsRangeDependentEffects = async token => {
|
||||
if (!token) return;
|
||||
|
||||
const rangeMeasurement = game.settings.get(
|
||||
CONFIG.DH.id,
|
||||
CONFIG.DH.SETTINGS.gameSettings.variantRules
|
||||
|
|
|
|||
25
lang/en.json
25
lang/en.json
|
|
@ -71,9 +71,7 @@
|
|||
"name": "Summon",
|
||||
"tooltip": "Create tokens in the scene.",
|
||||
"error": "You do not have permission to summon tokens or there is no active scene.",
|
||||
"invalidDrop": "You can only drop Actor entities to summon.",
|
||||
"chatMessageTitle": "Test2",
|
||||
"chatMessageHeaderTitle": "Summoning"
|
||||
"invalidDrop": "You can only drop Actor entities to summon."
|
||||
},
|
||||
"transform": {
|
||||
"name": "Transform",
|
||||
|
|
@ -87,9 +85,7 @@
|
|||
},
|
||||
"Config": {
|
||||
"beastform": {
|
||||
"exact": "Beastform Max Tier",
|
||||
"exactHint": "The Character's Tier is used if empty",
|
||||
"label": "Beastform"
|
||||
"exact": { "label": "Beastform Max Tier", "hint": "The Character's Tier is used if empty" }
|
||||
},
|
||||
"countdown": {
|
||||
"defaultOwnership": "Default Ownership",
|
||||
|
|
@ -1918,6 +1914,10 @@
|
|||
"hint": "Multiply any damage dealt to you by this number"
|
||||
}
|
||||
},
|
||||
"Battlepoints": {
|
||||
"full": "Battlepoints",
|
||||
"short": "BP"
|
||||
},
|
||||
"Bonuses": {
|
||||
"rest": {
|
||||
"downtimeAction": "Downtime Action",
|
||||
|
|
@ -2332,6 +2332,7 @@
|
|||
"next": "Next",
|
||||
"none": "None",
|
||||
"noTarget": "No current target",
|
||||
"optionalThing": "Optional {thing}",
|
||||
"partner": "Partner",
|
||||
"player": {
|
||||
"single": "Player",
|
||||
|
|
@ -2354,6 +2355,7 @@
|
|||
"rollDamage": "Roll Damage",
|
||||
"rollWith": "{roll} Roll",
|
||||
"save": "Save",
|
||||
"saveSettings": "Save Settings",
|
||||
"scalable": "Scalable",
|
||||
"scars": "Scars",
|
||||
"situationalBonus": "Situational Bonus",
|
||||
|
|
@ -2508,8 +2510,14 @@
|
|||
},
|
||||
"Weapon": {
|
||||
"weaponType": "Weapon Type",
|
||||
"primaryWeapon": "Primary Weapon",
|
||||
"secondaryWeapon": "Secondary Weapon"
|
||||
"primaryWeapon": {
|
||||
"full": "Primary Weapon",
|
||||
"short": "Primary"
|
||||
},
|
||||
"secondaryWeapon": {
|
||||
"full": "Secondary Weapon",
|
||||
"short": "Secondary"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MACROS": {
|
||||
|
|
@ -2970,6 +2978,7 @@
|
|||
},
|
||||
"ItemBrowser": {
|
||||
"title": "Daggerheart Compendium Browser",
|
||||
"windowTitle": "Compendium Browser",
|
||||
"hint": "Select a Folder in sidebar to start browsing through the compendium",
|
||||
"browserSettings": "Browser Settings",
|
||||
"columnName": "Name",
|
||||
|
|
|
|||
|
|
@ -11,7 +11,10 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
this.character = character;
|
||||
|
||||
this.setup = {
|
||||
traits: this.character.system.traits,
|
||||
traits: Object.keys(this.character.system.traits).reduce((acc, key) => {
|
||||
acc[key] = { value: null };
|
||||
return acc;
|
||||
}, {}),
|
||||
ancestryName: {
|
||||
primary: '',
|
||||
secondary: ''
|
||||
|
|
@ -377,8 +380,10 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
|||
];
|
||||
return Object.values(this.setup.traits).reduce((acc, x) => {
|
||||
const index = traitCompareArray.indexOf(x.value);
|
||||
if (index === -1) return acc;
|
||||
|
||||
traitCompareArray.splice(index, 1);
|
||||
acc += index !== -1;
|
||||
acc += 1;
|
||||
return acc;
|
||||
}, 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) {
|
|||
tag: 'div',
|
||||
window: {
|
||||
frame: true,
|
||||
title: 'Compendium Browser',
|
||||
title: 'DAGGERHEART.UI.ItemBrowser.windowTitle',
|
||||
icon: 'fa-solid fa-book-atlas',
|
||||
positioned: true,
|
||||
resizable: true
|
||||
|
|
@ -583,7 +583,9 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) {
|
|||
const { itemUuid } = event.target.closest('[data-item-uuid]').dataset,
|
||||
item = await foundry.utils.fromUuid(itemUuid),
|
||||
dragData = item.toDragData();
|
||||
|
||||
event.dataTransfer.setData('text/plain', JSON.stringify(dragData));
|
||||
event.dataTransfer.setDragImage(event.target.querySelector('img'), 0, 0);
|
||||
}
|
||||
|
||||
_canDragStart() {
|
||||
|
|
|
|||
|
|
@ -74,12 +74,13 @@ export const typeConfig = {
|
|||
columns: [
|
||||
{
|
||||
key: 'type',
|
||||
label: 'DAGGERHEART.GENERAL.type'
|
||||
label: 'DAGGERHEART.GENERAL.type',
|
||||
format: type => type ? `TYPES.Item.${type}` : '-'
|
||||
},
|
||||
{
|
||||
key: 'system.secondary',
|
||||
label: 'DAGGERHEART.UI.ItemBrowser.subtype',
|
||||
format: isSecondary => (isSecondary ? 'secondary' : isSecondary === false ? 'primary' : '-')
|
||||
format: isSecondary => (isSecondary ? 'DAGGERHEART.ITEMS.Weapon.secondaryWeapon.short' : isSecondary === false ? 'DAGGERHEART.ITEMS.Weapon.primaryWeapon.short' : '-')
|
||||
},
|
||||
{
|
||||
key: 'system.tier',
|
||||
|
|
@ -99,8 +100,8 @@ export const typeConfig = {
|
|||
key: 'system.secondary',
|
||||
label: 'DAGGERHEART.UI.ItemBrowser.subtype',
|
||||
choices: [
|
||||
{ value: false, label: 'DAGGERHEART.ITEMS.Weapon.primaryWeapon' },
|
||||
{ value: true, label: 'DAGGERHEART.ITEMS.Weapon.secondaryWeapon' }
|
||||
{ value: false, label: 'DAGGERHEART.ITEMS.Weapon.primaryWeapon.full' },
|
||||
{ value: true, label: 'DAGGERHEART.ITEMS.Weapon.secondaryWeapon.full' }
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -258,11 +259,13 @@ export const typeConfig = {
|
|||
columns: [
|
||||
{
|
||||
key: 'system.type',
|
||||
label: 'DAGGERHEART.GENERAL.type'
|
||||
label: 'DAGGERHEART.GENERAL.type',
|
||||
format: type => type ? `DAGGERHEART.CONFIG.DomainCardTypes.${type}` : '-'
|
||||
},
|
||||
{
|
||||
key: 'system.domain',
|
||||
label: 'DAGGERHEART.GENERAL.Domain.single'
|
||||
label: 'DAGGERHEART.GENERAL.Domain.single',
|
||||
format: domain => domain ? CONFIG.DH.DOMAIN.allDomains()[domain].label : '-'
|
||||
},
|
||||
{
|
||||
key: 'system.level',
|
||||
|
|
@ -374,7 +377,7 @@ export const typeConfig = {
|
|||
columns: [
|
||||
{
|
||||
key: 'system.linkedClass',
|
||||
label: 'Class',
|
||||
label: 'TYPES.Item.class',
|
||||
format: linkedClass => linkedClass?.name ?? 'DAGGERHEART.UI.ItemBrowser.missing'
|
||||
},
|
||||
{
|
||||
|
|
@ -386,7 +389,7 @@ export const typeConfig = {
|
|||
filters: [
|
||||
{
|
||||
key: 'system.linkedClass.uuid',
|
||||
label: 'Class',
|
||||
label: 'TYPES.Item.class',
|
||||
choices: items => {
|
||||
const list = items
|
||||
.filter(item => item.system.linkedClass)
|
||||
|
|
@ -410,7 +413,8 @@ export const typeConfig = {
|
|||
},
|
||||
{
|
||||
key: 'system.mainTrait',
|
||||
label: 'DAGGERHEART.GENERAL.Trait.single'
|
||||
label: 'DAGGERHEART.GENERAL.Trait.single',
|
||||
format: trait => (trait ? `DAGGERHEART.CONFIG.Traits.${trait}.name` : '-')
|
||||
}
|
||||
],
|
||||
filters: [
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ export default class BeastformField extends fields.SchemaField {
|
|||
{ 1: game.i18n.localize('DAGGERHEART.GENERAL.Tiers.1') }
|
||||
);
|
||||
},
|
||||
hint: 'DAGGERHEART.ACTIONS.Config.beastform.exactHint'
|
||||
label: 'DAGGERHEART.ACTIONS.Config.beastform.exact.label',
|
||||
hint: 'DAGGERHEART.ACTIONS.Config.beastform.exact.hint'
|
||||
})
|
||||
})
|
||||
};
|
||||
|
|
|
|||
|
|
@ -175,6 +175,11 @@
|
|||
opacity: 0.2;
|
||||
}
|
||||
|
||||
&.no-horizontal-padding {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
|
@ -274,6 +279,15 @@
|
|||
flex-direction: column;
|
||||
gap: 5px;
|
||||
|
||||
&.separated {
|
||||
border-bottom: 2px solid;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
|
||||
.experience-inner-container {
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<fieldset>
|
||||
<legend>{{localize "DAGGERHEART.ACTIONS.Config.beastform.label"}}</legend>
|
||||
<legend>{{localize "DAGGERHEART.ACTIONS.TYPES.beastform.name"}}</legend>
|
||||
{{formGroup fields.tierAccess.fields.exact value=source.tierAccess.exact name="beastform.tierAccess.exact" labelAttr="label" valueAttr="key" localize=true blank=""}}
|
||||
</fieldset>
|
||||
|
|
@ -4,17 +4,25 @@
|
|||
data-group='{{tabs.experience.group}}'
|
||||
>
|
||||
<div class="main-selections-container">
|
||||
<fieldset class="section-container">
|
||||
<fieldset class="section-container no-horizontal-padding">
|
||||
<legend>{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.initialExperiences"}} {{experience.nrSelected}}/{{experience.nrTotal}}</legend>
|
||||
<div class="experiences-inner-container">
|
||||
{{#each experience.values as |experience id|}}
|
||||
<div class="experience-container">
|
||||
<div class="experience-inner-container">
|
||||
<input class="experience-description" type="text" name="{{concat "experiences." id ".name" }}" value="{{experience.name}}" placeholder="{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.newExperience"}}" />
|
||||
<span class="experience-value">{{numberFormat this.value sign=true}}</span>
|
||||
<div class="experience-container {{#unless @last}}separated{{/unless}}">
|
||||
<div class="form-group">
|
||||
<label>{{localize "DAGGERHEART.GENERAL.label"}}</label>
|
||||
<div class="experience-inner-container">
|
||||
<input class="experience-description" type="text" name="{{concat "experiences." id ".name" }}" value="{{experience.name}}" placeholder="{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.newExperience"}}" />
|
||||
<span class="experience-value">{{numberFormat this.value sign=true}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<textarea name="{{concat "experiences." id ".description"}}">{{experience.description}}</textarea>
|
||||
<div class="form-group">
|
||||
<label>{{localize "DAGGERHEART.GENERAL.optionalThing" thing=(localize "DAGGERHEART.GENERAL.description")}}</label>
|
||||
<div class="form-fields">
|
||||
<textarea name="{{concat "experiences." id ".description"}}">{{experience.description}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
<footer>
|
||||
<button data-action="finish">{{localize "Save Settings"}}</button>
|
||||
<button data-action="finish">{{localize "DAGGERHEART.GENERAL.saveSettings"}}</button>
|
||||
</footer>
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
<h1 class='item-name'><input type='text' name='name' value='{{source.name}}' /></h1>
|
||||
<div class='item-description'>
|
||||
{{#if source.system.secondary}}
|
||||
<h3>{{localize "DAGGERHEART.ITEMS.Weapon.secondaryWeapon"}}</h3>
|
||||
<h3>{{localize "DAGGERHEART.ITEMS.Weapon.secondaryWeapon.full"}}</h3>
|
||||
{{else}}
|
||||
<h3>{{localize "DAGGERHEART.ITEMS.Weapon.primaryWeapon"}}</h3>
|
||||
<h3>{{localize "DAGGERHEART.ITEMS.Weapon.primaryWeapon.full"}}</h3>
|
||||
{{/if}}
|
||||
<h3>
|
||||
{{localize (concat 'DAGGERHEART.CONFIG.Traits.' source.system.attack.roll.trait '.short')}}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
{{#each category as |grouping index|}}
|
||||
<div class="battlepoint-grouping-container">
|
||||
{{#if grouping.nr}}
|
||||
<label>{{key}} BP: {{concat (localize grouping.description) ' ' '('grouping.nr 'x)'}}</label>
|
||||
<label>{{key}} {{localize "DAGGERHEART.GENERAL.Battlepoints.short"}} - {{concat (localize grouping.description) ' ' '('grouping.nr 'x)'}}</label>
|
||||
{{else}}
|
||||
<label class="unselected-grouping">{{key}} BP - {{localize grouping.description}}</label>
|
||||
<label class="unselected-grouping">{{key}} {{localize "DAGGERHEART.GENERAL.Battlepoints.short"}} - {{localize grouping.description}}</label>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
{{else}}
|
||||
<input type="checkbox" data-combat-id="{{@root.combatId}}" data-category="{{toggle.categoryKey}}" data-grouping="{{toggle.toggleKey}}" {{checked toggle.checked}} />
|
||||
{{/if}}
|
||||
<label class="unselected-grouping">{{toggle.categoryKey}} BP: {{localize toggle.description}}</label>
|
||||
<label class="unselected-grouping">{{toggle.categoryKey}} {{localize "DAGGERHEART.GENERAL.Battlepoints.short"}}: {{localize toggle.description}}</label>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<h2 class="tooltip-title">{{item.name}}</h2>
|
||||
<div class="tags">
|
||||
<div class="tag">
|
||||
<span>{{#if item.system.secondary}}{{localize "DAGGERHEART.ITEMS.Weapon.secondaryWeapon"}}{{else}}{{localize "DAGGERHEART.ITEMS.Weapon.primaryWeapon"}}{{/if}}</span>
|
||||
<span>{{#if item.system.secondary}}{{localize "DAGGERHEART.ITEMS.Weapon.secondaryWeapon.full"}}{{else}}{{localize "DAGGERHEART.ITEMS.Weapon.primaryWeapon.full"}}{{/if}}</span>
|
||||
</div>
|
||||
<div class="tag">
|
||||
{{#with (lookup config.GENERAL.burden item.system.burden) as | burden |}}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue