Update codebase to be v9 compatible

master
John Downey 2022-04-08 19:11:54 -05:00
parent cf2bb58b5e
commit 6b5011cfd6
24 changed files with 216 additions and 186 deletions

View File

@ -78,13 +78,14 @@
animation: 0.8s ease-in 1s infinite alternate notify;
}
.acks.sheet.actor .sheet-tabs {
border-bottom: none;
justify-content: flex-end;
position: absolute;
transform: rotate(90deg);
top: 365px;
right: -169px;
width: 320px;
border-top: none;
height: 18px;
z-index: -1;
}
.acks.sheet.actor .sheet-tabs .item {
@ -95,7 +96,6 @@
background: url("/ui/parchment.jpg");
border-top-right-radius: 4px;
border-top-left-radius: 80px;
border-bottom: 1px solid rgba(0, 0, 0, 0.15);
box-shadow: 0 0 6px 1px rgba(0, 0, 0, 0.9);
font-size: 12px;
filter: brightness(0.9);
@ -107,6 +107,9 @@
text-shadow: none;
margin-bottom: -1px;
}
.acks.sheet.actor .sheet-tabs .item:not(.active) {
border-bottom: 1px solid rgba(0, 0, 0, 0.15);
}
.acks.sheet.actor .sheet-body {
height: calc(100% - 140px);
}

View File

@ -40,8 +40,8 @@ Hooks.once("init", async function () {
// Register custom system settings
registerSettings();
CONFIG.Actor.entityClass = AcksActor;
CONFIG.Item.entityClass = AcksItem;
CONFIG.Actor.documentClass = AcksActor;
CONFIG.Item.documentClass = AcksItem;
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);

View File

@ -74,7 +74,7 @@ export class AcksActorSheet extends ActorSheet {
_onItemSummary(event) {
event.preventDefault();
let li = $(event.currentTarget).parents(".item"),
item = this.actor.getOwnedItem(li.data("item-id")),
item = this.actor.items.get(li.data("item-id")),
description = TextEditor.enrichHTML(item.data.data.description);
// Toggle summary
if (li.hasClass("expanded")) {
@ -94,7 +94,7 @@ export class AcksActorSheet extends ActorSheet {
async _onSpellChange(event) {
event.preventDefault();
const itemId = event.currentTarget.closest(".item").dataset.itemId;
const item = this.actor.getOwnedItem(itemId);
const item = this.actor.items.get(itemId);
if (event.target.dataset.field == "cast") {
return item.update({ "data.cast": parseInt(event.target.value) });
} else if (event.target.dataset.field == "memorize") {
@ -110,7 +110,7 @@ export class AcksActorSheet extends ActorSheet {
.find(".item");
spells.each((_, el) => {
let itemId = el.dataset.itemId;
const item = this.actor.getOwnedItem(itemId);
const item = this.actor.items.get(itemId);
item.update({
_id: item.id,
"data.cast": 0,
@ -130,7 +130,7 @@ export class AcksActorSheet extends ActorSheet {
html.find(".item .item-controls .item-show").click(async (ev) => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.getOwnedItem(li.data("itemId"));
const item = this.actor.items.get(li.data("itemId"));
item.show();
});
@ -143,7 +143,7 @@ export class AcksActorSheet extends ActorSheet {
html.find(".item .item-rollable .item-image").click(async (ev) => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.getOwnedItem(li.data("itemId"));
const item = this.actor.items.get(li.data("itemId"));
if (item.type == "weapon") {
if (this.actor.data.type === "monster") {
item.update({

View File

@ -121,7 +121,7 @@ export class AcksActorSheetCharacter extends AcksActorSheet {
async _onQtChange(event) {
event.preventDefault();
const itemId = event.currentTarget.closest(".item").dataset.itemId;
const item = this.actor.getOwnedItem(itemId);
const item = this.actor.items.get(itemId);
return item.update({ "data.quantity.value": parseInt(event.target.value) });
}
@ -198,14 +198,16 @@ export class AcksActorSheetCharacter extends AcksActorSheet {
// Update Inventory Item
html.find(".item-edit").click((ev) => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.getOwnedItem(li.data("itemId"));
const item = this.actor.items.get(li.data("itemId"));
item.sheet.render(true);
});
// Delete Inventory Item
html.find(".item-delete").click((ev) => {
const li = $(ev.currentTarget).parents(".item");
this.actor.deleteOwnedItem(li.data("itemId"));
this.actor.deleteEmbeddedDocuments("Item", [
li.data("itemId"),
]);
li.slideUp(200, () => this.render(false));
});
@ -226,7 +228,7 @@ export class AcksActorSheetCharacter extends AcksActorSheet {
);
});
html.find(".item-create").click((event) => {
html.find(".item-create").click(async (event) => {
event.preventDefault();
const header = event.currentTarget;
const type = header.dataset.type;
@ -236,14 +238,16 @@ export class AcksActorSheetCharacter extends AcksActorSheet {
data: duplicate(header.dataset),
};
delete itemData.data["type"];
return this.actor.createOwnedItem(itemData);
await this.actor.createEmbeddedDocuments("Item", [
itemData,
]);
});
//Toggle Equipment
html.find(".item-toggle").click(async (ev) => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.getOwnedItem(li.data("itemId"));
await this.actor.updateOwnedItem({
const item = this.actor.items.get(li.data("itemId"));
await item.update({
_id: li.data("itemId"),
data: {
equipped: !item.data.data.equipped,

View File

@ -35,24 +35,26 @@ export class AcksActor extends Actor {
/* -------------------------------------------- */
/* Socket Listeners and Handlers
/* -------------------------------------------- */
getExperience(value, options = {}) {
async getExperience(value, options = {}) {
if (this.data.type != "character") {
return;
}
let modified = Math.floor(
value + (this.data.data.details.xp.bonus * value) / 100
);
return this.update({
await this.update({
"data.details.xp.value": modified + this.data.data.details.xp.value,
}).then(() => {
const speaker = ChatMessage.getSpeaker({ actor: this });
ChatMessage.create({
content: game.i18n.format("ACKS.messages.GetExperience", {
name: this.name,
value: modified,
}),
speaker,
});
});
const speaker = ChatMessage.getSpeaker({ actor: this });
await ChatMessage.create({
content: game.i18n.format("ACKS.messages.GetExperience", {
name: this.name,
value: modified,
}),
speaker,
});
}
@ -73,7 +75,7 @@ export class AcksActor extends Actor {
}
}
generateSave(hd) {
async generateSave(hd) {
let saves = {};
for (let i = 0; i <= hd; i++) {
let tmp = CONFIG.ACKS.monster_saves[i];
@ -81,7 +83,8 @@ export class AcksActor extends Actor {
saves = tmp;
}
}
this.update({
await this.update({
"data.saves": {
death: {
value: saves.d,
@ -106,9 +109,13 @@ export class AcksActor extends Actor {
/* Rolls */
/* -------------------------------------------- */
rollHP(options = {}) {
let roll = new Roll(this.data.data.hp.hd).roll();
return this.update({
async rollHP(options = {}) {
let roll = new Roll(this.data.data.hp.hd);
await roll.evaluate({
async: true,
});
await this.update({
data: {
hp: {
max: roll.total,
@ -572,7 +579,7 @@ export class AcksActor extends Actor {
const dh = Math.clamped(hp.value - amount, -99, hp.max);
// Update the Actor
return this.update({
await this.update({
"data.hp.value": dh,
});
}

View File

@ -76,12 +76,11 @@ export class AcksActorSheetMonster extends AcksActorSheet {
// Settings
data.config.morale = game.settings.get("acks", "morale");
data.data.details.treasure.link = TextEditor.enrichHTML(data.data.details.treasure.table);
data.data.data.details.treasure.link = TextEditor.enrichHTML(data.data.data.details.treasure.table);
data.isNew = this.actor.isNew();
return data;
}
async _onDrop(event) {
super._onDrop(event);
let data;
@ -139,7 +138,7 @@ export class AcksActorSheetMonster extends AcksActorSheet {
async _resetCounters(event) {
const weapons = this.actor.data.items.filter(i => i.type === 'weapon');
for (let wp of weapons) {
const item = this.actor.getOwnedItem(wp._id);
const item = this.actor.items.get(wp._id);
await item.update({
data: {
counter: {
@ -153,7 +152,7 @@ export class AcksActorSheetMonster extends AcksActorSheet {
async _onCountChange(event) {
event.preventDefault();
const itemId = event.currentTarget.closest(".item").dataset.itemId;
const item = this.actor.getOwnedItem(itemId);
const item = this.actor.items.get(itemId);
if (event.target.dataset.field == "value") {
return item.update({
"data.counter.value": parseInt(event.target.value),
@ -194,18 +193,20 @@ export class AcksActorSheetMonster extends AcksActorSheet {
// Update Inventory Item
html.find(".item-edit").click((ev) => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.getOwnedItem(li.data("itemId"));
const item = this.actor.items.get(li.data("itemId"));
item.sheet.render(true);
});
// Delete Inventory Item
html.find(".item-delete").click((ev) => {
const li = $(ev.currentTarget).parents(".item");
this.actor.deleteOwnedItem(li.data("itemId"));
this.actor.deleteEmbeddedDocuments("Item", [
li.data("itemId"),
]);
li.slideUp(200, () => this.render(false));
});
html.find(".item-create").click((event) => {
html.find(".item-create").click(async (event) => {
event.preventDefault();
const header = event.currentTarget;
const type = header.dataset.type;
@ -224,14 +225,18 @@ export class AcksActorSheetMonster extends AcksActorSheet {
// Getting back to main logic
if (type == "choice") {
const choices = header.dataset.choices.split(",");
this._chooseItemType(choices).then((dialogInput) => {
this._chooseItemType(choices).then(async (dialogInput) => {
const itemData = createItem(dialogInput.type, dialogInput.name);
this.actor.createOwnedItem(itemData, {});
await this.actor.createEmbeddedDocuments("Item", [
itemData,
]);
});
return;
}
const itemData = createItem(type);
return this.actor.createOwnedItem(itemData, {});
await this.actor.createEmbeddedDocuments("Item", [
itemData,
]);
});
html.find(".item-reset").click((ev) => {
@ -250,7 +255,7 @@ export class AcksActorSheetMonster extends AcksActorSheet {
html.find(".item-pattern").click(ev => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.getOwnedItem(li.data("itemId"));
const item = this.actor.items.get(li.data("itemId"));
let currentColor = item.data.data.pattern;
let colors = Object.keys(CONFIG.ACKS.colors);
let index = colors.indexOf(currentColor);

View File

@ -169,7 +169,10 @@ export class AcksCharacterCreator extends FormApplication {
}
}
};
this.object.createOwnedItem(itemData);
await this.object.createEmbeddedDocuments("Item", [
itemData,
]);
}
/**
* This method is called upon form submission after form data is validated

View File

@ -78,7 +78,10 @@ export class AcksDice {
parts.push(form.bonus.value);
}
const roll = new Roll(parts.join("+"), data).roll();
const roll = new Roll(parts.join("+"), data);
await roll.evaluate({
async: true,
});
// Convert the roll to a chat message and return the roll
let rollMode = game.settings.get("core", "rollMode");
@ -230,14 +233,21 @@ export class AcksDice {
// Optionally include a situational bonus
if (form !== null && form.bonus.value) parts.push(form.bonus.value);
const roll = new Roll(parts.join("+"), data).roll();
const dmgRoll = new Roll(data.roll.dmg.join("+"), data).roll();
const roll = new Roll(parts.join("+"), data);
await roll.evaluate({
async: true,
});
const dmgRoll = new Roll(data.roll.dmg.join("+"), data);
await dmgRoll.evaluate({
async: true,
});
// Add minimal damage of 1
if (dmgRoll.total < 1) {
dmgRoll._total = 1;
}
// Convert the roll to a chat message and return the roll
let rollMode = game.settings.get("core", "rollMode");
rollMode = form ? form.rollMode.value : rollMode;

View File

@ -355,7 +355,7 @@ export class AcksItem extends Item {
if (!actor) return;
// Get the Item
const item = actor.getOwnedItem(card.dataset.itemId);
const item = actor.items.get(card.dataset.itemId);
if (!item) {
return ui.notifications.error(
`The requested item ${card.dataset.itemId} no longer exists on Actor ${actor.name}`

View File

@ -12,7 +12,7 @@
<a class="item" data-tab="abilities">
{{localize "ACKS.category.abilities"}}
</a>
{{#if data.spells.enabled}}
{{#if data.data.spells.enabled}}
<a class="item" data-tab="spells">
{{localize "ACKS.category.spells"}}
</a>
@ -33,7 +33,7 @@
<div class="tab" data-group="primary" data-tab="abilities">
{{> "systems/acks/templates/actors/partials/character-abilities-tab.html"}}
</div>
{{#if data.spells.enabled}}
{{#if data.data.spells.enabled}}
<div class="tab" data-group="primary" data-tab="spells">
{{> "systems/acks/templates/actors/partials/character-spells-tab.html"}}
</div>

View File

@ -9,7 +9,7 @@
<a class="item" data-tab="attributes">
{{localize "ACKS.category.attributes"}}
</a>
{{#if data.spells.enabled}}
{{#if data.data.spells.enabled}}
<a class="item" data-tab="spells">
{{localize "ACKS.category.spells"}}
</a>
@ -24,7 +24,7 @@
<div class="tab" data-group="primary" data-tab="attributes">
{{> "systems/acks/templates/actors/partials/monster-attributes-tab.html"}}
</div>
{{#if data.spells.enabled}}
{{#if data.data.spells.enabled}}
<div class="tab" data-group="primary" data-tab="spells">
{{> "systems/acks/templates/actors/partials/character-spells-tab.html"}}
</div>
@ -33,7 +33,7 @@
<div class="inventory">
<div class="item-titles">{{localize "ACKS.category.notes"}}</div>
<div class="resizable-editor" data-editor-size="320">
{{editor content=data.details.biography target="data.details.biography"
{{editor content=data.data.details.biography target="data.details.biography"
button=true owner=owner editable=editable}}
</div>
</div>

View File

@ -2,28 +2,28 @@
<li class="attribute flexrow" data-exploration="ld">
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.ld.abrev'}}) {{localize 'ACKS.exploration.ld.long'}}"><a>{{ localize "ACKS.exploration.ld.short" }}</a></h4>
<div class="attribute-value">
<input name="data.exploration.ld" type="text" value="{{data.exploration.ld}}" value="18" data-dtype="Number" placeholder="0" />
<input name="data.exploration.ld" type="text" value="{{data.data.exploration.ld}}" value="18" data-dtype="Number" placeholder="0" />
</div>
</li>
<li class="attribute flexrow" data-exploration="od">
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.od.abrev'}}) {{localize 'ACKS.exploration.od.long'}}"><a>{{ localize "ACKS.exploration.od.short" }}</a>
</h4>
<div class="attribute-value">
<input name="data.exploration.od" type="text" value="{{data.exploration.od}}" value="18" placeholder="0" data-dtype="String" />
<input name="data.exploration.od" type="text" value="{{data.data.exploration.od}}" value="18" placeholder="0" data-dtype="String" />
</div>
</li>
<li class="attribute flexrow" data-exploration="sd">
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.sd.abrev'}}) {{localize 'ACKS.exploration.sd.long'}}"><a>{{ localize "ACKS.exploration.sd.short" }}</a>
</h4>
<div class="attribute-value">
<input name="data.exploration.sd" type="text" value="{{data.exploration.sd}}" value="18" placeholder="0" data-dtype="String" />
<input name="data.exploration.sd" type="text" value="{{data.data.exploration.sd}}" value="18" placeholder="0" data-dtype="String" />
</div>
</li>
<li class="attribute flexrow" data-exploration="ft">
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.ft.abrev'}}) {{localize 'ACKS.exploration.ft.long'}}"><a>{{ localize "ACKS.exploration.ft.short" }}</a>
</h4>
<div class="attribute-value">
<input name="data.exploration.ft" type="text" value="{{data.exploration.ft}}" value="18" placeholder="0" data-dtype="String" />
<input name="data.exploration.ft" type="text" value="{{data.data.exploration.ft}}" value="18" placeholder="0" data-dtype="String" />
</div>
</li>
</ul>
@ -41,7 +41,7 @@
{{#each abilities as |item|}}
<li class="item-entry">
<div class="item flexrow" data-item-id="{{item._id}}">
<div class="item-name {{#if item.data.roll}}item-rollable{{/if}} flexrow">
<div class="item-name {{#if item.data.data.roll}}item-rollable{{/if}} flexrow">
<div class="item-image" style="background-image: url({{item.img}})"></div>
<a>
<h4 title="{{item.name}}">

View File

@ -13,7 +13,7 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.str.long' }}">
<a>{{ localize "ACKS.scores.str.short" }}</a></h4>
<div class="attribute-value">
<input name="data.scores.str.value" type="text" value="{{data.scores.str.value}}" placeholder="0"
<input name="data.scores.str.value" type="text" value="{{data.data.scores.str.value}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -21,7 +21,7 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.int.long' }}">
<a>{{ localize "ACKS.scores.int.short" }}</a></h4>
<div class="attribute-value">
<input name="data.scores.int.value" type="text" value="{{data.scores.int.value}}" placeholder="0"
<input name="data.scores.int.value" type="text" value="{{data.data.scores.int.value}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -29,7 +29,7 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.wis.long' }}">
<a>{{ localize "ACKS.scores.wis.short" }}</a></h4>
<div class="attribute-value">
<input name="data.scores.wis.value" type="text" value="{{data.scores.wis.value}}" placeholder="0"
<input name="data.scores.wis.value" type="text" value="{{data.data.scores.wis.value}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -37,7 +37,7 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.dex.long' }}">
<a>{{ localize "ACKS.scores.dex.short" }}</a></h4>
<div class="attribute-value">
<input name="data.scores.dex.value" type="text" value="{{data.scores.dex.value}}" placeholder="0"
<input name="data.scores.dex.value" type="text" value="{{data.data.scores.dex.value}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -45,7 +45,7 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.con.long' }}">
<a>{{ localize "ACKS.scores.con.short" }}</a></h4>
<div class="attribute-value">
<input name="data.scores.con.value" type="text" value="{{data.scores.con.value}}" placeholder="0"
<input name="data.scores.con.value" type="text" value="{{data.data.scores.con.value}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -53,7 +53,7 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.cha.long' }}">
<a>{{ localize "ACKS.scores.cha.short" }}</a></h4>
<div class="attribute-value">
<input name="data.scores.cha.value" type="text" value="{{data.scores.cha.value}}" placeholder="0"
<input name="data.scores.cha.value" type="text" value="{{data.data.scores.cha.value}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -63,25 +63,25 @@
<div class="resources">
<div class="flexrow">
<div class="health">
<input class="health-value health-top" name="data.hp.value" type="text" value="{{data.hp.value}}"
<input class="health-value health-top" name="data.hp.value" type="text" value="{{data.data.hp.value}}"
data-dtype="Number" placeholder="0" title="{{localize 'ACKS.Health'}}" />
<input class="health-value health-bottom" name="data.hp.max" type="text" value="{{data.hp.max}}"
<input class="health-value health-bottom" name="data.hp.max" type="text" value="{{data.data.hp.max}}"
data-dtype="Number" placeholder="0" title="{{localize 'ACKS.HealthMax'}}" />
<div class="health-empty" style="height:{{counter false data.hp.value data.hp.max}}%"></div>
<div class="health-full" style="height:{{counter true data.hp.value data.hp.max}}%"></div>
<div class="health-empty" style="height:{{counter false data.data.hp.value data.data.hp.max}}%"></div>
<div class="health-full" style="height:{{counter true data.data.hp.value data.data.hp.max}}%"></div>
</div>
<div class="health armor-class">
{{#if config.ascendingAC}}
<div class="health-value health-top" title="{{localize 'ACKS.ArmorClass'}}">{{data.aac.value}}</div>
<div class="health-value health-top" title="{{localize 'ACKS.ArmorClass'}}">{{data.data.aac.value}}</div>
<div class="health-value health-bottom" title="{{localize 'ACKS.ArmorClassNaked'}}">
{{data.aac.naked}}</div>
{{#if data.aac.shield}}<div class="shield" title="{{localize 'ACKS.items.hasShield'}} ({{data.aac.shield}})"><i
{{data.data.aac.naked}}</div>
{{#if data.data.aac.shield}}<div class="shield" title="{{localize 'ACKS.items.hasShield'}} ({{data.data.aac.shield}})"><i
class="fas fa-shield-alt"></i></div>{{/if}}
{{else}}
<div class="health-value health-top" title="{{localize 'ACKS.ArmorClass'}}">{{data.ac.value}}</div>
<div class="health-value health-top" title="{{localize 'ACKS.ArmorClass'}}">{{data.data.ac.value}}</div>
<div class="health-value health-bottom" title="{{localize 'ACKS.ArmorClassNaked'}}">
{{data.ac.naked}}</div>
{{#if data.ac.shield}}<div class="shield" title="{{localize 'ACKS.items.hasShield'}} ({{data.ac.shield}})"><i
{{data.data.ac.naked}}</div>
{{#if data.data.ac.shield}}<div class="shield" title="{{localize 'ACKS.items.hasShield'}} ({{data.data.ac.shield}})"><i
class="fas fa-shield-alt"></i></div>{{/if}}
{{/if}}
</div>
@ -93,7 +93,7 @@
<a>{{ localize "ACKS.HitDiceShort" }}</a>
</h4>
<div class="attribute-value">
<input name="data.hp.hd" type="text" value="{{data.hp.hd}}" placeholder=""
<input name="data.hp.hd" type="text" value="{{data.data.hp.hd}}" placeholder=""
data-dtype="String" />
</div>
</li>
@ -103,8 +103,8 @@
<a>{{ localize "ACKS.BHRShort" }}</a>
</h4>
<div class="attribute-value"
title="Calculated from {{data.hp.max}} HP">
{{data.hp.bhr}}
title="Calculated from {{data.data.hp.max}} HP">
{{data.data.hp.bhr}}
</div>
</li>
{{/if}}
@ -113,8 +113,8 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}">
{{ localize "ACKS.InitiativeShort" }}</h4>
<div class="attribute-value"
title="{{localize 'ACKS.scores.dex.long'}}({{data.scores.dex.init}}) + {{localize 'ACKS.Modifier'}}({{data.initiative.mod}})">
{{add data.scores.dex.init data.initiative.mod}}
title="{{localize 'ACKS.scores.dex.long'}}({{data.data.scores.dex.init}}) + {{localize 'ACKS.Modifier'}}({{data.data.initiative.mod}})">
{{add data.data.scores.dex.init data.data.initiative.mod}}
</div>
</li>
{{/if}}
@ -127,8 +127,8 @@
<a>{{localize 'ACKS.MeleeShort'}}</a></h4>
<div class="flexrow">
<div class="attribute-value"
title="{{localize 'ACKS.scores.str.long'}}({{data.scores.str.mod}}) + {{localize 'ACKS.Modifier'}}({{data.thac0.mod.melee}})">
{{add data.scores.str.mod data.thac0.mod.melee}}
title="{{localize 'ACKS.scores.str.long'}}({{data.data.scores.str.mod}}) + {{localize 'ACKS.Modifier'}}({{data.data.thac0.mod.melee}})">
{{add data.data.scores.str.mod data.data.thac0.mod.melee}}
</div>
</div>
</li>
@ -138,7 +138,7 @@
</h4>
<div class="flexrow">
<div class="attribute-value">
<input name="data.thac0.throw" type="text" value="{{data.thac0.throw}}" placeholder=""
<input name="data.thac0.throw" type="text" value="{{data.data.thac0.throw}}" placeholder=""
data-dtype="Number" +/>
</div>
</div>
@ -149,7 +149,7 @@
</h4>
<div class="flexrow">
<div class="attribute-value">
<input name="data.thac0.value" type="text" value="{{data.thac0.value}}" placeholder="0"
<input name="data.thac0.value" type="text" value="{{data.data.thac0.value}}" placeholder="0"
data-dtype="Number" />
</div>
</div>
@ -160,8 +160,8 @@
<a>{{localize 'ACKS.MissileShort'}}</a></h4>
<div class="flexrow">
<div class="attribute-value"
title="{{localize 'ACKS.scores.dex.long'}}({{data.scores.dex.mod}}) + {{localize 'ACKS.Modifier'}}({{data.thac0.mod.missile}})">
{{add data.scores.dex.mod data.thac0.mod.missile}}
title="{{localize 'ACKS.scores.dex.long'}}({{data.data.scores.dex.mod}}) + {{localize 'ACKS.Modifier'}}({{data.data.thac0.mod.missile}})">
{{add data.data.scores.dex.mod data.data.thac0.mod.missile}}
</div>
</div>
</li>
@ -174,7 +174,7 @@
{{localize 'ACKS.movement.overland.short'}}</h4>
<div class="flexrow">
<div class="attribute-value">
{{divide data.movement.base 5}}
{{divide data.data.movement.base 5}}
</div>
</div>
</li>
@ -182,8 +182,8 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.movement.exploration.long' }}">
{{ localize "ACKS.movement.exploration.short" }}</h4>
<div class="attribute-value flexrow">
<input name="data.movement.base" type="text" value="{{data.movement.base}}" placeholder="0"
data-dtype="Number" {{#if data.config.movementAuto}}disabled{{/if}} />
<input name="data.movement.base" type="text" value="{{data.data.movement.base}}" placeholder="0"
data-dtype="Number" {{#if data.data.config.movementAuto}}disabled{{/if}} />
</div>
</li>
<li class="attribute attribute-secondaries">
@ -191,7 +191,7 @@
{{localize 'ACKS.movement.encounter.short'}}</h4>
<div class="flexrow">
<div class="attribute-value">
{{divide data.movement.base 3}}
{{divide data.data.movement.base 3}}
</div>
</div>
</li>
@ -205,43 +205,43 @@
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.paralysis.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.paralysis.value" type="text" value="{{data.saves.paralysis.value}}"
<input name="data.saves.paralysis.value" type="text" value="{{data.data.saves.paralysis.value}}"
placeholder="0" data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="death">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.death.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.death.value" type="text" value="{{data.saves.death.value}}" placeholder="0"
<input name="data.saves.death.value" type="text" value="{{data.data.saves.death.value}}" placeholder="0"
data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="breath">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.breath.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.breath.value" type="text" value="{{data.saves.breath.value}}"
<input name="data.saves.breath.value" type="text" value="{{data.data.saves.breath.value}}"
placeholder="0" data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="wand">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.wand.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.wand.value" type="text" value="{{data.saves.wand.value}}" placeholder="0"
<input name="data.saves.wand.value" type="text" value="{{data.data.saves.wand.value}}" placeholder="0"
data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="spell">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.spell.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.spell.value" type="text" value="{{data.saves.spell.value}}"
<input name="data.saves.spell.value" type="text" value="{{data.data.saves.spell.value}}"
placeholder="0" />
</li>
{{#unless config.removeMagicBonus}}
<li class="attribute saving-throw">
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.saves.magic.long' }}">
{{ localize "ACKS.saves.magic.long"}}</h4>
<div class="attribute-value flat" title="{{localize 'ACKS.scores.wis.long'}}({{data.scores.wis.mod}})">
{{mod data.scores.wis.mod}}
<div class="attribute-value flat" title="{{localize 'ACKS.scores.wis.long'}}({{data.data.scores.wis.mod}})">
{{mod data.data.scores.wis.mod}}
</div>
</li>
{{/unless}}

View File

@ -4,36 +4,36 @@
<input name="name" type="text" value="{{actor.name}}" placeholder="{{localize 'ACKS.details.name'}}" data-dtype="String" />
</h1>
<ul class="summary flexrow">
{{#if data.retainer.enabled}}
{{#if data.data.retainer.enabled}}
<li>
<input type="text" name="data.retainer.wage" value="{{data.retainer.wage}}" data-dtype="String"
<input type="text" name="data.retainer.wage" value="{{data.data.retainer.wage}}" data-dtype="String"
/>
<label>{{localize 'ACKS.RetainerWage'}}</label>
</li>
{{else}}
<li>
<input type="text" name="data.details.title" value="{{data.details.title}}" data-dtype="String"
<input type="text" name="data.details.title" value="{{data.data.details.title}}" data-dtype="String"
/>
<label>{{localize 'ACKS.details.title'}}</label>
</li>
{{/if}}
<li>
<input type="text" name="data.details.alignment" value="{{data.details.alignment}}" data-dtype="String"
<input type="text" name="data.details.alignment" value="{{data.data.details.alignment}}" data-dtype="String"
/>
<label>{{localize 'ACKS.details.alignment'}}</label>
</li>
{{#if data.retainer.enabled}}
{{#if data.data.retainer.enabled}}
<li class="flexrow check-field">
<div class="check morale-check" title="{{localize 'ACKS.roll.morale'}}"><a><i class="fas fa-dice"></i></a></div>
<div>
<input type="text" name="data.details.morale" value="{{data.details.morale}}" />
<input type="text" name="data.details.morale" value="{{data.data.details.morale}}" />
<label>{{localize 'ACKS.details.morale'}}</label>
</div>
</li>
<li class="flex2 check-field" data-stat="lr">
<div class="check loyalty-check" title="{{localize 'ACKS.loyalty.check'}}"><a><i class="fas fa-dice"></i></a></div>
<div class="attribute-value">
<input name="data.retainer.loyalty" type="text" value="{{data.retainer.loyalty}}" placeholder="Loyal" data-dtype="String" />
<input name="data.retainer.loyalty" type="text" value="{{data.data.retainer.loyalty}}" placeholder="Loyal" data-dtype="String" />
<label>{{localize 'ACKS.Loyalty'}}</label>
</div>
</li>
@ -41,21 +41,21 @@
</ul>
<ul class="summary flexrow">
<li class="flex3">
<input type="text" name="data.details.class" value="{{data.details.class}}" data-dtype="String"
<input type="text" name="data.details.class" value="{{data.data.details.class}}" data-dtype="String"
/>
<label>{{localize 'ACKS.details.class'}}</label>
</li>
<li class="{{#if (gt data.details.xp.value data.details.xp.next)}}notify{{/if}}">
<input type="text" name="data.details.level" value="{{data.details.level}}" data-dtype="Number"
<li class="{{#if (gt data.data.details.xp.value data.data.details.xp.next)}}notify{{/if}}">
<input type="text" name="data.details.level" value="{{data.data.details.level}}" data-dtype="Number"
/>
<label>{{localize 'ACKS.details.level'}}</label>
</li>
<li class="flex2">
<input type="text" name="data.details.xp.value" value="{{data.details.xp.value}}" data-dtype="Number"
<input type="text" name="data.details.xp.value" value="{{data.data.details.xp.value}}" data-dtype="Number"
/>
<label>{{localize 'ACKS.details.experience.base'}}</label>
{{#if data.details.xp.bonus}}
<span class="xp-bonus">+{{data.details.xp.bonus}}%</span>
{{#if data.data.details.xp.bonus}}
<span class="xp-bonus">+{{data.data.details.xp.bonus}}%</span>
{{/if}}
</li>
</ul>

View File

@ -31,8 +31,6 @@
{{#each item.data.tags as |tag|}}
{{#unless (getTagIcon tag.value)}}
<span title="{{tag.title}}">{{tag.value}}{{#unless @last}},{{/unless}}</span>
{{/unless}}
{{/each}}
</div>
@ -155,7 +153,7 @@
<li class="item-titles flexrow">
<div class="item-caret"><i class="fas fa-caret-down"></i></div>
<div class="item-name">{{localize "ACKS.items.Treasure"}}</div>
<div class="field-long">{{roundTreas data.treasure}} <i class="fas fa-circle"></i></div>
<div class="field-long">{{roundTreas data.data.treasure}} <i class="fas fa-circle"></i></div>
<div class="field-short"><i class="fas fa-hashtag"></i></div>
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
<div class="item-controls">
@ -198,7 +196,7 @@
</div>
</section>
<section>
{{#with data.encumbrance}}
{{#with data.data.encumbrance}}
<div class="encumbrance {{#if encumbered}}encumbered{{/if}}">
<span class="encumbrance-bar" style="width:{{pct}}%"></span>
<span class="encumbrance-label">{{value}} / {{max}}</span>

View File

@ -12,7 +12,7 @@
</div>
</div>
<ol>
{{#each data.languages.value as |lang|}}
{{#each data.data.languages.value as |lang|}}
<li class="item flexrow" data-lang="{{lang}}">
<div class="item-name">
{{lang}}
@ -28,7 +28,7 @@
<div class="flex3 description">
<div class="item-titles">{{localize "ACKS.category.description"}}</div>
<div>
{{editor content=data.details.description target="data.details.description"
{{editor content=data.data.details.description target="data.details.description"
button=true owner=owner editable=editable}}
</div>
</div>
@ -37,7 +37,7 @@
<div class="inventory notes">
<div class="item-titles">{{localize "ACKS.category.notes"}}</div>
<div class="resizable-editor" data-editor-size="140">
{{editor content=data.details.notes target="data.details.notes"
{{editor content=data.data.details.notes target="data.details.notes"
button=true owner=owner editable=editable}}
</div>
</div>

View File

@ -15,7 +15,7 @@
<div class="field-short">{{localize 'ACKS.spells.Slots'}}</div>
<div class="field-long flexrow">
<input type="text" value="{{lookup @root.slots.used @key}}" name="data.spells.{{id}}.value" data-dtype="Number"
placeholder="0" disabled>/<input type="text" value="{{lookup (lookup ../actor.data.spells @key) 'max'}}"
placeholder="0" disabled>/<input type="text" value="{{lookup (lookup ../actor.data.data.spells @key) 'max'}}"
name="data.spells.{{id}}.max" data-dtype="Number" placeholder="0"></div>
<div class="item-controls">
<a class="item-control item-create" data-type="spell" data-lvl="{{id}}" title="{{localize 'ACKS.Add'}}"><i
@ -35,7 +35,7 @@
</a>
</div>
<div class="field-short memorize flexrow">
<input type="text" value="{{item.data.cast}}" data-dtype="Number" placeholder="0" data-field="cast"
<input type="text" value="{{item.data.data.cast}}" data-dtype="Number" placeholder="0" data-field="cast"
title="{{localize 'ACKS.spells.Cast'}}"></div>
<div class="item-controls">
{{#if ../../owner}}

View File

@ -5,10 +5,10 @@
<h4 class="attribute-name box-title" title="{{localize 'ACKS.Health'}}">{{ localize "ACKS.HealthShort" }}
<a class="hp-roll"><i class="fas fa-dice"></i></a></h4>
<div class="attribute-value flexrow">
<input name="data.hp.value" type="text" value="{{data.hp.value}}" data-dtype="Number"
<input name="data.hp.value" type="text" value="{{data.data.hp.value}}" data-dtype="Number"
placeholder="0" />
<span class="sep"> / </span>
<input name="data.hp.max" type="text" value="{{data.hp.max}}" data-dtype="Number" placeholder="0" />
<input name="data.hp.max" type="text" value="{{data.data.hp.max}}" data-dtype="Number" placeholder="0" />
</div>
</li>
<li class="attribute hit-dice">
@ -16,7 +16,7 @@
<a>{{ localize "ACKS.HitDiceShort" }}</a>
</h4>
<div class="attribute-value">
<input name="data.hp.hd" type="text" value="{{data.hp.hd}}" data-dtype="String" />
<input name="data.hp.hd" type="text" value="{{data.data.hp.hd}}" data-dtype="String" />
</div>
</li>
<li class="attribute">
@ -24,14 +24,14 @@
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.ArmorClass' }}">
{{ localize "ACKS.AscArmorClassShort" }}</h4>
<div class="attribute-value">
<input name="data.aac.value" type="text" value="{{data.aac.value}}" data-dtype="Number"
<input name="data.aac.value" type="text" value="{{data.data.aac.value}}" data-dtype="Number"
placeholder="10" data-dtype="Number" />
</div>
{{else}}
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.ArmorClass' }}">
{{ localize "ACKS.ArmorClassShort" }}</h4>
<div class="attribute-value">
<input name="data.ac.value" type="text" value="{{data.ac.value}}" data-dtype="Number"
<input name="data.ac.value" type="text" value="{{data.data.ac.value}}" data-dtype="Number"
placeholder="9" data-dtype="Number" />
</div>
{{/if}}
@ -41,25 +41,25 @@
<h4 class="attribute-name box-title" title="{{localize 'ACKS.AB'}}"><a>{{ localize "ACKS.ABShort" }}</a>
</h4>
<div class="attribute-value">
<input name="data.thac0.throw" type="text" value="{{data.thac0.throw}}" placeholder=""
<input name="data.thac0.throw" type="text" value="{{data.data.thac0.throw}}" placeholder=""
data-dtype="Number" />
</div>
{{else}}
<h4 class="attribute-name box-title" title="{{localize 'ACKS.Thac0'}}"><a>{{ localize "ACKS.Thac0" }}</a>
</h4>
<div class="attribute-value">
<input name="data.thac0.value" type="text" value="{{data.thac0.value}}" placeholder="0"
<input name="data.thac0.value" type="text" value="{{data.data.thac0.value}}" placeholder="0"
data-dtype="Number" />
</div>
{{/if}}
</li>
{{#if data.retainer.enabled}}
{{#if data.data.retainer.enabled}}
<li class="attribute">
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Loyalty' }}">
{{ localize "ACKS.LoyaltyShort" }}
</h4>
<div class="attribute-value">
<input name="data.retainer.loyalty" type="text" value="{{data.retainer.loyalty}}" placeholder="0"
<input name="data.retainer.loyalty" type="text" value="{{data.data.retainer.loyalty}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -69,7 +69,7 @@
{{ localize "ACKS.movement.short" }}
</h4>
<div class="attribute-value">
<input name="data.movement.base" type="text" value="{{data.movement.base}}" placeholder="0"
<input name="data.movement.base" type="text" value="{{data.data.movement.base}}" placeholder="0"
data-dtype="Number" />
</div>
</li>
@ -94,8 +94,8 @@
{{#each abilities as |item|}}
<li class="item-entry">
<div class="item flexrow" data-item-id="{{item._id}}">
<div class="item-pattern" title="{{localize 'ACKS.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.pattern}}, transparent)"></div>
<div class="item-name {{#if item.data.roll}}item-rollable{{/if}} flexrow">
<div class="item-pattern" title="{{localize 'ACKS.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.data.pattern}}, transparent)"></div>
<div class="item-name {{#if item.data.data.roll}}item-rollable{{/if}} flexrow">
<div class="item-image" style="background-image: url({{item.img}})"></div>
<h4 title="{{item.name}}">
{{item.name~}}
@ -119,7 +119,7 @@
<li class="item-entry">
<div class="item flexrow" data-item-id="{{item._id}}">
{{#if (eq item.type 'weapon')}}
<div class="item-pattern" title="{{localize 'ACKS.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.pattern}}, transparent)"></div>
<div class="item-pattern" title="{{localize 'ACKS.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.data.pattern}}, transparent)"></div>
{{/if}}
<div class="item-name {{#if (eq item.type 'weapon')}}item-rollable{{/if}} flexrow">
<div class="item-image" style="background-image: url({{item.img}})"></div>
@ -129,10 +129,10 @@
</div>
{{#if (eq item.type 'weapon')}}
<div class="field-long counter flexrow">
<input type="text" value="{{item.data.counter.value}}" data-dtype="Number"
<input type="text" value="{{item.data.data.counter.value}}" data-dtype="Number"
placeholder="0" data-field="value" title="{{localize 'ACKS.items.roundAttacks'}}">
/
<input type="text" value="{{item.data.counter.max}}" data-field="max"
<input type="text" value="{{item.data.data.counter.max}}" data-field="max"
data-dtype="Number" placeholder="0"
title="{{localize 'ACKS.items.roundAttacksMax'}}"></div>
{{/if}}
@ -157,7 +157,7 @@
<li class="attacks-description">
{{#unless isNew}}
<label>{{ localize "ACKS.movement.details" }}</label>
<input name="data.movement.value" type="text" value="{{data.movement.value}}" data-dtype="String" />
<input name="data.movement.value" type="text" value="{{data.data.movement.value}}" data-dtype="String" />
{{else}}
<button data-action="generate-saves">{{localize "ACKS.dialog.generateSaves"}}</button>
{{/unless}}
@ -166,35 +166,35 @@
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.death.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.death.value" type="text" value="{{data.saves.death.value}}"
<input name="data.saves.death.value" type="text" value="{{data.data.saves.death.value}}"
placeholder="0" data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="wand">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.wand.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.wand.value" type="text" value="{{data.saves.wand.value}}"
<input name="data.saves.wand.value" type="text" value="{{data.data.saves.wand.value}}"
placeholder="0" data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="paralysis">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.paralysis.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.paralysis.value" type="text" value="{{data.saves.paralysis.value}}"
<input name="data.saves.paralysis.value" type="text" value="{{data.data.saves.paralysis.value}}"
placeholder="0" data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="breath">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.breath.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.breath.value" type="text" value="{{data.saves.breath.value}}"
<input name="data.saves.breath.value" type="text" value="{{data.data.saves.breath.value}}"
placeholder="0" data-dtype="Number" />
</li>
<li class="attribute saving-throw" data-save="spell">
<h4 class="attribute-name box-title">
<a>{{ localize "ACKS.saves.spell.long" }}</a></h4>
<div class="attribute-value">
<input name="data.saves.spell.value" type="text" value="{{data.saves.spell.value}}"
<input name="data.saves.spell.value" type="text" value="{{data.data.saves.spell.value}}"
placeholder="0" />
</li>
</ul>

View File

@ -6,26 +6,26 @@
<ul class="summary flexrow">
<li class="flex2 flexrow check-field">
<div>
<input type="text" name="data.details.alignment" value="{{data.details.alignment}}" />
<input type="text" name="data.details.alignment" value="{{data.data.details.alignment}}" />
<label>{{localize 'ACKS.details.alignment'}}</label>
</div>
<div class="check reaction-check" title="{{localize 'ACKS.roll.reaction'}}"><a><i class="fas fa-dice"></i></a></div>
</li>
<li class="flexrow check-field" data-check="dungeon">
<div>
<input type="text" name="data.details.appearing.d" value="{{data.details.appearing.d}}" />
<input type="text" name="data.details.appearing.d" value="{{data.data.details.appearing.d}}" />
<label>{{localize 'ACKS.details.appearing'}}</label>
</div>
<div class="check appearing-check" title="{{localize 'ACKS.roll.appearing'}}"><a><i class="fas fa-dice"></i></a></div>
</li>
<li class="flexrow check-field" data-check="wilderness">
(<div><input type="text" name="data.details.appearing.w" value="{{data.details.appearing.w}}" /></div>)
(<div><input type="text" name="data.details.appearing.w" value="{{data.data.details.appearing.w}}" /></div>)
<div class="check appearing-check" title="{{localize 'ACKS.roll.appearing'}}"><a><i class="fas fa-dice"></i></a></div>
</li>
{{#if config.morale}}
<li class="flexrow check-field">
<div>
<input type="text" name="data.details.morale" value="{{data.details.morale}}" />
<input type="text" name="data.details.morale" value="{{data.data.details.morale}}" />
<label>{{localize 'ACKS.details.morale'}}</label>
</div>
<div class="check morale-check" title="{{localize 'ACKS.roll.morale'}}"><a><i class="fas fa-dice"></i></a></div>
@ -34,11 +34,11 @@
</ul>
<ul class="summary flexrow">
<li>
<input type="text" name="data.details.xp" value="{{data.details.xp}}" />
<input type="text" name="data.details.xp" value="{{data.data.details.xp}}" />
<label>{{localize 'ACKS.details.experience.award'}}</label>
</li>
<li class="treasure-table" title="{{localize 'ACKS.details.treasureTableHint'}}">
<div>{{{data.details.treasure.link}}}</div>
<div>{{{data.data.details.treasure.link}}}</div>
<label>{{localize 'ACKS.details.treasure'}}</label>
</li>
</ul>

View File

@ -13,20 +13,20 @@
<div class="form-group block-input">
<label>{{localize 'ACKS.abilities.Requirements'}}</label>
<div class="form-fields">
<input type="text" name="data.requirements" value="{{data.requirements}}" data-dtype="String" />
<input type="text" name="data.requirements" value="{{data.data.requirements}}" data-dtype="String" />
</div>
</div>
<div class="form-group block-input">
<label>{{localize 'ACKS.items.Roll'}}</label>
<div class="form-fields">
<input type="text" name="data.roll" value="{{data.roll}}" data-dtype="String" />
<input type="text" name="data.roll" value="{{data.data.roll}}" data-dtype="String" />
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.items.RollType'}}</label>
<div class="form-fields">
<select name="data.rollType">
{{#select data.rollType}}
{{#select data.data.rollType}}
{{#each config.roll_type as |t a|}}
<option value="{{a}}">{{t}}</option>
{{/each}}
@ -37,20 +37,20 @@
<div class="form-group">
<label>{{localize 'ACKS.items.RollTarget'}}</label>
<div class="form-fields">
<input type="text" name="data.rollTarget" value="{{data.rollTarget}}" data-dtype="Number" />
<input type="text" name="data.rollTarget" value="{{data.data.rollTarget}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.items.BlindRoll'}}</label>
<div class="form-fields">
<input type="checkbox" name="data.blindroll" value="{{data.blindroll}}" {{checked data.blindroll}} data-dtype="Number"/>
<input type="checkbox" name="data.blindroll" value="{{data.data.blindroll}}" {{checked data.data.blindroll}} data-dtype="Number"/>
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.spells.Save'}}</label>
<div class="form-fields">
<select name="data.save">
{{#select data.save}}
{{#select data.data.save}}
<option value=""></option>
{{#each config.saves_short as |save a|}}
<option value="{{a}}">{{save}}</option>
@ -61,7 +61,7 @@
</div>
</div>
<div class="description">
{{editor content=data.description target="data.description" button=true
{{editor content=data.data.description target="data.description" button=true
owner=owner editable=editable}}
</div>
</div>

View File

@ -13,14 +13,14 @@
<div class="form-group">
<label>{{localize 'ACKS.items.ArmorAAC'}}</label>
<div class="form-fields">
<input type="text" name="data.aac.value" value="{{data.aac.value}}" data-dtype="Number" />
<input type="text" name="data.aac.value" value="{{data.data.aac.value}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.armor.type'}}</label>
<div class="form-fields">
<select name="data.type">
{{#select data.type}}
{{#select data.data.type}}
<option value=""></option>
{{#each config.armor as |armor a|}}
<option value="{{a}}">{{armor}}</option>
@ -32,18 +32,18 @@
<div class="form-group">
<label>{{localize 'ACKS.items.Cost'}}</label>
<div class="form-fields">
<input type="text" name="data.cost" value="{{data.cost}}" data-dtype="Number" />
<input type="text" name="data.cost" value="{{data.data.cost}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.items.Weight'}}</label>
<div class="form-fields">
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number" />
<input type="text" name="data.weight" value="{{data.data.weight}}" data-dtype="Number" />
</div>
</div>
</div>
<div class="description">
{{editor content=data.description target="data.description" button=true
{{editor content=data.data.description target="data.description" button=true
owner=owner editable=editable}}
</div>
</div>

View File

@ -13,30 +13,30 @@
<div class="form-group">
<label>{{localize 'ACKS.items.Quantity'}}</label>
<div class="form-fields">
<input type="text" name="data.quantity.value" value="{{data.quantity.value}}" data-dtype="Number" />/<input type="text" name="data.quantity.max" value="{{data.quantity.max}}" data-dtype="Number" />
<input type="text" name="data.quantity.value" value="{{data.data.quantity.value}}" data-dtype="Number" />/<input type="text" name="data.quantity.max" value="{{data.data.quantity.max}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.items.Treasure'}}</label>
<div class="form-fields">
<input type="checkbox" name="data.treasure" value="{{data.treasure}}" {{checked data.treasure}} data-dtype="Boolean"/>
<input type="checkbox" name="data.treasure" value="{{data.data.treasure}}" {{checked data.data.treasure}} data-dtype="Boolean"/>
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.items.Cost'}}</label>
<div class="form-fields">
<input type="text" name="data.cost" value="{{data.cost}}" data-dtype="Number" />
<input type="text" name="data.cost" value="{{data.data.cost}}" data-dtype="Number" />
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.items.Weight'}}</label>
<div class="form-fields">
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number" />
<input type="text" name="data.weight" value="{{data.data.weight}}" data-dtype="Number" />
</div>
</div>
</div>
<div class="description weapon-editor">
{{editor content=data.description target="data.description" button=true
{{editor content=data.data.description target="data.description" button=true
owner=owner editable=editable}}
</div>
</div>

View File

@ -13,32 +13,32 @@
<div class="form-group">
<label>{{localize 'ACKS.spells.Level'}}</label>
<div class="form-fields">
<input type="text" name="data.lvl" value="{{data.lvl}}" data-dtype="Number" />
<input type="text" name="data.lvl" value="{{data.data.lvl}}" data-dtype="Number" />
</div>
</div>
<div class="form-group block-input">
<label>{{localize 'ACKS.spells.Class'}}</label>
<div class="form-fields">
<input type="text" name="data.class" value="{{data.class}}" data-dtype="String" />
<input type="text" name="data.class" value="{{data.data.class}}" data-dtype="String" />
</div>
</div>
<div class="form-group block-input">
<label>{{localize 'ACKS.spells.Duration'}}</label>
<div class="form-fields">
<input type="text" name="data.duration" value="{{data.duration}}" data-dtype="String" />
<input type="text" name="data.duration" value="{{data.data.duration}}" data-dtype="String" />
</div>
</div>
<div class="form-group block-input">
<label>{{localize 'ACKS.spells.Range'}}</label>
<div class="form-fields">
<input type="text" name="data.range" value="{{data.range}}" data-dtype="String" />
<input type="text" name="data.range" value="{{data.data.range}}" data-dtype="String" />
</div>
</div>
<div class="form-group">
<label>{{localize 'ACKS.spells.Save'}}</label>
<div class="form-fields">
<select name="data.save">
{{#select data.save}}
{{#select data.data.save}}
<option value=""></option>
{{#each config.saves_short as |save a|}}
<option value="{{a}}">{{save}}</option>
@ -50,12 +50,12 @@
<div class="form-group block-input">
<label>{{localize 'ACKS.items.Roll'}}</label>
<div class="form-fields">
<input type="text" name="data.roll" value="{{data.roll}}" data-dtype="String" />
<input type="text" name="data.roll" value="{{data.data.roll}}" data-dtype="String" />
</div>
</div>
</div>
<div class="description">
{{editor content=data.description target="data.description" button=true
{{editor content=data.data.description target="data.description" button=true
owner=owner editable=editable}}
</div>
</div>

View File

@ -24,7 +24,7 @@
<input
type="text"
name="data.cost"
value="{{data.cost}}"
value="{{data.data.cost}}"
data-dtype="Number"
/>
</div>
@ -36,7 +36,7 @@
<input
type="text"
name="data.weight"
value="{{data.weight}}"
value="{{data.data.weight}}"
data-dtype="Number"
/>
</div>
@ -44,7 +44,7 @@
</div>
</div>
<ol class="tag-list">
{{#each data.tags as |tag|}}
{{#each data.data.tags as |tag|}}
<li class="tag" title="{{tag.title}}" data-tag="{{tag.value}}">
<span>{{tag.value}}</span>
<a class="tag-delete"><i class="fas fa-times"></i></a>
@ -72,7 +72,7 @@
<input
type="text"
name="data.damage"
value="{{data.damage}}"
value="{{data.data.damage}}"
data-dtype="String"
/>
</div>
@ -84,39 +84,39 @@
<input
type="text"
name="data.bonus"
value="{{data.bonus}}"
value="{{data.data.bonus}}"
data-dtype="Number"
/>
</div>
</div>
<div class="form-group attack-type">
<a title="{{localize 'ACKS.items.Melee'}}" class="melee-toggle {{#if
data.melee}}active{{/if}}"><i class="fas fa-fist-raised"></i></a>
data.data.melee}}active{{/if}}"><i class="fas fa-fist-raised"></i></a>
<a title="{{localize 'ACKS.items.Missile'}}" class="missile-toggle
{{#if data.missile}}active{{/if}}"><i class="fas fa-bullseye"></i></a>
{{#if data.data.missile}}active{{/if}}"><i class="fas fa-bullseye"></i></a>
</div>
{{#if data.missile}}
{{#if data.data.missile}}
<div class="form-group block-input">
<label>{{localize 'ACKS.items.Range'}}</label>
<div class="form-fields range">
<input
type="text"
name="data.range.short"
value="{{data.range.short}}"
value="{{data.data.range.short}}"
data-dtype="Number"
/>
<div class="sep"></div>
<input
type="text"
name="data.range.medium"
value="{{data.range.medium}}"
value="{{data.data.range.medium}}"
data-dtype="Number"
/>
<div class="sep"></div>
<input
type="text"
name="data.range.long"
value="{{data.range.long}}"
value="{{data.data.range.long}}"
data-dtype="Number"
/>
</div>
@ -126,7 +126,7 @@
<label>{{localize 'ACKS.spells.Save'}}</label>
<div class="form-fields">
<select name="data.save">
{{#select data.save}}
{{#select data.data.save}}
<option value=""></option>
{{#each config.saves_short as |save a|}}
<option value="{{a}}">{{save}}</option>
@ -141,16 +141,16 @@
<input
type="checkbox"
name="data.slow"
value="{{data.slow}}"
value="{{data.data.slow}}"
{{checked
data.slow}}
data.data.slow}}
data-dtype="Number"
/>
</div>
</div>
</div>
<div class="description weapon-editor">
{{editor content=data.description target="data.description" button=true
{{editor content=data.data.description target="data.description" button=true
owner=owner editable=editable}}
</div>
</div>