Actor Data Models: - VagabondActorBase: Shared base class with biography field - CharacterData: Full PC schema with stats, skills, saves, resources, custom crit thresholds, dynamic resources, item slots, wealth tracking - NPCData: Monster stat block with HD, HP, TL, zone, morale, actions, abilities, immunities/weaknesses Item Data Models: - VagabondItemBase: Shared base with description field - AncestryData: Being type, size, racial traits - ClassData: Progression tables, features, mana/casting, trained skills - SpellData: Dynamic mana cost calculation, delivery/duration types - PerkData: Prerequisites system, stat/skill/spell requirements - WeaponData: Damage, grip, properties, attack types, crit thresholds - ArmorData: Armor value, type, dodge penalty - EquipmentData: Quantity, slots, consumables - FeatureData: Class features with Active Effect changes Active Effects Integration: - Helper module for creating and managing Active Effects - Effect key mapping for stats, saves, skills, crit thresholds - Utilities for applying/removing item effects Derived Value Calculations (CharacterData): - Max HP = Might × Level - Speed by Dexterity lookup - Item Slots = 8 + Might - Fatigue - Save difficulties from stat pairs - Skill difficulties (trained doubles stat contribution) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
130 lines
3.2 KiB
JSON
130 lines
3.2 KiB
JSON
{
|
|
"env": {
|
|
"browser": true,
|
|
"es2022": true
|
|
},
|
|
"extends": ["eslint:recommended"],
|
|
"parserOptions": {
|
|
"ecmaVersion": "latest",
|
|
"sourceType": "module"
|
|
},
|
|
"globals": {
|
|
"game": "readonly",
|
|
"canvas": "readonly",
|
|
"ui": "readonly",
|
|
"CONFIG": "readonly",
|
|
"CONST": "readonly",
|
|
"Hooks": "readonly",
|
|
"Application": "readonly",
|
|
"FormApplication": "readonly",
|
|
"ActorSheet": "readonly",
|
|
"ItemSheet": "readonly",
|
|
"Actor": "readonly",
|
|
"Item": "readonly",
|
|
"ChatMessage": "readonly",
|
|
"Roll": "readonly",
|
|
"Dialog": "readonly",
|
|
"TextEditor": "readonly",
|
|
"FilePicker": "readonly",
|
|
"Handlebars": "readonly",
|
|
"foundry": "readonly",
|
|
"renderTemplate": "readonly",
|
|
"loadTemplates": "readonly",
|
|
"getTemplate": "readonly",
|
|
"fromUuid": "readonly",
|
|
"fromUuidSync": "readonly",
|
|
"duplicate": "readonly",
|
|
"mergeObject": "readonly",
|
|
"setProperty": "readonly",
|
|
"getProperty": "readonly",
|
|
"hasProperty": "readonly",
|
|
"expandObject": "readonly",
|
|
"flattenObject": "readonly",
|
|
"isObjectEmpty": "readonly",
|
|
"invertObject": "readonly",
|
|
"filterObject": "readonly",
|
|
"diffObject": "readonly",
|
|
"randomID": "readonly",
|
|
"debounce": "readonly",
|
|
"deepClone": "readonly",
|
|
"isEmpty": "readonly",
|
|
"getType": "readonly",
|
|
"ActiveEffect": "readonly",
|
|
"Token": "readonly",
|
|
"TokenDocument": "readonly",
|
|
"Scene": "readonly",
|
|
"User": "readonly",
|
|
"Folder": "readonly",
|
|
"Compendium": "readonly",
|
|
"CompendiumCollection": "readonly",
|
|
"DocumentSheetConfig": "readonly",
|
|
"ContextMenu": "readonly",
|
|
"DragDrop": "readonly",
|
|
"SearchFilter": "readonly",
|
|
"Tabs": "readonly",
|
|
"quench": "readonly"
|
|
},
|
|
"rules": {
|
|
"no-unused-vars": [
|
|
"warn",
|
|
{
|
|
"argsIgnorePattern": "^_",
|
|
"varsIgnorePattern": "^_"
|
|
}
|
|
],
|
|
"no-shadow": [
|
|
"error",
|
|
{
|
|
"builtinGlobals": true,
|
|
"hoist": "all",
|
|
"allow": [
|
|
"event",
|
|
"name",
|
|
"status",
|
|
"parent",
|
|
"top",
|
|
"close",
|
|
"open",
|
|
"print",
|
|
"origin",
|
|
"CharacterData"
|
|
]
|
|
}
|
|
],
|
|
"no-var": "error",
|
|
"prefer-const": "warn",
|
|
"eqeqeq": ["error", "smart"],
|
|
"curly": ["error", "multi-line"],
|
|
"no-console": ["warn", { "allow": ["warn", "error"] }],
|
|
"no-debugger": "warn",
|
|
"no-duplicate-imports": "error",
|
|
"no-template-curly-in-string": "warn",
|
|
"no-unreachable-loop": "error",
|
|
"no-use-before-define": [
|
|
"error",
|
|
{
|
|
"functions": false,
|
|
"classes": true,
|
|
"variables": true
|
|
}
|
|
],
|
|
"arrow-body-style": ["warn", "as-needed"],
|
|
"no-else-return": "warn",
|
|
"no-lonely-if": "warn",
|
|
"no-unneeded-ternary": "warn",
|
|
"prefer-arrow-callback": "warn",
|
|
"prefer-template": "warn",
|
|
"object-shorthand": "warn",
|
|
"spaced-comment": ["warn", "always", { "markers": ["/"] }]
|
|
},
|
|
"overrides": [
|
|
{
|
|
"files": ["**/*.test.mjs", "**/tests/**/*.mjs"],
|
|
"rules": {
|
|
"no-unused-expressions": "off"
|
|
}
|
|
}
|
|
],
|
|
"ignorePatterns": ["node_modules/", "foundrydata/", "styles/*.css", "*.min.js"]
|
|
}
|