mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
All data fields added and wired up for use
This commit is contained in:
parent
596e149968
commit
fbd21274a6
5 changed files with 67 additions and 20 deletions
|
|
@ -1993,6 +1993,7 @@
|
||||||
},
|
},
|
||||||
"actorName": "Actor Name",
|
"actorName": "Actor Name",
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
|
"angle": "Angle",
|
||||||
"any": "Any",
|
"any": "Any",
|
||||||
"armor": "Armor",
|
"armor": "Armor",
|
||||||
"armorFeatures": "Armor Features",
|
"armorFeatures": "Armor Features",
|
||||||
|
|
@ -2015,6 +2016,7 @@
|
||||||
"damageType": "Damage Type",
|
"damageType": "Damage Type",
|
||||||
"description": "Description",
|
"description": "Description",
|
||||||
"difficulty": "Difficulty",
|
"difficulty": "Difficulty",
|
||||||
|
"direction": "Direction",
|
||||||
"downtime": "Downtime",
|
"downtime": "Downtime",
|
||||||
"dropActorsHere": "Drop Actors here",
|
"dropActorsHere": "Drop Actors here",
|
||||||
"dropFeaturesHere": "Drop Features here",
|
"dropFeaturesHere": "Drop Features here",
|
||||||
|
|
@ -2030,6 +2032,7 @@
|
||||||
"failure": "Failure",
|
"failure": "Failure",
|
||||||
"fear": "Fear",
|
"fear": "Fear",
|
||||||
"features": "Features",
|
"features": "Features",
|
||||||
|
"fillColor": "Fill Color",
|
||||||
"formula": "Formula",
|
"formula": "Formula",
|
||||||
"gm": "GM",
|
"gm": "GM",
|
||||||
"healing": "Healing",
|
"healing": "Healing",
|
||||||
|
|
@ -2113,6 +2116,7 @@
|
||||||
"value": "Value",
|
"value": "Value",
|
||||||
"weaponFeatures": "Weapon Features",
|
"weaponFeatures": "Weapon Features",
|
||||||
"weapons": "Weapons",
|
"weapons": "Weapons",
|
||||||
|
"width": "Width",
|
||||||
"withThing": "With {thing}"
|
"withThing": "With {thing}"
|
||||||
},
|
},
|
||||||
"ITEMS": {
|
"ITEMS": {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { buildTemplateDistance, buildTemplateType, buildTemplateAngle } from '../../helpers/templateUtils.mjs';
|
||||||
|
|
||||||
export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer {
|
export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer {
|
||||||
static prepareSceneControls() {
|
static prepareSceneControls() {
|
||||||
const sc = foundry.applications.ui.SceneControls;
|
const sc = foundry.applications.ui.SceneControls;
|
||||||
|
|
@ -110,15 +112,22 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer
|
||||||
}
|
}
|
||||||
const settings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.PresetTemplate);
|
const settings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.PresetTemplate);
|
||||||
console.log("settings", settings);
|
console.log("settings", settings);
|
||||||
|
const distance = buildTemplateDistance(settings.type, settings.range);
|
||||||
|
const usedType = buildTemplateType(settings.type);
|
||||||
|
const usedAngle = buildTemplateAngle(settings.type, settings.angle);
|
||||||
const { width, height } = game.canvas.scene.dimensions;
|
const { width, height } = game.canvas.scene.dimensions;
|
||||||
const data = {
|
const data = {
|
||||||
x: width / 2,
|
x: width / 2,
|
||||||
y: height / 2,
|
y: height / 2,
|
||||||
t: 'circle',
|
t: usedType,
|
||||||
distance: 30,
|
distance: distance,
|
||||||
fillColor: game.user.color || '#FF0000'
|
fillColor: settings.fillColor,
|
||||||
|
angle: usedAngle,
|
||||||
|
width: settings.width,
|
||||||
|
direction: settings.direction
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log("data", data);
|
||||||
CONFIG.ux.TemplateManager.createPreview(data);
|
CONFIG.ux.TemplateManager.createPreview(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
export const presetTemplateTypes = {
|
export const presetTemplateTypes = {
|
||||||
circle: {
|
circle: {
|
||||||
id: 'circle',
|
id: 'circle',
|
||||||
|
|
@ -14,6 +13,7 @@ export const presetTemplateTypes = {
|
||||||
export default class DhPresetTemplate extends foundry.abstract.DataModel {
|
export default class DhPresetTemplate extends foundry.abstract.DataModel {
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
|
const fillColor = game.user?.color.toString() || '#777777';
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: new fields.StringField({
|
type: new fields.StringField({
|
||||||
|
|
@ -25,8 +25,24 @@ export default class DhPresetTemplate extends foundry.abstract.DataModel {
|
||||||
range: new fields.StringField({
|
range: new fields.StringField({
|
||||||
required: true,
|
required: true,
|
||||||
initial: "15",
|
initial: "15",
|
||||||
label: 'DAGGERHEART.GENERAL.type'
|
label: 'DAGGERHEART.GENERAL.range'
|
||||||
|
}),
|
||||||
|
angle: new fields.NumberField({
|
||||||
|
label: 'DAGGERHEART.GENERAL.angle'
|
||||||
|
}),
|
||||||
|
direction: new fields.NumberField({
|
||||||
|
initial: 0,
|
||||||
|
label: 'DAGGERHEART.GENERAL.direction'
|
||||||
|
}),
|
||||||
|
width: new fields.NumberField({
|
||||||
|
label: 'DAGGERHEART.GENERAL.width'
|
||||||
|
}),
|
||||||
|
fillColor: new fields.StringField({
|
||||||
|
required: true,
|
||||||
|
initial: fillColor,
|
||||||
|
label: 'DAGGERHEART.GENERAL.fillColor'
|
||||||
})
|
})
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { parseInlineParams } from './parser.mjs';
|
import { parseInlineParams } from './parser.mjs';
|
||||||
|
import { buildTemplateDistance, buildTemplateType, buildTemplateAngle } from '../helpers/templateUtils.mjs';
|
||||||
|
|
||||||
export default function DhTemplateEnricher(match, _options) {
|
export default function DhTemplateEnricher(match, _options) {
|
||||||
const params = parseInlineParams(match[1]);
|
const params = parseInlineParams(match[1]);
|
||||||
|
|
@ -56,21 +57,9 @@ export const renderMeasuredTemplate = async event => {
|
||||||
|
|
||||||
if (!type || !range || !game.canvas.scene) return;
|
if (!type || !range || !game.canvas.scene) return;
|
||||||
|
|
||||||
const usedType = type === 'inFront' ? 'cone' : type === 'emanation' ? 'circle' : type;
|
const usedType = buildTemplateType(type);
|
||||||
const usedAngle =
|
const usedAngle = buildTemplateAngle(type, angle);
|
||||||
type === CONST.MEASURED_TEMPLATE_TYPES.CONE
|
const distance = buildTemplateDistance(type, range);
|
||||||
? (angle ?? CONFIG.MeasuredTemplate.defaults.angle)
|
|
||||||
: type === CONFIG.DH.GENERAL.templateTypes.INFRONT
|
|
||||||
? '180'
|
|
||||||
: undefined;
|
|
||||||
|
|
||||||
let baseDistance = range;
|
|
||||||
if (Number.isNaN(Number(range))) {
|
|
||||||
baseDistance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement[
|
|
||||||
range
|
|
||||||
];
|
|
||||||
}
|
|
||||||
const distance = type === CONFIG.DH.GENERAL.templateTypes.EMANATION ? baseDistance + 2.5 : baseDistance;
|
|
||||||
|
|
||||||
const { width, height } = game.canvas.scene.dimensions;
|
const { width, height } = game.canvas.scene.dimensions;
|
||||||
const data = {
|
const data = {
|
||||||
|
|
|
||||||
29
module/helpers/templateUtils.mjs
Normal file
29
module/helpers/templateUtils.mjs
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
export function buildTemplateDistance(type, range) {
|
||||||
|
console.log("type", type);
|
||||||
|
console.log("range", range);
|
||||||
|
|
||||||
|
let baseDistance = range;
|
||||||
|
if (Number.isNaN(Number(range))) {
|
||||||
|
baseDistance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement[
|
||||||
|
range
|
||||||
|
];
|
||||||
|
}
|
||||||
|
const distance = type === CONFIG.DH.GENERAL.templateTypes.EMANATION ? baseDistance + 2.5 : baseDistance;
|
||||||
|
|
||||||
|
return distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildTemplateType(type) {
|
||||||
|
const usedType = type === 'inFront' ? 'cone' : type === 'emanation' ? 'circle' : type;
|
||||||
|
return usedType;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildTemplateAngle(type, angle) {
|
||||||
|
const usedAngle =
|
||||||
|
type === CONST.MEASURED_TEMPLATE_TYPES.CONE
|
||||||
|
? (angle ?? CONFIG.MeasuredTemplate.defaults.angle)
|
||||||
|
: type === CONFIG.DH.GENERAL.templateTypes.INFRONT
|
||||||
|
? '180'
|
||||||
|
: undefined;
|
||||||
|
return usedAngle;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue