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
|
|
@ -1,3 +1,5 @@
|
|||
import { buildTemplateDistance, buildTemplateType, buildTemplateAngle } from '../../helpers/templateUtils.mjs';
|
||||
|
||||
export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer {
|
||||
static prepareSceneControls() {
|
||||
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);
|
||||
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 data = {
|
||||
x: width / 2,
|
||||
y: height / 2,
|
||||
t: 'circle',
|
||||
distance: 30,
|
||||
fillColor: game.user.color || '#FF0000'
|
||||
t: usedType,
|
||||
distance: distance,
|
||||
fillColor: settings.fillColor,
|
||||
angle: usedAngle,
|
||||
width: settings.width,
|
||||
direction: settings.direction
|
||||
};
|
||||
|
||||
console.log("data", data);
|
||||
CONFIG.ux.TemplateManager.createPreview(data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
export const presetTemplateTypes = {
|
||||
circle: {
|
||||
id: 'circle',
|
||||
|
|
@ -14,6 +13,7 @@ export const presetTemplateTypes = {
|
|||
export default class DhPresetTemplate extends foundry.abstract.DataModel {
|
||||
static defineSchema() {
|
||||
const fields = foundry.data.fields;
|
||||
const fillColor = game.user?.color.toString() || '#777777';
|
||||
|
||||
return {
|
||||
type: new fields.StringField({
|
||||
|
|
@ -25,8 +25,24 @@ export default class DhPresetTemplate extends foundry.abstract.DataModel {
|
|||
range: new fields.StringField({
|
||||
required: true,
|
||||
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 { buildTemplateDistance, buildTemplateType, buildTemplateAngle } from '../helpers/templateUtils.mjs';
|
||||
|
||||
export default function DhTemplateEnricher(match, _options) {
|
||||
const params = parseInlineParams(match[1]);
|
||||
|
|
@ -56,21 +57,9 @@ export const renderMeasuredTemplate = async event => {
|
|||
|
||||
if (!type || !range || !game.canvas.scene) return;
|
||||
|
||||
const usedType = type === 'inFront' ? 'cone' : type === 'emanation' ? 'circle' : type;
|
||||
const usedAngle =
|
||||
type === CONST.MEASURED_TEMPLATE_TYPES.CONE
|
||||
? (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 usedType = buildTemplateType(type);
|
||||
const usedAngle = buildTemplateAngle(type, angle);
|
||||
const distance = buildTemplateDistance(type, range);
|
||||
|
||||
const { width, height } = game.canvas.scene.dimensions;
|
||||
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