Compare commits
4 commits
feature/tr
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 2414fde703 | |||
|
|
de0030a875 | ||
|
|
be04ab9a26 | ||
|
|
8f206baf46 |
116 changed files with 2976 additions and 933 deletions
8
.github/workflows/draft-release.yaml
vendored
8
.github/workflows/draft-release.yaml
vendored
|
|
@ -29,6 +29,12 @@ jobs:
|
|||
if: ${{ steps.check-tag.outputs.exists == 'true' }}
|
||||
run: exit 1
|
||||
|
||||
- name: "Building compendia"
|
||||
run: "npm run data:build"
|
||||
|
||||
- name: "Removing compendium source"
|
||||
run: "rm -rf packs/**/_source"
|
||||
|
||||
- name: Update the manifest with the relevant properties
|
||||
id: manifest-update
|
||||
uses: microsoft/variable-substitution@v1
|
||||
|
|
@ -38,7 +44,7 @@ jobs:
|
|||
download: "https://github.com/${{ github.repository }}/releases/download/v${{ steps.version.outputs.version }}/release.zip"
|
||||
|
||||
- name: Create the zip
|
||||
run: zip -r release.zip system.json module langs assets templates README.md
|
||||
run: zip -r release.zip system.json packs module langs assets templates README.md
|
||||
|
||||
- name: Create the draft release
|
||||
uses: ncipollo/release-action@v1
|
||||
|
|
|
|||
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -13,3 +13,10 @@ jspm_packages/
|
|||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# Ignore all of the binaries and stuff that gets built for Foundry from the raw
|
||||
# JSON data because it's annoying seeing it in my git changes when it isn't actually
|
||||
# needed.
|
||||
/packs/**/*
|
||||
!/packs/**/*/
|
||||
!/packs/**/*.json
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
/*
|
||||
This hook exists to be able to change all of the actor-sheets to allow
|
||||
them to have dev-mode controls in their header that are useful for
|
||||
testing purposes. (This is particularly useful for testing embedded
|
||||
items that are only allowed to exist on specific actor types)
|
||||
*/
|
||||
Hooks.on(`getHeaderControlsActorSheetV2`, (app, controls) => {
|
||||
if (!game.settings.get(`ripcrypt`, `devMode`)) { return }
|
||||
|
||||
controls.push(
|
||||
{
|
||||
icon: `fa-solid fa-terminal`,
|
||||
label: `Embed New Item (DEV)`,
|
||||
action: `createItem`,
|
||||
},
|
||||
{
|
||||
label: `Make Global Reference`,
|
||||
onClick: () => {
|
||||
globalThis._doc = app.actor;
|
||||
},
|
||||
},
|
||||
);
|
||||
});
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
// Hooks
|
||||
import "./hooks/hotReload.mjs";
|
||||
import "./hooks/getHeaderControlsActorSheetV2.mjs";
|
||||
|
|
@ -74,16 +74,7 @@ export default [
|
|||
"@stylistic/space-infix-ops": `warn`,
|
||||
"@stylistic/eol-last": `warn`,
|
||||
"@stylistic/operator-linebreak": [`warn`, `before`],
|
||||
"@stylistic/indent": [
|
||||
`warn`,
|
||||
`tab`,
|
||||
{
|
||||
SwitchCase: 1,
|
||||
ignoredNodes: [
|
||||
`> .superClass`,
|
||||
],
|
||||
},
|
||||
],
|
||||
"@stylistic/indent": [`warn`, `tab`],
|
||||
"@stylistic/brace-style": [`warn`, `stroustrup`, { "allowSingleLine": true }],
|
||||
"@stylistic/quotes": [`warn`, `backtick`, { "avoidEscape": true }],
|
||||
"@stylistic/comma-dangle": [`warn`, { arrays: `always-multiline`, objects: `always-multiline`, imports: `always-multiline`, exports: `always-multiline`, functions: `always-multiline` }],
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
},
|
||||
"include": [
|
||||
"module/**/*",
|
||||
"dev/**/*",
|
||||
"foundry/client/client.mjs",
|
||||
"foundry/client/global.d.mts",
|
||||
"foundry/common/primitives/global.d.mts"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
"good": "Good",
|
||||
"shield": "Shield",
|
||||
"skill": "Skill",
|
||||
"trait": "Trait",
|
||||
"weapon": "Weapon"
|
||||
}
|
||||
},
|
||||
|
|
@ -174,7 +173,6 @@
|
|||
"guts-value-readonly": "The current amount of guts the character has",
|
||||
"guts-max-readonly": "The maximum amount of guts the character can have"
|
||||
},
|
||||
"edit-description": "Edit Description",
|
||||
"traits-placeholder": "New Trait...",
|
||||
"short-range": "Short @RipCrypt.common.range",
|
||||
"long-range": "Long @RipCrypt.common.range",
|
||||
|
|
@ -203,8 +201,7 @@
|
|||
"invalid-socket": "Invalid socket data received, this means a module or system bug is present.",
|
||||
"unknown-socket-event": "An unknown socket event was received: {event}",
|
||||
"no-active-gm": "No active @USER.GM is logged in, you must wait for a @USER.GM to be active before you can do that.",
|
||||
"malformed-socket-payload": "Socket event \"{event}\" received with malformed payload. Details: {details}",
|
||||
"invalid-parent-document": "Cannot create an item with type \"{itemType}\" on a parent document of type \"{parentType}\""
|
||||
"malformed-socket-payload": "Socket event \"{event}\" received with malformed payload. Details: {details}"
|
||||
},
|
||||
"warn": {
|
||||
"cannot-go-negative": "\"{name}\" is unable to be a negative number."
|
||||
|
|
|
|||
|
|
@ -1,217 +0,0 @@
|
|||
import { filePath } from "../../consts.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
import { LaidOutAppMixin } from "../mixins/LaidOutAppMixin.mjs";
|
||||
import { localizer } from "../../utils/Localizer.mjs";
|
||||
import { editItemFromElement, deleteItemFromElement } from "../utils.mjs";
|
||||
import { gameTerms } from "../../gameTerms.mjs";
|
||||
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api;
|
||||
const { ActorSheetV2 } = foundry.applications.sheets;
|
||||
const { ContextMenu, TextEditor } = foundry.applications.ux;
|
||||
|
||||
export class BookGeistSheet extends
|
||||
LaidOutAppMixin(
|
||||
GenericAppMixin(
|
||||
HandlebarsApplicationMixin(
|
||||
ActorSheetV2,
|
||||
))) {
|
||||
// #region Options
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: [
|
||||
`ripcrypt--actor`,
|
||||
`BookGeistSheet`,
|
||||
],
|
||||
position: {
|
||||
width: `auto`,
|
||||
height: `auto`,
|
||||
},
|
||||
window: {
|
||||
resizable: true,
|
||||
},
|
||||
form: {
|
||||
submitOnChange: true,
|
||||
closeOnSubmite: false,
|
||||
},
|
||||
};
|
||||
|
||||
static PARTS = {
|
||||
layout: {
|
||||
root: true,
|
||||
template: filePath(`templates/Apps/BookGeistSheet/layout.hbs`),
|
||||
},
|
||||
image: { template: filePath(`templates/Apps/BookGeistSheet/image.hbs`) },
|
||||
header: { template: filePath(`templates/Apps/BookGeistSheet/header.hbs`) },
|
||||
stats: { template: filePath(`templates/Apps/BookGeistSheet/stats.hbs`) },
|
||||
items: { template: filePath(`templates/Apps/BookGeistSheet/items.hbs`) },
|
||||
};
|
||||
// #endregion Options
|
||||
|
||||
// #region Lifecycle
|
||||
async _onRender() {
|
||||
await super._onRender();
|
||||
|
||||
new ContextMenu.implementation(
|
||||
this.element,
|
||||
`[data-ctx-menu="item"]`,
|
||||
[
|
||||
{
|
||||
name: localizer(`RipCrypt.common.edit`),
|
||||
condition: (el) => {
|
||||
const itemId = el.dataset.itemId;
|
||||
return itemId !== ``;
|
||||
},
|
||||
callback: editItemFromElement,
|
||||
},
|
||||
{
|
||||
name: localizer(`RipCrypt.common.delete`),
|
||||
condition: (el) => {
|
||||
const itemId = el.dataset.itemId;
|
||||
return itemId !== ``;
|
||||
},
|
||||
callback: deleteItemFromElement,
|
||||
},
|
||||
],
|
||||
{ jQuery: false, fixed: true },
|
||||
);
|
||||
};
|
||||
// #endregion Lifecycle
|
||||
|
||||
// #region Data Prep
|
||||
async _preparePartContext(partID, ctx) {
|
||||
|
||||
switch (partID) {
|
||||
case `layout`: await this._prepareLayoutContext(ctx); break;
|
||||
case `image`: await this._prepareImageContext(ctx); break;
|
||||
case `header`: await this._prepareHeaderContext(ctx); break;
|
||||
case `stats`: await this._prepareStatsContext(ctx); break;
|
||||
case `items`: await this._prepareItemsContext(ctx); break;
|
||||
};
|
||||
|
||||
return ctx;
|
||||
};
|
||||
|
||||
async _prepareLayoutContext(ctx) {
|
||||
ctx.imageVisible = true;
|
||||
};
|
||||
|
||||
async _prepareImageContext(ctx) {
|
||||
ctx.url = this.actor.img;
|
||||
};
|
||||
|
||||
async _prepareHeaderContext(ctx) {
|
||||
ctx.name = this.actor.name;
|
||||
ctx.rank = this.actor.system.level.rank;
|
||||
ctx.ranks = Object.values(gameTerms.Rank)
|
||||
.map((value, index) => ({
|
||||
value,
|
||||
label: index
|
||||
}));
|
||||
ctx.description = await TextEditor.implementation.enrichHTML(this.actor.system.description);
|
||||
};
|
||||
|
||||
async _prepareStatsContext(ctx) {
|
||||
const system = this.actor.system;
|
||||
|
||||
const fate = system.fate;
|
||||
if (fate) {
|
||||
ctx.path = {
|
||||
full: localizer(`RipCrypt.common.ordinals.${fate}.full`),
|
||||
abbv: localizer(`RipCrypt.common.ordinals.${fate}.abbv`),
|
||||
};
|
||||
}
|
||||
else {
|
||||
ctx.path = {
|
||||
full: null,
|
||||
abbv: localizer(`RipCrypt.common.empty`),
|
||||
};
|
||||
};
|
||||
|
||||
Object.assign(ctx, system.ability);
|
||||
ctx.guts = system.guts;
|
||||
ctx.speed = system.speed;
|
||||
};
|
||||
|
||||
async _prepareItemsContext(ctx) {
|
||||
const armours = this.actor.system.equippedArmour;
|
||||
const shield = this.actor.system.equippedShield;
|
||||
|
||||
let defenses = [];
|
||||
for (const [location, armour] of Object.entries(armours)) {
|
||||
if (!armour) { continue }
|
||||
const defense = {
|
||||
name: localizer(`RipCrypt.common.anatomy.${location}`),
|
||||
tooltip: null,
|
||||
protection: 0,
|
||||
shielded: false,
|
||||
};
|
||||
if (armour) {
|
||||
defense.armourUUID = armour.uuid;
|
||||
defense.tooltip = armour.name,
|
||||
defense.protection = armour.system.protection;
|
||||
}
|
||||
if (shield?.system.location.has(location)) {
|
||||
defense.shieldUUID = shield.uuid;
|
||||
defense.shielded = true;
|
||||
defense.protection += shield.system.protection;
|
||||
};
|
||||
if (defense.protection > 0) {
|
||||
defenses.push(defense);
|
||||
};
|
||||
};
|
||||
|
||||
ctx.defenses = defenses
|
||||
ctx.traits = []; // Array<{name: string}>
|
||||
|
||||
for (const item of this.actor.items) {
|
||||
switch (item.type) {
|
||||
case `weapon`: {
|
||||
if (!item.system.equipped) { continue };
|
||||
ctx.attacks ??= [];
|
||||
ctx.attacks.push(this._prepareWeapon(item));
|
||||
break;
|
||||
};
|
||||
case `craft`: {
|
||||
ctx.crafts ??= [];
|
||||
ctx.crafts.push(this._prepareCraft(item));
|
||||
break;
|
||||
};
|
||||
case `trait`: {
|
||||
ctx.traits.push(this._prepareTrait(item));
|
||||
break;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_prepareWeapon(weapon) {
|
||||
const hasShortRange = weapon.system.range.short != null;
|
||||
const hasLongRange = weapon.system.range.long != null;
|
||||
const isRanged = hasShortRange || hasLongRange;
|
||||
return {
|
||||
uuid: weapon.uuid,
|
||||
name: weapon.name,
|
||||
damage: weapon.system.damage,
|
||||
isRanged,
|
||||
range: weapon.system.range,
|
||||
};
|
||||
};
|
||||
|
||||
_prepareCraft(craft) {
|
||||
return {
|
||||
uuid: craft.uuid,
|
||||
name: craft.name,
|
||||
};
|
||||
};
|
||||
|
||||
_prepareTrait(trait) {
|
||||
return {
|
||||
uuid: trait.uuid,
|
||||
name: trait.name,
|
||||
description: trait.system.description,
|
||||
};
|
||||
};
|
||||
// #endregion Data Prep
|
||||
|
||||
// #region Actions
|
||||
// #endregion Actions
|
||||
};
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import { CraftCardV1 } from "./CraftCardV1.mjs";
|
||||
import { filePath } from "../../consts.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
import { GenericAppMixin } from "../GenericApp.mjs";
|
||||
import { SkillsCardV1 } from "./SkillsCardV1.mjs";
|
||||
import { StatsCardV1 } from "./StatsCardV1.mjs";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { deleteItemFromElement, editItemFromElement } from "../utils.mjs";
|
||||
import { documentSorter, filePath } from "../../consts.mjs";
|
||||
import { gameTerms } from "../../gameTerms.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
import { GenericAppMixin } from "../GenericApp.mjs";
|
||||
import { localizer } from "../../utils/Localizer.mjs";
|
||||
import { Logger } from "../../utils/Logger.mjs";
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { deleteItemFromElement, editItemFromElement } from "../utils.mjs";
|
|||
import { documentSorter, filePath } from "../../consts.mjs";
|
||||
import { AmmoTracker } from "../popovers/AmmoTracker.mjs";
|
||||
import { gameTerms } from "../../gameTerms.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
import { GenericAppMixin } from "../GenericApp.mjs";
|
||||
import { ItemFlags } from "../../flags/item.mjs";
|
||||
import { localizer } from "../../utils/Localizer.mjs";
|
||||
import { Logger } from "../../utils/Logger.mjs";
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { deleteItemFromElement, editItemFromElement } from "../utils.mjs";
|
|||
import { DelveDiceHUD } from "../DelveDiceHUD.mjs";
|
||||
import { filePath } from "../../consts.mjs";
|
||||
import { gameTerms } from "../../gameTerms.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
import { GenericAppMixin } from "../GenericApp.mjs";
|
||||
import { localizer } from "../../utils/Localizer.mjs";
|
||||
import { Logger } from "../../utils/Logger.mjs";
|
||||
|
||||
|
|
|
|||
|
|
@ -143,6 +143,7 @@ export class DelveDiceHUD extends HandlebarsApplicationMixin(ApplicationV2) {
|
|||
};
|
||||
};
|
||||
|
||||
Logger.log(`${partId} Context`, ctx);
|
||||
return ctx;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { filePath } from "../consts.mjs";
|
||||
import { GenericAppMixin } from "./mixins/GenericApp.mjs";
|
||||
import { GenericAppMixin } from "./GenericApp.mjs";
|
||||
import { localizer } from "../utils/Localizer.mjs";
|
||||
import { Logger } from "../utils/Logger.mjs";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { createItemFromElement, deleteItemFromElement, editItemFromElement, updateForeignDocumentFromEvent } from "../utils.mjs";
|
||||
import { DicePool } from "../DicePool.mjs";
|
||||
import { RichEditor } from "../RichEditor.mjs";
|
||||
import { toBoolean } from "../../consts.mjs";
|
||||
import { createItemFromElement, deleteItemFromElement, editItemFromElement, updateForeignDocumentFromEvent } from "./utils.mjs";
|
||||
import { DicePool } from "./DicePool.mjs";
|
||||
import { RichEditor } from "./RichEditor.mjs";
|
||||
import { toBoolean } from "../consts.mjs";
|
||||
|
||||
/**
|
||||
* A mixin that takes the class from HandlebarsApplicationMixin and combines it
|
||||
|
|
@ -37,8 +37,6 @@ export function GenericAppMixin(HandlebarsApp) {
|
|||
_popoverManagers = new Map();
|
||||
/** @type {Map<number, string>} */
|
||||
_hookIDs = new Map();
|
||||
/** @type {string | null} */
|
||||
#focus = null;
|
||||
// #endregion
|
||||
|
||||
// #region Lifecycle
|
||||
|
|
@ -55,26 +53,6 @@ export function GenericAppMixin(HandlebarsApp) {
|
|||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* @override
|
||||
* This method overrides Foundry's default behaviour for caching the focused
|
||||
* element so that it actually works when the application has a root partial
|
||||
*/
|
||||
async _preRender(...args) {
|
||||
if (this.rendered) {
|
||||
const target = this.element.querySelector(`:focus`);
|
||||
if (target) {
|
||||
if (target.id) {
|
||||
this.#focus = `#${CSS.escape(target.id)}`;
|
||||
}
|
||||
else if (target.name) {
|
||||
this.#focus = `${target.tagName}[name="${target.name}"]`;
|
||||
};
|
||||
};
|
||||
};
|
||||
return super._preRender(...args);
|
||||
};
|
||||
|
||||
/** @override */
|
||||
async _onRender(...args) {
|
||||
await super._onRender(...args);
|
||||
|
|
@ -105,30 +83,19 @@ export function GenericAppMixin(HandlebarsApp) {
|
|||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* @override
|
||||
* This method overrides Foundry's default behaviour for caching the focused
|
||||
* element so that it actually works when the application has a root partial
|
||||
*/
|
||||
async _postRender(...args) {
|
||||
if (this.rendered) {
|
||||
const target = this.element.querySelector(this.#focus);
|
||||
target?.focus();
|
||||
};
|
||||
this.#focus = null;
|
||||
return super._postRender(...args);
|
||||
};
|
||||
|
||||
async _prepareContext(_options) {
|
||||
const ctx = {};
|
||||
async _preparePartContext(partId, ctx, opts) {
|
||||
ctx = await super._preparePartContext(partId, ctx, opts);
|
||||
delete ctx.document;
|
||||
delete ctx.fields;
|
||||
|
||||
ctx.meta ??= {};
|
||||
ctx.meta.idp = this.id;
|
||||
ctx.meta.idp = this.document?.uuid ?? this.id;
|
||||
if (this.document) {
|
||||
ctx.meta.limited = this.document.limited;
|
||||
ctx.meta.editable = this.isEditable || game.user.isGM;
|
||||
ctx.meta.embedded = this.document.isEmbedded;
|
||||
};
|
||||
delete ctx.editable;
|
||||
|
||||
return ctx;
|
||||
};
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { filePath } from "../../consts.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
import { GenericAppMixin } from "../GenericApp.mjs";
|
||||
import { Logger } from "../../utils/Logger.mjs";
|
||||
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { filePath } from "../../consts.mjs";
|
||||
import { gameTerms } from "../../gameTerms.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
import { GenericAppMixin } from "../GenericApp.mjs";
|
||||
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api;
|
||||
const { ItemSheetV2 } = foundry.applications.sheets;
|
||||
|
|
|
|||
|
|
@ -1,53 +0,0 @@
|
|||
import { filePath } from "../../consts.mjs";
|
||||
import { GenericAppMixin } from "../mixins/GenericApp.mjs";
|
||||
|
||||
const { HandlebarsApplicationMixin } = foundry.applications.api;
|
||||
const { ItemSheetV2 } = foundry.applications.sheets;
|
||||
|
||||
export class TraitSheet extends GenericAppMixin(HandlebarsApplicationMixin(ItemSheetV2)) {
|
||||
// #region Options
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: [
|
||||
`ripcrypt--item`,
|
||||
`TraitSheet`,
|
||||
],
|
||||
position: {
|
||||
width: `auto`,
|
||||
height: `auto`,
|
||||
},
|
||||
window: {
|
||||
resizable: true,
|
||||
},
|
||||
form: {
|
||||
submitOnChange: true,
|
||||
closeOnSubmit: false,
|
||||
},
|
||||
};
|
||||
|
||||
static PARTS = {
|
||||
content: {
|
||||
template: filePath(`templates/Apps/TraitSheet/content.hbs`),
|
||||
root: true,
|
||||
},
|
||||
};
|
||||
// #endregion Options
|
||||
|
||||
// #region Data Prep
|
||||
async _prepareContext() {
|
||||
const TextEditor = foundry.applications.ux.TextEditor.implementation;
|
||||
const ctx = {
|
||||
meta: {
|
||||
idp: this.id,
|
||||
},
|
||||
item: this.document,
|
||||
enriched: {
|
||||
system: {
|
||||
description: await TextEditor.enrichHTML(this.document.system.description),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
return ctx;
|
||||
};
|
||||
// #endregion Data Prep
|
||||
};
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
/**
|
||||
* This mixin makes it so that we can provide a specific layout template without
|
||||
* needing to reference each of the inner areas via a partial embedded in the root,
|
||||
* enabling partial re-renders for parts of the sheet without losing advanced
|
||||
* layout capabilities.
|
||||
*
|
||||
* @param {ReturnType<HandlebarsApp>} HandlebarsApp The mixin'd class from HAM to further mix
|
||||
*/
|
||||
export function LaidOutAppMixin(HandlebarsApp) {
|
||||
class LaidOutApp extends HandlebarsApp {
|
||||
#partDescriptors;
|
||||
|
||||
/**
|
||||
* This caches the part descriptors into this class of the heirarchy, because
|
||||
* Foundry doesn't expose the partDescriptors from the HAM directly, so we
|
||||
* inject a heirarchy call so that we can nab the pointer that Foundry has
|
||||
* in the HAM so that we can also read/write it from this class.
|
||||
*/
|
||||
_configureRenderParts(options) {
|
||||
const parts = super._configureRenderParts(options);
|
||||
this.#partDescriptors = parts;
|
||||
return parts;
|
||||
};
|
||||
|
||||
/**
|
||||
* @override
|
||||
* This is essentially Foundry's HandlebarsApplicationMixin implementation,
|
||||
* however if an existing part for non-root elements don't get concatenated
|
||||
* into the DOM.
|
||||
*/
|
||||
_replaceHTML(result, content, options) {
|
||||
const partInfo = this.#partDescriptors;
|
||||
for ( const [partId, htmlElement] of Object.entries(result) ) {
|
||||
const part = partInfo[partId];
|
||||
const priorElement = part.root ? content : content.querySelector(`[data-application-part="${partId}"]`);
|
||||
const state = {};
|
||||
if ( priorElement ) {
|
||||
this._preSyncPartState(partId, htmlElement, priorElement, state);
|
||||
if ( part.root ) {
|
||||
priorElement.replaceChildren(...htmlElement.children);
|
||||
}
|
||||
else {
|
||||
priorElement.replaceWith(htmlElement);
|
||||
}
|
||||
this._syncPartState(partId, htmlElement, priorElement, state);
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
};
|
||||
this._attachPartListeners(partId, htmlElement, options);
|
||||
this.parts[partId] = htmlElement;
|
||||
}
|
||||
};
|
||||
};
|
||||
return LaidOutApp;
|
||||
};
|
||||
|
|
@ -1,18 +1,3 @@
|
|||
import { EntityData } from "./Entity.mjs";
|
||||
|
||||
const { fields } = foundry.data;
|
||||
|
||||
export class GeistData extends EntityData {
|
||||
static defineSchema() {
|
||||
const schema = super.defineSchema();
|
||||
|
||||
schema.description = new fields.HTMLField({
|
||||
blank: true,
|
||||
nullable: true,
|
||||
trim: true,
|
||||
initial: null,
|
||||
});
|
||||
|
||||
return schema;
|
||||
};
|
||||
};
|
||||
export class GeistData extends EntityData {};
|
||||
|
|
|
|||
|
|
@ -2,6 +2,19 @@ import { CommonItemData } from "./Common.mjs";
|
|||
import { gameTerms } from "../../gameTerms.mjs";
|
||||
|
||||
export class AmmoData extends CommonItemData {
|
||||
// MARK: Base Data
|
||||
prepareBaseData() {
|
||||
super.prepareBaseData();
|
||||
};
|
||||
|
||||
// MARK: Derived Data
|
||||
prepareDerivedData() {
|
||||
super.prepareDerivedData();
|
||||
};
|
||||
|
||||
// #region Getters
|
||||
// #endregion
|
||||
|
||||
// #region Sheet Data
|
||||
getFormFields(_ctx) {
|
||||
const fields = [
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { gameTerms } from "../../gameTerms.mjs";
|
|||
const { fields } = foundry.data;
|
||||
|
||||
export class CommonItemData extends foundry.abstract.TypeDataModel {
|
||||
// #region Schema
|
||||
// MARK: Schema
|
||||
static defineSchema() {
|
||||
return {
|
||||
quantity: requiredInteger({ min: 0, initial: 1 }),
|
||||
|
|
@ -21,5 +21,14 @@ export class CommonItemData extends foundry.abstract.TypeDataModel {
|
|||
}),
|
||||
};
|
||||
};
|
||||
// #endregion Schema
|
||||
|
||||
// MARK: Base Data
|
||||
prepareBaseData() {
|
||||
super.prepareBaseData();
|
||||
};
|
||||
|
||||
// MARK: Derived Data
|
||||
prepareDerivedData() {
|
||||
super.prepareDerivedData();
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -21,6 +21,19 @@ export class CraftData extends SkillData {
|
|||
return schema;
|
||||
};
|
||||
|
||||
// MARK: Base Data
|
||||
prepareBaseData() {
|
||||
super.prepareBaseData();
|
||||
};
|
||||
|
||||
// MARK: Derived Data
|
||||
prepareDerivedData() {
|
||||
super.prepareDerivedData();
|
||||
};
|
||||
|
||||
// #region Getters
|
||||
// #endregion
|
||||
|
||||
// #region Sheet Data
|
||||
async getFormFields(_ctx) {
|
||||
const fields = [
|
||||
|
|
|
|||
|
|
@ -17,6 +17,19 @@ export class GoodData extends CommonItemData {
|
|||
return schema;
|
||||
};
|
||||
|
||||
// MARK: Base Data
|
||||
prepareBaseData() {
|
||||
super.prepareBaseData();
|
||||
};
|
||||
|
||||
// MARK: Derived Data
|
||||
prepareDerivedData() {
|
||||
super.prepareDerivedData();
|
||||
};
|
||||
|
||||
// #region Getters
|
||||
// #endregion
|
||||
|
||||
// #region Sheet Data
|
||||
async getFormFields(_ctx) {
|
||||
const fields = [
|
||||
|
|
|
|||
|
|
@ -34,6 +34,19 @@ export class SkillData extends foundry.abstract.TypeDataModel {
|
|||
return schema;
|
||||
};
|
||||
|
||||
// MARK: Base Data
|
||||
prepareBaseData() {
|
||||
super.prepareBaseData();
|
||||
};
|
||||
|
||||
// MARK: Derived Data
|
||||
prepareDerivedData() {
|
||||
super.prepareDerivedData();
|
||||
};
|
||||
|
||||
// #region Getters
|
||||
// #endregion
|
||||
|
||||
// #region Sheet Data
|
||||
async getFormFields(_ctx) {
|
||||
const fields = [
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
import { localizer } from "../../utils/Localizer.mjs";
|
||||
|
||||
const { fields } = foundry.data;
|
||||
|
||||
export class TraitData extends foundry.abstract.TypeDataModel {
|
||||
// #region Schema
|
||||
static defineSchema() {
|
||||
return {
|
||||
description: new fields.HTMLField({ blank: true, nullable: false, trim: true }),
|
||||
};
|
||||
};
|
||||
// #endregion Schema
|
||||
|
||||
// #region Lifecycle
|
||||
async _preCreate() {
|
||||
if (this.parent.isEmbedded && this.parent.parent.type !== `geist`) {
|
||||
ui.notifications.error(localizer(
|
||||
`RipCrypt.notifs.error.invalid-parent-document`,
|
||||
{ itemType: `trait`, parentType: this.parent.parent.type },
|
||||
));
|
||||
return false;
|
||||
};
|
||||
};
|
||||
// #endregion
|
||||
};
|
||||
|
|
@ -49,13 +49,10 @@ export class WeaponData extends CommonItemData {
|
|||
async _preCreate(item, options) {
|
||||
const showEquipPrompt = options.showEquipPrompt ?? true;
|
||||
if (showEquipPrompt && this.parent.isEmbedded && this._canEquip()) {
|
||||
let shouldEquip = this.parent.parent.type === `geist`;
|
||||
|
||||
shouldEquip ||= await DialogV2.confirm({
|
||||
const shouldEquip = await DialogV2.confirm({
|
||||
window: { title: `Equip Item?` },
|
||||
content: `Do you want to equip ${item.name}?`,
|
||||
});
|
||||
|
||||
if (shouldEquip) {
|
||||
this.updateSource({ "equipped": true });
|
||||
};
|
||||
|
|
|
|||
|
|
@ -9,6 +9,5 @@ export default {
|
|||
"rc-options": options,
|
||||
|
||||
// #region Simple
|
||||
"rc-ifOut": (v) => (v || ``),
|
||||
"rc-empty-state": (v) => v ?? localizer(`RipCrypt.common.empty`),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Logger } from "../../module/utils/Logger.mjs";
|
||||
import { Logger } from "../utils/Logger.mjs";
|
||||
|
||||
const loaders = {
|
||||
svg(data) {
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
// Applications
|
||||
import { AllItemSheetV1 } from "../Apps/ItemSheets/AllItemSheetV1.mjs";
|
||||
import { ArmourSheet } from "../Apps/ItemSheets/ArmourSheet.mjs";
|
||||
import { BookGeistSheet } from "../Apps/ActorSheets/BookGeistSheet.mjs";
|
||||
import { CombinedHeroSheet } from "../Apps/ActorSheets/CombinedHeroSheet.mjs";
|
||||
import { CraftCardV1 } from "../Apps/ActorSheets/CraftCardV1.mjs";
|
||||
import { DelveDiceHUD } from "../Apps/DelveDiceHUD.mjs";
|
||||
|
|
@ -18,7 +17,6 @@ import { GoodData } from "../data/Item/Good.mjs";
|
|||
import { HeroData } from "../data/Actor/Hero.mjs";
|
||||
import { ShieldData } from "../data/Item/Shield.mjs";
|
||||
import { SkillData } from "../data/Item/Skill.mjs";
|
||||
import { TraitData } from "../data/Item/Trait.mjs";
|
||||
import { WeaponData } from "../data/Item/Weapon.mjs";
|
||||
|
||||
// Class Overrides
|
||||
|
|
@ -39,7 +37,6 @@ import { registerMetaSettings } from "../settings/metaSettings.mjs";
|
|||
import { registerSockets } from "../sockets/_index.mjs";
|
||||
import { registerUserSettings } from "../settings/userSettings.mjs";
|
||||
import { registerWorldSettings } from "../settings/worldSettings.mjs";
|
||||
import { TraitSheet } from "../Apps/ItemSheets/TraitSheet.mjs";
|
||||
|
||||
const { Items, Actors } = foundry.documents.collections;
|
||||
|
||||
|
|
@ -65,7 +62,6 @@ Hooks.once(`init`, () => {
|
|||
CONFIG.Item.dataModels.good = GoodData;
|
||||
CONFIG.Item.dataModels.shield = ShieldData;
|
||||
CONFIG.Item.dataModels.skill = SkillData;
|
||||
CONFIG.Item.dataModels.trait = TraitData;
|
||||
CONFIG.Item.dataModels.weapon = WeaponData;
|
||||
// #endregion
|
||||
|
||||
|
|
@ -91,21 +87,22 @@ Hooks.once(`init`, () => {
|
|||
label: `RipCrypt.sheet-names.StatsCardV1`,
|
||||
themes: StatsCardV1.themes,
|
||||
});
|
||||
Actors.registerSheet(game.system.id, StatsCardV1, {
|
||||
makeDefault: true,
|
||||
types: [`geist`],
|
||||
label: `RipCrypt.sheet-names.StatsCardV1`,
|
||||
themes: StatsCardV1.themes,
|
||||
});
|
||||
Actors.registerSheet(game.system.id, SkillsCardV1, {
|
||||
types: [`hero`],
|
||||
types: [`hero`, `geist`],
|
||||
label: `RipCrypt.sheet-names.SkillsCardV1`,
|
||||
themes: SkillsCardV1.themes,
|
||||
});
|
||||
Actors.registerSheet(game.system.id, CraftCardV1, {
|
||||
types: [`hero`],
|
||||
types: [`hero`, `geist`],
|
||||
label: `RipCrypt.sheet-names.CraftCardV1`,
|
||||
themes: CraftCardV1.themes,
|
||||
});
|
||||
Actors.registerSheet(game.system.id, BookGeistSheet, {
|
||||
types: [`geist`],
|
||||
label: `RipCrypt.sheet-names.BookGeistSheet`,
|
||||
themes: BookGeistSheet.themes,
|
||||
});
|
||||
// #endregion
|
||||
|
||||
// #region Items
|
||||
|
|
@ -121,15 +118,8 @@ Hooks.once(`init`, () => {
|
|||
label: `RipCrypt.sheet-names.ArmourSheet`,
|
||||
themes: ArmourSheet.themes,
|
||||
});
|
||||
Items.registerSheet(game.system.id, TraitSheet, {
|
||||
makeDefault: true,
|
||||
types: [`trait`],
|
||||
label: `RipCrypt.sheet-names.TraitSheet`,
|
||||
themes: TraitSheet.themes,
|
||||
});
|
||||
|
||||
Items.unregisterSheet(game.system.id, AllItemSheetV1, {
|
||||
types: [`armour`, `shield`, `trait`],
|
||||
types: [`armour`, `shield`],
|
||||
});
|
||||
// #endregion
|
||||
// #endregion
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
// Hooks
|
||||
import "./hooks/init.mjs";
|
||||
import "./hooks/ready.mjs";
|
||||
import "./hooks/hotReload.mjs";
|
||||
|
||||
// Global API
|
||||
import "./api.mjs";
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
"eslint": "^9.16.0"
|
||||
},
|
||||
"scripts": {
|
||||
"data:build": "node scripts/buildCompendia.mjs",
|
||||
"data:extract": "node scripts/extractCompendia.mjs",
|
||||
"link": "node scripts/linkFoundry.mjs",
|
||||
"lint": "eslint --fix",
|
||||
"lint:nofix": "eslint"
|
||||
|
|
|
|||
23
packs/protection/_source/Armour_pZxc6QLgVWfnZlf7.json
Normal file
23
packs/protection/_source/Armour_pZxc6QLgVWfnZlf7.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": null,
|
||||
"name": "Armour",
|
||||
"color": "#04262a",
|
||||
"sorting": "m",
|
||||
"_id": "pZxc6QLgVWfnZlf7",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994081362,
|
||||
"modifiedTime": 1759994081362,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!folders!pZxc6QLgVWfnZlf7"
|
||||
}
|
||||
41
packs/protection/_source/Breastplate_KQ6uyTPUOHuMTxDF.json
Normal file
41
packs/protection/_source/Breastplate_KQ6uyTPUOHuMTxDF.json
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "BsNUpCnwmlhOWBhZ",
|
||||
"name": "Breastplate",
|
||||
"type": "armour",
|
||||
"_id": "KQ6uyTPUOHuMTxDF",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 90,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 3,
|
||||
"location": [
|
||||
"body"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994459142,
|
||||
"modifiedTime": 1759994468351,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!KQ6uyTPUOHuMTxDF"
|
||||
}
|
||||
21
packs/protection/_source/Heavy_BsNUpCnwmlhOWBhZ.json
Normal file
21
packs/protection/_source/Heavy_BsNUpCnwmlhOWBhZ.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "pZxc6QLgVWfnZlf7",
|
||||
"name": "Heavy",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "BsNUpCnwmlhOWBhZ",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!BsNUpCnwmlhOWBhZ"
|
||||
}
|
||||
44
packs/protection/_source/Heavy_Shields_uUrCwjxV6Ihisb6V.json
Normal file
44
packs/protection/_source/Heavy_Shields_uUrCwjxV6Ihisb6V.json
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"folder": "RXPJBkzVxFnoT3Tm",
|
||||
"name": "Heavy Shields",
|
||||
"type": "shield",
|
||||
"_id": "uUrCwjxV6Ihisb6V",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 50,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"head",
|
||||
"body",
|
||||
"arms",
|
||||
"legs"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994801184,
|
||||
"modifiedTime": 1759994810086,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!uUrCwjxV6Ihisb6V"
|
||||
}
|
||||
41
packs/protection/_source/Leather_Cap_JMkV8kMnCXhW5KDh.json
Normal file
41
packs/protection/_source/Leather_Cap_JMkV8kMnCXhW5KDh.json
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "HRwiz1c1ZcQyPu4z",
|
||||
"name": "Leather Cap",
|
||||
"type": "armour",
|
||||
"_id": "JMkV8kMnCXhW5KDh",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 10,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"head"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994118194,
|
||||
"modifiedTime": 1759994130845,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!JMkV8kMnCXhW5KDh"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "HRwiz1c1ZcQyPu4z",
|
||||
"name": "Leather, Hide Bracers",
|
||||
"type": "armour",
|
||||
"_id": "nz4DXXR4iU9CeMRA",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 10,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"arms"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994170968,
|
||||
"modifiedTime": 1759994180395,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!nz4DXXR4iU9CeMRA"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "HRwiz1c1ZcQyPu4z",
|
||||
"name": "Leather, Hide Jacket",
|
||||
"type": "armour",
|
||||
"_id": "zMyxSJ6VpaH3ddOO",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 20,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"body"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994151324,
|
||||
"modifiedTime": 1759994160761,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!zMyxSJ6VpaH3ddOO"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "HRwiz1c1ZcQyPu4z",
|
||||
"name": "Leather, Hide Leggings",
|
||||
"type": "armour",
|
||||
"_id": "14Omu9q2sMxW8GWB",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 20,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"legs"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994190989,
|
||||
"modifiedTime": 1759994198011,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!14Omu9q2sMxW8GWB"
|
||||
}
|
||||
21
packs/protection/_source/Light_HRwiz1c1ZcQyPu4z.json
Normal file
21
packs/protection/_source/Light_HRwiz1c1ZcQyPu4z.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "pZxc6QLgVWfnZlf7",
|
||||
"name": "Light",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "HRwiz1c1ZcQyPu4z",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!HRwiz1c1ZcQyPu4z"
|
||||
}
|
||||
42
packs/protection/_source/Light_Shields_a6vPAa25z8L9t79K.json
Normal file
42
packs/protection/_source/Light_Shields_a6vPAa25z8L9t79K.json
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"folder": "RXPJBkzVxFnoT3Tm",
|
||||
"name": "Light Shields",
|
||||
"type": "shield",
|
||||
"_id": "a6vPAa25z8L9t79K",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 20,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"head",
|
||||
"arms"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994549164,
|
||||
"modifiedTime": 1759994761998,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!a6vPAa25z8L9t79K"
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"folder": "cKN149ZGLqfyt0oi",
|
||||
"name": "Mail, Link, Scale Coat",
|
||||
"type": "armour",
|
||||
"_id": "Sr40RFsPr2M0bTKK",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 180,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 2,
|
||||
"location": [
|
||||
"body",
|
||||
"arms"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994257751,
|
||||
"modifiedTime": 1759994294312,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!Sr40RFsPr2M0bTKK"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "cKN149ZGLqfyt0oi",
|
||||
"name": "Mail, Link, Scale Coif",
|
||||
"type": "armour",
|
||||
"_id": "HfG5Doxf7576Jgbt",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 180,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 2,
|
||||
"location": [
|
||||
"head"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994210701,
|
||||
"modifiedTime": 1759994221462,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!HfG5Doxf7576Jgbt"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "cKN149ZGLqfyt0oi",
|
||||
"name": "Mail, Link, Scale Leggings",
|
||||
"type": "armour",
|
||||
"_id": "YBpElIVQ534pm3Mf",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 200,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 2,
|
||||
"location": [
|
||||
"legs"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": null,
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994280754,
|
||||
"modifiedTime": 1759994424980,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!YBpElIVQ534pm3Mf"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "cKN149ZGLqfyt0oi",
|
||||
"name": "Mail, Link, Scale Shirt",
|
||||
"type": "armour",
|
||||
"_id": "wab6Bo8ngar4mBCN",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 90,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 2,
|
||||
"location": [
|
||||
"body"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994235204,
|
||||
"modifiedTime": 1759994246578,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!wab6Bo8ngar4mBCN"
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"folder": "RXPJBkzVxFnoT3Tm",
|
||||
"name": "Modest Shields",
|
||||
"type": "shield",
|
||||
"_id": "fyL8LZ8jpEQbjpM2",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 30,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"head",
|
||||
"body",
|
||||
"arms"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994777609,
|
||||
"modifiedTime": 1759994784898,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!fyL8LZ8jpEQbjpM2"
|
||||
}
|
||||
21
packs/protection/_source/Modest_cKN149ZGLqfyt0oi.json
Normal file
21
packs/protection/_source/Modest_cKN149ZGLqfyt0oi.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "pZxc6QLgVWfnZlf7",
|
||||
"name": "Modest",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "cKN149ZGLqfyt0oi",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!cKN149ZGLqfyt0oi"
|
||||
}
|
||||
42
packs/protection/_source/Plate_Bracers_e8JRJn5Blw3UrvnW.json
Normal file
42
packs/protection/_source/Plate_Bracers_e8JRJn5Blw3UrvnW.json
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"folder": "BsNUpCnwmlhOWBhZ",
|
||||
"name": "Plate Bracers",
|
||||
"type": "armour",
|
||||
"_id": "e8JRJn5Blw3UrvnW",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 180,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 1,
|
||||
"location": [
|
||||
"body",
|
||||
"arms"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994478040,
|
||||
"modifiedTime": 1759994486947,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!e8JRJn5Blw3UrvnW"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "BsNUpCnwmlhOWBhZ",
|
||||
"name": "Plate Leggings",
|
||||
"type": "armour",
|
||||
"_id": "v1y4RKGad2IXOu5e",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 200,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 3,
|
||||
"location": [
|
||||
"legs"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994497119,
|
||||
"modifiedTime": 1759994506514,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!v1y4RKGad2IXOu5e"
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"folder": "BsNUpCnwmlhOWBhZ",
|
||||
"name": "Ring Coif, Helm",
|
||||
"type": "armour",
|
||||
"_id": "Z4NTsrX63JNjjZ8Z",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 440,
|
||||
"copper": null
|
||||
},
|
||||
"protection": 3,
|
||||
"location": [
|
||||
"head"
|
||||
],
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994438779,
|
||||
"modifiedTime": 1759994448846,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!Z4NTsrX63JNjjZ8Z"
|
||||
}
|
||||
23
packs/protection/_source/Shields_RXPJBkzVxFnoT3Tm.json
Normal file
23
packs/protection/_source/Shields_RXPJBkzVxFnoT3Tm.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": null,
|
||||
"name": "Shields",
|
||||
"color": "#04262a",
|
||||
"sorting": "m",
|
||||
"_id": "RXPJBkzVxFnoT3Tm",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994538745,
|
||||
"modifiedTime": 1759994538745,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!folders!RXPJBkzVxFnoT3Tm"
|
||||
}
|
||||
23
packs/weapons/_source/Ammo_gvNPXXRBx2eGIzcU.json
Normal file
23
packs/weapons/_source/Ammo_gvNPXXRBx2eGIzcU.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": null,
|
||||
"name": "Ammo",
|
||||
"color": "#04262a",
|
||||
"sorting": "a",
|
||||
"_id": "gvNPXXRBx2eGIzcU",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993925940,
|
||||
"modifiedTime": 1759993925940,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!folders!gvNPXXRBx2eGIzcU"
|
||||
}
|
||||
47
packs/weapons/_source/Arming_Sword_xXUItaoHTQ2QiaX4.json
Normal file
47
packs/weapons/_source/Arming_Sword_xXUItaoHTQ2QiaX4.json
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Arming Sword",
|
||||
"type": "weapon",
|
||||
"_id": "xXUItaoHTQ2QiaX4",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 80,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992689272,
|
||||
"modifiedTime": 1759992708712,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!xXUItaoHTQ2QiaX4"
|
||||
}
|
||||
35
packs/weapons/_source/Arrow_gN9JbmouUI7eOrSj.json
Normal file
35
packs/weapons/_source/Arrow_gN9JbmouUI7eOrSj.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"folder": "gvNPXXRBx2eGIzcU",
|
||||
"name": "Arrow",
|
||||
"type": "ammo",
|
||||
"_id": "gN9JbmouUI7eOrSj",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 12,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 3,
|
||||
"copper": null
|
||||
},
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993937035,
|
||||
"modifiedTime": 1759993944077,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!gN9JbmouUI7eOrSj"
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "mmd8siMKSLyOeILo",
|
||||
"name": "Axe, Hammer, Pick",
|
||||
"type": "weapon",
|
||||
"_id": "cr35WzuPGDojuOuJ",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 10,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Thrown"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 0,
|
||||
"wear": {
|
||||
"value": 2,
|
||||
"max": 2
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759991980652,
|
||||
"modifiedTime": 1759992328546,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!cr35WzuPGDojuOuJ"
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Battleaxe, Warhammer",
|
||||
"type": "weapon",
|
||||
"_id": "otIFI9TIDPWnT3cq",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 40,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 3,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992730036,
|
||||
"modifiedTime": 1759992748112,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!otIFI9TIDPWnT3cq"
|
||||
}
|
||||
35
packs/weapons/_source/Black_Powder_c86ht86Z9vOEBtNH.json
Normal file
35
packs/weapons/_source/Black_Powder_c86ht86Z9vOEBtNH.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"folder": "gvNPXXRBx2eGIzcU",
|
||||
"name": "Black Powder",
|
||||
"type": "ammo",
|
||||
"_id": "c86ht86Z9vOEBtNH",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 12,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 40,
|
||||
"copper": null
|
||||
},
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994005587,
|
||||
"modifiedTime": 1759994010244,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!c86ht86Z9vOEBtNH"
|
||||
}
|
||||
35
packs/weapons/_source/Blowgun_Darts_FvtiEaQhJumPsCwb.json
Normal file
35
packs/weapons/_source/Blowgun_Darts_FvtiEaQhJumPsCwb.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"folder": "gvNPXXRBx2eGIzcU",
|
||||
"name": "Blowgun Darts",
|
||||
"type": "ammo",
|
||||
"_id": "FvtiEaQhJumPsCwb",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 12,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 2,
|
||||
"copper": null
|
||||
},
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993963869,
|
||||
"modifiedTime": 1759993969644,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!FvtiEaQhJumPsCwb"
|
||||
}
|
||||
49
packs/weapons/_source/Blowgun__Sling_VrG2xer1quhjwUag.json
Normal file
49
packs/weapons/_source/Blowgun__Sling_VrG2xer1quhjwUag.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "vPyj2cK1j66Zyrul",
|
||||
"name": "Blowgun, Sling",
|
||||
"type": "weapon",
|
||||
"_id": "VrG2xer1quhjwUag",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 10,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Ammo"
|
||||
],
|
||||
"range": {
|
||||
"short": 5,
|
||||
"long": 10
|
||||
},
|
||||
"damage": 1,
|
||||
"wear": {
|
||||
"value": 1,
|
||||
"max": 1
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993449825,
|
||||
"modifiedTime": 1759993468278,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!VrG2xer1quhjwUag"
|
||||
}
|
||||
47
packs/weapons/_source/Broadsword_I9QaJTU6O2E9WzUS.json
Normal file
47
packs/weapons/_source/Broadsword_I9QaJTU6O2E9WzUS.json
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Broadsword",
|
||||
"type": "weapon",
|
||||
"_id": "I9QaJTU6O2E9WzUS",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 100,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 3,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992797603,
|
||||
"modifiedTime": 1759992815028,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!I9QaJTU6O2E9WzUS"
|
||||
}
|
||||
47
packs/weapons/_source/Club_NlDJVbXeXRfoCZWp.json
Normal file
47
packs/weapons/_source/Club_NlDJVbXeXRfoCZWp.json
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"folder": "mmd8siMKSLyOeILo",
|
||||
"name": "Club",
|
||||
"type": "weapon",
|
||||
"_id": "NlDJVbXeXRfoCZWp",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 2,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 1,
|
||||
"wear": {
|
||||
"value": 2,
|
||||
"max": 2
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992392474,
|
||||
"modifiedTime": 1759992619109,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!NlDJVbXeXRfoCZWp"
|
||||
}
|
||||
49
packs/weapons/_source/Crossbow_BNoYUrlpDk6oBeJt.json
Normal file
49
packs/weapons/_source/Crossbow_BNoYUrlpDk6oBeJt.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "8NNF9jBjpmPpmw1B",
|
||||
"name": "Crossbow",
|
||||
"type": "weapon",
|
||||
"_id": "BNoYUrlpDk6oBeJt",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 90,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Reload"
|
||||
],
|
||||
"range": {
|
||||
"short": 10,
|
||||
"long": 25
|
||||
},
|
||||
"damage": 3,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993621847,
|
||||
"modifiedTime": 1759993694978,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!BNoYUrlpDk6oBeJt"
|
||||
}
|
||||
35
packs/weapons/_source/Crossbow_Bolts_7cmLLV6o2pPAyyAg.json
Normal file
35
packs/weapons/_source/Crossbow_Bolts_7cmLLV6o2pPAyyAg.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"folder": "gvNPXXRBx2eGIzcU",
|
||||
"name": "Crossbow Bolts",
|
||||
"type": "ammo",
|
||||
"_id": "7cmLLV6o2pPAyyAg",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 12,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 3,
|
||||
"copper": null
|
||||
},
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993977460,
|
||||
"modifiedTime": 1759993982911,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!7cmLLV6o2pPAyyAg"
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Cutlass, Saber, Scimitar",
|
||||
"type": "weapon",
|
||||
"_id": "kSWrbdKdYIRxkWka",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 120,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Agile"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 2,
|
||||
"max": 2
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992861725,
|
||||
"modifiedTime": 1759992882913,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!kSWrbdKdYIRxkWka"
|
||||
}
|
||||
50
packs/weapons/_source/Dagger_q8z2HptFaPmeHU9n.json
Normal file
50
packs/weapons/_source/Dagger_q8z2HptFaPmeHU9n.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"folder": "mmd8siMKSLyOeILo",
|
||||
"name": "Dagger",
|
||||
"type": "weapon",
|
||||
"_id": "q8z2HptFaPmeHU9n",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 20,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Agile",
|
||||
"Thrown"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 1,
|
||||
"wear": {
|
||||
"value": 1,
|
||||
"max": 1
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992606052,
|
||||
"modifiedTime": 1759992639628,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!q8z2HptFaPmeHU9n"
|
||||
}
|
||||
49
packs/weapons/_source/Darts_rDxS6EJzg2zvSpxR.json
Normal file
49
packs/weapons/_source/Darts_rDxS6EJzg2zvSpxR.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "vPyj2cK1j66Zyrul",
|
||||
"name": "Darts",
|
||||
"type": "weapon",
|
||||
"_id": "rDxS6EJzg2zvSpxR",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 6,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 30,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Thrown"
|
||||
],
|
||||
"range": {
|
||||
"short": 3,
|
||||
"long": 6
|
||||
},
|
||||
"damage": 1,
|
||||
"wear": {
|
||||
"value": 1,
|
||||
"max": 1
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993477954,
|
||||
"modifiedTime": 1759993498878,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!rDxS6EJzg2zvSpxR"
|
||||
}
|
||||
50
packs/weapons/_source/Flintlock_Pistol_1vxM6KoEPrQ7pjcg.json
Normal file
50
packs/weapons/_source/Flintlock_Pistol_1vxM6KoEPrQ7pjcg.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"folder": "vPyj2cK1j66Zyrul",
|
||||
"name": "Flintlock Pistol",
|
||||
"type": "weapon",
|
||||
"_id": "1vxM6KoEPrQ7pjcg",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 260,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Reload",
|
||||
"Loud"
|
||||
],
|
||||
"range": {
|
||||
"short": 5,
|
||||
"long": 10
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 2,
|
||||
"max": 2
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993514814,
|
||||
"modifiedTime": 1759993538727,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!1vxM6KoEPrQ7pjcg"
|
||||
}
|
||||
50
packs/weapons/_source/Flintlock_Rifle_xUGUgnjJsKUPgPpX.json
Normal file
50
packs/weapons/_source/Flintlock_Rifle_xUGUgnjJsKUPgPpX.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"folder": "IkSGLBUzPI9Jbcj7",
|
||||
"name": "Flintlock Rifle",
|
||||
"type": "weapon",
|
||||
"_id": "xUGUgnjJsKUPgPpX",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 640,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Reload",
|
||||
"Loud"
|
||||
],
|
||||
"range": {
|
||||
"short": 15,
|
||||
"long": 30
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993769479,
|
||||
"modifiedTime": 1759993794528,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!xUGUgnjJsKUPgPpX"
|
||||
}
|
||||
35
packs/weapons/_source/Great_Arrows_FQ5VBjR0LdXf8Nh2.json
Normal file
35
packs/weapons/_source/Great_Arrows_FQ5VBjR0LdXf8Nh2.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"folder": "gvNPXXRBx2eGIzcU",
|
||||
"name": "Great Arrows",
|
||||
"type": "ammo",
|
||||
"_id": "FQ5VBjR0LdXf8Nh2",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 12,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 12,
|
||||
"copper": null
|
||||
},
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993988701,
|
||||
"modifiedTime": 1759993993428,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!FQ5VBjR0LdXf8Nh2"
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "3tp9cwpArQNOpkAY",
|
||||
"name": "Greataxe, Maul, Sword",
|
||||
"type": "weapon",
|
||||
"_id": "Pfm448hGPVSuyyrd",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 120,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Long"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993233713,
|
||||
"modifiedTime": 1759993258414,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!Pfm448hGPVSuyyrd"
|
||||
}
|
||||
49
packs/weapons/_source/Greatbow_N80F8sq9SaHrXBvS.json
Normal file
49
packs/weapons/_source/Greatbow_N80F8sq9SaHrXBvS.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "IkSGLBUzPI9Jbcj7",
|
||||
"name": "Greatbow",
|
||||
"type": "weapon",
|
||||
"_id": "N80F8sq9SaHrXBvS",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 320,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Ammo"
|
||||
],
|
||||
"range": {
|
||||
"short": 20,
|
||||
"long": 40
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993806102,
|
||||
"modifiedTime": 1759993839512,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!N80F8sq9SaHrXBvS"
|
||||
}
|
||||
49
packs/weapons/_source/Greatclub__Staff_Ct9iNF9KPMGStSQo.json
Normal file
49
packs/weapons/_source/Greatclub__Staff_Ct9iNF9KPMGStSQo.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "3tp9cwpArQNOpkAY",
|
||||
"name": "Greatclub, Staff",
|
||||
"type": "weapon",
|
||||
"_id": "Ct9iNF9KPMGStSQo",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 30,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Long"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993276032,
|
||||
"modifiedTime": 1759993292511,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!Ct9iNF9KPMGStSQo"
|
||||
}
|
||||
49
packs/weapons/_source/Hand_Crossbow_5sUeNom6dn6MaoAE.json
Normal file
49
packs/weapons/_source/Hand_Crossbow_5sUeNom6dn6MaoAE.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "vPyj2cK1j66Zyrul",
|
||||
"name": "Hand Crossbow",
|
||||
"type": "weapon",
|
||||
"_id": "5sUeNom6dn6MaoAE",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 120,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Reload"
|
||||
],
|
||||
"range": {
|
||||
"short": 5,
|
||||
"long": 10
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 1,
|
||||
"max": 1
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993551322,
|
||||
"modifiedTime": 1759993570977,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!5sUeNom6dn6MaoAE"
|
||||
}
|
||||
23
packs/weapons/_source/Hand_Weapons_3mr6aZe43z7YBysA.json
Normal file
23
packs/weapons/_source/Hand_Weapons_3mr6aZe43z7YBysA.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": null,
|
||||
"name": "Hand Weapons",
|
||||
"color": "#04262a",
|
||||
"sorting": "m",
|
||||
"_id": "3mr6aZe43z7YBysA",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992349332,
|
||||
"modifiedTime": 1759993205214,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!folders!3mr6aZe43z7YBysA"
|
||||
}
|
||||
21
packs/weapons/_source/Heavy_3tp9cwpArQNOpkAY.json
Normal file
21
packs/weapons/_source/Heavy_3tp9cwpArQNOpkAY.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "3mr6aZe43z7YBysA",
|
||||
"name": "Heavy",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "3tp9cwpArQNOpkAY",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!3tp9cwpArQNOpkAY"
|
||||
}
|
||||
49
packs/weapons/_source/Heavy_Crossbow_xJzHTrYsJVL2WsSF.json
Normal file
49
packs/weapons/_source/Heavy_Crossbow_xJzHTrYsJVL2WsSF.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "IkSGLBUzPI9Jbcj7",
|
||||
"name": "Heavy Crossbow",
|
||||
"type": "weapon",
|
||||
"_id": "xJzHTrYsJVL2WsSF",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 200,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Ammo"
|
||||
],
|
||||
"range": {
|
||||
"short": 20,
|
||||
"long": 40
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993848517,
|
||||
"modifiedTime": 1759993869078,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!xJzHTrYsJVL2WsSF"
|
||||
}
|
||||
21
packs/weapons/_source/Heavy_IkSGLBUzPI9Jbcj7.json
Normal file
21
packs/weapons/_source/Heavy_IkSGLBUzPI9Jbcj7.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "sjc6X9bKf7BY04Ar",
|
||||
"name": "Heavy",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "IkSGLBUzPI9Jbcj7",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!IkSGLBUzPI9Jbcj7"
|
||||
}
|
||||
49
packs/weapons/_source/Knife_fv5D0xOJVpOwnyTn.json
Normal file
49
packs/weapons/_source/Knife_fv5D0xOJVpOwnyTn.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "mmd8siMKSLyOeILo",
|
||||
"name": "Knife",
|
||||
"type": "weapon",
|
||||
"_id": "fv5D0xOJVpOwnyTn",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 6,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Thrown"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 1,
|
||||
"wear": {
|
||||
"value": 1,
|
||||
"max": 1
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992653763,
|
||||
"modifiedTime": 1759992669428,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!fv5D0xOJVpOwnyTn"
|
||||
}
|
||||
23
packs/weapons/_source/Light_mmd8siMKSLyOeILo.json
Normal file
23
packs/weapons/_source/Light_mmd8siMKSLyOeILo.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "3mr6aZe43z7YBysA",
|
||||
"name": "Light",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "mmd8siMKSLyOeILo",
|
||||
"description": "",
|
||||
"sort": -100000,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759991969340,
|
||||
"modifiedTime": 1759993210807,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!folders!mmd8siMKSLyOeILo"
|
||||
}
|
||||
21
packs/weapons/_source/Light_vPyj2cK1j66Zyrul.json
Normal file
21
packs/weapons/_source/Light_vPyj2cK1j66Zyrul.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "sjc6X9bKf7BY04Ar",
|
||||
"name": "Light",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "vPyj2cK1j66Zyrul",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!vPyj2cK1j66Zyrul"
|
||||
}
|
||||
50
packs/weapons/_source/Long_Rifle_dn1eja68NNuxB8K1.json
Normal file
50
packs/weapons/_source/Long_Rifle_dn1eja68NNuxB8K1.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"folder": "IkSGLBUzPI9Jbcj7",
|
||||
"name": "Long Rifle",
|
||||
"type": "weapon",
|
||||
"_id": "dn1eja68NNuxB8K1",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 840,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Reload",
|
||||
"Loud"
|
||||
],
|
||||
"range": {
|
||||
"short": 20,
|
||||
"long": 40
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993878663,
|
||||
"modifiedTime": 1759993902478,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!dn1eja68NNuxB8K1"
|
||||
}
|
||||
49
packs/weapons/_source/Longbow_oyVNU8XgMiZI0Uxr.json
Normal file
49
packs/weapons/_source/Longbow_oyVNU8XgMiZI0Uxr.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "8NNF9jBjpmPpmw1B",
|
||||
"name": "Longbow",
|
||||
"type": "weapon",
|
||||
"_id": "oyVNU8XgMiZI0Uxr",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 80,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Ammo"
|
||||
],
|
||||
"range": {
|
||||
"short": 9,
|
||||
"long": 30
|
||||
},
|
||||
"damage": 3,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993703627,
|
||||
"modifiedTime": 1759993727378,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!oyVNU8XgMiZI0Uxr"
|
||||
}
|
||||
49
packs/weapons/_source/Longsword_7ezV0MrGA0duoGbl.json
Normal file
49
packs/weapons/_source/Longsword_7ezV0MrGA0duoGbl.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Longsword",
|
||||
"type": "weapon",
|
||||
"_id": "7ezV0MrGA0duoGbl",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 220,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Able"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 3,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992894140,
|
||||
"modifiedTime": 1759992913378,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!7ezV0MrGA0duoGbl"
|
||||
}
|
||||
21
packs/weapons/_source/Modest_8NNF9jBjpmPpmw1B.json
Normal file
21
packs/weapons/_source/Modest_8NNF9jBjpmPpmw1B.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "sjc6X9bKf7BY04Ar",
|
||||
"name": "Modest",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "8NNF9jBjpmPpmw1B",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!8NNF9jBjpmPpmw1B"
|
||||
}
|
||||
21
packs/weapons/_source/Modest_dBAI76CApXH8qqjx.json
Normal file
21
packs/weapons/_source/Modest_dBAI76CApXH8qqjx.json
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": "3mr6aZe43z7YBysA",
|
||||
"name": "Modest",
|
||||
"color": "#06393f",
|
||||
"sorting": "a",
|
||||
"_id": "dBAI76CApXH8qqjx",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"lastModifiedBy": null
|
||||
},
|
||||
"_key": "!folders!dBAI76CApXH8qqjx"
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "3tp9cwpArQNOpkAY",
|
||||
"name": "Poleaxe, Glaive, Halberd",
|
||||
"type": "weapon",
|
||||
"_id": "j6C9IyebpKsk7M6R",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 60,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Long"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993308439,
|
||||
"modifiedTime": 1759993324411,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!j6C9IyebpKsk7M6R"
|
||||
}
|
||||
49
packs/weapons/_source/Quarterstaff_0ebCxTylmQa5UJvF.json
Normal file
49
packs/weapons/_source/Quarterstaff_0ebCxTylmQa5UJvF.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Quarterstaff",
|
||||
"type": "weapon",
|
||||
"_id": "0ebCxTylmQa5UJvF",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 20,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Able"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992932299,
|
||||
"modifiedTime": 1759992950112,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!0ebCxTylmQa5UJvF"
|
||||
}
|
||||
23
packs/weapons/_source/Ranged_Weapons_sjc6X9bKf7BY04Ar.json
Normal file
23
packs/weapons/_source/Ranged_Weapons_sjc6X9bKf7BY04Ar.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "Item",
|
||||
"folder": null,
|
||||
"name": "Ranged Weapons",
|
||||
"color": "#04262a",
|
||||
"sorting": "m",
|
||||
"_id": "sjc6X9bKf7BY04Ar",
|
||||
"description": "",
|
||||
"sort": 0,
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993402367,
|
||||
"modifiedTime": 1759993402367,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!folders!sjc6X9bKf7BY04Ar"
|
||||
}
|
||||
50
packs/weapons/_source/Rapier__Foil_cgEQKXKnSShCRQaq.json
Normal file
50
packs/weapons/_source/Rapier__Foil_cgEQKXKnSShCRQaq.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Rapier, Foil",
|
||||
"type": "weapon",
|
||||
"_id": "cgEQKXKnSShCRQaq",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 120,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Agile",
|
||||
"Long"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 2,
|
||||
"max": 2
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759992972763,
|
||||
"modifiedTime": 1759992992895,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!cgEQKXKnSShCRQaq"
|
||||
}
|
||||
49
packs/weapons/_source/Scythe_PnBWkLNzmQjXbB94.json
Normal file
49
packs/weapons/_source/Scythe_PnBWkLNzmQjXbB94.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "3tp9cwpArQNOpkAY",
|
||||
"name": "Scythe",
|
||||
"type": "weapon",
|
||||
"_id": "PnBWkLNzmQjXbB94",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 80,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Long"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 4,
|
||||
"wear": {
|
||||
"value": 4,
|
||||
"max": 4
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "heavy",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993335901,
|
||||
"modifiedTime": 1759993351161,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!PnBWkLNzmQjXbB94"
|
||||
}
|
||||
49
packs/weapons/_source/Shortbow_qmnDO3TrKoeW7DZB.json
Normal file
49
packs/weapons/_source/Shortbow_qmnDO3TrKoeW7DZB.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "8NNF9jBjpmPpmw1B",
|
||||
"name": "Shortbow",
|
||||
"type": "weapon",
|
||||
"_id": "qmnDO3TrKoeW7DZB",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 50,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Ammo"
|
||||
],
|
||||
"range": {
|
||||
"short": 6,
|
||||
"long": 20
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993734661,
|
||||
"modifiedTime": 1759993756094,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!qmnDO3TrKoeW7DZB"
|
||||
}
|
||||
47
packs/weapons/_source/Shortsword_UulalWrMRtSX5KxZ.json
Normal file
47
packs/weapons/_source/Shortsword_UulalWrMRtSX5KxZ.json
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Shortsword",
|
||||
"type": "weapon",
|
||||
"_id": "UulalWrMRtSX5KxZ",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 60,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993008835,
|
||||
"modifiedTime": 1759993028879,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!UulalWrMRtSX5KxZ"
|
||||
}
|
||||
35
packs/weapons/_source/Shot_Q5i7hMOPgb9oXmh5.json
Normal file
35
packs/weapons/_source/Shot_Q5i7hMOPgb9oXmh5.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"folder": "gvNPXXRBx2eGIzcU",
|
||||
"name": "Shot",
|
||||
"type": "ammo",
|
||||
"_id": "Q5i7hMOPgb9oXmh5",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 12,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 10,
|
||||
"copper": null
|
||||
},
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759994014714,
|
||||
"modifiedTime": 1759994020511,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!Q5i7hMOPgb9oXmh5"
|
||||
}
|
||||
47
packs/weapons/_source/Sickle_o9saXoHahbxTxt4h.json
Normal file
47
packs/weapons/_source/Sickle_o9saXoHahbxTxt4h.json
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Sickle",
|
||||
"type": "weapon",
|
||||
"_id": "o9saXoHahbxTxt4h",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 80,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 3,
|
||||
"wear": {
|
||||
"value": 2,
|
||||
"max": 2
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993051839,
|
||||
"modifiedTime": 1759993069744,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!o9saXoHahbxTxt4h"
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Spear, Javelin, Pike",
|
||||
"type": "weapon",
|
||||
"_id": "bTOoWxHeLSY9JWNY",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 30,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Agile",
|
||||
"Thrown"
|
||||
],
|
||||
"range": {
|
||||
"short": 5,
|
||||
"long": 10
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993081111,
|
||||
"modifiedTime": 1759993110561,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!bTOoWxHeLSY9JWNY"
|
||||
}
|
||||
49
packs/weapons/_source/Throwing_Axe_n2j1gxnn3WnUPag6.json
Normal file
49
packs/weapons/_source/Throwing_Axe_n2j1gxnn3WnUPag6.json
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"folder": "vPyj2cK1j66Zyrul",
|
||||
"name": "Throwing Axe",
|
||||
"type": "weapon",
|
||||
"_id": "n2j1gxnn3WnUPag6",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 30,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Thrown"
|
||||
],
|
||||
"range": {
|
||||
"short": 2,
|
||||
"long": 4
|
||||
},
|
||||
"damage": 1,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "light",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993592390,
|
||||
"modifiedTime": 1759993609878,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!n2j1gxnn3WnUPag6"
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Warclub, Flail, Mace",
|
||||
"type": "weapon",
|
||||
"_id": "WMiQdSVgM8z84MEv",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 80,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 2,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993125576,
|
||||
"modifiedTime": 1759993138211,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!WMiQdSVgM8z84MEv"
|
||||
}
|
||||
50
packs/weapons/_source/Whip_vVF6LZSFi0pNB95E.json
Normal file
50
packs/weapons/_source/Whip_vVF6LZSFi0pNB95E.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"folder": "dBAI76CApXH8qqjx",
|
||||
"name": "Whip",
|
||||
"type": "weapon",
|
||||
"_id": "vVF6LZSFi0pNB95E",
|
||||
"img": "icons/svg/item-bag.svg",
|
||||
"system": {
|
||||
"quantity": 1,
|
||||
"cost": {
|
||||
"gold": null,
|
||||
"silver": 20,
|
||||
"copper": null
|
||||
},
|
||||
"traits": [
|
||||
"Agile",
|
||||
"Long"
|
||||
],
|
||||
"range": {
|
||||
"short": null,
|
||||
"long": null
|
||||
},
|
||||
"damage": 1,
|
||||
"wear": {
|
||||
"value": 3,
|
||||
"max": 3
|
||||
},
|
||||
"equipped": false,
|
||||
"weight": "modest",
|
||||
"access": ""
|
||||
},
|
||||
"effects": [],
|
||||
"sort": 0,
|
||||
"ownership": {
|
||||
"default": 0,
|
||||
"9x9FgB0YTeCJJUDK": 3
|
||||
},
|
||||
"flags": {},
|
||||
"_stats": {
|
||||
"compendiumSource": null,
|
||||
"duplicateSource": null,
|
||||
"exportSource": null,
|
||||
"coreVersion": "13.350",
|
||||
"systemId": "ripcrypt",
|
||||
"systemVersion": "0.2.0",
|
||||
"createdTime": 1759993155738,
|
||||
"modifiedTime": 1759993176128,
|
||||
"lastModifiedBy": "9x9FgB0YTeCJJUDK"
|
||||
},
|
||||
"_key": "!items!vVF6LZSFi0pNB95E"
|
||||
}
|
||||
36
scripts/buildCompendia.mjs
Normal file
36
scripts/buildCompendia.mjs
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import { existsSync } from "fs";
|
||||
import { readFile } from "fs/promises";
|
||||
import { join } from "path";
|
||||
import { compilePack } from "@foundryvtt/foundryvtt-cli";
|
||||
import { pathToFileURL } from "url";
|
||||
|
||||
export async function buildCompendia() {
|
||||
const manifest = JSON.parse(await readFile(`./system.json`, `utf-8`));
|
||||
|
||||
if (!manifest.packs || manifest.packs.length === 0) {
|
||||
console.log(`No compendium packs defined`);
|
||||
process.exit(0);
|
||||
};
|
||||
console.log(`Packing compendia`);
|
||||
|
||||
for (const compendium of manifest.packs) {
|
||||
console.debug(`Packing ${compendium.label} (${compendium.name})`);
|
||||
let src = join(process.cwd(), compendium.path, `_source`);
|
||||
if (!existsSync(src)) {
|
||||
console.warn(`${compendium.path} doesn't exist, skipping.`)
|
||||
continue;
|
||||
};
|
||||
await compilePack(
|
||||
src,
|
||||
join(process.cwd(), compendium.path),
|
||||
{ recursive: true },
|
||||
);
|
||||
console.debug(`Finished packing compendium: ${compendium.name}`);
|
||||
};
|
||||
|
||||
console.log(`Finished packing all compendia`)
|
||||
};
|
||||
|
||||
if (import.meta.url === pathToFileURL(process.argv[1]).href) {
|
||||
buildCompendia();
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue