mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
Merge branch 'main' of https://github.com/Foundryborne/daggerheart
This commit is contained in:
commit
ced74ae8be
12 changed files with 69 additions and 32 deletions
|
|
@ -1894,6 +1894,7 @@
|
|||
"amount": "Amount",
|
||||
"any": "Any",
|
||||
"armor": "Armor",
|
||||
"armors": "Armors",
|
||||
"armorScore": "Armor Score",
|
||||
"activeEffects": "Active Effects",
|
||||
"armorSlots": "Armor Slots",
|
||||
|
|
@ -1944,6 +1945,7 @@
|
|||
"inactiveEffects": "Inactive Effects",
|
||||
"inventory": "Inventory",
|
||||
"itemResource": "Item Resource",
|
||||
"items": "Items",
|
||||
"label": "Label",
|
||||
"level": "Level",
|
||||
"levelShort": "Lv",
|
||||
|
|
@ -1955,6 +1957,7 @@
|
|||
"plural": "Miss"
|
||||
},
|
||||
"maxWithThing": "Max {thing}",
|
||||
"missingDragDropThing": "Drop {thing} here",
|
||||
"multiclass": "Multiclass",
|
||||
"newCategory": "New Category",
|
||||
"none": "None",
|
||||
|
|
@ -1976,6 +1979,7 @@
|
|||
"scalable": "Scalable",
|
||||
"situationalBonus": "Situational Bonus",
|
||||
"stress": "Stress",
|
||||
"subclasses": "Subclasses",
|
||||
"success": "Success",
|
||||
"take": "Take",
|
||||
"Target": {
|
||||
|
|
@ -1993,6 +1997,7 @@
|
|||
"used": "Used",
|
||||
"uses": "Uses",
|
||||
"value": "Value",
|
||||
"weapons": "Weapons",
|
||||
"withThing": "With {thing}"
|
||||
},
|
||||
"ITEMS": {
|
||||
|
|
|
|||
|
|
@ -115,11 +115,16 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel {
|
|||
const typeForDefeated = ['character', 'adversary', 'companion'].find(x => x === this.parent.type);
|
||||
if (defeatedSettings.enabled && typeForDefeated) {
|
||||
const resource = typeForDefeated === 'companion' ? 'stress' : 'hitPoints';
|
||||
if (changes.system.resources[resource]) {
|
||||
const becameMax = changes.system.resources[resource].value === this.resources[resource].max;
|
||||
const resourceValue = changes.system.resources[resource];
|
||||
if (
|
||||
resourceValue &&
|
||||
this.resources[resource].max &&
|
||||
resourceValue.value !== this.resources[resource].value
|
||||
) {
|
||||
const becameMax = resourceValue.value === this.resources[resource].max;
|
||||
const wasMax =
|
||||
this.resources[resource].value === this.resources[resource].max &&
|
||||
this.resources[resource].value !== changes.system.resources[resource].value;
|
||||
this.resources[resource].value !== resourceValue.value;
|
||||
if (becameMax) {
|
||||
this.parent.toggleDefeated(true);
|
||||
} else if (wasMax) {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,13 @@ export async function runMigrations() {
|
|||
if (!lastMigrationVersion) lastMigrationVersion = '1.0.6';
|
||||
|
||||
if (foundry.utils.isNewerVersion('1.1.0', lastMigrationVersion)) {
|
||||
const lockedPacks = [];
|
||||
const compendiumActors = [];
|
||||
for (let pack of game.packs) {
|
||||
if (pack.locked) {
|
||||
lockedPacks.push(pack.collection);
|
||||
await pack.configure({ locked: false });
|
||||
}
|
||||
const documents = await pack.getDocuments();
|
||||
compendiumActors.push(...documents.filter(x => x.type === 'character'));
|
||||
}
|
||||
|
|
@ -32,13 +37,23 @@ export async function runMigrations() {
|
|||
actor.updateEmbeddedDocuments('Item', items);
|
||||
});
|
||||
|
||||
for (let packId of lockedPacks) {
|
||||
const pack = game.packs.get(packId);
|
||||
await pack.configure({ locked: true });
|
||||
}
|
||||
|
||||
lastMigrationVersion = '1.1.0';
|
||||
}
|
||||
|
||||
if (foundry.utils.isNewerVersion('1.1.1', lastMigrationVersion)) {
|
||||
const lockedPacks = [];
|
||||
const compendiumClasses = [];
|
||||
const compendiumActors = [];
|
||||
for (let pack of game.packs) {
|
||||
if (pack.locked) {
|
||||
lockedPacks.push(pack.collection);
|
||||
await pack.configure({ locked: false });
|
||||
}
|
||||
const documents = await pack.getDocuments();
|
||||
compendiumClasses.push(...documents.filter(x => x.type === 'class'));
|
||||
compendiumActors.push(...documents.filter(x => x.type === 'character'));
|
||||
|
|
@ -46,7 +61,8 @@ export async function runMigrations() {
|
|||
|
||||
[...compendiumActors, ...game.actors.filter(x => x.type === 'character')].forEach(char => {
|
||||
const multiclass = char.items.find(x => x.type === 'class' && x.system.isMulticlass);
|
||||
const multiclassSubclass = multiclass.system.subclasses.length > 0 ? multiclass.system.subclasses[0] : null;
|
||||
const multiclassSubclass =
|
||||
multiclass?.system?.subclasses?.length > 0 ? multiclass.system.subclasses[0] : null;
|
||||
char.items.forEach(item => {
|
||||
if (item.type === 'feature' && item.system.identifier === 'multiclass') {
|
||||
const base = item.system.originItemType === 'class' ? multiclass : multiclassSubclass;
|
||||
|
|
@ -72,6 +88,11 @@ export async function runMigrations() {
|
|||
}
|
||||
}
|
||||
|
||||
for (let packId of lockedPacks) {
|
||||
const pack = game.packs.get(packId);
|
||||
await pack.configure({ locked: true });
|
||||
}
|
||||
|
||||
lastMigrationVersion = '1.1.1';
|
||||
}
|
||||
|
||||
|
|
|
|||
12
styles/less/global/global.less
Normal file
12
styles/less/global/global.less
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
.drag-area {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
border: 1px dashed light-dark(@dark-blue-50, @beige-50);
|
||||
border-radius: 3px;
|
||||
color: light-dark(@dark-blue-50, @beige-50);
|
||||
font-family: @font-body;
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
@import './chat.less';
|
||||
@import './elements.less';
|
||||
@import './enrichment.less';
|
||||
@import './global.less';
|
||||
@import './tab-navigation.less';
|
||||
@import './tab-form-footer.less';
|
||||
@import './tab-actions.less';
|
||||
|
|
|
|||
|
|
@ -34,18 +34,5 @@
|
|||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.adversaries-dragger {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
border: 1px dashed light-dark(@dark-blue-50, @beige-50);
|
||||
border-radius: 3px;
|
||||
color: light-dark(@dark-blue-50, @beige-50);
|
||||
font-family: @font-body;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,10 +27,6 @@
|
|||
outline: 2px solid light-dark(@dark, @golden);
|
||||
}
|
||||
|
||||
&:placeholder {
|
||||
color: light-dark(@dark-blue-50, @beige-50);
|
||||
}
|
||||
|
||||
&::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
display: none;
|
||||
|
|
|
|||
|
|
@ -27,10 +27,6 @@
|
|||
outline: 2px solid light-dark(@dark, @golden);
|
||||
}
|
||||
|
||||
&:placeholder {
|
||||
color: light-dark(@dark-blue-50, @beige-50);
|
||||
}
|
||||
|
||||
&::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
display: none;
|
||||
|
|
|
|||
|
|
@ -148,10 +148,6 @@
|
|||
outline: 2px solid light-dark(@dark, @golden);
|
||||
}
|
||||
|
||||
&:placeholder {
|
||||
color: light-dark(@dark-blue-50, @beige-50);
|
||||
}
|
||||
|
||||
&::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
display: none;
|
||||
|
|
@ -187,7 +183,7 @@
|
|||
}
|
||||
|
||||
&:has(+ .subfolder-list):after {
|
||||
content: "+";
|
||||
content: '+';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -357,7 +353,7 @@
|
|||
grid-template-rows: 0fr;
|
||||
transition: all 0.3s ease-in-out;
|
||||
width: 100%;
|
||||
|
||||
|
||||
.wrapper {
|
||||
overflow: hidden;
|
||||
display: grid;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="adversaries-dragger">
|
||||
<div class="drag-area">
|
||||
{{localize "DAGGERHEART.GENERAL.dropActorsHere"}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@
|
|||
<fieldset>
|
||||
<legend>{{localize "TYPES.Item.subclass"}}</legend>
|
||||
<div class="feature-list">
|
||||
{{#unless source.system.subclasses}}
|
||||
<div class="drag-area">{{localize "DAGGERHEART.GENERAL.missingDragDropThing" thing=(localize "DAGGERHEART.GENERAL.subclasses")}}</div>
|
||||
{{/unless}}
|
||||
{{#each source.system.subclasses as |subclass index|}}
|
||||
<li class='feature-item'>
|
||||
<div class='feature-line'>
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@
|
|||
{{#unless (eq document.parent.type 'character')}}<a data-action="removeSuggestedItem" data-target="suggestedPrimaryWeapon"><i class="fa-solid fa-trash icon-button"></i></a>{{/unless}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="drag-area">{{localize "DAGGERHEART.GENERAL.missingDragDropThing" thing=(localize "DAGGERHEART.GENERAL.weapons")}}</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
@ -60,6 +62,8 @@
|
|||
{{#unless (eq document.parent.type 'character')}}<a data-action="removeSuggestedItem" data-target="suggestedSecondaryWeapon"><i class="fa-solid fa-trash icon-button"></i></a>{{/unless}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="drag-area">{{localize "DAGGERHEART.GENERAL.missingDragDropThing" thing=(localize "DAGGERHEART.GENERAL.weapons")}}</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
@ -75,6 +79,8 @@
|
|||
{{#unless (eq document.parent.type 'character')}}<a data-action="removeSuggestedItem" data-target="suggestedArmor"><i class="fa-solid fa-trash icon-button"></i></a>{{/unless}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="drag-area">{{localize "DAGGERHEART.GENERAL.missingDragDropThing" thing=(localize "DAGGERHEART.GENERAL.armors")}}</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
|
@ -85,6 +91,9 @@
|
|||
<fieldset class="one-column drop-section take-section {{#if (eq document.parent.type 'character')}}inactive{{/if}}">
|
||||
<legend>{{localize "DAGGERHEART.GENERAL.take"}}</legend>
|
||||
<div class="drop-section-body list-items">
|
||||
{{#unless source.system.inventory.take}}
|
||||
<div class="drag-area">{{localize "DAGGERHEART.GENERAL.missingDragDropThing" thing=(localize "DAGGERHEART.GENERAL.items")}}</div>
|
||||
{{/unless}}
|
||||
{{#each source.system.inventory.take}}
|
||||
{{#if this}}
|
||||
<div class="suggested-item item-line" data-action="editDoc" data-item-uuid="{{this.uuid}}">
|
||||
|
|
@ -102,6 +111,9 @@
|
|||
<fieldset class="one-column drop-section choice-a-section {{#if (eq document.parent.type 'character')}}inactive{{/if}}">
|
||||
<legend>{{localize "DAGGERHEART.ITEMS.Class.guide.inventory.thenChoose"}}</legend>
|
||||
<div class="drop-section-body list-items">
|
||||
{{#unless source.system.inventory.choiceA}}
|
||||
<div class="drag-area">{{localize "DAGGERHEART.GENERAL.missingDragDropThing" thing=(localize "DAGGERHEART.GENERAL.items")}}</div>
|
||||
{{/unless}}
|
||||
{{#each source.system.inventory.choiceA}}
|
||||
{{#if this}}
|
||||
<div class="suggested-item item-line" data-action="editDoc" data-item-uuid="{{this.uuid}}">
|
||||
|
|
@ -119,6 +131,9 @@
|
|||
<fieldset class="one-column drop-section choice-b-section {{#if (eq document.parent.type 'character')}}inactive{{/if}}">
|
||||
<legend>{{localize "DAGGERHEART.ITEMS.Class.guide.inventory.andEither"}}</legend>
|
||||
<div class="drop-section-body list-items">
|
||||
{{#unless source.system.inventory.choiceB}}
|
||||
<div class="drag-area">{{localize "DAGGERHEART.GENERAL.missingDragDropThing" thing=(localize "DAGGERHEART.GENERAL.items")}}</div>
|
||||
{{/unless}}
|
||||
{{#each source.system.inventory.choiceB}}
|
||||
{{#if this}}
|
||||
<div class="suggested-item item-line" data-action="editDoc" data-item-uuid="{{this.uuid}}">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue