Initial merge
parent
a4b53c1bbb
commit
9767d5a9e2
|
|
@ -1,15 +0,0 @@
|
|||
image: ruby:2.7
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: "$CI_COMMIT_BRANCH"
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
script:
|
||||
- mv .public public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH == "development"'
|
||||
21
README.md
21
README.md
|
|
@ -1,22 +1,13 @@
|
|||
# Old School Essentials System for Foundry VTT (Unofficial)
|
||||
All the features you need to play Old School Essentials or B/X Games in Foundry VTT.
|
||||
|
||||
## Installation
|
||||
You can find this Foundry VTT game system within Foundry VTT in the system browser. You could also download the latest archive in the package folder, or use the manifest link below.\
|
||||
https://gitlab.com/mesfoliesludiques/foundryvtt-ose/-/raw/master/src/system.json
|
||||
# ACKS System for Foundry VTT (Unofficial)
|
||||
All the features you need to play ACKS in Foundry VTT.
|
||||
|
||||
## License
|
||||
This Foundry VTT system requires Old-School Essentials Core Rules that you can find [here](https://necroticgnome.com).
|
||||
|
||||
This third party product is not affiliated with or approved by Necrotic Gnome. \
|
||||
Old-School Essentials is a trademark of Necrotic Gnome.\
|
||||
The trademark and Old-School Essentials logo are used with permission of Necrotic Gnome, under license.
|
||||
This Foundry VTT system requires ACKS Core Rules that you can find at http://autarch.co/buy-now.
|
||||
This third party product is not affiliated with or approved by Autarch.
|
||||
|
||||
## Artwork
|
||||
Weapon quality icons, and the Treasure chest are from [Rexxard](https://assetstore.unity.com/packages/2d/gui/icons/flat-skills-icons-82713).
|
||||
Weapon quality icons, and the Treasure chest are from Rexxard. Other graphics are from the Old School Essentials System for Foundry VTT (Unofficial) by U~man which can be found at https://gitlab.com/mesfoliesludiques/foundryvtt-ose
|
||||
|
||||
## Contributions
|
||||
Any feedback is deeply appreciated. Please issue [tickets](https://gitlab.com/mesfoliesludiques/foundryvtt-ose/-/boards).\
|
||||
Feel free to grab a TO DO issue from the gitlab board. You can then do a merge request on the `development` branch.
|
||||
|
||||
If you like this work, please consider buying U~man a coffee at ko-fi
|
||||
[](https://ko-fi.com/H2H21WMKA)
|
||||
492
gulpfile.js
492
gulpfile.js
|
|
@ -1,492 +0,0 @@
|
|||
const gulp = require("gulp");
|
||||
const fs = require("fs-extra");
|
||||
const path = require("path");
|
||||
const chalk = require("chalk");
|
||||
const archiver = require("archiver");
|
||||
const stringify = require("json-stringify-pretty-compact");
|
||||
const typescript = require("typescript");
|
||||
|
||||
const ts = require("gulp-typescript");
|
||||
const less = require("gulp-less");
|
||||
const sass = require("gulp-sass");
|
||||
const git = require("gulp-git");
|
||||
|
||||
const argv = require("yargs").argv;
|
||||
|
||||
sass.compiler = require("sass");
|
||||
|
||||
function getConfig() {
|
||||
const configPath = path.resolve(process.cwd(), "foundryconfig.json");
|
||||
let config;
|
||||
|
||||
if (fs.existsSync(configPath)) {
|
||||
config = fs.readJSONSync(configPath);
|
||||
return config;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function getManifest() {
|
||||
const json = {};
|
||||
|
||||
if (fs.existsSync("src")) {
|
||||
json.root = "src";
|
||||
} else {
|
||||
json.root = "dist";
|
||||
}
|
||||
|
||||
const modulePath = path.join(json.root, "module.json");
|
||||
const systemPath = path.join(json.root, "system.json");
|
||||
|
||||
if (fs.existsSync(modulePath)) {
|
||||
json.file = fs.readJSONSync(modulePath);
|
||||
json.name = "module.json";
|
||||
} else if (fs.existsSync(systemPath)) {
|
||||
json.file = fs.readJSONSync(systemPath);
|
||||
json.name = "system.json";
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
/**
|
||||
* TypeScript transformers
|
||||
* @returns {typescript.TransformerFactory<typescript.SourceFile>}
|
||||
*/
|
||||
function createTransformer() {
|
||||
/**
|
||||
* @param {typescript.Node} node
|
||||
*/
|
||||
function shouldMutateModuleSpecifier(node) {
|
||||
if (
|
||||
!typescript.isImportDeclaration(node) &&
|
||||
!typescript.isExportDeclaration(node)
|
||||
)
|
||||
return false;
|
||||
if (node.moduleSpecifier === undefined) return false;
|
||||
if (!typescript.isStringLiteral(node.moduleSpecifier)) return false;
|
||||
if (
|
||||
!node.moduleSpecifier.text.startsWith("./") &&
|
||||
!node.moduleSpecifier.text.startsWith("../")
|
||||
)
|
||||
return false;
|
||||
if (path.extname(node.moduleSpecifier.text) !== "") return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms import/export declarations to append `.js` extension
|
||||
* @param {typescript.TransformationContext} context
|
||||
*/
|
||||
function importTransformer(context) {
|
||||
return node => {
|
||||
/**
|
||||
* @param {typescript.Node} node
|
||||
*/
|
||||
function visitor(node) {
|
||||
if (shouldMutateModuleSpecifier(node)) {
|
||||
if (typescript.isImportDeclaration(node)) {
|
||||
const newModuleSpecifier = typescript.createLiteral(
|
||||
`${node.moduleSpecifier.text}.js`
|
||||
);
|
||||
return typescript.updateImportDeclaration(
|
||||
node,
|
||||
node.decorators,
|
||||
node.modifiers,
|
||||
node.importClause,
|
||||
newModuleSpecifier
|
||||
);
|
||||
} else if (typescript.isExportDeclaration(node)) {
|
||||
const newModuleSpecifier = typescript.createLiteral(
|
||||
`${node.moduleSpecifier.text}.js`
|
||||
);
|
||||
return typescript.updateExportDeclaration(
|
||||
node,
|
||||
node.decorators,
|
||||
node.modifiers,
|
||||
node.exportClause,
|
||||
newModuleSpecifier
|
||||
);
|
||||
}
|
||||
}
|
||||
return typescript.visitEachChild(node, visitor, context);
|
||||
}
|
||||
|
||||
return typescript.visitNode(node, visitor);
|
||||
};
|
||||
}
|
||||
|
||||
return importTransformer;
|
||||
}
|
||||
|
||||
const tsConfig = ts.createProject("tsconfig.json", {
|
||||
getCustomTransformers: prgram => ({
|
||||
after: [createTransformer()]
|
||||
})
|
||||
});
|
||||
|
||||
/********************/
|
||||
/* BUILD */
|
||||
/********************/
|
||||
|
||||
/**
|
||||
* Build TypeScript
|
||||
*/
|
||||
function buildTS() {
|
||||
return gulp
|
||||
.src("src/**/*.ts")
|
||||
.pipe(tsConfig())
|
||||
.pipe(gulp.dest("dist"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Build Less
|
||||
*/
|
||||
function buildLess() {
|
||||
return gulp
|
||||
.src("src/*.less")
|
||||
.pipe(less())
|
||||
.pipe(gulp.dest("dist"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Build SASS
|
||||
*/
|
||||
function buildSASS() {
|
||||
return gulp
|
||||
.src("src/*.scss")
|
||||
.pipe(sass().on("error", sass.logError))
|
||||
.pipe(gulp.dest("dist"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy static files
|
||||
*/
|
||||
async function copyFiles() {
|
||||
const statics = [
|
||||
"lang",
|
||||
"fonts",
|
||||
"assets",
|
||||
"templates",
|
||||
"module",
|
||||
"packs",
|
||||
"ose.js",
|
||||
"module.json",
|
||||
"system.json",
|
||||
"template.json"
|
||||
];
|
||||
try {
|
||||
for (const file of statics) {
|
||||
if (fs.existsSync(path.join("src", file))) {
|
||||
await fs.copy(path.join("src", file), path.join("dist", file));
|
||||
}
|
||||
}
|
||||
return Promise.resolve();
|
||||
} catch (err) {
|
||||
Promise.reject(err);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Watch for changes for each build step
|
||||
*/
|
||||
function buildWatch() {
|
||||
gulp.watch("src/**/*.ts", { ignoreInitial: false }, buildTS);
|
||||
gulp.watch("src/**/*.less", { ignoreInitial: false }, buildLess);
|
||||
gulp.watch("src/**/*.scss", { ignoreInitial: false }, buildSASS);
|
||||
gulp.watch(
|
||||
["src/fonts", "src/templates", "src/*.json", "src/**/*.js"],
|
||||
{ ignoreInitial: false },
|
||||
copyFiles
|
||||
);
|
||||
}
|
||||
|
||||
/********************/
|
||||
/* CLEAN */
|
||||
/********************/
|
||||
|
||||
/**
|
||||
* Remove built files from `dist` folder
|
||||
* while ignoring source files
|
||||
*/
|
||||
async function clean() {
|
||||
const name = path.basename(path.resolve("."));
|
||||
const files = [];
|
||||
|
||||
// If the project uses TypeScript
|
||||
if (fs.existsSync(path.join("src", `${name}.ts`))) {
|
||||
files.push(
|
||||
"lang",
|
||||
"templates",
|
||||
"assets",
|
||||
"packs",
|
||||
"module",
|
||||
`${name}.js`,
|
||||
"module.json",
|
||||
"system.json",
|
||||
"template.json"
|
||||
);
|
||||
}
|
||||
|
||||
// If the project uses Less or SASS
|
||||
if (
|
||||
fs.existsSync(path.join("src", `${name}.less`)) ||
|
||||
fs.existsSync(path.join("src", `${name}.scss`))
|
||||
) {
|
||||
files.push("fonts", `${name}.css`);
|
||||
}
|
||||
|
||||
console.log(" ", chalk.yellow("Files to clean:"));
|
||||
console.log(" ", chalk.blueBright(files.join("\n ")));
|
||||
|
||||
// Attempt to remove the files
|
||||
try {
|
||||
for (const filePath of files) {
|
||||
await fs.remove(path.join("dist", filePath));
|
||||
}
|
||||
return Promise.resolve();
|
||||
} catch (err) {
|
||||
Promise.reject(err);
|
||||
}
|
||||
}
|
||||
|
||||
/********************/
|
||||
/* LINK */
|
||||
/********************/
|
||||
|
||||
/**
|
||||
* Link build to User Data folder
|
||||
*/
|
||||
async function linkUserData() {
|
||||
const name = path.basename(path.resolve("."));
|
||||
const config = fs.readJSONSync("foundryconfig.json");
|
||||
|
||||
let destDir;
|
||||
try {
|
||||
if (
|
||||
fs.existsSync(path.resolve(".", "dist", "module.json")) ||
|
||||
fs.existsSync(path.resolve(".", "src", "module.json"))
|
||||
) {
|
||||
destDir = "modules";
|
||||
} else if (
|
||||
fs.existsSync(path.resolve(".", "dist", "system.json")) ||
|
||||
fs.existsSync(path.resolve(".", "src", "system.json"))
|
||||
) {
|
||||
destDir = "systems";
|
||||
} else {
|
||||
throw Error(
|
||||
`Could not find ${chalk.blueBright(
|
||||
"module.json"
|
||||
)} or ${chalk.blueBright("system.json")}`
|
||||
);
|
||||
}
|
||||
|
||||
let linkDir;
|
||||
if (config.dataPath) {
|
||||
if (!fs.existsSync(path.join(config.dataPath, "Data")))
|
||||
throw Error("User Data path invalid, no Data directory found");
|
||||
|
||||
linkDir = path.join(config.dataPath, "Data", destDir, name);
|
||||
} else {
|
||||
throw Error("No User Data path defined in foundryconfig.json");
|
||||
}
|
||||
|
||||
if (argv.clean || argv.c) {
|
||||
console.log(
|
||||
chalk.yellow(`Removing build in ${chalk.blueBright(linkDir)}`)
|
||||
);
|
||||
|
||||
await fs.remove(linkDir);
|
||||
} else if (!fs.existsSync(linkDir)) {
|
||||
console.log(chalk.green(`Copying build to ${chalk.blueBright(linkDir)}`));
|
||||
await fs.symlink(path.resolve("./dist"), linkDir);
|
||||
}
|
||||
return Promise.resolve();
|
||||
} catch (err) {
|
||||
Promise.reject(err);
|
||||
}
|
||||
}
|
||||
|
||||
/*********************/
|
||||
/* PACKAGE */
|
||||
/*********************/
|
||||
|
||||
/**
|
||||
* Package build
|
||||
*/
|
||||
async function packageBuild() {
|
||||
const manifest = getManifest();
|
||||
|
||||
try {
|
||||
// Remove the package dir without doing anything else
|
||||
if (argv.clean || argv.c) {
|
||||
console.log(chalk.yellow("Removing all packaged files"));
|
||||
await fs.remove("package");
|
||||
return;
|
||||
}
|
||||
|
||||
// Ensure there is a directory to hold all the packaged versions
|
||||
await fs.ensureDir("package");
|
||||
|
||||
// Initialize the zip file
|
||||
const zipName = `${manifest.file.name}-v${manifest.file.version}.zip`;
|
||||
const zipFile = fs.createWriteStream(path.join("package", zipName));
|
||||
const zip = archiver("zip", { zlib: { level: 9 } });
|
||||
|
||||
zipFile.on("close", () => {
|
||||
console.log(chalk.green(zip.pointer() + " total bytes"));
|
||||
console.log(chalk.green(`Zip file ${zipName} has been written`));
|
||||
return Promise.resolve();
|
||||
});
|
||||
|
||||
zip.on("error", err => {
|
||||
throw err;
|
||||
});
|
||||
|
||||
zip.pipe(zipFile);
|
||||
|
||||
// Add the directory with the final code
|
||||
zip.directory("dist/", manifest.file.name);
|
||||
|
||||
zip.finalize();
|
||||
} catch (err) {
|
||||
Promise.reject(err);
|
||||
}
|
||||
}
|
||||
|
||||
/*********************/
|
||||
/* PACKAGE */
|
||||
/*********************/
|
||||
|
||||
/**
|
||||
* Update version and URLs in the manifest JSON
|
||||
*/
|
||||
function updateManifest(cb) {
|
||||
const packageJson = fs.readJSONSync("package.json");
|
||||
const config = getConfig(),
|
||||
manifest = getManifest(),
|
||||
rawURL = config.rawURL,
|
||||
repoURL = config.repository,
|
||||
manifestRoot = manifest.root;
|
||||
|
||||
if (!config) cb(Error(chalk.red("foundryconfig.json not found")));
|
||||
if (!manifest) cb(Error(chalk.red("Manifest JSON not found")));
|
||||
if (!rawURL || !repoURL)
|
||||
cb(
|
||||
Error(chalk.red("Repository URLs not configured in foundryconfig.json"))
|
||||
);
|
||||
|
||||
try {
|
||||
const version = argv.update || argv.u;
|
||||
|
||||
/* Update version */
|
||||
|
||||
const versionMatch = /^(\d{1,}).(\d{1,}).(\d{1,})$/;
|
||||
const currentVersion = manifest.file.version;
|
||||
let targetVersion = "";
|
||||
|
||||
if (!version) {
|
||||
cb(Error("Missing version number"));
|
||||
}
|
||||
|
||||
if (versionMatch.test(version)) {
|
||||
targetVersion = version;
|
||||
} else {
|
||||
targetVersion = currentVersion.replace(
|
||||
versionMatch,
|
||||
(substring, major, minor, patch) => {
|
||||
if (version === "major") {
|
||||
return `${Number(major) + 1}.0.0`;
|
||||
} else if (version === "minor") {
|
||||
return `${major}.${Number(minor) + 1}.0`;
|
||||
} else if (version === "patch") {
|
||||
return `${major}.${minor}.${Number(minor) + 1}`;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (targetVersion === "") {
|
||||
return cb(Error(chalk.red("Error: Incorrect version arguments.")));
|
||||
}
|
||||
|
||||
if (targetVersion === currentVersion) {
|
||||
return cb(
|
||||
Error(
|
||||
chalk.red("Error: Target version is identical to current version.")
|
||||
)
|
||||
);
|
||||
}
|
||||
console.log(`Updating version number to '${targetVersion}'`);
|
||||
|
||||
packageJson.version = targetVersion;
|
||||
manifest.file.version = targetVersion;
|
||||
|
||||
/* Update URLs */
|
||||
|
||||
const result = `${rawURL}/v${manifest.file.version}/package/${manifest.file.name}-v${manifest.file.version}.zip`;
|
||||
|
||||
manifest.file.url = repoURL;
|
||||
manifest.file.manifest = `${rawURL}/master/${manifestRoot}/${manifest.name}`;
|
||||
manifest.file.download = result;
|
||||
|
||||
const prettyProjectJson = stringify(manifest.file, { maxLength: 35 });
|
||||
|
||||
fs.writeJSONSync("package.json", packageJson, { spaces: 2 });
|
||||
fs.writeFileSync(
|
||||
path.join(manifest.root, manifest.name),
|
||||
prettyProjectJson,
|
||||
"utf8"
|
||||
);
|
||||
|
||||
return cb();
|
||||
} catch (err) {
|
||||
cb(err);
|
||||
}
|
||||
}
|
||||
|
||||
function gitAdd() {
|
||||
return gulp.src("package").pipe(git.add({ args: "--no-all" }));
|
||||
}
|
||||
|
||||
function gitCommit() {
|
||||
return gulp.src("./*").pipe(
|
||||
git.commit(`v${getManifest().file.version}`, {
|
||||
args: "-a",
|
||||
disableAppendPaths: true
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function gitTag() {
|
||||
const manifest = getManifest();
|
||||
return git.tag(
|
||||
`v${manifest.file.version}`,
|
||||
`Updated to ${manifest.file.version}`,
|
||||
err => {
|
||||
if (err) throw err;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
const execGit = gulp.series(gitAdd, gitCommit, gitTag);
|
||||
|
||||
const execBuild = gulp.parallel(buildTS, buildLess, buildSASS, copyFiles);
|
||||
|
||||
exports.build = gulp.series(clean, execBuild);
|
||||
exports.watch = buildWatch;
|
||||
exports.clean = clean;
|
||||
exports.link = linkUserData;
|
||||
exports.package = packageBuild;
|
||||
exports.publish = gulp.series(
|
||||
clean,
|
||||
updateManifest,
|
||||
execBuild,
|
||||
packageBuild,
|
||||
execGit
|
||||
);
|
||||
File diff suppressed because it is too large
Load Diff
31
package.json
31
package.json
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"private": true,
|
||||
"name": "ose",
|
||||
"version": "0.0.2",
|
||||
"description": "",
|
||||
"scripts": {
|
||||
"package": "gulp package",
|
||||
"build": "gulp build && gulp link",
|
||||
"build:watch": "gulp watch",
|
||||
"clean": "gulp clean && gulp link --clean",
|
||||
"update": "npm install --save-dev gitlab:foundry-projects/foundry-pc/foundry-pc-types"
|
||||
},
|
||||
"author": "",
|
||||
"license": "",
|
||||
"devDependencies": {
|
||||
"archiver": "^3.1.1",
|
||||
"chalk": "^3.0.0",
|
||||
"foundry-pc-types": "gitlab:foundry-projects/foundry-pc/foundry-pc-types",
|
||||
"fs-extra": "^8.1.0",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-git": "^2.10.0",
|
||||
"gulp-less": "^4.0.1",
|
||||
"gulp-sass": "^4.0.2",
|
||||
"gulp-typescript": "^6.0.0-alpha.1",
|
||||
"json-stringify-pretty-compact": "^2.0.0",
|
||||
"sass": "^1.25.0",
|
||||
"typescript": "^3.7.5",
|
||||
"yargs": "^15.1.0"
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
||||
|
|
@ -593,7 +593,7 @@ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
PURPACKS. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
|
|
@ -641,7 +641,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPACKS. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
68
src/acks.js
68
src/acks.js
|
|
@ -1,18 +1,18 @@
|
|||
// Import Modules
|
||||
import { OseItemSheet } from "./module/item/item-sheet.js";
|
||||
import { OseActorSheetCharacter } from "./module/actor/character-sheet.js";
|
||||
import { OseActorSheetMonster } from "./module/actor/monster-sheet.js";
|
||||
import { AcksItemSheet } from "./module/item/item-sheet.js";
|
||||
import { AcksActorSheetCharacter } from "./module/actor/character-sheet.js";
|
||||
import { AcksActorSheetMonster } from "./module/actor/monster-sheet.js";
|
||||
import { preloadHandlebarsTemplates } from "./module/preloadTemplates.js";
|
||||
import { OseActor } from "./module/actor/entity.js";
|
||||
import { OseItem } from "./module/item/entity.js";
|
||||
import { OSE } from "./module/config.js";
|
||||
import { AcksActor } from "./module/actor/entity.js";
|
||||
import { AcksItem } from "./module/item/entity.js";
|
||||
import { ACKS } from "./module/config.js";
|
||||
import { registerSettings } from "./module/settings.js";
|
||||
import { registerHelpers } from "./module/helpers.js";
|
||||
import * as chat from "./module/chat.js";
|
||||
import * as treasure from "./module/treasure.js";
|
||||
import * as macros from "./module/macros.js";
|
||||
import * as party from "./module/party.js";
|
||||
import { OseCombat } from "./module/combat.js";
|
||||
import { AcksCombat } from "./module/combat.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Foundry VTT Initialization */
|
||||
|
|
@ -25,12 +25,12 @@ Hooks.once("init", async function () {
|
|||
*/
|
||||
CONFIG.Combat.initiative = {
|
||||
formula: "1d6 + @initiative.value",
|
||||
decimals: 2,
|
||||
decimals: 0,
|
||||
};
|
||||
|
||||
CONFIG.OSE = OSE;
|
||||
CONFIG.ACKS = ACKS;
|
||||
|
||||
game.ose = {
|
||||
game.acks = {
|
||||
rollItemMacro: macros.rollItemMacro,
|
||||
};
|
||||
|
||||
|
|
@ -40,21 +40,21 @@ Hooks.once("init", async function () {
|
|||
// Register custom system settings
|
||||
registerSettings();
|
||||
|
||||
CONFIG.Actor.entityClass = OseActor;
|
||||
CONFIG.Item.entityClass = OseItem;
|
||||
CONFIG.Actor.entityClass = AcksActor;
|
||||
CONFIG.Item.entityClass = AcksItem;
|
||||
|
||||
// Register sheet application classes
|
||||
Actors.unregisterSheet("core", ActorSheet);
|
||||
Actors.registerSheet("ose", OseActorSheetCharacter, {
|
||||
Actors.registerSheet("acks", AcksActorSheetCharacter, {
|
||||
types: ["character"],
|
||||
makeDefault: true,
|
||||
});
|
||||
Actors.registerSheet("ose", OseActorSheetMonster, {
|
||||
Actors.registerSheet("acks", AcksActorSheetMonster, {
|
||||
types: ["monster"],
|
||||
makeDefault: true,
|
||||
});
|
||||
Items.unregisterSheet("core", ItemSheet);
|
||||
Items.registerSheet("ose", OseItemSheet, { makeDefault: true });
|
||||
Items.registerSheet("acks", AcksItemSheet, { makeDefault: true });
|
||||
|
||||
await preloadHandlebarsTemplates();
|
||||
});
|
||||
|
|
@ -66,19 +66,19 @@ Hooks.once("setup", function () {
|
|||
// Localize CONFIG objects once up-front
|
||||
const toLocalize = ["saves_short", "saves_long", "scores", "armor", "colors", "tags"];
|
||||
for (let o of toLocalize) {
|
||||
CONFIG.OSE[o] = Object.entries(CONFIG.OSE[o]).reduce((obj, e) => {
|
||||
CONFIG.ACKS[o] = Object.entries(CONFIG.ACKS[o]).reduce((obj, e) => {
|
||||
obj[e[0]] = game.i18n.localize(e[1]);
|
||||
return obj;
|
||||
}, {});
|
||||
}
|
||||
for (let l of CONFIG.OSE.languages) {
|
||||
CONFIG.OSE.languages[l] = game.i18n.localize(CONFIG.OSE.languages[l]);
|
||||
for (let l of CONFIG.ACKS.languages) {
|
||||
CONFIG.ACKS.languages[l] = game.i18n.localize(CONFIG.ACKS.languages[l]);
|
||||
}
|
||||
});
|
||||
|
||||
Hooks.once("ready", async () => {
|
||||
Hooks.on("hotbarDrop", (bar, data, slot) =>
|
||||
macros.createOseMacro(data, slot)
|
||||
macros.createAcksMacro(data, slot)
|
||||
);
|
||||
});
|
||||
|
||||
|
|
@ -88,20 +88,20 @@ Hooks.on("renderSidebarTab", async (object, html) => {
|
|||
party.addControl(object, html);
|
||||
}
|
||||
if (object instanceof Settings) {
|
||||
let gamesystem = html.find("#game-details");
|
||||
let gamesystem = html.find(".game-system");
|
||||
// SRD Link
|
||||
let ose = gamesystem.find('h4').last();
|
||||
ose.append(` <sub><a href="https://oldschoolessentials.necroticgnome.com/srd/index.php">SRD<a></sub>`);
|
||||
let acks = gamesystem.find('h4').last();
|
||||
acks.append(` <sub><a href="https://oldschoolessentials.necroticgnome.com/srd/index.php">SRD<a></sub>`);
|
||||
|
||||
// License text
|
||||
const template = "systems/ose/templates/chat/license.html";
|
||||
const template = "systems/acks/templates/chat/license.html";
|
||||
const rendered = await renderTemplate(template);
|
||||
gamesystem.find(".system").append(rendered);
|
||||
gamesystem.append(rendered);
|
||||
|
||||
// User guide
|
||||
let docs = html.find("button[data-action='docs']");
|
||||
const styling = "border:none;margin-right:2px;vertical-align:middle;margin-bottom:5px";
|
||||
$(`<button data-action="userguide"><img src='/systems/ose/assets/dragon.png' width='16' height='16' style='${styling}'/>Old School Guide</button>`).insertAfter(docs);
|
||||
$(`<button data-action="userguide"><img src='/systems/acks/assets/dragon.png' width='16' height='16' style='${styling}'/>Old School Guide</button>`).insertAfter(docs);
|
||||
html.find('button[data-action="userguide"]').click(ev => {
|
||||
new FrameViewer('https://mesfoliesludiques.gitlab.io/foundryvtt-ose', {resizable: true}).render(true);
|
||||
});
|
||||
|
|
@ -109,23 +109,23 @@ Hooks.on("renderSidebarTab", async (object, html) => {
|
|||
});
|
||||
|
||||
Hooks.on("preCreateCombatant", (combat, data, options, id) => {
|
||||
let init = game.settings.get("ose", "initiative");
|
||||
let init = game.settings.get("acks", "initiative");
|
||||
if (init == "group") {
|
||||
OseCombat.addCombatant(combat, data, options, id);
|
||||
AcksCombat.addCombatant(combat, data, options, id);
|
||||
}
|
||||
});
|
||||
|
||||
Hooks.on("preUpdateCombatant", (combat, combatant, data) => {
|
||||
OseCombat.updateCombatant(combat, combatant, data);
|
||||
AcksCombat.updateCombatant(combat, combatant, data);
|
||||
});
|
||||
|
||||
Hooks.on("renderCombatTracker", (object, html, data) => {
|
||||
OseCombat.format(object, html, data);
|
||||
AcksCombat.format(object, html, data);
|
||||
});
|
||||
|
||||
Hooks.on("preUpdateCombat", async (combat, data, diff, id) => {
|
||||
let init = game.settings.get("ose", "initiative");
|
||||
let reroll = game.settings.get("ose", "rerollInitiative");
|
||||
let init = game.settings.get("acks", "initiative");
|
||||
let reroll = game.settings.get("acks", "rerollInitiative");
|
||||
if (!data.round) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -138,13 +138,13 @@ Hooks.on("preUpdateCombat", async (combat, data, diff, id) => {
|
|||
}
|
||||
}
|
||||
if (init === "group") {
|
||||
OseCombat.rollInitiative(combat, data, diff, id);
|
||||
AcksCombat.rollInitiative(combat, data, diff, id);
|
||||
} else if (init === "individual") {
|
||||
OseCombat.individualInitiative(combat, data, diff, id);
|
||||
AcksCombat.individualInitiative(combat, data, diff, id);
|
||||
}
|
||||
});
|
||||
|
||||
Hooks.on("renderChatLog", (app, html, data) => OseItem.chatListeners(html));
|
||||
Hooks.on("renderChatLog", (app, html, data) => AcksItem.chatListeners(html));
|
||||
Hooks.on("getChatLogEntryContext", chat.addChatMessageContextOptions);
|
||||
Hooks.on("renderChatMessage", chat.addChatMessageButtons);
|
||||
Hooks.on("renderRollTableConfig", treasure.augmentTable);
|
||||
|
|
|
|||
506
src/lang/en.json
506
src/lang/en.json
|
|
@ -1,280 +1,280 @@
|
|||
{
|
||||
"OSE.Edit": "Edit",
|
||||
"OSE.Delete": "Delete",
|
||||
"OSE.Show": "Show",
|
||||
"OSE.Add": "Add",
|
||||
"OSE.Ok": "Ok",
|
||||
"OSE.Update": "Update",
|
||||
"OSE.Reset": "Reset",
|
||||
"OSE.Cancel": "Cancel",
|
||||
"OSE.Roll": "Roll",
|
||||
"OSE.Success": "Success",
|
||||
"OSE.Failure": "Failure",
|
||||
"ACKS.Edit": "Edit",
|
||||
"ACKS.Delete": "Delete",
|
||||
"ACKS.Show": "Show",
|
||||
"ACKS.Add": "Add",
|
||||
"ACKS.Ok": "Ok",
|
||||
"ACKS.Update": "Update",
|
||||
"ACKS.Reset": "Reset",
|
||||
"ACKS.Cancel": "Cancel",
|
||||
"ACKS.Roll": "Roll",
|
||||
"ACKS.Success": "Success",
|
||||
"ACKS.Failure": "Failure",
|
||||
|
||||
"OSE.dialog.tweaks": "Tweaks",
|
||||
"OSE.dialog.partysheet": "Party Overview",
|
||||
"OSE.dialog.selectActors": "Select PCs",
|
||||
"OSE.dialog.dealXP": "Deal XP",
|
||||
"OSE.dialog.generator": "Character generator",
|
||||
"OSE.dialog.generateSaves": "Generate Saves",
|
||||
"OSE.dialog.generateScores": "Generate Scores",
|
||||
"OSE.dialog.generateScore": "Rolling {score} ({count})",
|
||||
"ACKS.dialog.tweaks": "Tweaks",
|
||||
"ACKS.dialog.partysheet": "Party Overview",
|
||||
"ACKS.dialog.selectActors": "Select PCs",
|
||||
"ACKS.dialog.dealXP": "Deal XP",
|
||||
"ACKS.dialog.generator": "Character generator",
|
||||
"ACKS.dialog.generateSaves": "Generate Saves",
|
||||
"ACKS.dialog.generateScores": "Generate Scores",
|
||||
"ACKS.dialog.generateScore": "Rolling {score} ({count})",
|
||||
|
||||
"OSE.Formula": "Formula",
|
||||
"OSE.SitMod": "Situational Modifier",
|
||||
"OSE.Modifier": "Modifier",
|
||||
"OSE.Modifiers": "Modifiers",
|
||||
"OSE.RollMode": "Roll Mode",
|
||||
"OSE.RollExample": "e.g. +1d4",
|
||||
"ACKS.Formula": "Formula",
|
||||
"ACKS.SitMod": "Situational Modifier",
|
||||
"ACKS.Modifier": "Modifier",
|
||||
"ACKS.Modifiers": "Modifiers",
|
||||
"ACKS.RollMode": "Roll Mode",
|
||||
"ACKS.RollExample": "e.g. +1d4",
|
||||
|
||||
"OSE.roll.formula": "{label} roll",
|
||||
"OSE.roll.appearing": "Appearing roll ({type})",
|
||||
"OSE.roll.morale": "Morale check",
|
||||
"OSE.roll.hd": "Hit Dice roll",
|
||||
"OSE.roll.attacksWith": "Attacks with {name}",
|
||||
"OSE.roll.attacks": "{name} attacks!",
|
||||
"OSE.roll.save": "{save} Save",
|
||||
"OSE.roll.details.save": "Roll 1d20 >= {save} for success",
|
||||
"OSE.roll.attribute": "{attribute} check",
|
||||
"OSE.roll.details.attribute": "Roll 1d20 <= {score} for success",
|
||||
"OSE.roll.exploration": "{exploration} test",
|
||||
"OSE.roll.details.exploration": "Roll 1d6 <= {expl} for success",
|
||||
"OSE.roll.reaction": "Reaction roll",
|
||||
"OSE.roll.initiative": "Group {group} rolls for Initiative!",
|
||||
"OSE.roll.individualInit": "{name} rolls for Initiative!",
|
||||
"ACKS.roll.formula": "{label} roll",
|
||||
"ACKS.roll.appearing": "Appearing roll ({type})",
|
||||
"ACKS.roll.morale": "Morale check",
|
||||
"ACKS.roll.hd": "Hit Dice roll",
|
||||
"ACKS.roll.attacksWith": "Attacks with {name}",
|
||||
"ACKS.roll.attacks": "{name} attacks!",
|
||||
"ACKS.roll.save": "{save} Save",
|
||||
"ACKS.roll.details.save": "Roll 1d20 >= {save} for success",
|
||||
"ACKS.roll.attribute": "{attribute} check",
|
||||
"ACKS.roll.details.attribute": "Roll 1d20 <= {score} for success",
|
||||
"ACKS.roll.exploration": "{exploration} test",
|
||||
"ACKS.roll.details.exploration": "Roll 1d6 <= {expl} for success",
|
||||
"ACKS.roll.reaction": "Reaction roll",
|
||||
"ACKS.roll.initiative": "Group {group} rolls for Initiative!",
|
||||
"ACKS.roll.individualInit": "{name} rolls for Initiative!",
|
||||
|
||||
"OSE.table.treasure.roll": "Roll Treasure",
|
||||
"ACKS.table.treasure.roll": "Roll Treasure",
|
||||
|
||||
"OSE.details.name": "Name",
|
||||
"OSE.details.class": "Class",
|
||||
"OSE.details.title": "Title",
|
||||
"OSE.details.alignment": "Alignment",
|
||||
"OSE.details.level": "Level",
|
||||
"OSE.details.experience.base": "Experience",
|
||||
"OSE.details.experience.bonus": "Bonus Experience",
|
||||
"OSE.details.experience.next": "Next level",
|
||||
"OSE.details.experience.share": "Experience Share",
|
||||
"OSE.details.experience.award": "XP Award",
|
||||
"OSE.details.treasure": "Treasure type",
|
||||
"OSE.details.treasureTable": "Table",
|
||||
"OSE.details.treasureTableHint": "Drop a rollable table here to roll the monster treasure",
|
||||
"OSE.details.morale": "Morale",
|
||||
"OSE.details.reaction": "Reaction",
|
||||
"OSE.details.appearing": "NA",
|
||||
"ACKS.details.name": "Name",
|
||||
"ACKS.details.class": "Class",
|
||||
"ACKS.details.title": "Title",
|
||||
"ACKS.details.alignment": "Alignment",
|
||||
"ACKS.details.level": "Level",
|
||||
"ACKS.details.experience.base": "Experience",
|
||||
"ACKS.details.experience.bonus": "Bonus Experience",
|
||||
"ACKS.details.experience.next": "Next level",
|
||||
"ACKS.details.experience.share": "Experience Share",
|
||||
"ACKS.details.experience.award": "XP Award",
|
||||
"ACKS.details.treasure": "Treasure type",
|
||||
"ACKS.details.treasureTable": "Table",
|
||||
"ACKS.details.treasureTableHint": "Drop a rollable table here to roll the monster treasure",
|
||||
"ACKS.details.morale": "Morale",
|
||||
"ACKS.details.reaction": "Reaction",
|
||||
"ACKS.details.appearing": "NA",
|
||||
|
||||
"OSE.Attack": "Attack",
|
||||
"OSE.Encumbrance": "Encumbrance",
|
||||
"ACKS.Attack": "Attack",
|
||||
"ACKS.Encumbrance": "Encumbrance",
|
||||
|
||||
"OSE.Retainer": "Retainer",
|
||||
"OSE.RetainerWage": "Wage",
|
||||
"OSE.RetainerUpkeep": "Upkeep",
|
||||
"OSE.Loyalty": "Loyalty Rating",
|
||||
"OSE.LoyaltyShort": "LR",
|
||||
"ACKS.Retainer": "Retainer",
|
||||
"ACKS.RetainerWage": "Wage",
|
||||
"ACKS.RetainerUpkeep": "Upkeep",
|
||||
"ACKS.Loyalty": "Loyalty Rating",
|
||||
"ACKS.LoyaltyShort": "LR",
|
||||
|
||||
"OSE.scores.str.long": "Strength",
|
||||
"OSE.scores.str.short": "STR",
|
||||
"OSE.scores.wis.long": "Wisdom",
|
||||
"OSE.scores.wis.short": "WIS",
|
||||
"OSE.scores.int.long": "Intelligence",
|
||||
"OSE.scores.int.short": "INT",
|
||||
"OSE.scores.dex.long": "Dexterity",
|
||||
"OSE.scores.dex.short": "DEX",
|
||||
"OSE.scores.con.long": "Constitution",
|
||||
"OSE.scores.con.short": "CON",
|
||||
"OSE.scores.cha.long": "Charisma",
|
||||
"OSE.scores.cha.short": "CHA",
|
||||
"ACKS.scores.str.long": "Strength",
|
||||
"ACKS.scores.str.short": "STR",
|
||||
"ACKS.scores.wis.long": "Wisdom",
|
||||
"ACKS.scores.wis.short": "WIS",
|
||||
"ACKS.scores.int.long": "Intelligence",
|
||||
"ACKS.scores.int.short": "INT",
|
||||
"ACKS.scores.dex.long": "Dexterity",
|
||||
"ACKS.scores.dex.short": "DEX",
|
||||
"ACKS.scores.con.long": "Constitution",
|
||||
"ACKS.scores.con.short": "CON",
|
||||
"ACKS.scores.cha.long": "Charisma",
|
||||
"ACKS.scores.cha.short": "CHA",
|
||||
|
||||
"OSE.saves.death.short": "D",
|
||||
"OSE.saves.death.long": "Death Poison",
|
||||
"OSE.saves.wand.short": "W",
|
||||
"OSE.saves.wand.long": "Wands",
|
||||
"OSE.saves.paralysis.short": "P",
|
||||
"OSE.saves.paralysis.long": "Paralysis Petrify",
|
||||
"OSE.saves.breath.short": "B",
|
||||
"OSE.saves.breath.long": "Breath Attacks",
|
||||
"OSE.saves.spell.short": "S",
|
||||
"OSE.saves.spell.long": "Spells Rods Staves",
|
||||
"OSE.saves.magic.long": "Bonus vs Magic",
|
||||
"OSE.saves.magic.short": "vs Magic",
|
||||
"ACKS.saves.death.short": "D",
|
||||
"ACKS.saves.death.long": "Poison & Death",
|
||||
"ACKS.saves.wand.short": "W",
|
||||
"ACKS.saves.wand.long": "Staffs & Wands",
|
||||
"ACKS.saves.paralysis.short": "P",
|
||||
"ACKS.saves.paralysis.long": "Paralysis & Petrify",
|
||||
"ACKS.saves.breath.short": "B",
|
||||
"ACKS.saves.breath.long": "Blast & Breath",
|
||||
"ACKS.saves.spell.short": "S",
|
||||
"ACKS.saves.spell.long": "Spells",
|
||||
"ACKS.saves.magic.long": "Bonus vs Magic",
|
||||
"ACKS.saves.magic.short": "vs Magic",
|
||||
|
||||
"OSE.Health": "Hit Points",
|
||||
"OSE.HealthMax": "Maximum Hit Points",
|
||||
"OSE.HealthShort": "HP",
|
||||
"OSE.HitDice": "Hit Dice",
|
||||
"OSE.HitDiceShort": "HD",
|
||||
"ACKS.Health": "Hit Points",
|
||||
"ACKS.HealthMax": "Maximum Hit Points",
|
||||
"ACKS.HealthShort": "HP",
|
||||
"ACKS.HitDice": "Hit Dice",
|
||||
"ACKS.HitDiceShort": "HD",
|
||||
|
||||
"OSE.movement.base": "Movement Rate",
|
||||
"OSE.movement.short": "MV",
|
||||
"OSE.movement.details": "Movement Details",
|
||||
"OSE.movement.encounter.long": "Encounter Movement Rate",
|
||||
"OSE.movement.encounter.short": "En",
|
||||
"OSE.movement.overland.long": "Overland Movement Rate",
|
||||
"OSE.movement.overland.short": "Ov",
|
||||
"OSE.movement.exploration.short": "Ex",
|
||||
"OSE.movement.exploration.long": "Exploration Movement Rate",
|
||||
"ACKS.movement.base": "Movement Rate",
|
||||
"ACKS.movement.short": "MV",
|
||||
"ACKS.movement.details": "Movement Details",
|
||||
"ACKS.movement.encounter.long": "Encounter Movement Rate",
|
||||
"ACKS.movement.encounter.short": "En",
|
||||
"ACKS.movement.overland.long": "Overland Movement Rate",
|
||||
"ACKS.movement.overland.short": "Ov",
|
||||
"ACKS.movement.exploration.short": "Ex",
|
||||
"ACKS.movement.exploration.long": "Exploration Movement Rate",
|
||||
|
||||
"OSE.ArmorClassNaked": "Naked Armor Class",
|
||||
"OSE.ArmorClass": "Armor Class",
|
||||
"OSE.ArmorClassShort": "AC",
|
||||
"OSE.AscArmorClassShort": "AAC",
|
||||
"OSE.ArmorClassBonus": "Armor Class Bonus",
|
||||
"OSE.Thac0": "THAC0",
|
||||
"OSE.ABShort": "AB",
|
||||
"OSE.AB": "Attack Bonus",
|
||||
"OSE.MeleeShort": "MEL",
|
||||
"OSE.Melee": "Melee",
|
||||
"OSE.MeleeBonus": "Melee Bonus",
|
||||
"OSE.MissileShort": "MIS",
|
||||
"OSE.Missile": "Missile",
|
||||
"OSE.MissileBonus": "Missile Bonus",
|
||||
"OSE.Initiative": "Initiative",
|
||||
"OSE.InitiativeBonus": "Initiative Bonus",
|
||||
"OSE.InitiativeShort": "INIT",
|
||||
"OSE.Attacks": "Attacks Usable per Round",
|
||||
"OSE.AttacksShort": "ATT",
|
||||
"OSE.Damage": "Damage",
|
||||
"OSE.Spellcaster": "Spellcaster",
|
||||
"ACKS.ArmorClassNaked": "Naked Armor Class",
|
||||
"ACKS.ArmorClass": "Armor Class",
|
||||
"ACKS.ArmorClassShort": "AC",
|
||||
"ACKS.AscArmorClassShort": "AAC",
|
||||
"ACKS.ArmorClassBonus": "Armor Class Bonus",
|
||||
"ACKS.Thac0": "THAC0",
|
||||
"ACKS.ABShort": "AB",
|
||||
"ACKS.AB": "Attack Bonus",
|
||||
"ACKS.MeleeShort": "MEL",
|
||||
"ACKS.Melee": "Melee",
|
||||
"ACKS.MeleeBonus": "Melee Bonus",
|
||||
"ACKS.MissileShort": "MIS",
|
||||
"ACKS.Missile": "Missile",
|
||||
"ACKS.MissileBonus": "Missile Bonus",
|
||||
"ACKS.Initiative": "Initiative",
|
||||
"ACKS.InitiativeBonus": "Initiative Bonus",
|
||||
"ACKS.InitiativeShort": "INIT",
|
||||
"ACKS.Attacks": "Attacks Usable per Round",
|
||||
"ACKS.AttacksShort": "ATT",
|
||||
"ACKS.Damage": "Damage",
|
||||
"ACKS.Spellcaster": "Spellcaster",
|
||||
|
||||
"OSE.Language": "Language",
|
||||
"OSE.SpokenLanguages": "Spoken Languages",
|
||||
"OSE.Literacy": "Literacy",
|
||||
"OSE.Literate": "Literate",
|
||||
"OSE.LiteracyBasic": "Basic",
|
||||
"OSE.Illiterate": "Illiterate",
|
||||
"OSE.NativeBroken": "Native (Broken)",
|
||||
"OSE.Native": "Native",
|
||||
"OSE.NativePlus1": "Native + 1",
|
||||
"OSE.NativePlus2": "Native + 2",
|
||||
"OSE.NativePlus3": "Native + 3",
|
||||
"ACKS.Language": "Language",
|
||||
"ACKS.SpokenLanguages": "Spoken Languages",
|
||||
"ACKS.Literacy": "Literacy",
|
||||
"ACKS.Literate": "Literate",
|
||||
"ACKS.LiteracyBasic": "Basic",
|
||||
"ACKS.Illiterate": "Illiterate",
|
||||
"ACKS.NativeBroken": "Native (Broken)",
|
||||
"ACKS.Native": "Native",
|
||||
"ACKS.NativePlus1": "Native + 1",
|
||||
"ACKS.NativePlus2": "Native + 2",
|
||||
"ACKS.NativePlus3": "Native + 3",
|
||||
|
||||
"OSE.NPCReaction": "NPC Reaction",
|
||||
"OSE.RetainersMax": "#Retainers",
|
||||
"ACKS.NPCReaction": "NPC Reaction",
|
||||
"ACKS.RetainersMax": "#Retainers",
|
||||
|
||||
"OSE.category.saves": "Saves",
|
||||
"OSE.category.attributes": "Attributes",
|
||||
"OSE.category.inventory": "Inventory",
|
||||
"OSE.category.abilities": "Abilities",
|
||||
"OSE.category.spells": "Spells",
|
||||
"OSE.category.notes": "Notes",
|
||||
"OSE.category.languages": "Languages",
|
||||
"OSE.category.description": "Description",
|
||||
"OSE.category.equipment": "Equipment",
|
||||
"ACKS.category.saves": "Saves",
|
||||
"ACKS.category.attributes": "Attributes",
|
||||
"ACKS.category.inventory": "Inventory",
|
||||
"ACKS.category.abilities": "Abilities",
|
||||
"ACKS.category.spells": "Spells",
|
||||
"ACKS.category.notes": "Notes",
|
||||
"ACKS.category.languages": "Languages",
|
||||
"ACKS.category.description": "Description",
|
||||
"ACKS.category.equipment": "Equipment",
|
||||
|
||||
"OSE.Setting.Initiative": "Initiative",
|
||||
"OSE.Setting.InitiativeHint": "Grouped or individual initiative.",
|
||||
"OSE.Setting.InitiativeIndividual": "Individual initiative",
|
||||
"OSE.Setting.InitiativeGroup": "Grouped Initiative",
|
||||
"OSE.Setting.RerollInitiative": "Initiative persistence",
|
||||
"OSE.Setting.RerollInitiativeHint": "Keeps, resets or rerolls initiative each round",
|
||||
"OSE.Setting.InitiativeKeep": "Keep for each round",
|
||||
"OSE.Setting.InitiativeReroll": "Reroll each round",
|
||||
"OSE.Setting.InitiativeReset": "Reset each round",
|
||||
"OSE.Setting.AscendingAC": "Ascending Armor Class",
|
||||
"OSE.Setting.AscendingACHint": "The more the better",
|
||||
"OSE.Setting.Morale": "Enable monsters Morale Rating",
|
||||
"OSE.Setting.MoraleHint": "Morale Rating is shown on monster sheets",
|
||||
"OSE.Setting.Encumbrance": "Encumbrance",
|
||||
"OSE.Setting.EncumbranceHint": "Choose the way encumbrance is calculated",
|
||||
"OSE.Setting.EncumbranceDisabled": "Disabled",
|
||||
"OSE.Setting.EncumbranceBasic": "Basic",
|
||||
"OSE.Setting.EncumbranceDetailed": "Detailed",
|
||||
"OSE.Setting.EncumbranceComplete": "Complete",
|
||||
"OSE.Setting.MovementAuto": "Calculate Movement",
|
||||
"OSE.Setting.SignificantTreasure": "Significant Treasure Weight",
|
||||
"OSE.Setting.SignificantTreasureHint": "Weight at which treasure will reduce the movement, only useful for basic encumbrance",
|
||||
"ACKS.Setting.Initiative": "Initiative",
|
||||
"ACKS.Setting.InitiativeHint": "Grouped or individual initiative.",
|
||||
"ACKS.Setting.InitiativeIndividual": "Individual initiative",
|
||||
"ACKS.Setting.InitiativeGroup": "Grouped Initiative",
|
||||
"ACKS.Setting.RerollInitiative": "Initiative persistence",
|
||||
"ACKS.Setting.RerollInitiativeHint": "Keeps, resets or rerolls initiative each round",
|
||||
"ACKS.Setting.InitiativeKeep": "Keep for each round",
|
||||
"ACKS.Setting.InitiativeReroll": "Reroll each round",
|
||||
"ACKS.Setting.InitiativeReset": "Reset each round",
|
||||
"ACKS.Setting.AscendingAC": "Ascending Armor Class",
|
||||
"ACKS.Setting.AscendingACHint": "The more the better",
|
||||
"ACKS.Setting.Morale": "Enable monsters Morale Rating",
|
||||
"ACKS.Setting.MoraleHint": "Morale Rating is shown on monster sheets",
|
||||
"ACKS.Setting.Encumbrance": "Encumbrance",
|
||||
"ACKS.Setting.EncumbranceHint": "Choose the way encumbrance is calculated",
|
||||
"ACKS.Setting.EncumbranceDisabled": "Disabled",
|
||||
"ACKS.Setting.EncumbranceBasic": "Basic",
|
||||
"ACKS.Setting.EncumbranceDetailed": "Detailed",
|
||||
"ACKS.Setting.EncumbranceComplete": "Complete",
|
||||
"ACKS.Setting.MovementAuto": "Calculate Movement",
|
||||
"ACKS.Setting.SignificantTreasure": "Significant Treasure Weight",
|
||||
"ACKS.Setting.SignificantTreasureHint": "Weight at which treasure will reduce the movement, only useful for basic encumbrance",
|
||||
|
||||
"OSE.items.Equip": "Equip",
|
||||
"OSE.items.Unequip": "Unequip",
|
||||
"OSE.items.Misc": "Misc",
|
||||
"OSE.items.Weapons": "Weapons",
|
||||
"OSE.items.Treasure": "Treasure",
|
||||
"OSE.items.Armors": "Armors",
|
||||
"OSE.items.Weight": "Wgt.",
|
||||
"OSE.items.Qualities": "Qualities",
|
||||
"OSE.items.Notes": "Notes",
|
||||
"OSE.items.Cost": "Cost",
|
||||
"OSE.items.Quantity": "Qt.",
|
||||
"OSE.items.Roll": "Roll",
|
||||
"OSE.items.BlindRoll": "Blind",
|
||||
"OSE.items.RollTarget": "Target",
|
||||
"OSE.items.RollType": "Type",
|
||||
"OSE.items.Damage": "Damage",
|
||||
"OSE.items.ArmorAC": "AC",
|
||||
"OSE.items.ArmorAAC": "AAC",
|
||||
"OSE.items.Bonus": "Bonus",
|
||||
"OSE.items.AtkBonus": "Attack Bonus",
|
||||
"OSE.items.roundAttacks": "Attacks Spent this Round",
|
||||
"OSE.items.roundAttacksMax": "Maximum Attacks per Round",
|
||||
"OSE.items.resetAttacks": "Reset all Attacks per Round",
|
||||
"OSE.items.hasShield": "Has a Shield bonus",
|
||||
"OSE.items.typeTag": "Type a comma separated list of tag e.g 'Melee,Missile (5’–10’ / 11’–20’ / 21’–30’)' and press ENTER",
|
||||
"OSE.items.enterTag": "Tags",
|
||||
"OSE.items.pattern": "Attack pattern marker",
|
||||
"ACKS.items.Equip": "Equip",
|
||||
"ACKS.items.Unequip": "Unequip",
|
||||
"ACKS.items.Misc": "Misc",
|
||||
"ACKS.items.Weapons": "Weapons",
|
||||
"ACKS.items.Treasure": "Treasure",
|
||||
"ACKS.items.Armors": "Armors",
|
||||
"ACKS.items.Weight": "Wgt.",
|
||||
"ACKS.items.Qualities": "Qualities",
|
||||
"ACKS.items.Notes": "Notes",
|
||||
"ACKS.items.Cost": "Cost",
|
||||
"ACKS.items.Quantity": "Qt.",
|
||||
"ACKS.items.Roll": "Roll",
|
||||
"ACKS.items.BlindRoll": "Blind",
|
||||
"ACKS.items.RollTarget": "Target",
|
||||
"ACKS.items.RollType": "Type",
|
||||
"ACKS.items.Damage": "Damage",
|
||||
"ACKS.items.ArmorAC": "AC",
|
||||
"ACKS.items.ArmorAAC": "AAC",
|
||||
"ACKS.items.Bonus": "Bonus",
|
||||
"ACKS.items.AtkBonus": "Attack Bonus",
|
||||
"ACKS.items.roundAttacks": "Attacks Spent this Round",
|
||||
"ACKS.items.roundAttacksMax": "Maximum Attacks per Round",
|
||||
"ACKS.items.resetAttacks": "Reset all Attacks per Round",
|
||||
"ACKS.items.hasShield": "Has a Shield bonus",
|
||||
"ACKS.items.typeTag": "Type a comma separated list of tag e.g 'Melee,Missile (5’–10’ / 11’–20’ / 21’–30’)' and press ENTER",
|
||||
"ACKS.items.enterTag": "Tags",
|
||||
"ACKS.items.pattern": "Attack pattern marker",
|
||||
|
||||
"OSE.items.Range": "Range",
|
||||
"OSE.items.Melee": "Melee",
|
||||
"OSE.items.Missile": "Missile",
|
||||
"OSE.items.Slow": "Slow",
|
||||
"OSE.items.TwoHanded": "Two-handed",
|
||||
"OSE.items.Blunt": "Blunt",
|
||||
"OSE.items.Brace": "Brace",
|
||||
"OSE.items.Splash": "Splash weapon",
|
||||
"OSE.items.Reload": "Reload",
|
||||
"OSE.items.Charge": "Charge",
|
||||
"ACKS.items.Range": "Range",
|
||||
"ACKS.items.Melee": "Melee",
|
||||
"ACKS.items.Missile": "Missile",
|
||||
"ACKS.items.Slow": "Slow",
|
||||
"ACKS.items.TwoHanded": "Two-handed",
|
||||
"ACKS.items.Blunt": "Blunt",
|
||||
"ACKS.items.Brace": "Brace",
|
||||
"ACKS.items.Splash": "Splash weapon",
|
||||
"ACKS.items.Reload": "Reload",
|
||||
"ACKS.items.Charge": "Charge",
|
||||
|
||||
"OSE.armor.type": "Armor Type",
|
||||
"OSE.armor.unarmored": "Unarmored",
|
||||
"OSE.armor.light": "Light",
|
||||
"OSE.armor.heavy": "Heavy",
|
||||
"OSE.armor.shield": "Shield",
|
||||
"ACKS.armor.type": "Armor Type",
|
||||
"ACKS.armor.unarmored": "Unarmored",
|
||||
"ACKS.armor.light": "Light",
|
||||
"ACKS.armor.heavy": "Heavy",
|
||||
"ACKS.armor.shield": "Shield",
|
||||
|
||||
"OSE.spells.spend": "{speaker} is casting {name}!",
|
||||
"OSE.spells.Memorized": "Memorized",
|
||||
"OSE.spells.Cast": "Cast",
|
||||
"OSE.spells.Range": "Range",
|
||||
"OSE.spells.Slots": "Slots",
|
||||
"OSE.spells.Class": "Class",
|
||||
"OSE.spells.Duration": "Duration",
|
||||
"OSE.spells.Level": "Level",
|
||||
"OSE.spells.Save": "Save",
|
||||
"OSE.spells.ResetSlots": "Reset Spell slots",
|
||||
"ACKS.spells.spend": "{speaker} is casting {name}!",
|
||||
"ACKS.spells.Memorized": "Memorized",
|
||||
"ACKS.spells.Cast": "Cast",
|
||||
"ACKS.spells.Range": "Range",
|
||||
"ACKS.spells.Slots": "Slots",
|
||||
"ACKS.spells.Class": "Class",
|
||||
"ACKS.spells.Duration": "Duration",
|
||||
"ACKS.spells.Level": "Level",
|
||||
"ACKS.spells.Save": "Save",
|
||||
"ACKS.spells.ResetSlots": "Reset Spell slots",
|
||||
|
||||
"OSE.abilities.Requirements": "Requirements",
|
||||
"ACKS.abilities.Requirements": "Requirements",
|
||||
|
||||
"OSE.exploration.ld.long": "Listen at Door",
|
||||
"OSE.exploration.ld.short": "Listen Door",
|
||||
"OSE.exploration.ld.abrev": "LD",
|
||||
"OSE.exploration.od.long": "Open Stuck Door",
|
||||
"OSE.exploration.od.short": "Open Door",
|
||||
"OSE.exploration.od.abrev": "OD",
|
||||
"OSE.exploration.sd.long": "Find Secret Door",
|
||||
"OSE.exploration.sd.short": "Secret Door",
|
||||
"OSE.exploration.sd.abrev": "SD",
|
||||
"OSE.exploration.ft.long": "Find Room Trap",
|
||||
"OSE.exploration.ft.short": "Find Trap",
|
||||
"OSE.exploration.ft.abrev": "FT",
|
||||
"ACKS.exploration.ld.long": "Listen at Door",
|
||||
"ACKS.exploration.ld.short": "Listen Door",
|
||||
"ACKS.exploration.ld.abrev": "LD",
|
||||
"ACKS.exploration.od.long": "Open Stuck Door",
|
||||
"ACKS.exploration.od.short": "Open Door",
|
||||
"ACKS.exploration.od.abrev": "OD",
|
||||
"ACKS.exploration.sd.long": "Find Secret Door",
|
||||
"ACKS.exploration.sd.short": "Secret Door",
|
||||
"ACKS.exploration.sd.abrev": "SD",
|
||||
"ACKS.exploration.ft.long": "Find Room Trap",
|
||||
"ACKS.exploration.ft.short": "Find Trap",
|
||||
"ACKS.exploration.ft.abrev": "FT",
|
||||
|
||||
"OSE.messages.GetExperience": "{name} gained {value} experience points!",
|
||||
"OSE.messages.AttackSuccess": "<b>Hits AC {result}!</b> ({bonus})",
|
||||
"OSE.messages.AttackAscendingSuccess": "<b>Hits AC {result}!</b>",
|
||||
"OSE.messages.AttackFailure": "<b>Attack fails</b> ({bonus})",
|
||||
"OSE.messages.AttackAscendingFailure": "<b>Attack fails</b>",
|
||||
"OSE.messages.InflictsDamage": "Inflicts damage!",
|
||||
"OSE.messages.applyDamage": "Apply Damage",
|
||||
"OSE.messages.applyHealing": "Apply Healing",
|
||||
"ACKS.messages.GetExperience": "{name} gained {value} experience points!",
|
||||
"ACKS.messages.AttackSuccess": "<b>Hits AC {result}!</b> ({bonus})",
|
||||
"ACKS.messages.AttackAscendingSuccess": "<b>Hits AC {result}!</b>",
|
||||
"ACKS.messages.AttackFailure": "<b>Attack hits AC {result} and misses</b> ({bonus})",
|
||||
"ACKS.messages.AttackAscendingFailure": "<b>Attack hits AC {result} and misses</b>",
|
||||
"ACKS.messages.InflictsDamage": "Inflicts damage!",
|
||||
"ACKS.messages.applyDamage": "Apply Damage",
|
||||
"ACKS.messages.applyHealing": "Apply Healing",
|
||||
|
||||
"OSE.colors.green": "Green",
|
||||
"OSE.colors.red": "Red",
|
||||
"OSE.colors.yellow": "Yellow",
|
||||
"OSE.colors.purple": "Purple",
|
||||
"OSE.colors.blue": "Blue",
|
||||
"OSE.colors.orange": "Orange",
|
||||
"OSE.colors.white": "White",
|
||||
"ACKS.colors.green": "Green",
|
||||
"ACKS.colors.red": "Red",
|
||||
"ACKS.colors.yellow": "Yellow",
|
||||
"ACKS.colors.purple": "Purple",
|
||||
"ACKS.colors.blue": "Blue",
|
||||
"ACKS.colors.orange": "Orange",
|
||||
"ACKS.colors.white": "White",
|
||||
|
||||
"OSE.reaction.check": "Reaction Check",
|
||||
"OSE.reaction.Hostile": "{name} is Hostile",
|
||||
"OSE.reaction.Unfriendly": "{name} is Unfriendly",
|
||||
"OSE.reaction.Neutral": "{name} is Neutral",
|
||||
"OSE.reaction.Indifferent": "{name} is Indifferent",
|
||||
"OSE.reaction.Friendly": "{name} is Friendly"
|
||||
"ACKS.reaction.check": "Reaction Check",
|
||||
"ACKS.reaction.Hostile": "{name} is Hostile",
|
||||
"ACKS.reaction.Unfriendly": "{name} is Unfriendly",
|
||||
"ACKS.reaction.Neutral": "{name} is Neutral",
|
||||
"ACKS.reaction.Indifferent": "{name} is Indifferent",
|
||||
"ACKS.reaction.Friendly": "{name} is Friendly"
|
||||
}
|
||||
|
|
|
|||
432
src/lang/es.json
432
src/lang/es.json
|
|
@ -1,241 +1,241 @@
|
|||
{
|
||||
"OSE.Edit": "Editar",
|
||||
"OSE.Delete": "Borrar",
|
||||
"OSE.Show": "Ver",
|
||||
"OSE.Add": "Añadir",
|
||||
"OSE.Ok": "Ok",
|
||||
"OSE.Reset": "Reinciar",
|
||||
"OSE.Cancel": "Cancelar",
|
||||
"OSE.Roll": "Tirada",
|
||||
"OSE.Success": "Éxito",
|
||||
"OSE.Failure": "Fallo",
|
||||
"ACKS.Edit": "Editar",
|
||||
"ACKS.Delete": "Borrar",
|
||||
"ACKS.Show": "Ver",
|
||||
"ACKS.Add": "Añadir",
|
||||
"ACKS.Ok": "Ok",
|
||||
"ACKS.Reset": "Reinciar",
|
||||
"ACKS.Cancel": "Cancelar",
|
||||
"ACKS.Roll": "Tirada",
|
||||
"ACKS.Success": "Éxito",
|
||||
"ACKS.Failure": "Fallo",
|
||||
|
||||
"OSE.dialog.tweaks": "Ajustes",
|
||||
"OSE.dialog.partysheet": "Party Sheet",
|
||||
"ACKS.dialog.tweaks": "Ajustes",
|
||||
"ACKS.dialog.partysheet": "Party Sheet",
|
||||
|
||||
"OSE.Formula": "Formula",
|
||||
"OSE.SitMod": "Mod. Situational",
|
||||
"OSE.Modifier": "Modificador",
|
||||
"OSE.Modifiers": "Modificadors",
|
||||
"OSE.RollMode": "Modo Tirada",
|
||||
"OSE.RollExample": "ej. +1d4",
|
||||
"ACKS.Formula": "Formula",
|
||||
"ACKS.SitMod": "Mod. Situational",
|
||||
"ACKS.Modifier": "Modificador",
|
||||
"ACKS.Modifiers": "Modificadors",
|
||||
"ACKS.RollMode": "Modo Tirada",
|
||||
"ACKS.RollExample": "ej. +1d4",
|
||||
|
||||
"OSE.roll.formula": "{label} tirada",
|
||||
"OSE.roll.appearing": "Aparición",
|
||||
"OSE.roll.morale": "Moral tirada",
|
||||
"OSE.roll.hd": "Tirada de Puntos de Golpe",
|
||||
"OSE.roll.attacksWith": "Ataca con {name}",
|
||||
"OSE.roll.attacks": "{name} ataca !",
|
||||
"OSE.roll.save": "Salv. {save}",
|
||||
"OSE.roll.details.save": "Tira 1d20 >= {save} para éxito",
|
||||
"OSE.roll.attribute": "Prueba de {attribute}",
|
||||
"OSE.roll.details.attribute": "Tira 1d20 <= {score} para éxito",
|
||||
"OSE.roll.exploration": "Prueba de {exploration}",
|
||||
"OSE.roll.details.exploration": "Tirar 1d6 <= {expl} para éxito",
|
||||
"OSE.roll.reaction": "Tirada de Reacción",
|
||||
"ACKS.roll.formula": "{label} tirada",
|
||||
"ACKS.roll.appearing": "Aparición",
|
||||
"ACKS.roll.morale": "Moral tirada",
|
||||
"ACKS.roll.hd": "Tirada de Puntos de Golpe",
|
||||
"ACKS.roll.attacksWith": "Ataca con {name}",
|
||||
"ACKS.roll.attacks": "{name} ataca !",
|
||||
"ACKS.roll.save": "Salv. {save}",
|
||||
"ACKS.roll.details.save": "Tira 1d20 >= {save} para éxito",
|
||||
"ACKS.roll.attribute": "Prueba de {attribute}",
|
||||
"ACKS.roll.details.attribute": "Tira 1d20 <= {score} para éxito",
|
||||
"ACKS.roll.exploration": "Prueba de {exploration}",
|
||||
"ACKS.roll.details.exploration": "Tirar 1d6 <= {expl} para éxito",
|
||||
"ACKS.roll.reaction": "Tirada de Reacción",
|
||||
|
||||
"OSE.table.treasure.roll": "Roll Treasure",
|
||||
"ACKS.table.treasure.roll": "Roll Treasure",
|
||||
|
||||
"OSE.details.name": "Nombre",
|
||||
"OSE.details.class": "Clase",
|
||||
"OSE.details.title": "Titulo",
|
||||
"OSE.details.alignment": "Alineamiento",
|
||||
"OSE.details.level": "Nivel",
|
||||
"OSE.details.experience.base": "Experiencia",
|
||||
"OSE.details.experience.bonus": "Bonus Experiencia",
|
||||
"OSE.details.experience.next": "Siguiente nivel",
|
||||
"OSE.details.experience.award": "Premio EXP",
|
||||
"OSE.details.treasure": "Tipo de Tesoro",
|
||||
"OSE.details.treasureTable": "Tabla",
|
||||
"OSE.details.treasureTableHint": "Arrastra una tabla aquí para tirar el tesoro del monstruo",
|
||||
"OSE.details.morale": "Moral",
|
||||
"OSE.details.reaction": "Reacción",
|
||||
"OSE.details.appearing": "NA",
|
||||
"ACKS.details.name": "Nombre",
|
||||
"ACKS.details.class": "Clase",
|
||||
"ACKS.details.title": "Titulo",
|
||||
"ACKS.details.alignment": "Alineamiento",
|
||||
"ACKS.details.level": "Nivel",
|
||||
"ACKS.details.experience.base": "Experiencia",
|
||||
"ACKS.details.experience.bonus": "Bonus Experiencia",
|
||||
"ACKS.details.experience.next": "Siguiente nivel",
|
||||
"ACKS.details.experience.award": "Premio EXP",
|
||||
"ACKS.details.treasure": "Tipo de Tesoro",
|
||||
"ACKS.details.treasureTable": "Tabla",
|
||||
"ACKS.details.treasureTableHint": "Arrastra una tabla aquí para tirar el tesoro del monstruo",
|
||||
"ACKS.details.morale": "Moral",
|
||||
"ACKS.details.reaction": "Reacción",
|
||||
"ACKS.details.appearing": "NA",
|
||||
|
||||
"OSE.Attack": "Ataque",
|
||||
"OSE.Encumbrance": "Carga",
|
||||
"ACKS.Attack": "Ataque",
|
||||
"ACKS.Encumbrance": "Carga",
|
||||
|
||||
"OSE.Retainer": "Seguidores",
|
||||
"OSE.RetainerWage": "Salario",
|
||||
"OSE.RetainerUpkeep": "Mantenimiento",
|
||||
"OSE.Loyalty": "Puntuación Lealtad",
|
||||
"OSE.LoyaltyShort": "PL",
|
||||
"ACKS.Retainer": "Seguidores",
|
||||
"ACKS.RetainerWage": "Salario",
|
||||
"ACKS.RetainerUpkeep": "Mantenimiento",
|
||||
"ACKS.Loyalty": "Puntuación Lealtad",
|
||||
"ACKS.LoyaltyShort": "PL",
|
||||
|
||||
"OSE.scores.str.long": "Fuerza",
|
||||
"OSE.scores.str.short": "FUE",
|
||||
"OSE.scores.wis.long": "Sabiduría",
|
||||
"OSE.scores.wis.short": "SAB",
|
||||
"OSE.scores.int.long": "Inteligencia",
|
||||
"OSE.scores.int.short": "INT",
|
||||
"OSE.scores.dex.long": "Destreza",
|
||||
"OSE.scores.dex.short": "DES",
|
||||
"OSE.scores.con.long": "Constitucion",
|
||||
"OSE.scores.con.short": "CON",
|
||||
"OSE.scores.cha.long": "Carisma",
|
||||
"OSE.scores.cha.short": "CAR",
|
||||
"ACKS.scores.str.long": "Fuerza",
|
||||
"ACKS.scores.str.short": "FUE",
|
||||
"ACKS.scores.wis.long": "Sabiduría",
|
||||
"ACKS.scores.wis.short": "SAB",
|
||||
"ACKS.scores.int.long": "Inteligencia",
|
||||
"ACKS.scores.int.short": "INT",
|
||||
"ACKS.scores.dex.long": "Destreza",
|
||||
"ACKS.scores.dex.short": "DES",
|
||||
"ACKS.scores.con.long": "Constitucion",
|
||||
"ACKS.scores.con.short": "CON",
|
||||
"ACKS.scores.cha.long": "Carisma",
|
||||
"ACKS.scores.cha.short": "CAR",
|
||||
|
||||
"OSE.saves.death.short": "M",
|
||||
"OSE.saves.death.long": "Veneno o Muerte",
|
||||
"OSE.saves.wand.short": "V",
|
||||
"OSE.saves.wand.long": "Varitas mágicas",
|
||||
"OSE.saves.paralysis.short": "P",
|
||||
"OSE.saves.paralysis.long": "Petrificación o Parálisis",
|
||||
"OSE.saves.breath.short": "A",
|
||||
"OSE.saves.breath.long": "Aliento de Dragón",
|
||||
"OSE.saves.spell.short": "C",
|
||||
"OSE.saves.spell.long": "Sort. Varas Báculos",
|
||||
"OSE.saves.magic.long": "Bonificación vs Magia",
|
||||
"ACKS.saves.death.short": "M",
|
||||
"ACKS.saves.death.long": "Veneno o Muerte",
|
||||
"ACKS.saves.wand.short": "V",
|
||||
"ACKS.saves.wand.long": "Varitas mágicas",
|
||||
"ACKS.saves.paralysis.short": "P",
|
||||
"ACKS.saves.paralysis.long": "Petrificación o Parálisis",
|
||||
"ACKS.saves.breath.short": "A",
|
||||
"ACKS.saves.breath.long": "Aliento de Dragón",
|
||||
"ACKS.saves.spell.short": "C",
|
||||
"ACKS.saves.spell.long": "Sort. Varas Báculos",
|
||||
"ACKS.saves.magic.long": "Bonificación vs Magia",
|
||||
|
||||
"OSE.Health": "Puntos de Golpes",
|
||||
"OSE.HealthMax": "Puntos de Golpes Máximos",
|
||||
"OSE.HealthShort": "PG",
|
||||
"OSE.HitDice": "Puntos de Golpe",
|
||||
"OSE.HitDiceShort": "DG",
|
||||
"ACKS.Health": "Puntos de Golpes",
|
||||
"ACKS.HealthMax": "Puntos de Golpes Máximos",
|
||||
"ACKS.HealthShort": "PG",
|
||||
"ACKS.HitDice": "Puntos de Golpe",
|
||||
"ACKS.HitDiceShort": "DG",
|
||||
|
||||
"OSE.movement.base": "Movimiento",
|
||||
"OSE.movement.short": "MV",
|
||||
"OSE.movement.details": "Detalles de Movimiento",
|
||||
"OSE.movement.encounter.long": "Combate",
|
||||
"OSE.movement.encounter.short": "Co",
|
||||
"OSE.movement.overland.long": "Base",
|
||||
"OSE.movement.overland.short": "Ba",
|
||||
"OSE.movement.exploration.short": "Ex",
|
||||
"OSE.movement.exploration.long": "Exploration Movement Rate",
|
||||
"ACKS.movement.base": "Movimiento",
|
||||
"ACKS.movement.short": "MV",
|
||||
"ACKS.movement.details": "Detalles de Movimiento",
|
||||
"ACKS.movement.encounter.long": "Combate",
|
||||
"ACKS.movement.encounter.short": "Co",
|
||||
"ACKS.movement.overland.long": "Base",
|
||||
"ACKS.movement.overland.short": "Ba",
|
||||
"ACKS.movement.exploration.short": "Ex",
|
||||
"ACKS.movement.exploration.long": "Exploration Movement Rate",
|
||||
|
||||
"OSE.ArmorClassNaked": "Sin Armadura",
|
||||
"OSE.ArmorClass": "Clase de Armadura",
|
||||
"OSE.ArmorClassShort": "CA",
|
||||
"OSE.AscArmorClassShort": "CAA",
|
||||
"OSE.Thac0": "GAC0",
|
||||
"OSE.ABShort": "BA",
|
||||
"OSE.AB": "Bono Ataque",
|
||||
"OSE.MeleeShort": "CC",
|
||||
"OSE.Melee": "Cuerpo a Cuerpo",
|
||||
"OSE.MeleeBonus": "Bono CC",
|
||||
"OSE.MissileShort": "DIS",
|
||||
"OSE.Missile": "Distancia",
|
||||
"OSE.MissileBonus": "Bono Distancia",
|
||||
"OSE.Initiative": "Iniciativa",
|
||||
"OSE.InitiativeBonus": "Bonificador Iniciativa",
|
||||
"OSE.InitiativeShort": "INI",
|
||||
"OSE.Attacks": "Ataques usables por Round",
|
||||
"OSE.AttacksShort": "ATQ",
|
||||
"OSE.Damage": "Daño",
|
||||
"OSE.Spellcaster": "Lanzador Conjuros",
|
||||
"ACKS.ArmorClassNaked": "Sin Armadura",
|
||||
"ACKS.ArmorClass": "Clase de Armadura",
|
||||
"ACKS.ArmorClassShort": "CA",
|
||||
"ACKS.AscArmorClassShort": "CAA",
|
||||
"ACKS.Thac0": "GAC0",
|
||||
"ACKS.ABShort": "BA",
|
||||
"ACKS.AB": "Bono Ataque",
|
||||
"ACKS.MeleeShort": "CC",
|
||||
"ACKS.Melee": "Cuerpo a Cuerpo",
|
||||
"ACKS.MeleeBonus": "Bono CC",
|
||||
"ACKS.MissileShort": "DIS",
|
||||
"ACKS.Missile": "Distancia",
|
||||
"ACKS.MissileBonus": "Bono Distancia",
|
||||
"ACKS.Initiative": "Iniciativa",
|
||||
"ACKS.InitiativeBonus": "Bonificador Iniciativa",
|
||||
"ACKS.InitiativeShort": "INI",
|
||||
"ACKS.Attacks": "Ataques usables por Round",
|
||||
"ACKS.AttacksShort": "ATQ",
|
||||
"ACKS.Damage": "Daño",
|
||||
"ACKS.Spellcaster": "Lanzador Conjuros",
|
||||
|
||||
"OSE.Language": "Lenguaje",
|
||||
"OSE.SpokenLanguages": "Lenguajes Hablados",
|
||||
"OSE.Literacy": "Leer/Esc.",
|
||||
"OSE.Literate": "Alfabetizado",
|
||||
"OSE.LiteracyBasic": "Basico",
|
||||
"OSE.Illiterate": "Analfabeto",
|
||||
"OSE.NPCReaction": "Reacción NPC",
|
||||
"OSE.RetainersMax": "#Seguidores",
|
||||
"ACKS.Language": "Lenguaje",
|
||||
"ACKS.SpokenLanguages": "Lenguajes Hablados",
|
||||
"ACKS.Literacy": "Leer/Esc.",
|
||||
"ACKS.Literate": "Alfabetizado",
|
||||
"ACKS.LiteracyBasic": "Basico",
|
||||
"ACKS.Illiterate": "Analfabeto",
|
||||
"ACKS.NPCReaction": "Reacción NPC",
|
||||
"ACKS.RetainersMax": "#Seguidores",
|
||||
|
||||
"OSE.category.attributes": "Atributos",
|
||||
"OSE.category.inventory": "Inventario",
|
||||
"OSE.category.abilities": "Habilidades",
|
||||
"OSE.category.spells": "Conjuros",
|
||||
"OSE.category.notes": "Notas",
|
||||
"OSE.category.languages": "Lenguajes",
|
||||
"OSE.category.description": "Descripción",
|
||||
"OSE.category.equipment": "Equipo",
|
||||
"ACKS.category.attributes": "Atributos",
|
||||
"ACKS.category.inventory": "Inventario",
|
||||
"ACKS.category.abilities": "Habilidades",
|
||||
"ACKS.category.spells": "Conjuros",
|
||||
"ACKS.category.notes": "Notas",
|
||||
"ACKS.category.languages": "Lenguajes",
|
||||
"ACKS.category.description": "Descripción",
|
||||
"ACKS.category.equipment": "Equipo",
|
||||
|
||||
"OSE.Setting.IndividualInit": "Iniciativa Individual",
|
||||
"OSE.Setting.IndividualInitHint": "La iniciativa se lanza por cada actor y se modifica por su puntuación de DES",
|
||||
"OSE.Setting.AscendingAC": "Categoria de Armadura Ascendente",
|
||||
"OSE.Setting.AscendingACHint": "En cuanto más mejor",
|
||||
"OSE.Setting.Morale": "Activar puntuación de Moral para monstruos",
|
||||
"OSE.Setting.MoraleHint": "La puntuación de moral se ve en las hojas de monstruo",
|
||||
"OSE.Setting.Encumbrance": "Carga",
|
||||
"OSE.Setting.EncumbranceHint": "Elige como se calcula la Carga",
|
||||
"OSE.Setting.EncumbranceDisabled": "Disabled",
|
||||
"OSE.Setting.EncumbranceBasic": "Básica",
|
||||
"OSE.Setting.EncumbranceDetailed": "Detallada",
|
||||
"OSE.Setting.MovementAuto": "Calcular Movimiento",
|
||||
"OSE.Setting.SignificantTreasure": "Peso de tesoro significativo",
|
||||
"OSE.Setting.SignificantTreasureHint": "Peso con el que el tesoro reducirá el movimiento, solo útil para el cálculo básico",
|
||||
"ACKS.Setting.IndividualInit": "Iniciativa Individual",
|
||||
"ACKS.Setting.IndividualInitHint": "La iniciativa se lanza por cada actor y se modifica por su puntuación de DES",
|
||||
"ACKS.Setting.AscendingAC": "Categoria de Armadura Ascendente",
|
||||
"ACKS.Setting.AscendingACHint": "En cuanto más mejor",
|
||||
"ACKS.Setting.Morale": "Activar puntuación de Moral para monstruos",
|
||||
"ACKS.Setting.MoraleHint": "La puntuación de moral se ve en las hojas de monstruo",
|
||||
"ACKS.Setting.Encumbrance": "Carga",
|
||||
"ACKS.Setting.EncumbranceHint": "Elige como se calcula la Carga",
|
||||
"ACKS.Setting.EncumbranceDisabled": "Disabled",
|
||||
"ACKS.Setting.EncumbranceBasic": "Básica",
|
||||
"ACKS.Setting.EncumbranceDetailed": "Detallada",
|
||||
"ACKS.Setting.MovementAuto": "Calcular Movimiento",
|
||||
"ACKS.Setting.SignificantTreasure": "Peso de tesoro significativo",
|
||||
"ACKS.Setting.SignificantTreasureHint": "Peso con el que el tesoro reducirá el movimiento, solo útil para el cálculo básico",
|
||||
|
||||
"OSE.items.Equip": "Equipar",
|
||||
"OSE.items.Unequip": "Desequipar",
|
||||
"OSE.items.Misc": "Misc",
|
||||
"OSE.items.Weapons": "Armas",
|
||||
"OSE.items.Treasure": "Tesoro",
|
||||
"OSE.items.Armors": "Armaduras",
|
||||
"OSE.items.Weight": "Peso",
|
||||
"OSE.items.Qualities": "Cualidades",
|
||||
"OSE.items.Notes": "Notas",
|
||||
"OSE.items.Cost": "Coste",
|
||||
"OSE.items.Quantity": "Qt.",
|
||||
"OSE.items.Roll": "Tirada",
|
||||
"OSE.items.BlindRoll": "Ciega",
|
||||
"OSE.items.RollTarget": "Mira",
|
||||
"OSE.items.RollType": "Tipo",
|
||||
"OSE.items.Damage": "Daño",
|
||||
"OSE.items.Melee": "CC",
|
||||
"OSE.items.Missile": "Distancia",
|
||||
"OSE.items.Slow": "Slow",
|
||||
"OSE.items.ArmorAC": "CA",
|
||||
"OSE.items.ArmorAAC": "CAA",
|
||||
"OSE.items.Bonus": "Bonus",
|
||||
"OSE.items.roundAttacks": "Ataques usados este Round",
|
||||
"OSE.items.roundAttacksMax": "Máximo Ataques por Round",
|
||||
"OSE.items.resetAttacks": "Reiniciar Ataques por Round",
|
||||
"OSE.items.hasShield": "Tiene un bono de Escudo",
|
||||
"OSE.items.typeTag": "Escriba una lista de etiquetas separadas por comas, por ejemplo 'Melee, Misile (5'-10' / 11'-20' / 21'-30')'",
|
||||
"ACKS.items.Equip": "Equipar",
|
||||
"ACKS.items.Unequip": "Desequipar",
|
||||
"ACKS.items.Misc": "Misc",
|
||||
"ACKS.items.Weapons": "Armas",
|
||||
"ACKS.items.Treasure": "Tesoro",
|
||||
"ACKS.items.Armors": "Armaduras",
|
||||
"ACKS.items.Weight": "Peso",
|
||||
"ACKS.items.Qualities": "Cualidades",
|
||||
"ACKS.items.Notes": "Notas",
|
||||
"ACKS.items.Cost": "Coste",
|
||||
"ACKS.items.Quantity": "Qt.",
|
||||
"ACKS.items.Roll": "Tirada",
|
||||
"ACKS.items.BlindRoll": "Ciega",
|
||||
"ACKS.items.RollTarget": "Mira",
|
||||
"ACKS.items.RollType": "Tipo",
|
||||
"ACKS.items.Damage": "Daño",
|
||||
"ACKS.items.Melee": "CC",
|
||||
"ACKS.items.Missile": "Distancia",
|
||||
"ACKS.items.Slow": "Slow",
|
||||
"ACKS.items.ArmorAC": "CA",
|
||||
"ACKS.items.ArmorAAC": "CAA",
|
||||
"ACKS.items.Bonus": "Bonus",
|
||||
"ACKS.items.roundAttacks": "Ataques usados este Round",
|
||||
"ACKS.items.roundAttacksMax": "Máximo Ataques por Round",
|
||||
"ACKS.items.resetAttacks": "Reiniciar Ataques por Round",
|
||||
"ACKS.items.hasShield": "Tiene un bono de Escudo",
|
||||
"ACKS.items.typeTag": "Escriba una lista de etiquetas separadas por comas, por ejemplo 'Melee, Misile (5'-10' / 11'-20' / 21'-30')'",
|
||||
|
||||
"OSE.armor.type": "Tipo Armadura",
|
||||
"OSE.armor.unarmored": "Sin Armadura",
|
||||
"OSE.armor.light": "Ligera",
|
||||
"OSE.armor.heavy": "Pesada",
|
||||
"OSE.armor.shield": "Escudo",
|
||||
"ACKS.armor.type": "Tipo Armadura",
|
||||
"ACKS.armor.unarmored": "Sin Armadura",
|
||||
"ACKS.armor.light": "Ligera",
|
||||
"ACKS.armor.heavy": "Pesada",
|
||||
"ACKS.armor.shield": "Escudo",
|
||||
|
||||
"OSE.spells.spend": "{speaker} esta lanzando {name}!",
|
||||
"OSE.spells.Memorized": "Memorizado",
|
||||
"OSE.spells.Cast": "Lanzar",
|
||||
"OSE.spells.Range": "Alcance",
|
||||
"OSE.spells.Slots": "Espacios",
|
||||
"OSE.spells.Class": "Clase",
|
||||
"OSE.spells.Duration": "Duración",
|
||||
"OSE.spells.Level": "Nivel",
|
||||
"OSE.spells.Save": "Salvación",
|
||||
"OSE.spells.ResetSlots": "Reniciar Espacios de conjuro",
|
||||
"ACKS.spells.spend": "{speaker} esta lanzando {name}!",
|
||||
"ACKS.spells.Memorized": "Memorizado",
|
||||
"ACKS.spells.Cast": "Lanzar",
|
||||
"ACKS.spells.Range": "Alcance",
|
||||
"ACKS.spells.Slots": "Espacios",
|
||||
"ACKS.spells.Class": "Clase",
|
||||
"ACKS.spells.Duration": "Duración",
|
||||
"ACKS.spells.Level": "Nivel",
|
||||
"ACKS.spells.Save": "Salvación",
|
||||
"ACKS.spells.ResetSlots": "Reniciar Espacios de conjuro",
|
||||
|
||||
"OSE.abilities.Requirements": "Requisitos",
|
||||
"ACKS.abilities.Requirements": "Requisitos",
|
||||
|
||||
"OSE.exploration.ld.long": "Escuchar Ruidos",
|
||||
"OSE.exploration.ld.short": "Escuchar Ruidos",
|
||||
"OSE.exploration.ld.abrev": "ER",
|
||||
"OSE.exploration.od.long": "Abrir puertas",
|
||||
"OSE.exploration.od.short": "Abrir puertas",
|
||||
"OSE.exploration.od.abrev": "AP",
|
||||
"OSE.exploration.sd.long": "Detectar puertas secretas",
|
||||
"OSE.exploration.sd.short": "Puertas secretas",
|
||||
"OSE.exploration.sd.abrev": "PS",
|
||||
"OSE.exploration.ft.long": "Detectar trampas y fosos",
|
||||
"OSE.exploration.ft.short": "Detectar trampas",
|
||||
"OSE.exploration.ft.abrev": "DT",
|
||||
"ACKS.exploration.ld.long": "Escuchar Ruidos",
|
||||
"ACKS.exploration.ld.short": "Escuchar Ruidos",
|
||||
"ACKS.exploration.ld.abrev": "ER",
|
||||
"ACKS.exploration.od.long": "Abrir puertas",
|
||||
"ACKS.exploration.od.short": "Abrir puertas",
|
||||
"ACKS.exploration.od.abrev": "AP",
|
||||
"ACKS.exploration.sd.long": "Detectar puertas secretas",
|
||||
"ACKS.exploration.sd.short": "Puertas secretas",
|
||||
"ACKS.exploration.sd.abrev": "PS",
|
||||
"ACKS.exploration.ft.long": "Detectar trampas y fosos",
|
||||
"ACKS.exploration.ft.short": "Detectar trampas",
|
||||
"ACKS.exploration.ft.abrev": "DT",
|
||||
|
||||
"OSE.messages.GetExperience": "{name} ha ganado {value} puntos de experiencia!",
|
||||
"OSE.messages.AttackSuccess": "<b>Golpea CA {result}!</b> ({bonus})",
|
||||
"OSE.messages.AttackAscendingSuccess": "<b>Golpea CA {result}!</b>",
|
||||
"OSE.messages.AttackFailure": "<b>Falla el ataque</b> ({bonus})",
|
||||
"OSE.messages.InflictsDamage": "Inflinge daño!",
|
||||
"OSE.ChatContextDamage": "Aplicar Daño",
|
||||
"OSE.ChatContextHealing": "Aplicar Curación",
|
||||
"ACKS.messages.GetExperience": "{name} ha ganado {value} puntos de experiencia!",
|
||||
"ACKS.messages.AttackSuccess": "<b>Golpea CA {result}!</b> ({bonus})",
|
||||
"ACKS.messages.AttackAscendingSuccess": "<b>Golpea CA {result}!</b>",
|
||||
"ACKS.messages.AttackFailure": "<b>Falla el ataque</b> ({bonus})",
|
||||
"ACKS.messages.InflictsDamage": "Inflinge daño!",
|
||||
"ACKS.ChatContextDamage": "Aplicar Daño",
|
||||
"ACKS.ChatContextHealing": "Aplicar Curación",
|
||||
|
||||
"OSE.colors.green": "Verde",
|
||||
"OSE.colors.red": "Rojo",
|
||||
"OSE.colors.yellow": "Amarillo",
|
||||
"OSE.colors.purple": "Purpura",
|
||||
"OSE.colors.blue": "Azul",
|
||||
"OSE.colors.orange": "Naranja",
|
||||
"OSE.colors.white": "Blanco",
|
||||
"ACKS.colors.green": "Verde",
|
||||
"ACKS.colors.red": "Rojo",
|
||||
"ACKS.colors.yellow": "Amarillo",
|
||||
"ACKS.colors.purple": "Purpura",
|
||||
"ACKS.colors.blue": "Azul",
|
||||
"ACKS.colors.orange": "Naranja",
|
||||
"ACKS.colors.white": "Blanco",
|
||||
|
||||
"OSE.reaction.check": "Tirada de Reacción",
|
||||
"OSE.reaction.Hostile": "{name} es Hostil",
|
||||
"OSE.reaction.Unfriendly": "{name} es Antipático",
|
||||
"OSE.reaction.Neutral": "{name} es Neutral",
|
||||
"OSE.reaction.Indifferent": "{name} es Indifferente",
|
||||
"OSE.reaction.Friendly": "{name} es Amistoso"
|
||||
"ACKS.reaction.check": "Tirada de Reacción",
|
||||
"ACKS.reaction.Hostile": "{name} es Hostil",
|
||||
"ACKS.reaction.Unfriendly": "{name} es Antipático",
|
||||
"ACKS.reaction.Neutral": "{name} es Neutral",
|
||||
"ACKS.reaction.Indifferent": "{name} es Indifferente",
|
||||
"ACKS.reaction.Friendly": "{name} es Amistoso"
|
||||
}
|
||||
|
|
|
|||
500
src/lang/fr.json
500
src/lang/fr.json
|
|
@ -1,279 +1,275 @@
|
|||
{
|
||||
"OSE.Edit": "Modifier",
|
||||
"OSE.Delete": "Supprimer",
|
||||
"OSE.Show": "Montrer",
|
||||
"OSE.Add": "Ajouter",
|
||||
"OSE.Ok": "Ok",
|
||||
"OSE.Update": "Mettre à jour",
|
||||
"OSE.Reset": "Réinitialiser",
|
||||
"OSE.Cancel": "Annuler",
|
||||
"OSE.Roll": "Lancer",
|
||||
"OSE.Success": "Succès",
|
||||
"OSE.Failure": "Échec",
|
||||
"ACKS.Edit": "Modifier",
|
||||
"ACKS.Delete": "Supprimer",
|
||||
"ACKS.Show": "Montrer",
|
||||
"ACKS.Add": "Ajouter",
|
||||
"ACKS.Ok": "Ok",
|
||||
"ACKS.Update": "Mettre à jour",
|
||||
"ACKS.Reset": "Réinitialiser",
|
||||
"ACKS.Cancel": "Annuler",
|
||||
"ACKS.Roll": "Lancer",
|
||||
"ACKS.Success": "Succès",
|
||||
"ACKS.Failure": "Échec",
|
||||
|
||||
"OSE.dialog.tweaks": "Ajuster",
|
||||
"OSE.dialog.partysheet": "Fiche de Groupe",
|
||||
"OSE.dialog.selectActors": "Choisir PJs",
|
||||
"OSE.dialog.dealXP": "Donner XP",
|
||||
"OSE.dialog.generator": "Générateur de personnage",
|
||||
"OSE.dialog.generateSaves": "Générer les Sauvegardes",
|
||||
"OSE.dialog.generateScores": "Générer les Scores",
|
||||
"OSE.dialog.generateScore": "Création: {score} ({count})",
|
||||
"ACKS.dialog.tweaks": "Ajuster",
|
||||
"ACKS.dialog.partysheet": "Fiche de Groupe",
|
||||
"ACKS.dialog.selectActors": "Choisir PJs",
|
||||
"ACKS.dialog.dealXP": "Donner XP",
|
||||
"ACKS.dialog.generator": "Générateur de personnage",
|
||||
"ACKS.dialog.generateSaves": "Générer les Sauvegardes",
|
||||
"ACKS.dialog.generateScores": "Générer les Scores",
|
||||
"ACKS.dialog.generateScore": "Création: {score} ({count})",
|
||||
|
||||
"OSE.Formula": "Formule",
|
||||
"OSE.SitMod": "Mod. de situation",
|
||||
"OSE.Modifier": "Modificateur",
|
||||
"OSE.Modifiers": "Modificateurs",
|
||||
"OSE.RollMode": "Mode de Jet",
|
||||
"OSE.RollExample": "ex. +1d4",
|
||||
"ACKS.Formula": "Formule",
|
||||
"ACKS.SitMod": "Mod. de situation",
|
||||
"ACKS.Modifier": "Modificateur",
|
||||
"ACKS.Modifiers": "Modificateurs",
|
||||
"ACKS.RollMode": "Mode de Jet",
|
||||
"ACKS.RollExample": "ex. +1d4",
|
||||
|
||||
"OSE.roll.formula": "Jet de {label}",
|
||||
"OSE.roll.appearing": "Nombre Apparaissant",
|
||||
"OSE.roll.morale": "Jet de Moral",
|
||||
"OSE.roll.hd": "Lancer de Dé de Vie",
|
||||
"OSE.roll.attacksWith": "Attaque avec {name}",
|
||||
"OSE.roll.attacks": "{name} attaque !",
|
||||
"OSE.roll.save": "Sauv. de {save}",
|
||||
"OSE.roll.details.save": "Lancez 1d20 >= {save} pour réussir",
|
||||
"OSE.roll.attribute": "Jet de {attribute}",
|
||||
"OSE.roll.details.attribute": "Lancez 1d20 <= {score} pour réussir",
|
||||
"OSE.roll.exploration": "Test de {exploration}",
|
||||
"OSE.roll.details.exploration": "Lancez 1d6 <= {expl} pour réussir",
|
||||
"OSE.roll.reaction": "Jet de Réaction",
|
||||
"OSE.roll.initiative": "Le groupe {group} tire son Initiative !",
|
||||
"OSE.roll.individualInit": "{name} tire son Initiative!",
|
||||
"ACKS.roll.formula": "Jet de {label}",
|
||||
"ACKS.roll.appearing": "Nombre Apparaissant",
|
||||
"ACKS.roll.morale": "Jet de Moral",
|
||||
"ACKS.roll.hd": "Lancer de Dé de Vie",
|
||||
"ACKS.roll.attacksWith": "Attaque avec {name}",
|
||||
"ACKS.roll.attacks": "{name} attaque !",
|
||||
"ACKS.roll.save": "Sauv. de {save}",
|
||||
"ACKS.roll.details.save": "Lancez 1d20 >= {save} pour réussir",
|
||||
"ACKS.roll.attribute": "Jet de {attribute}",
|
||||
"ACKS.roll.details.attribute": "Lancez 1d20 <= {score} pour réussir",
|
||||
"ACKS.roll.exploration": "Test de {exploration}",
|
||||
"ACKS.roll.details.exploration": "Lancez 1d6 <= {expl} pour réussir",
|
||||
"ACKS.roll.reaction": "Jet de Réaction",
|
||||
"ACKS.roll.initiative": "Le groupe {group} tire son Initiative !",
|
||||
"ACKS.roll.individualInit": "{name} tire son Initiative!",
|
||||
|
||||
"OSE.table.treasure.roll": "Trésor Aléatoire",
|
||||
"ACKS.table.treasure.roll": "Trésor Aléatoire",
|
||||
|
||||
"OSE.details.name": "Nom",
|
||||
"OSE.details.class": "Classe",
|
||||
"OSE.details.title": "Titre",
|
||||
"OSE.details.alignment": "Alignement",
|
||||
"OSE.details.level": "Niveau",
|
||||
"OSE.details.experience.base": "Expérience",
|
||||
"OSE.details.experience.bonus": "Ajustement d'XP",
|
||||
"OSE.details.experience.next": "Prochain Niveau",
|
||||
"OSE.details.experience.share": "Part d'Expérience",
|
||||
"OSE.details.experience.award": "XP de Récompense",
|
||||
"OSE.details.treasure": "Type de Trésor",
|
||||
"OSE.details.treasureTable": "Table",
|
||||
"OSE.details.treasureTableHint": "Lâchez une Table aléatoire pour la lier",
|
||||
"OSE.details.morale": "Moral",
|
||||
"OSE.details.reaction": "Réaction",
|
||||
"OSE.details.appearing": "NA",
|
||||
"ACKS.details.name": "Nom",
|
||||
"ACKS.details.class": "Classe",
|
||||
"ACKS.details.title": "Titre",
|
||||
"ACKS.details.alignment": "Alignement",
|
||||
"ACKS.details.level": "Niveau",
|
||||
"ACKS.details.experience.base": "Expérience",
|
||||
"ACKS.details.experience.bonus": "Ajustement d'XP",
|
||||
"ACKS.details.experience.next": "Prochain Niveau",
|
||||
"ACKS.details.experience.share": "Part d'Expérience",
|
||||
"ACKS.details.experience.award": "XP de Récompense",
|
||||
"ACKS.details.treasure": "Type de Trésor",
|
||||
"ACKS.details.treasureTable": "Table",
|
||||
"ACKS.details.treasureTableHint": "Lâchez une Table aléatoire pour la lier",
|
||||
"ACKS.details.morale": "Moral",
|
||||
"ACKS.details.reaction": "Réaction",
|
||||
"ACKS.details.appearing": "NA",
|
||||
|
||||
"OSE.Attack": "Attaque",
|
||||
"OSE.Encumbrance": "Encombrement",
|
||||
"ACKS.Attack": "Attaque",
|
||||
"ACKS.Encumbrance": "Encombrement",
|
||||
|
||||
"OSE.Retainer": "Suivant",
|
||||
"OSE.RetainerWage": "Tarif",
|
||||
"OSE.RetainerUpkeep": "Entretien",
|
||||
"OSE.Loyalty": "Loyauté",
|
||||
"OSE.LoyaltyShort": "LOY",
|
||||
"ACKS.Retainer": "Suivant",
|
||||
"ACKS.RetainerWage": "Tarif",
|
||||
"ACKS.RetainerUpkeep": "Entretien",
|
||||
"ACKS.Loyalty": "Loyauté",
|
||||
"ACKS.LoyaltyShort": "LOY",
|
||||
|
||||
"OSE.scores.str.long": "Force",
|
||||
"OSE.scores.str.short": "FOR",
|
||||
"OSE.scores.wis.long": "Sagesse",
|
||||
"OSE.scores.wis.short": "SAG",
|
||||
"OSE.scores.int.long": "Intelligence",
|
||||
"OSE.scores.int.short": "INT",
|
||||
"OSE.scores.dex.long": "Dextérité",
|
||||
"OSE.scores.dex.short": "DEX",
|
||||
"OSE.scores.con.long": "Constitution",
|
||||
"OSE.scores.con.short": "CON",
|
||||
"OSE.scores.cha.long": "Charisme",
|
||||
"OSE.scores.cha.short": "CHA",
|
||||
"ACKS.scores.str.long": "Force",
|
||||
"ACKS.scores.str.short": "FOR",
|
||||
"ACKS.scores.wis.long": "Sagesse",
|
||||
"ACKS.scores.wis.short": "SAG",
|
||||
"ACKS.scores.int.long": "Intelligence",
|
||||
"ACKS.scores.int.short": "INT",
|
||||
"ACKS.scores.dex.long": "Dextérité",
|
||||
"ACKS.scores.dex.short": "DEX",
|
||||
"ACKS.scores.con.long": "Constitution",
|
||||
"ACKS.scores.con.short": "CON",
|
||||
"ACKS.scores.cha.long": "Charisme",
|
||||
"ACKS.scores.cha.short": "CHA",
|
||||
|
||||
"OSE.saves.death.short": "MP",
|
||||
"OSE.saves.death.long": "Mort Poison",
|
||||
"OSE.saves.wand.short": "B",
|
||||
"OSE.saves.wand.long": "Baguettes",
|
||||
"OSE.saves.paralysis.short": "PP",
|
||||
"OSE.saves.paralysis.long": "Paralysie Pétrification",
|
||||
"OSE.saves.breath.short": "S",
|
||||
"OSE.saves.breath.long": "Souffle",
|
||||
"OSE.saves.spell.short": "SBB",
|
||||
"OSE.saves.spell.long": "Sorts Bâtons",
|
||||
"OSE.saves.magic.long": "Sauv. Magie",
|
||||
"OSE.saves.magic.short": "vs Magie",
|
||||
"ACKS.saves.death.short": "MP",
|
||||
"ACKS.saves.death.long": "Mort Poison",
|
||||
"ACKS.saves.wand.short": "B",
|
||||
"ACKS.saves.wand.long": "Baguettes",
|
||||
"ACKS.saves.paralysis.short": "PP",
|
||||
"ACKS.saves.paralysis.long": "Paralysie Pétrification",
|
||||
"ACKS.saves.breath.short": "S",
|
||||
"ACKS.saves.breath.long": "Souffle",
|
||||
"ACKS.saves.spell.short": "SBB",
|
||||
"ACKS.saves.spell.long": "Sorts Bâtons",
|
||||
"ACKS.saves.magic.long": "Sauv. Magie",
|
||||
|
||||
"OSE.Health": "Points de Vie",
|
||||
"OSE.HealthMax": "Points de Vie Maximaux",
|
||||
"OSE.HealthShort": "PV",
|
||||
"OSE.HitDice": "Dé de Vie",
|
||||
"OSE.HitDiceShort": "DV",
|
||||
"ACKS.Health": "Points de Vie",
|
||||
"ACKS.HealthMax": "Points de Vie Maximaux",
|
||||
"ACKS.HealthShort": "PV",
|
||||
"ACKS.HitDice": "Dé de Vie",
|
||||
"ACKS.HitDiceShort": "DV",
|
||||
|
||||
"OSE.movement.base": "Déplacement",
|
||||
"OSE.movement.short": "DP",
|
||||
"OSE.movement.details": "Détail du Déplacement",
|
||||
"OSE.movement.encounter.long": "Déplacement de Rencontre",
|
||||
"OSE.movement.encounter.short": "Ren",
|
||||
"OSE.movement.overland.long": "Déplacement en Extérieur",
|
||||
"OSE.movement.overland.short": "Ext",
|
||||
"OSE.movement.exploration.short": "Dp",
|
||||
"OSE.movement.exploration.long": "Déplacement",
|
||||
"ACKS.movement.base": "Déplacement",
|
||||
"ACKS.movement.short": "DP",
|
||||
"ACKS.movement.details": "Détail du Déplacement",
|
||||
"ACKS.movement.encounter.long": "Déplacement de Rencontre",
|
||||
"ACKS.movement.encounter.short": "Ren",
|
||||
"ACKS.movement.overland.long": "Déplacement en Extérieur",
|
||||
"ACKS.movement.overland.short": "Ext",
|
||||
"ACKS.movement.exploration.short": "Dp",
|
||||
"ACKS.movement.exploration.long": "Déplacement",
|
||||
|
||||
"OSE.ArmorClassNaked": "Sans Armure",
|
||||
"OSE.ArmorClass": "Classe d'Armure",
|
||||
"OSE.ArmorClassShort": "CA",
|
||||
"OSE.AscArmorClassShort": "CAA",
|
||||
"OSE.ArmorClassBonus": "Bonus d'Armure",
|
||||
"OSE.Thac0": "THAC0",
|
||||
"OSE.ABShort": "BBA",
|
||||
"OSE.AB": "Bonus d'Attaque",
|
||||
"OSE.MeleeShort": "MEL",
|
||||
"OSE.Melee": "Mêlée",
|
||||
"OSE.MeleeBonus": "Bonus de Mêlée",
|
||||
"OSE.MissileShort": "DIS",
|
||||
"OSE.Missile": "Distance",
|
||||
"OSE.MissileBonus": "Bonus à Distance",
|
||||
"OSE.Initiative": "Initiative",
|
||||
"OSE.InitiativeBonus": "Bonus d'Initiative",
|
||||
"OSE.InitiativeShort": "INIT",
|
||||
"OSE.Attacks": "Attaques par Round",
|
||||
"OSE.AttacksShort": "ATT",
|
||||
"OSE.Damage": "Dégâts",
|
||||
"OSE.Spellcaster": "Lanceur de Sort",
|
||||
"ACKS.ArmorClassNaked": "Sans Armure",
|
||||
"ACKS.ArmorClass": "Classe d'Armure",
|
||||
"ACKS.ArmorClassShort": "CA",
|
||||
"ACKS.AscArmorClassShort": "CAA",
|
||||
"ACKS.ArmorClassBonus": "Bonus d'Armure",
|
||||
"ACKS.Thac0": "THAC0",
|
||||
"ACKS.ABShort": "BBA",
|
||||
"ACKS.AB": "Bonus d'Attaque",
|
||||
"ACKS.MeleeShort": "MEL",
|
||||
"ACKS.Melee": "Mêlée",
|
||||
"ACKS.MeleeBonus": "Bonus de Mêlée",
|
||||
"ACKS.MissileShort": "DIS",
|
||||
"ACKS.Missile": "Distance",
|
||||
"ACKS.MissileBonus": "Bonus à Distance",
|
||||
"ACKS.Initiative": "Initiative",
|
||||
"ACKS.InitiativeBonus": "Bonus d'Initiative",
|
||||
"ACKS.InitiativeShort": "INIT",
|
||||
"ACKS.Attacks": "Attaques par Round",
|
||||
"ACKS.AttacksShort": "ATT",
|
||||
"ACKS.Damage": "Dégâts",
|
||||
"ACKS.Spellcaster": "Lanceur de Sort",
|
||||
|
||||
"OSE.Language": "Langue",
|
||||
"OSE.SpokenLanguages": "Langues parlées",
|
||||
"OSE.Literacy": "Lire/Écrire",
|
||||
"OSE.Literate": "Oui",
|
||||
"OSE.LiteracyBasic": "Basique",
|
||||
"OSE.Illiterate": "Non",
|
||||
"OSE.NativeBroken": "Natale (Primitif)",
|
||||
"OSE.Native": "Natale",
|
||||
"OSE.NativePlus1": "Natale + 1",
|
||||
"OSE.NativePlus2": "Natale + 2",
|
||||
"OSE.NativePlus3": "Natale + 3",
|
||||
"ACKS.Language": "Langue",
|
||||
"ACKS.SpokenLanguages": "Langues parlées",
|
||||
"ACKS.Literacy": "Lire/Écrire",
|
||||
"ACKS.Literate": "Oui",
|
||||
"ACKS.LiteracyBasic": "Basique",
|
||||
"ACKS.Illiterate": "Non",
|
||||
"ACKS.NativeBroken": "Natale (Primitif)",
|
||||
"ACKS.Native": "Natale",
|
||||
"ACKS.NativePlus1": "Natale + 1",
|
||||
"ACKS.NativePlus2": "Natale + 2",
|
||||
"ACKS.NativePlus3": "Natale + 3",
|
||||
|
||||
"OSE.NPCReaction": "Réaction",
|
||||
"OSE.RetainersMax": "#Suivants",
|
||||
"ACKS.NPCReaction": "Réaction",
|
||||
"ACKS.RetainersMax": "#Suivants",
|
||||
|
||||
"OSE.category.saves": "Sauvegardes",
|
||||
"OSE.category.attributes": "Stats",
|
||||
"OSE.category.inventory": "Inventaire",
|
||||
"OSE.category.abilities": "Aptitudes",
|
||||
"OSE.category.spells": "Sorts",
|
||||
"OSE.category.notes": "Notes",
|
||||
"OSE.category.languages": "Langues",
|
||||
"OSE.category.description": "Descriptions",
|
||||
"OSE.category.equipment": "Équipement",
|
||||
"ACKS.category.saves": "Sauvegardes",
|
||||
"ACKS.category.attributes": "Stats",
|
||||
"ACKS.category.inventory": "Inventaire",
|
||||
"ACKS.category.abilities": "Aptitudes",
|
||||
"ACKS.category.spells": "Sorts",
|
||||
"ACKS.category.notes": "Notes",
|
||||
"ACKS.category.languages": "Langues",
|
||||
"ACKS.category.description": "Descriptions",
|
||||
"ACKS.category.equipment": "Équipement",
|
||||
|
||||
"OSE.Setting.Initiative": "Initiative",
|
||||
"OSE.Setting.InitiativeHint": "Initiative groupée ou individuelle.",
|
||||
"OSE.Setting.InitiativeIndividual": "Initiative individuelle",
|
||||
"OSE.Setting.InitiativeGroup": "Initiative groupée",
|
||||
"OSE.Setting.RerollInitiative": "Persistance de l'initiative",
|
||||
"OSE.Setting.RerollInitiativeHint": "Garde, met à zéro ou relance l'initiative à chaque tour",
|
||||
"OSE.Setting.InitiativeKeep": "Initiative gardée à chaque tour",
|
||||
"OSE.Setting.InitiativeReroll": "Initiative relancée chaque tour",
|
||||
"OSE.Setting.InitiativeReset": "Initiative mise à zéro chaque tour",
|
||||
"OSE.Setting.AscendingAC": "Classe d'Armure Ascendante",
|
||||
"OSE.Setting.AscendingACHint": "Le plus est le mieux",
|
||||
"OSE.Setting.Morale": "Activer le Score de Moral",
|
||||
"OSE.Setting.MoraleHint": "Le Score de Moral est affiché sur la fiche de Monstre",
|
||||
"OSE.Setting.Encumbrance": "Encombrement",
|
||||
"OSE.Setting.EncumbranceHint": "Choisissez comment l'encombrement est calculé",
|
||||
"OSE.Setting.EncumbranceDisabled": "Désactivé",
|
||||
"OSE.Setting.EncumbranceBasic": "Basique",
|
||||
"OSE.Setting.EncumbranceDetailed": "Detaillé",
|
||||
"OSE.Setting.EncumbranceComplete": "Complet",
|
||||
"OSE.Setting.MovementAuto": "Calculer Déplacement",
|
||||
"OSE.Setting.SignificantTreasure": "Poids d'un Trésor Significatif",
|
||||
"OSE.Setting.SignificantTreasureHint": "Poids auquel le Trésor réduit le déplacement. Utilisé pour l'encombrement Basique",
|
||||
"ACKS.Setting.Initiative": "Initiative",
|
||||
"ACKS.Setting.InitiativeHint": "Initiative groupée ou individuelle. L'initiative unique est tirée une seule fois en début de combat.",
|
||||
"ACKS.Setting.InitiativeOnce": "Initiative unique individuelle",
|
||||
"ACKS.Setting.InitiativeReroll": "Initiative relancée chaque tour",
|
||||
"ACKS.Setting.InitiativeReset": "Initiative mise à zéro chaque tour",
|
||||
"ACKS.Setting.InitiativeGroup": "Initiative groupée",
|
||||
"ACKS.Setting.AscendingAC": "Classe d'Armure Ascendante",
|
||||
"ACKS.Setting.AscendingACHint": "Le plus est le mieux",
|
||||
"ACKS.Setting.Morale": "Activer le Score de Moral",
|
||||
"ACKS.Setting.MoraleHint": "Le Score de Moral est affiché sur la fiche de Monstre",
|
||||
"ACKS.Setting.Encumbrance": "Encombrement",
|
||||
"ACKS.Setting.EncumbranceHint": "Choisissez comment l'encombrement est calculé",
|
||||
"ACKS.Setting.EncumbranceDisabled": "Désactivé",
|
||||
"ACKS.Setting.EncumbranceBasic": "Basique",
|
||||
"ACKS.Setting.EncumbranceDetailed": "Detaillé",
|
||||
"ACKS.Setting.EncumbranceComplete": "Complet",
|
||||
"ACKS.Setting.MovementAuto": "Calculer Déplacement",
|
||||
"ACKS.Setting.SignificantTreasure": "Poids d'un Trésor Significatif",
|
||||
"ACKS.Setting.SignificantTreasureHint": "Poids auquel le Trésor réduit le déplacement. Utilisé pour l'encombrement Basique",
|
||||
|
||||
"OSE.items.Equip": "Equiper",
|
||||
"OSE.items.Unequip": "Déséquiper",
|
||||
"OSE.items.Misc": "Divers",
|
||||
"OSE.items.Weapons": "Armes",
|
||||
"OSE.items.Treasure": "Trésor",
|
||||
"OSE.items.Armors": "Armures",
|
||||
"OSE.items.Weight": "Pds.",
|
||||
"OSE.items.Qualities": "Qualités",
|
||||
"OSE.items.Notes": "Notes",
|
||||
"OSE.items.Cost": "Coût",
|
||||
"OSE.items.Quantity": "Qt.",
|
||||
"OSE.items.Roll": "Jet",
|
||||
"OSE.items.BlindRoll": "Aveugle",
|
||||
"OSE.items.RollTarget": "Cible",
|
||||
"OSE.items.RollType": "Type",
|
||||
"OSE.items.Damage": "Dégâts",
|
||||
"OSE.items.ArmorAC": "CA",
|
||||
"OSE.items.ArmorAAC": "CAA",
|
||||
"OSE.items.Bonus": "Bonus",
|
||||
"OSE.items.AtkBonus": "Bonus d'Attaque",
|
||||
"OSE.items.roundAttacks": "Attaques utilisées ce tour",
|
||||
"OSE.items.roundAttacksMax": "Attaques max par tour",
|
||||
"OSE.items.resetAttacks": "Réinitialiser les Attaques",
|
||||
"OSE.items.hasShield": "A un bonus de Bouclier",
|
||||
"OSE.items.typeTag": "Tapez une liste de tags descriptifs ex. 'Mêlée,Missile (5’–10’ / 11’–20’ / 21’–30’)' puis Entrée",
|
||||
"OSE.items.enterTag": "Tags",
|
||||
"OSE.items.pattern": "Marqueur de schéma d'attaque",
|
||||
"ACKS.items.Equip": "Equiper",
|
||||
"ACKS.items.Unequip": "Déséquiper",
|
||||
"ACKS.items.Misc": "Divers",
|
||||
"ACKS.items.Weapons": "Armes",
|
||||
"ACKS.items.Treasure": "Trésor",
|
||||
"ACKS.items.Armors": "Armures",
|
||||
"ACKS.items.Weight": "Pds.",
|
||||
"ACKS.items.Qualities": "Qualités",
|
||||
"ACKS.items.Notes": "Notes",
|
||||
"ACKS.items.Cost": "Coût",
|
||||
"ACKS.items.Quantity": "Qt.",
|
||||
"ACKS.items.Roll": "Jet",
|
||||
"ACKS.items.BlindRoll": "Aveugle",
|
||||
"ACKS.items.RollTarget": "Cible",
|
||||
"ACKS.items.RollType": "Type",
|
||||
"ACKS.items.Damage": "Dégâts",
|
||||
"ACKS.items.ArmorAC": "CA",
|
||||
"ACKS.items.ArmorAAC": "CAA",
|
||||
"ACKS.items.Bonus": "Bonus",
|
||||
"ACKS.items.AtkBonus": "Bonus d'Attaque",
|
||||
"ACKS.items.roundAttacks": "Attaques utilisées ce tour",
|
||||
"ACKS.items.roundAttacksMax": "Attaques max par tour",
|
||||
"ACKS.items.resetAttacks": "Réinitialiser les Attaques",
|
||||
"ACKS.items.hasShield": "A un bonus de Bouclier",
|
||||
"ACKS.items.typeTag": "Tapez une liste de tags descriptifs ex. 'Mêlée,Missile (5’–10’ / 11’–20’ / 21’–30’)' puis Entrée",
|
||||
"ACKS.items.enterTag": "Tags",
|
||||
"ACKS.items.pattern": "Marqueur de schéma d'attaque",
|
||||
|
||||
"OSE.items.Range": "Portée",
|
||||
"OSE.items.Melee": "Mêlée",
|
||||
"OSE.items.Missile": "Distance",
|
||||
"OSE.items.Slow": "Lent",
|
||||
"OSE.items.TwoHanded": "Deux-mains",
|
||||
"OSE.items.Blunt": "Contondant",
|
||||
"OSE.items.Brace": "Fortifier",
|
||||
"OSE.items.Splash": "Zone",
|
||||
"OSE.items.Reload": "Rechargement",
|
||||
"OSE.items.Charge": "Charge",
|
||||
"ACKS.items.Range": "Portée",
|
||||
"ACKS.items.Melee": "Mêlée",
|
||||
"ACKS.items.Missile": "Distance",
|
||||
"ACKS.items.Slow": "Lent",
|
||||
"ACKS.items.TwoHanded": "Deux-mains",
|
||||
"ACKS.items.Blunt": "Contondant",
|
||||
"ACKS.items.Brace": "Fortifier",
|
||||
"ACKS.items.Splash": "Zone",
|
||||
"ACKS.items.Reload": "Rechargement",
|
||||
"ACKS.items.Charge": "Charge",
|
||||
|
||||
"OSE.armor.type": "Type d'Armure",
|
||||
"OSE.armor.unarmored": "Sans Armure",
|
||||
"OSE.armor.light": "Légère",
|
||||
"OSE.armor.heavy": "Lourde",
|
||||
"OSE.armor.shield": "Bouclier",
|
||||
"ACKS.armor.type": "Type d'Armure",
|
||||
"ACKS.armor.unarmored": "Sans Armure",
|
||||
"ACKS.armor.light": "Légère",
|
||||
"ACKS.armor.heavy": "Lourde",
|
||||
"ACKS.armor.shield": "Bouclier",
|
||||
|
||||
"OSE.spells.spend": "{speaker} lance {name}!",
|
||||
"OSE.spells.Memorized": "Memorisé",
|
||||
"OSE.spells.Cast": "Lancé",
|
||||
"OSE.spells.Range": "Portée",
|
||||
"OSE.spells.Slots": "Emplacement",
|
||||
"OSE.spells.Class": "Classe",
|
||||
"OSE.spells.Duration": "Durée",
|
||||
"OSE.spells.Level": "Niveau",
|
||||
"OSE.spells.Save": "Sauvegarde",
|
||||
"OSE.spells.ResetSlots": "Réinitialiser les Emplacements",
|
||||
"ACKS.spells.spend": "{speaker} lance {name}!",
|
||||
"ACKS.spells.Memorized": "Memorisé",
|
||||
"ACKS.spells.Cast": "Lancé",
|
||||
"ACKS.spells.Range": "Portée",
|
||||
"ACKS.spells.Slots": "Emplacement",
|
||||
"ACKS.spells.Class": "Classe",
|
||||
"ACKS.spells.Duration": "Durée",
|
||||
"ACKS.spells.Level": "Niveau",
|
||||
"ACKS.spells.Save": "Sauvegarde",
|
||||
"ACKS.spells.ResetSlots": "Réinitialiser les Emplacements",
|
||||
|
||||
"OSE.abilities.Requirements": "Prérequis",
|
||||
"ACKS.abilities.Requirements": "Prérequis",
|
||||
|
||||
"OSE.exploration.ld.long": "Ecoute aux Portes",
|
||||
"OSE.exploration.ld.short": "Eco. Porte",
|
||||
"OSE.exploration.ld.abrev": "EP",
|
||||
"OSE.exploration.od.long": "Ouverture de Portes",
|
||||
"OSE.exploration.od.short": "Ouv. Porte",
|
||||
"OSE.exploration.od.abrev": "OP",
|
||||
"OSE.exploration.sd.long": "Détection des Passages Secrets",
|
||||
"OSE.exploration.sd.short": "Dét. Secrets",
|
||||
"OSE.exploration.sd.abrev": "DS",
|
||||
"OSE.exploration.ft.long": "Détecter les Pièges",
|
||||
"OSE.exploration.ft.short": "Dét. Pièges",
|
||||
"OSE.exploration.ft.abrev": "DP",
|
||||
"ACKS.exploration.ld.long": "Ecoute aux Portes",
|
||||
"ACKS.exploration.ld.short": "Eco. Porte",
|
||||
"ACKS.exploration.ld.abrev": "EP",
|
||||
"ACKS.exploration.od.long": "Ouverture de Portes",
|
||||
"ACKS.exploration.od.short": "Ouv. Porte",
|
||||
"ACKS.exploration.od.abrev": "OP",
|
||||
"ACKS.exploration.sd.long": "Détection des Passages Secrets",
|
||||
"ACKS.exploration.sd.short": "Dét. Secrets",
|
||||
"ACKS.exploration.sd.abrev": "DS",
|
||||
"ACKS.exploration.ft.long": "Détecter les Pièges",
|
||||
"ACKS.exploration.ft.short": "Dét. Pièges",
|
||||
"ACKS.exploration.ft.abrev": "DP",
|
||||
|
||||
"OSE.messages.GetExperience": "{name} a gagné {value} points d'expérience !",
|
||||
"OSE.messages.AttackSuccess": "<b>Touche une CA de {result}!</b> ({bonus})",
|
||||
"OSE.messages.AttackAscendingSuccess": "<b>Touche une CAA de {result}!</b>",
|
||||
"OSE.messages.AttackFailure": "<b>L'Attaque échoue</b> ({bonus})",
|
||||
"OSE.messages.AttackAscendingFailure": "<b>L'Attaque échoue</b>",
|
||||
"OSE.messages.InflictsDamage": "Inflige des dégâts !",
|
||||
"OSE.messages.applyDamage": "Appliquer les dégâts",
|
||||
"OSE.messages.applyHealing": "Appliquer les soins",
|
||||
"ACKS.messages.GetExperience": "{name} a gagné {value} points d'expérience !",
|
||||
"ACKS.messages.AttackSuccess": "<b>Touche une CA de {result}!</b> ({bonus})",
|
||||
"ACKS.messages.AttackAscendingSuccess": "<b>Touche une CAA de {result}!</b>",
|
||||
"ACKS.messages.AttackFailure": "<b>L'Attaque échoue</b> ({bonus})",
|
||||
"ACKS.messages.AttackAscendingFailure": "<b>L'Attaque échoue</b>",
|
||||
"ACKS.messages.InflictsDamage": "Inflige des dégâts !",
|
||||
"ACKS.messages.applyDamage": "Appliquer les dégâts",
|
||||
"ACKS.messages.applyHealing": "Appliquer les soins",
|
||||
|
||||
"OSE.colors.green": "Vert",
|
||||
"OSE.colors.red": "Rouge",
|
||||
"OSE.colors.yellow": "Jaune",
|
||||
"OSE.colors.purple": "Violet",
|
||||
"OSE.colors.blue": "Bleu",
|
||||
"OSE.colors.orange": "Orange",
|
||||
"OSE.colors.white": "Blanc",
|
||||
"ACKS.colors.green": "Vert",
|
||||
"ACKS.colors.red": "Rouge",
|
||||
"ACKS.colors.yellow": "Jaune",
|
||||
"ACKS.colors.purple": "Violet",
|
||||
"ACKS.colors.blue": "Bleu",
|
||||
"ACKS.colors.orange": "Orange",
|
||||
"ACKS.colors.white": "Blanc",
|
||||
|
||||
"OSE.reaction.Hostile": "{name} est Hostile",
|
||||
"OSE.reaction.Unfriendly": "{name} est Inamical",
|
||||
"OSE.reaction.Neutral": "{name} est Neutre",
|
||||
"OSE.reaction.Indifferent": "{name} est Indifférent",
|
||||
"OSE.reaction.Friendly": "{name} est Amical"
|
||||
"ACKS.reaction.Hostile": "{name} est Hostile",
|
||||
"ACKS.reaction.Unfriendly": "{name} est Inamical",
|
||||
"ACKS.reaction.Neutral": "{name} est Neutre",
|
||||
"ACKS.reaction.Indifferent": "{name} est Indifférent",
|
||||
"ACKS.reaction.Friendly": "{name} est Amical"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,274 +1,274 @@
|
|||
{
|
||||
"OSE.Edit": "Editar",
|
||||
"OSE.Delete": "Apagar",
|
||||
"OSE.Show": "Mostrar",
|
||||
"OSE.Add": "Adicionar",
|
||||
"OSE.Ok": "Confirmar",
|
||||
"OSE.Update": "Atualizar",
|
||||
"OSE.Reset": "Reiniciar",
|
||||
"OSE.Cancel": "Cancelar",
|
||||
"OSE.Roll": "Rolar",
|
||||
"OSE.Success": "Sucesso",
|
||||
"OSE.Failure": "Falha",
|
||||
"ACKS.Edit": "Editar",
|
||||
"ACKS.Delete": "Apagar",
|
||||
"ACKS.Show": "Mostrar",
|
||||
"ACKS.Add": "Adicionar",
|
||||
"ACKS.Ok": "Confirmar",
|
||||
"ACKS.Update": "Atualizar",
|
||||
"ACKS.Reset": "Reiniciar",
|
||||
"ACKS.Cancel": "Cancelar",
|
||||
"ACKS.Roll": "Rolar",
|
||||
"ACKS.Success": "Sucesso",
|
||||
"ACKS.Failure": "Falha",
|
||||
|
||||
"OSE.dialog.tweaks": "Ferramentas",
|
||||
"OSE.dialog.partysheet": "Visão do grupo",
|
||||
"OSE.dialog.selectActors": "Selecionar PJs",
|
||||
"OSE.dialog.dealXP": "Distribuir XP",
|
||||
"OSE.dialog.generator": "Gerar personagem",
|
||||
"OSE.dialog.generateSaves": "Gerar salvaguardas",
|
||||
"OSE.dialog.generateScores": "Gerar status",
|
||||
"OSE.dialog.generateScore": "Rolou {score} ({count})",
|
||||
"ACKS.dialog.tweaks": "Ferramentas",
|
||||
"ACKS.dialog.partysheet": "Visão do grupo",
|
||||
"ACKS.dialog.selectActors": "Selecionar PJs",
|
||||
"ACKS.dialog.dealXP": "Distribuir XP",
|
||||
"ACKS.dialog.generator": "Gerar personagem",
|
||||
"ACKS.dialog.generateSaves": "Gerar salvaguardas",
|
||||
"ACKS.dialog.generateScores": "Gerar status",
|
||||
"ACKS.dialog.generateScore": "Rolou {score} ({count})",
|
||||
|
||||
"OSE.Formula": "Fórmula",
|
||||
"OSE.SitMod": "Modificador situacional",
|
||||
"OSE.Modifier": "Modificador",
|
||||
"OSE.Modifiers": "Modificadores",
|
||||
"OSE.RollMode": "Modo de rolagem",
|
||||
"OSE.RollExample": "ex. +1d4",
|
||||
"ACKS.Formula": "Fórmula",
|
||||
"ACKS.SitMod": "Modificador situacional",
|
||||
"ACKS.Modifier": "Modificador",
|
||||
"ACKS.Modifiers": "Modificadores",
|
||||
"ACKS.RollMode": "Modo de rolagem",
|
||||
"ACKS.RollExample": "ex. +1d4",
|
||||
|
||||
"OSE.roll.formula": "{label} rolar",
|
||||
"OSE.roll.appearing": "Aparecimento da rolagem ({type})",
|
||||
"OSE.roll.morale": "Teste de moral",
|
||||
"OSE.roll.hd": "Rolar Dado de Vida",
|
||||
"OSE.roll.attacksWith": "Ataca com {name}",
|
||||
"OSE.roll.attacks": "{name} ataca!",
|
||||
"OSE.roll.save": "{save} Salvaguarda",
|
||||
"OSE.roll.details.save": "Rola 1d20 >= {save} para sucesso",
|
||||
"OSE.roll.attribute": "{attribute} teste",
|
||||
"OSE.roll.details.attribute": "Rolar 1d20 <= {score} para sucesso",
|
||||
"OSE.roll.exploration": "{exploration} teste",
|
||||
"OSE.roll.details.exploration": "Rolar 1d6 <= {expl} para sucesso",
|
||||
"OSE.roll.reaction": "Rolagem de reação",
|
||||
"OSE.roll.initiative": "Grupo {group} rola para iniciativa!",
|
||||
"OSE.roll.individualInit": "{name} rola para iniciativa!",
|
||||
"ACKS.roll.formula": "{label} rolar",
|
||||
"ACKS.roll.appearing": "Aparecimento da rolagem ({type})",
|
||||
"ACKS.roll.morale": "Teste de moral",
|
||||
"ACKS.roll.hd": "Rolar Dado de Vida",
|
||||
"ACKS.roll.attacksWith": "Ataca com {name}",
|
||||
"ACKS.roll.attacks": "{name} ataca!",
|
||||
"ACKS.roll.save": "{save} Salvaguarda",
|
||||
"ACKS.roll.details.save": "Rola 1d20 >= {save} para sucesso",
|
||||
"ACKS.roll.attribute": "{attribute} teste",
|
||||
"ACKS.roll.details.attribute": "Rolar 1d20 <= {score} para sucesso",
|
||||
"ACKS.roll.exploration": "{exploration} teste",
|
||||
"ACKS.roll.details.exploration": "Rolar 1d6 <= {expl} para sucesso",
|
||||
"ACKS.roll.reaction": "Rolagem de reação",
|
||||
"ACKS.roll.initiative": "Grupo {group} rola para iniciativa!",
|
||||
"ACKS.roll.individualInit": "{name} rola para iniciativa!",
|
||||
|
||||
"OSE.table.treasure.roll": "Rolar tesouro",
|
||||
"ACKS.table.treasure.roll": "Rolar tesouro",
|
||||
|
||||
"OSE.details.name": "Nome",
|
||||
"OSE.details.class": "Classe",
|
||||
"OSE.details.title": "Titulo",
|
||||
"OSE.details.alignment": "Alinhamento",
|
||||
"OSE.details.level": "Nivel",
|
||||
"OSE.details.experience.base": "Experiência",
|
||||
"OSE.details.experience.bonus": "Experiência Bônus",
|
||||
"OSE.details.experience.next": "Próximo nível",
|
||||
"OSE.details.experience.share": "Compartilhar experiência",
|
||||
"OSE.details.experience.award": "Prêmio XP",
|
||||
"OSE.details.treasure": "Tipo de tesouro",
|
||||
"OSE.details.treasureTable": "Tabela",
|
||||
"OSE.details.treasureTableHint": "solte uma tabela rolável aqui para rolar o tesouro do monstro",
|
||||
"OSE.details.morale": "Moral",
|
||||
"OSE.details.reaction": "Reação",
|
||||
"OSE.details.appearing": "NA",
|
||||
"ACKS.details.name": "Nome",
|
||||
"ACKS.details.class": "Classe",
|
||||
"ACKS.details.title": "Titulo",
|
||||
"ACKS.details.alignment": "Alinhamento",
|
||||
"ACKS.details.level": "Nivel",
|
||||
"ACKS.details.experience.base": "Experiência",
|
||||
"ACKS.details.experience.bonus": "Experiência Bônus",
|
||||
"ACKS.details.experience.next": "Próximo nível",
|
||||
"ACKS.details.experience.share": "Compartilhar experiência",
|
||||
"ACKS.details.experience.award": "Prêmio XP",
|
||||
"ACKS.details.treasure": "Tipo de tesouro",
|
||||
"ACKS.details.treasureTable": "Tabela",
|
||||
"ACKS.details.treasureTableHint": "solte uma tabela rolável aqui para rolar o tesouro do monstro",
|
||||
"ACKS.details.morale": "Moral",
|
||||
"ACKS.details.reaction": "Reação",
|
||||
"ACKS.details.appearing": "NA",
|
||||
|
||||
"OSE.Attack": "Ataca",
|
||||
"OSE.Encumbrance": "Sobrecarga",
|
||||
"ACKS.Attack": "Ataca",
|
||||
"ACKS.Encumbrance": "Sobrecarga",
|
||||
|
||||
"OSE.Retainer": "Empregado",
|
||||
"OSE.RetainerWage": "Salário",
|
||||
"OSE.RetainerUpkeep": "Manutenção",
|
||||
"OSE.Loyalty": "Classificação de lealdade",
|
||||
"OSE.LoyaltyShort": "CL",
|
||||
"ACKS.Retainer": "Empregado",
|
||||
"ACKS.RetainerWage": "Salário",
|
||||
"ACKS.RetainerUpkeep": "Manutenção",
|
||||
"ACKS.Loyalty": "Classificação de lealdade",
|
||||
"ACKS.LoyaltyShort": "CL",
|
||||
|
||||
"OSE.scores.str.long": "Força",
|
||||
"OSE.scores.str.short": "FOR",
|
||||
"OSE.scores.wis.long": "Sabedoria",
|
||||
"OSE.scores.wis.short": "SAB",
|
||||
"OSE.scores.int.long": "Inteligência",
|
||||
"OSE.scores.int.short": "INT",
|
||||
"OSE.scores.dex.long": "Destreza",
|
||||
"OSE.scores.dex.short": "DES",
|
||||
"OSE.scores.con.long": "Constituição",
|
||||
"OSE.scores.con.short": "CON",
|
||||
"OSE.scores.cha.long": "Carisma",
|
||||
"OSE.scores.cha.short": "CAR",
|
||||
"ACKS.scores.str.long": "Força",
|
||||
"ACKS.scores.str.short": "FOR",
|
||||
"ACKS.scores.wis.long": "Sabedoria",
|
||||
"ACKS.scores.wis.short": "SAB",
|
||||
"ACKS.scores.int.long": "Inteligência",
|
||||
"ACKS.scores.int.short": "INT",
|
||||
"ACKS.scores.dex.long": "Destreza",
|
||||
"ACKS.scores.dex.short": "DES",
|
||||
"ACKS.scores.con.long": "Constituição",
|
||||
"ACKS.scores.con.short": "CON",
|
||||
"ACKS.scores.cha.long": "Carisma",
|
||||
"ACKS.scores.cha.short": "CAR",
|
||||
|
||||
"OSE.saves.death.short": "Mt",
|
||||
"OSE.saves.death.long": "Morte Veneno",
|
||||
"OSE.saves.wand.short": "V",
|
||||
"OSE.saves.wand.long": "Varinhas",
|
||||
"OSE.saves.paralysis.short": "P",
|
||||
"OSE.saves.paralysis.long": "Paralisia Petrificar",
|
||||
"OSE.saves.breath.short": "S",
|
||||
"OSE.saves.breath.long": "Ataques de Sopro",
|
||||
"OSE.saves.spell.short": "Ma",
|
||||
"OSE.saves.spell.long": "Magias Bastões Cajados",
|
||||
"OSE.saves.magic.long": "Bônus vs Magia",
|
||||
"ACKS.saves.death.short": "Mt",
|
||||
"ACKS.saves.death.long": "Morte Veneno",
|
||||
"ACKS.saves.wand.short": "V",
|
||||
"ACKS.saves.wand.long": "Varinhas",
|
||||
"ACKS.saves.paralysis.short": "P",
|
||||
"ACKS.saves.paralysis.long": "Paralisia Petrificar",
|
||||
"ACKS.saves.breath.short": "S",
|
||||
"ACKS.saves.breath.long": "Ataques de Sopro",
|
||||
"ACKS.saves.spell.short": "Ma",
|
||||
"ACKS.saves.spell.long": "Magias Bastões Cajados",
|
||||
"ACKS.saves.magic.long": "Bônus vs Magia",
|
||||
|
||||
"OSE.Health": "Pontos de Vida",
|
||||
"OSE.HealthMax": "Pontos de Vida máximo",
|
||||
"OSE.HealthShort": "PV",
|
||||
"OSE.HitDice": "Dados de Vida",
|
||||
"OSE.HitDiceShort": "DV",
|
||||
"ACKS.Health": "Pontos de Vida",
|
||||
"ACKS.HealthMax": "Pontos de Vida máximo",
|
||||
"ACKS.HealthShort": "PV",
|
||||
"ACKS.HitDice": "Dados de Vida",
|
||||
"ACKS.HitDiceShort": "DV",
|
||||
|
||||
"OSE.movement.base": "Taxa de Movimento",
|
||||
"OSE.movement.short": "TM",
|
||||
"OSE.movement.details": "Detalhes do movimento",
|
||||
"OSE.movement.encounter.long": "Taxa de Movimento por Encontro",
|
||||
"OSE.movement.encounter.short": "TME",
|
||||
"OSE.movement.overland.long": "Taxa de Movimento Terrestre",
|
||||
"OSE.movement.overland.short": "TMT",
|
||||
"OSE.movement.exploration.short": "TE",
|
||||
"OSE.movement.exploration.long": "Taxa de Movimento em Exploração",
|
||||
"ACKS.movement.base": "Taxa de Movimento",
|
||||
"ACKS.movement.short": "TM",
|
||||
"ACKS.movement.details": "Detalhes do movimento",
|
||||
"ACKS.movement.encounter.long": "Taxa de Movimento por Encontro",
|
||||
"ACKS.movement.encounter.short": "TME",
|
||||
"ACKS.movement.overland.long": "Taxa de Movimento Terrestre",
|
||||
"ACKS.movement.overland.short": "TMT",
|
||||
"ACKS.movement.exploration.short": "TE",
|
||||
"ACKS.movement.exploration.long": "Taxa de Movimento em Exploração",
|
||||
|
||||
"OSE.ArmorClassNaked": "Classe de Armadura despido",
|
||||
"OSE.ArmorClass": "Classe de Armadura",
|
||||
"OSE.ArmorClassShort": "CA",
|
||||
"OSE.AscArmorClassShort": "CAA",
|
||||
"OSE.ArmorClassBonus": "Bônus de Classe de Armadura",
|
||||
"OSE.Thac0": "TAC0",
|
||||
"OSE.ABShort": "BA",
|
||||
"OSE.AB": "Bônus de Ataque",
|
||||
"OSE.MeleeShort": "COR",
|
||||
"OSE.Melee": "Corpo a corpo",
|
||||
"OSE.MeleeBonus": "Bônus corpo a corpo",
|
||||
"OSE.MissileShort": "DIS",
|
||||
"OSE.Missile": "Distância",
|
||||
"OSE.MissileBonus": "Bônus a distância",
|
||||
"OSE.Initiative": "Iniciativa",
|
||||
"OSE.InitiativeBonus": "Bonus de Iniciativa",
|
||||
"OSE.InitiativeShort": "INIC",
|
||||
"OSE.Attacks": "Ataques possiveis por rodada",
|
||||
"OSE.AttacksShort": "ATA",
|
||||
"OSE.Damage": "Dano",
|
||||
"OSE.Spellcaster": "Conjurador",
|
||||
"ACKS.ArmorClassNaked": "Classe de Armadura despido",
|
||||
"ACKS.ArmorClass": "Classe de Armadura",
|
||||
"ACKS.ArmorClassShort": "CA",
|
||||
"ACKS.AscArmorClassShort": "CAA",
|
||||
"ACKS.ArmorClassBonus": "Bônus de Classe de Armadura",
|
||||
"ACKS.Thac0": "TAC0",
|
||||
"ACKS.ABShort": "BA",
|
||||
"ACKS.AB": "Bônus de Ataque",
|
||||
"ACKS.MeleeShort": "COR",
|
||||
"ACKS.Melee": "Corpo a corpo",
|
||||
"ACKS.MeleeBonus": "Bônus corpo a corpo",
|
||||
"ACKS.MissileShort": "DIS",
|
||||
"ACKS.Missile": "Distância",
|
||||
"ACKS.MissileBonus": "Bônus a distância",
|
||||
"ACKS.Initiative": "Iniciativa",
|
||||
"ACKS.InitiativeBonus": "Bonus de Iniciativa",
|
||||
"ACKS.InitiativeShort": "INIC",
|
||||
"ACKS.Attacks": "Ataques possiveis por rodada",
|
||||
"ACKS.AttacksShort": "ATA",
|
||||
"ACKS.Damage": "Dano",
|
||||
"ACKS.Spellcaster": "Conjurador",
|
||||
|
||||
"OSE.Language": "Lingua",
|
||||
"OSE.SpokenLanguages": "Linguas faladas",
|
||||
"OSE.Literacy": "Alfabetização",
|
||||
"OSE.Literate": "Alfabetizado",
|
||||
"OSE.LiteracyBasic": "Básico",
|
||||
"OSE.Illiterate": "Analfabeto",
|
||||
"OSE.NativeBroken": "Nativo (Semi-alfabetizado)",
|
||||
"OSE.Native": "Nativo",
|
||||
"OSE.NativePlus1": "Nativo + 1",
|
||||
"OSE.NativePlus2": "Nativo + 2",
|
||||
"OSE.NativePlus3": "Nativo + 3",
|
||||
"ACKS.Language": "Lingua",
|
||||
"ACKS.SpokenLanguages": "Linguas faladas",
|
||||
"ACKS.Literacy": "Alfabetização",
|
||||
"ACKS.Literate": "Alfabetizado",
|
||||
"ACKS.LiteracyBasic": "Básico",
|
||||
"ACKS.Illiterate": "Analfabeto",
|
||||
"ACKS.NativeBroken": "Nativo (Semi-alfabetizado)",
|
||||
"ACKS.Native": "Nativo",
|
||||
"ACKS.NativePlus1": "Nativo + 1",
|
||||
"ACKS.NativePlus2": "Nativo + 2",
|
||||
"ACKS.NativePlus3": "Nativo + 3",
|
||||
|
||||
"OSE.NPCReaction": "Reação do NPC",
|
||||
"OSE.RetainersMax": "#Retentor",
|
||||
"ACKS.NPCReaction": "Reação do NPC",
|
||||
"ACKS.RetainersMax": "#Retentor",
|
||||
|
||||
"OSE.category.saves": "Salvaguarda",
|
||||
"OSE.category.attributes": "Atributos",
|
||||
"OSE.category.inventory": "Itens",
|
||||
"OSE.category.abilities": "Habilidades",
|
||||
"OSE.category.spells": "Magias",
|
||||
"OSE.category.notes": "Notas",
|
||||
"OSE.category.languages": "Linguas",
|
||||
"OSE.category.description": "Descrição",
|
||||
"OSE.category.equipment": "Equipamento",
|
||||
"ACKS.category.saves": "Salvaguarda",
|
||||
"ACKS.category.attributes": "Atributos",
|
||||
"ACKS.category.inventory": "Itens",
|
||||
"ACKS.category.abilities": "Habilidades",
|
||||
"ACKS.category.spells": "Magias",
|
||||
"ACKS.category.notes": "Notas",
|
||||
"ACKS.category.languages": "Linguas",
|
||||
"ACKS.category.description": "Descrição",
|
||||
"ACKS.category.equipment": "Equipamento",
|
||||
|
||||
"OSE.Setting.Initiative": "Iniciativa",
|
||||
"OSE.Setting.InitiativeHint": "Iniciativa agrupada ou individual. Iniciativa única individual é somente rolada ao inicio do combate",
|
||||
"OSE.Setting.InitiativeOnce": "Iniciativa única individual",
|
||||
"OSE.Setting.InitiativeReroll": "Iniciativa individual por rodada",
|
||||
"OSE.Setting.InitiativeGroup": "Iniciativa agrupada",
|
||||
"OSE.Setting.AscendingAC": "Classe de armadura ascendente",
|
||||
"OSE.Setting.AscendingACHint": "Quanto maior melhor",
|
||||
"OSE.Setting.Morale": "Habilitar taxa de moral dos monstros",
|
||||
"OSE.Setting.MoraleHint": "Taxa de moral é mostrada na ficha dos monstros",
|
||||
"OSE.Setting.Encumbrance": "Sobrecarga",
|
||||
"OSE.Setting.EncumbranceHint": "Escolha como a sobrecarga é calculada",
|
||||
"OSE.Setting.EncumbranceDisabled": "Desabilitada",
|
||||
"OSE.Setting.EncumbranceBasic": "Básica",
|
||||
"OSE.Setting.EncumbranceDetailed": "Detalhada",
|
||||
"OSE.Setting.MovementAuto": "Calcular movimento",
|
||||
"OSE.Setting.SignificantTreasure": "Peso significativo do tesouro",
|
||||
"OSE.Setting.SignificantTreasureHint": "Peso com o qual o tesouro reduzirá o movimento, somente usar com sobrecarga básica",
|
||||
"ACKS.Setting.Initiative": "Iniciativa",
|
||||
"ACKS.Setting.InitiativeHint": "Iniciativa agrupada ou individual. Iniciativa única individual é somente rolada ao inicio do combate",
|
||||
"ACKS.Setting.InitiativeOnce": "Iniciativa única individual",
|
||||
"ACKS.Setting.InitiativeReroll": "Iniciativa individual por rodada",
|
||||
"ACKS.Setting.InitiativeGroup": "Iniciativa agrupada",
|
||||
"ACKS.Setting.AscendingAC": "Classe de armadura ascendente",
|
||||
"ACKS.Setting.AscendingACHint": "Quanto maior melhor",
|
||||
"ACKS.Setting.Morale": "Habilitar taxa de moral dos monstros",
|
||||
"ACKS.Setting.MoraleHint": "Taxa de moral é mostrada na ficha dos monstros",
|
||||
"ACKS.Setting.Encumbrance": "Sobrecarga",
|
||||
"ACKS.Setting.EncumbranceHint": "Escolha como a sobrecarga é calculada",
|
||||
"ACKS.Setting.EncumbranceDisabled": "Desabilitada",
|
||||
"ACKS.Setting.EncumbranceBasic": "Básica",
|
||||
"ACKS.Setting.EncumbranceDetailed": "Detalhada",
|
||||
"ACKS.Setting.MovementAuto": "Calcular movimento",
|
||||
"ACKS.Setting.SignificantTreasure": "Peso significativo do tesouro",
|
||||
"ACKS.Setting.SignificantTreasureHint": "Peso com o qual o tesouro reduzirá o movimento, somente usar com sobrecarga básica",
|
||||
|
||||
"OSE.items.Equip": "Equipar",
|
||||
"OSE.items.Unequip": "Desequipar",
|
||||
"OSE.items.Misc": "Diverso",
|
||||
"OSE.items.Weapons": "Armas",
|
||||
"OSE.items.Treasure": "Tesouro",
|
||||
"OSE.items.Armors": "Proteção",
|
||||
"OSE.items.Weight": "Peso",
|
||||
"OSE.items.Qualities": "Qualidades",
|
||||
"OSE.items.Notes": "Notas",
|
||||
"OSE.items.Cost": "Custo",
|
||||
"OSE.items.Quantity": "Qt.",
|
||||
"OSE.items.Roll": "Rolar",
|
||||
"OSE.items.BlindRoll": "Ocultar",
|
||||
"OSE.items.RollTarget": "Alvo",
|
||||
"OSE.items.RollType": "Tipo",
|
||||
"OSE.items.Damage": "Dano",
|
||||
"OSE.items.ArmorAC": "CA",
|
||||
"OSE.items.ArmorAAC": "CAA",
|
||||
"OSE.items.Bonus": "Bônus",
|
||||
"OSE.items.AtkBonus": "Bônus ataque",
|
||||
"OSE.items.roundAttacks": "Ataques usados na rodada",
|
||||
"OSE.items.roundAttacksMax": "Máximo de ataques por rodada",
|
||||
"OSE.items.resetAttacks": "Reiniciar todos ataques por rodada",
|
||||
"OSE.items.hasShield": "Tem um bônus de escudo",
|
||||
"OSE.items.typeTag": "Digite virgula para separar a lista de tag",
|
||||
"OSE.items.enterTag": "Tags",
|
||||
"OSE.items.pattern": "Marcador padrão de ataque",
|
||||
"ACKS.items.Equip": "Equipar",
|
||||
"ACKS.items.Unequip": "Desequipar",
|
||||
"ACKS.items.Misc": "Diverso",
|
||||
"ACKS.items.Weapons": "Armas",
|
||||
"ACKS.items.Treasure": "Tesouro",
|
||||
"ACKS.items.Armors": "Proteção",
|
||||
"ACKS.items.Weight": "Peso",
|
||||
"ACKS.items.Qualities": "Qualidades",
|
||||
"ACKS.items.Notes": "Notas",
|
||||
"ACKS.items.Cost": "Custo",
|
||||
"ACKS.items.Quantity": "Qt.",
|
||||
"ACKS.items.Roll": "Rolar",
|
||||
"ACKS.items.BlindRoll": "Ocultar",
|
||||
"ACKS.items.RollTarget": "Alvo",
|
||||
"ACKS.items.RollType": "Tipo",
|
||||
"ACKS.items.Damage": "Dano",
|
||||
"ACKS.items.ArmorAC": "CA",
|
||||
"ACKS.items.ArmorAAC": "CAA",
|
||||
"ACKS.items.Bonus": "Bônus",
|
||||
"ACKS.items.AtkBonus": "Bônus ataque",
|
||||
"ACKS.items.roundAttacks": "Ataques usados na rodada",
|
||||
"ACKS.items.roundAttacksMax": "Máximo de ataques por rodada",
|
||||
"ACKS.items.resetAttacks": "Reiniciar todos ataques por rodada",
|
||||
"ACKS.items.hasShield": "Tem um bônus de escudo",
|
||||
"ACKS.items.typeTag": "Digite virgula para separar a lista de tag",
|
||||
"ACKS.items.enterTag": "Tags",
|
||||
"ACKS.items.pattern": "Marcador padrão de ataque",
|
||||
|
||||
"OSE.items.Range": "Distância",
|
||||
"OSE.items.Melee": "Corpo",
|
||||
"OSE.items.Missile": "Projétil",
|
||||
"OSE.items.Slow": "Lenta",
|
||||
"OSE.items.TwoHanded": "Duas mãos",
|
||||
"OSE.items.Blunt": "Concussão",
|
||||
"OSE.items.Brace": "Braçadeira",
|
||||
"OSE.items.Splash": "Arma de respingo",
|
||||
"OSE.items.Reload": "Recarga",
|
||||
"OSE.items.Charge": "Carga",
|
||||
"ACKS.items.Range": "Distância",
|
||||
"ACKS.items.Melee": "Corpo",
|
||||
"ACKS.items.Missile": "Projétil",
|
||||
"ACKS.items.Slow": "Lenta",
|
||||
"ACKS.items.TwoHanded": "Duas mãos",
|
||||
"ACKS.items.Blunt": "Concussão",
|
||||
"ACKS.items.Brace": "Braçadeira",
|
||||
"ACKS.items.Splash": "Arma de respingo",
|
||||
"ACKS.items.Reload": "Recarga",
|
||||
"ACKS.items.Charge": "Carga",
|
||||
|
||||
"OSE.armor.type": "Tipo de armadura",
|
||||
"OSE.armor.unarmored": "Sem armadura",
|
||||
"OSE.armor.light": "Leve",
|
||||
"OSE.armor.heavy": "Pesada",
|
||||
"OSE.armor.shield": "Escudo",
|
||||
"ACKS.armor.type": "Tipo de armadura",
|
||||
"ACKS.armor.unarmored": "Sem armadura",
|
||||
"ACKS.armor.light": "Leve",
|
||||
"ACKS.armor.heavy": "Pesada",
|
||||
"ACKS.armor.shield": "Escudo",
|
||||
|
||||
"OSE.spells.spend": "{speaker} está conjurando {name}!",
|
||||
"OSE.spells.Memorized": "Memorizada",
|
||||
"OSE.spells.Cast": "Conjurar",
|
||||
"OSE.spells.Range": "Distância",
|
||||
"OSE.spells.Slots": "Espaços",
|
||||
"OSE.spells.Class": "Classe",
|
||||
"OSE.spells.Duration": "Duração",
|
||||
"OSE.spells.Level": "Nivel",
|
||||
"OSE.spells.Save": "Salvaguarda",
|
||||
"OSE.spells.ResetSlots": "Reiniciar espaços de magia",
|
||||
"ACKS.spells.spend": "{speaker} está conjurando {name}!",
|
||||
"ACKS.spells.Memorized": "Memorizada",
|
||||
"ACKS.spells.Cast": "Conjurar",
|
||||
"ACKS.spells.Range": "Distância",
|
||||
"ACKS.spells.Slots": "Espaços",
|
||||
"ACKS.spells.Class": "Classe",
|
||||
"ACKS.spells.Duration": "Duração",
|
||||
"ACKS.spells.Level": "Nivel",
|
||||
"ACKS.spells.Save": "Salvaguarda",
|
||||
"ACKS.spells.ResetSlots": "Reiniciar espaços de magia",
|
||||
|
||||
"OSE.abilities.Requirements": "Requerimentos",
|
||||
"ACKS.abilities.Requirements": "Requerimentos",
|
||||
|
||||
"OSE.exploration.ld.long": "Ouvir ruidos",
|
||||
"OSE.exploration.ld.short": "Ouvir ruidos",
|
||||
"OSE.exploration.ld.abrev": "OR",
|
||||
"OSE.exploration.od.long": "Abrir fechaduras",
|
||||
"OSE.exploration.od.short": "Abrir fechaduras",
|
||||
"OSE.exploration.od.abrev": "AF",
|
||||
"OSE.exploration.sd.long": "Encontrar portas secreta",
|
||||
"OSE.exploration.sd.short": "Portas Secretas",
|
||||
"OSE.exploration.sd.abrev": "PS",
|
||||
"OSE.exploration.ft.long": "Encontrar armadilhas em salas",
|
||||
"OSE.exploration.ft.short": "Encontrar armadilhas",
|
||||
"OSE.exploration.ft.abrev": "EA",
|
||||
"ACKS.exploration.ld.long": "Ouvir ruidos",
|
||||
"ACKS.exploration.ld.short": "Ouvir ruidos",
|
||||
"ACKS.exploration.ld.abrev": "OR",
|
||||
"ACKS.exploration.od.long": "Abrir fechaduras",
|
||||
"ACKS.exploration.od.short": "Abrir fechaduras",
|
||||
"ACKS.exploration.od.abrev": "AF",
|
||||
"ACKS.exploration.sd.long": "Encontrar portas secreta",
|
||||
"ACKS.exploration.sd.short": "Portas Secretas",
|
||||
"ACKS.exploration.sd.abrev": "PS",
|
||||
"ACKS.exploration.ft.long": "Encontrar armadilhas em salas",
|
||||
"ACKS.exploration.ft.short": "Encontrar armadilhas",
|
||||
"ACKS.exploration.ft.abrev": "EA",
|
||||
|
||||
"OSE.messages.GetExperience": "{name} ganha {value} pontos de experiência!",
|
||||
"OSE.messages.AttackSuccess": "<b>Acerta CA {result}!</b> ({bonus})",
|
||||
"OSE.messages.AttackAscendingSuccess": "<b>Acerta CA {result}!</b>",
|
||||
"OSE.messages.AttackFailure": "<b>Ataque falha</b> ({bonus})",
|
||||
"OSE.messages.AttackAscendingFailure": "<b>Ataque falha</b>",
|
||||
"OSE.messages.InflictsDamage": "Inflige dano!",
|
||||
"OSE.messages.applyDamage": "Aplicar dano",
|
||||
"OSE.messages.applyHealing": "Aplicar cura",
|
||||
"ACKS.messages.GetExperience": "{name} ganha {value} pontos de experiência!",
|
||||
"ACKS.messages.AttackSuccess": "<b>Acerta CA {result}!</b> ({bonus})",
|
||||
"ACKS.messages.AttackAscendingSuccess": "<b>Acerta CA {result}!</b>",
|
||||
"ACKS.messages.AttackFailure": "<b>Ataque falha</b> ({bonus})",
|
||||
"ACKS.messages.AttackAscendingFailure": "<b>Ataque falha</b>",
|
||||
"ACKS.messages.InflictsDamage": "Inflige dano!",
|
||||
"ACKS.messages.applyDamage": "Aplicar dano",
|
||||
"ACKS.messages.applyHealing": "Aplicar cura",
|
||||
|
||||
"OSE.colors.green": "Verde",
|
||||
"OSE.colors.red": "Vermelho",
|
||||
"OSE.colors.yellow": "Amarelo",
|
||||
"OSE.colors.purple": "Roxo",
|
||||
"OSE.colors.blue": "Azul",
|
||||
"OSE.colors.orange": "Laranja",
|
||||
"OSE.colors.white": "Branco",
|
||||
"ACKS.colors.green": "Verde",
|
||||
"ACKS.colors.red": "Vermelho",
|
||||
"ACKS.colors.yellow": "Amarelo",
|
||||
"ACKS.colors.purple": "Roxo",
|
||||
"ACKS.colors.blue": "Azul",
|
||||
"ACKS.colors.orange": "Laranja",
|
||||
"ACKS.colors.white": "Branco",
|
||||
|
||||
"OSE.reaction.check": "Teste de reação",
|
||||
"OSE.reaction.Hostile": "{name} é Hostil",
|
||||
"OSE.reaction.Unfriendly": "{name} é Inamistoso",
|
||||
"OSE.reaction.Neutral": "{name} é Neutro",
|
||||
"OSE.reaction.Indifferent": "{name} é Indiferente",
|
||||
"OSE.reaction.Friendly": "{name} é Amigável"
|
||||
"ACKS.reaction.check": "Teste de reação",
|
||||
"ACKS.reaction.Hostile": "{name} é Hostil",
|
||||
"ACKS.reaction.Unfriendly": "{name} é Inamistoso",
|
||||
"ACKS.reaction.Neutral": "{name} é Neutro",
|
||||
"ACKS.reaction.Indifferent": "{name} é Indiferente",
|
||||
"ACKS.reaction.Friendly": "{name} é Amigável"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { OseActor } from "./entity.js";
|
||||
import { OseEntityTweaks } from "../dialog/entity-tweaks.js";
|
||||
import { AcksActor } from "./entity.js";
|
||||
import { AcksEntityTweaks } from "../dialog/entity-tweaks.js";
|
||||
|
||||
export class OseActorSheet extends ActorSheet {
|
||||
export class AcksActorSheet extends ActorSheet {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
}
|
||||
|
|
@ -10,10 +10,10 @@ export class OseActorSheet extends ActorSheet {
|
|||
getData() {
|
||||
const data = super.getData();
|
||||
|
||||
data.config = CONFIG.OSE;
|
||||
data.config = CONFIG.ACKS;
|
||||
// Settings
|
||||
data.config.ascendingAC = game.settings.get("ose", "ascendingAC");
|
||||
data.config.encumbrance = game.settings.get("ose", "encumbranceOption");
|
||||
data.config.ascendingAC = game.settings.get("acks", "ascendingAC");
|
||||
data.config.encumbrance = game.settings.get("acks", "encumbranceOption");
|
||||
|
||||
// Prepare owned items
|
||||
this._prepareItems(data);
|
||||
|
|
@ -121,6 +121,7 @@ export class OseActorSheet extends ActorSheet {
|
|||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
|
||||
// Item summaries
|
||||
html
|
||||
.find(".item .item-name h4")
|
||||
|
|
@ -148,7 +149,7 @@ export class OseActorSheet extends ActorSheet {
|
|||
data: { counter: { value: item.data.data.counter.value - 1 } },
|
||||
});
|
||||
}
|
||||
item.rollWeapon({ skipDialog: ev.ctrlKey });
|
||||
item.rollWeapon({ skipDialog: ev.ctrlKey });
|
||||
} else if (item.type == "spell") {
|
||||
item.spendSpell({ skipDialog: ev.ctrlKey });
|
||||
} else {
|
||||
|
|
@ -156,6 +157,11 @@ export class OseActorSheet extends ActorSheet {
|
|||
}
|
||||
});
|
||||
|
||||
html
|
||||
.find(".memorize input")
|
||||
.click((ev) => ev.target.select())
|
||||
.change(this._onSpellChange.bind(this));
|
||||
|
||||
html.find(".attack a").click((ev) => {
|
||||
let actorObject = this.actor;
|
||||
let element = event.currentTarget;
|
||||
|
|
@ -165,9 +171,13 @@ export class OseActorSheet extends ActorSheet {
|
|||
roll: {},
|
||||
};
|
||||
actorObject.targetAttack(rollData, attack, {
|
||||
type: attack,
|
||||
skipDialog: ev.ctrlKey,
|
||||
});
|
||||
type: attack,
|
||||
skipDialog: ev.ctrlKey,
|
||||
});
|
||||
|
||||
html.find(".spells .item-reset").click((ev) => {
|
||||
this._resetSpells(ev);
|
||||
});
|
||||
});
|
||||
|
||||
html.find(".hit-dice .attribute-name a").click((ev) => {
|
||||
|
|
@ -227,14 +237,14 @@ export class OseActorSheet extends ActorSheet {
|
|||
let heightDelta = this.position.height - this.options.height;
|
||||
editor.style.height = `${
|
||||
heightDelta + parseInt(container.dataset.editorSize)
|
||||
}px`;
|
||||
}px`;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_onConfigureActor(event) {
|
||||
event.preventDefault();
|
||||
new OseEntityTweaks(this.actor, {
|
||||
new AcksEntityTweaks(this.actor, {
|
||||
top: this.position.top + 40,
|
||||
left: this.position.left + (this.position.width - 400) / 2,
|
||||
}).render(true);
|
||||
|
|
@ -252,7 +262,7 @@ export class OseActorSheet extends ActorSheet {
|
|||
if (this.options.editable && canConfigure) {
|
||||
buttons = [
|
||||
{
|
||||
label: game.i18n.localize("OSE.dialog.tweaks"),
|
||||
label: game.i18n.localize("ACKS.dialog.tweaks"),
|
||||
class: "configure-actor",
|
||||
icon: "fas fa-code",
|
||||
onclick: (ev) => this._onConfigureActor(ev),
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import { OseActor } from "./entity.js";
|
||||
import { OseActorSheet } from "./actor-sheet.js";
|
||||
import { OseCharacterModifiers } from "../dialog/character-modifiers.js";
|
||||
import { OseCharacterCreator } from "../dialog/character-creation.js";
|
||||
import { AcksActor } from "./entity.js";
|
||||
import { AcksActorSheet } from "./actor-sheet.js";
|
||||
import { AcksCharacterModifiers } from "../dialog/character-modifiers.js";
|
||||
import { AcksCharacterCreator } from "../dialog/character-creation.js";
|
||||
|
||||
/**
|
||||
* Extend the basic ActorSheet with some very simple modifications
|
||||
*/
|
||||
export class OseActorSheetCharacter extends OseActorSheet {
|
||||
export class AcksActorSheetCharacter extends AcksActorSheet {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
}
|
||||
|
|
@ -19,8 +19,8 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
*/
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["ose", "sheet", "actor", "character"],
|
||||
template: "systems/ose/templates/actors/character-sheet.html",
|
||||
classes: ["acks", "sheet", "actor", "character"],
|
||||
template: "systems/acks/templates/actors/character-sheet.html",
|
||||
width: 450,
|
||||
height: 530,
|
||||
resizable: true,
|
||||
|
|
@ -35,7 +35,7 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
}
|
||||
|
||||
generateScores() {
|
||||
new OseCharacterCreator(this.actor, {
|
||||
new AcksCharacterCreator(this.actor, {
|
||||
top: this.position.top + 40,
|
||||
left: this.position.left + (this.position.width - 400) / 2,
|
||||
}).render(true);
|
||||
|
|
@ -48,9 +48,9 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
getData() {
|
||||
const data = super.getData();
|
||||
|
||||
data.config.ascendingAC = game.settings.get("ose", "ascendingAC");
|
||||
data.config.initiative = game.settings.get("ose", "initiative") != "group";
|
||||
data.config.encumbrance = game.settings.get("ose", "encumbranceOption");
|
||||
data.config.ascendingAC = game.settings.get("acks", "ascendingAC");
|
||||
data.config.initiative = game.settings.get("acks", "initiative") != "group";
|
||||
data.config.encumbrance = game.settings.get("acks", "encumbranceOption");
|
||||
|
||||
data.isNew = this.actor.isNew();
|
||||
return data;
|
||||
|
|
@ -58,11 +58,11 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
|
||||
|
||||
async _chooseLang() {
|
||||
let choices = CONFIG.OSE.languages;
|
||||
let choices = CONFIG.ACKS.languages;
|
||||
|
||||
let templateData = { choices: choices },
|
||||
dlg = await renderTemplate(
|
||||
"/systems/ose/templates/actors/dialogs/lang-create.html",
|
||||
"/systems/acks/templates/actors/dialogs/lang-create.html",
|
||||
templateData
|
||||
);
|
||||
//Create Dialog window
|
||||
|
|
@ -72,7 +72,7 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
content: dlg,
|
||||
buttons: {
|
||||
ok: {
|
||||
label: game.i18n.localize("OSE.Ok"),
|
||||
label: game.i18n.localize("ACKS.Ok"),
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
callback: (html) => {
|
||||
resolve({
|
||||
|
|
@ -82,7 +82,7 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: game.i18n.localize("OSE.Cancel"),
|
||||
label: game.i18n.localize("ACKS.Cancel"),
|
||||
},
|
||||
},
|
||||
default: "ok",
|
||||
|
|
@ -94,7 +94,7 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
const data = this.actor.data.data;
|
||||
let update = duplicate(data[table]);
|
||||
this._chooseLang().then((dialogInput) => {
|
||||
const name = CONFIG.OSE.languages[dialogInput.choice];
|
||||
const name = CONFIG.ACKS.languages[dialogInput.choice];
|
||||
if (update.value) {
|
||||
update.value.push(name);
|
||||
} else {
|
||||
|
|
@ -125,7 +125,7 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
|||
|
||||
_onShowModifiers(event) {
|
||||
event.preventDefault();
|
||||
new OseCharacterModifiers(this.actor, {
|
||||
new AcksCharacterModifiers(this.actor, {
|
||||
top: this.position.top + 40,
|
||||
left: this.position.left + (this.position.width - 400) / 2,
|
||||
}).render(true);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { OseDice } from "../dice.js";
|
||||
import { AcksDice } from "../dice.js";
|
||||
|
||||
export class OseActor extends Actor {
|
||||
export class AcksActor extends Actor {
|
||||
/**
|
||||
* Extends data from base Actor class
|
||||
*/
|
||||
|
|
@ -17,7 +17,7 @@ export class OseActor extends Actor {
|
|||
this.computeTreasure();
|
||||
|
||||
// Determine Initiative
|
||||
if (game.settings.get("ose", "initiative") != "group") {
|
||||
if (game.settings.get("acks", "initiative") != "group") {
|
||||
data.initiative.value = data.initiative.mod;
|
||||
if (this.data.type == "character") {
|
||||
data.initiative.value += data.scores.dex.mod;
|
||||
|
|
@ -42,7 +42,7 @@ export class OseActor extends Actor {
|
|||
}).then(() => {
|
||||
const speaker = ChatMessage.getSpeaker({ actor: this });
|
||||
ChatMessage.create({
|
||||
content: game.i18n.format("OSE.messages.GetExperience", {
|
||||
content: game.i18n.format("ACKS.messages.GetExperience", {
|
||||
name: this.name,
|
||||
value: modified,
|
||||
}),
|
||||
|
|
@ -71,7 +71,7 @@ export class OseActor extends Actor {
|
|||
generateSave(hd) {
|
||||
let saves = {};
|
||||
for (let i = 0; i <= hd; i++) {
|
||||
let tmp = CONFIG.OSE.monster_saves[i];
|
||||
let tmp = CONFIG.ACKS.monster_saves[i];
|
||||
if (tmp) {
|
||||
saves = tmp;
|
||||
}
|
||||
|
|
@ -115,7 +115,7 @@ export class OseActor extends Actor {
|
|||
}
|
||||
|
||||
rollSave(save, options = {}) {
|
||||
const label = game.i18n.localize(`OSE.saves.${save}.long`);
|
||||
const label = game.i18n.localize(`ACKS.saves.${save}.long`);
|
||||
const rollParts = ["1d20"];
|
||||
|
||||
const data = {
|
||||
|
|
@ -125,7 +125,7 @@ export class OseActor extends Actor {
|
|||
target: this.data.data.saves[save].value,
|
||||
magic: this.data.data.scores.wis.mod
|
||||
},
|
||||
details: game.i18n.format("OSE.roll.details.save", { save: label }),
|
||||
details: game.i18n.format("ACKS.roll.details.save", { save: label }),
|
||||
};
|
||||
|
||||
let skip = options.event && options.event.ctrlKey;
|
||||
|
|
@ -133,14 +133,14 @@ export class OseActor extends Actor {
|
|||
const rollMethod = this.data.type == "character" ? OseDice.RollSave : OseDice.Roll;
|
||||
|
||||
// Roll and return
|
||||
return rollMethod({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
skipDialog: skip,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.format("OSE.roll.save", { save: label }),
|
||||
title: game.i18n.format("OSE.roll.save", { save: label }),
|
||||
flavor: game.i18n.format("ACKS.roll.save", { save: label }),
|
||||
title: game.i18n.format("ACKS.roll.save", { save: label }),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -156,19 +156,19 @@ export class OseActor extends Actor {
|
|||
};
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
skipDialog: true,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.localize("OSE.roll.morale"),
|
||||
title: game.i18n.localize("OSE.roll.morale"),
|
||||
flavor: game.i18n.localize("ACKS.roll.morale"),
|
||||
title: game.i18n.localize("ACKS.roll.morale"),
|
||||
});
|
||||
}
|
||||
|
||||
rollLoyalty(options = {}) {
|
||||
const label = game.i18n.localize(`OSE.roll.loyalty`);
|
||||
const label = game.i18n.localize(`ACKS.roll.loyalty`);
|
||||
const rollParts = ["2d6"];
|
||||
|
||||
const data = {
|
||||
|
|
@ -180,7 +180,7 @@ export class OseActor extends Actor {
|
|||
};
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
|
|
@ -199,19 +199,19 @@ export class OseActor extends Actor {
|
|||
roll: {
|
||||
type: "table",
|
||||
table: {
|
||||
2: game.i18n.format("OSE.reaction.Hostile", {
|
||||
2: game.i18n.format("ACKS.reaction.Hostile", {
|
||||
name: this.data.name,
|
||||
}),
|
||||
3: game.i18n.format("OSE.reaction.Unfriendly", {
|
||||
3: game.i18n.format("ACKS.reaction.Unfriendly", {
|
||||
name: this.data.name,
|
||||
}),
|
||||
6: game.i18n.format("OSE.reaction.Neutral", {
|
||||
6: game.i18n.format("ACKS.reaction.Neutral", {
|
||||
name: this.data.name,
|
||||
}),
|
||||
9: game.i18n.format("OSE.reaction.Indifferent", {
|
||||
9: game.i18n.format("ACKS.reaction.Indifferent", {
|
||||
name: this.data.name,
|
||||
}),
|
||||
12: game.i18n.format("OSE.reaction.Friendly", {
|
||||
12: game.i18n.format("ACKS.reaction.Friendly", {
|
||||
name: this.data.name,
|
||||
}),
|
||||
},
|
||||
|
|
@ -221,19 +221,19 @@ export class OseActor extends Actor {
|
|||
let skip = options.event && options.event.ctrlKey;
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
skipDialog: skip,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.localize("OSE.reaction.check"),
|
||||
title: game.i18n.localize("OSE.reaction.check"),
|
||||
flavor: game.i18n.localize("ACKS.reaction.check"),
|
||||
title: game.i18n.localize("ACKS.reaction.check"),
|
||||
});
|
||||
}
|
||||
|
||||
rollCheck(score, options = {}) {
|
||||
const label = game.i18n.localize(`OSE.scores.${score}.long`);
|
||||
const label = game.i18n.localize(`ACKS.scores.${score}.long`);
|
||||
const rollParts = ["1d20"];
|
||||
|
||||
const data = {
|
||||
|
|
@ -243,7 +243,7 @@ export class OseActor extends Actor {
|
|||
target: this.data.data.scores[score].value,
|
||||
},
|
||||
|
||||
details: game.i18n.format("OSE.roll.details.attribute", {
|
||||
details: game.i18n.format("ACKS.roll.details.attribute", {
|
||||
score: label,
|
||||
}),
|
||||
};
|
||||
|
|
@ -251,19 +251,19 @@ export class OseActor extends Actor {
|
|||
let skip = options.event && options.event.ctrlKey;
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
skipDialog: skip,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.format("OSE.roll.attribute", { attribute: label }),
|
||||
title: game.i18n.format("OSE.roll.attribute", { attribute: label }),
|
||||
flavor: game.i18n.format("ACKS.roll.attribute", { attribute: label }),
|
||||
title: game.i18n.format("ACKS.roll.attribute", { attribute: label }),
|
||||
});
|
||||
}
|
||||
|
||||
rollHitDice(options = {}) {
|
||||
const label = game.i18n.localize(`OSE.roll.hd`);
|
||||
const label = game.i18n.localize(`ACKS.roll.hd`);
|
||||
const rollParts = [this.data.data.hp.hd];
|
||||
if (this.data.type == "character") {
|
||||
rollParts.push(this.data.data.scores.con.mod);
|
||||
|
|
@ -277,7 +277,7 @@ export class OseActor extends Actor {
|
|||
};
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
|
|
@ -308,19 +308,19 @@ export class OseActor extends Actor {
|
|||
};
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
skipDialog: true,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.format("OSE.roll.appearing", { type: label }),
|
||||
title: game.i18n.format("OSE.roll.appearing", { type: label }),
|
||||
flavor: game.i18n.format("ACKS.roll.appearing", { type: label }),
|
||||
title: game.i18n.format("ACKS.roll.appearing", { type: label }),
|
||||
});
|
||||
}
|
||||
|
||||
rollExploration(expl, options = {}) {
|
||||
const label = game.i18n.localize(`OSE.exploration.${expl}.long`);
|
||||
const label = game.i18n.localize(`ACKS.exploration.${expl}.long`);
|
||||
const rollParts = ["1d6"];
|
||||
|
||||
const data = {
|
||||
|
|
@ -329,7 +329,7 @@ export class OseActor extends Actor {
|
|||
type: "below",
|
||||
target: this.data.data.exploration[expl],
|
||||
},
|
||||
details: game.i18n.format("OSE.roll.details.exploration", {
|
||||
details: game.i18n.format("ACKS.roll.details.exploration", {
|
||||
expl: label,
|
||||
}),
|
||||
};
|
||||
|
|
@ -337,14 +337,14 @@ export class OseActor extends Actor {
|
|||
let skip = options.event && options.event.ctrlKey;
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
skipDialog: skip,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.format("OSE.roll.exploration", { exploration: label }),
|
||||
title: game.i18n.format("OSE.roll.exploration", { exploration: label }),
|
||||
flavor: game.i18n.format("ACKS.roll.exploration", { exploration: label }),
|
||||
title: game.i18n.format("ACKS.roll.exploration", { exploration: label }),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -372,14 +372,14 @@ export class OseActor extends Actor {
|
|||
}
|
||||
|
||||
// Damage roll
|
||||
OseDice.Roll({
|
||||
AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: dmgParts,
|
||||
data: rollData,
|
||||
skipDialog: true,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: `${attData.label} - ${game.i18n.localize("OSE.Damage")}`,
|
||||
title: `${attData.label} - ${game.i18n.localize("OSE.Damage")}`,
|
||||
flavor: `${attData.label} - ${game.i18n.localize("ACKS.Damage")}`,
|
||||
title: `${attData.label} - ${game.i18n.localize("ACKS.Damage")}`,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -399,21 +399,21 @@ export class OseActor extends Actor {
|
|||
|
||||
rollAttack(attData, options = {}) {
|
||||
const data = this.data.data;
|
||||
const rollParts = ["1d20"];
|
||||
const rollParts = ["1d20x="];
|
||||
const dmgParts = [];
|
||||
let label = game.i18n.format("OSE.roll.attacks", {
|
||||
let label = game.i18n.format("ACKS.roll.attacks", {
|
||||
name: this.data.name,
|
||||
});
|
||||
if (!attData.item) {
|
||||
dmgParts.push("1d6");
|
||||
} else {
|
||||
label = game.i18n.format("OSE.roll.attacksWith", {
|
||||
label = game.i18n.format("ACKS.roll.attacksWith", {
|
||||
name: attData.item.name,
|
||||
});
|
||||
dmgParts.push(attData.item.data.damage);
|
||||
}
|
||||
|
||||
let ascending = game.settings.get("ose", "ascendingAC");
|
||||
let ascending = game.settings.get("acks", "ascendingAC");
|
||||
if (ascending) {
|
||||
rollParts.push(data.thac0.bba.toString());
|
||||
}
|
||||
|
|
@ -448,7 +448,7 @@ export class OseActor extends Actor {
|
|||
};
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: rollData,
|
||||
|
|
@ -500,13 +500,14 @@ export class OseActor extends Actor {
|
|||
return;
|
||||
}
|
||||
const data = this.data.data;
|
||||
let option = game.settings.get("ose", "encumbranceOption");
|
||||
let option = game.settings.get("acks", "encumbranceOption");
|
||||
|
||||
// Compute encumbrance
|
||||
let totalWeight = 0;
|
||||
let hasItems = false;
|
||||
Object.values(this.data.items).forEach((item) => {
|
||||
if (item.type == "item" && !item.data.treasure) {
|
||||
|
||||
hasItems = true;
|
||||
}
|
||||
if (
|
||||
|
|
@ -538,7 +539,7 @@ export class OseActor extends Actor {
|
|||
|
||||
_calculateMovement() {
|
||||
const data = this.data.data;
|
||||
let option = game.settings.get("ose", "encumbranceOption");
|
||||
let option = game.settings.get("acks", "encumbranceOption");
|
||||
let weight = data.encumbrance.value;
|
||||
let delta = data.encumbrance.max - 1600;
|
||||
if (["detailed", "complete"].includes(option)) {
|
||||
|
|
@ -576,7 +577,7 @@ export class OseActor extends Actor {
|
|||
data.movement.base = 60;
|
||||
break;
|
||||
}
|
||||
if (weight > game.settings.get("ose", "significantTreasure")) {
|
||||
if (weight > game.settings.get("acks", "significantTreasure")) {
|
||||
data.movement.base -= 30;
|
||||
}
|
||||
}
|
||||
|
|
@ -604,7 +605,7 @@ export class OseActor extends Actor {
|
|||
}
|
||||
// Compute AC
|
||||
let baseAc = 9;
|
||||
let baseAac = 10;
|
||||
let baseAac = 0;
|
||||
let AcShield = 0;
|
||||
let AacShield = 0;
|
||||
const data = this.data.data;
|
||||
|
|
@ -642,27 +643,27 @@ export class OseActor extends Actor {
|
|||
16: 2,
|
||||
18: 3,
|
||||
};
|
||||
data.scores.str.mod = OseActor._valueFromTable(
|
||||
data.scores.str.mod = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.str.value
|
||||
);
|
||||
data.scores.int.mod = OseActor._valueFromTable(
|
||||
data.scores.int.mod = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.int.value
|
||||
);
|
||||
data.scores.dex.mod = OseActor._valueFromTable(
|
||||
data.scores.dex.mod = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.dex.value
|
||||
);
|
||||
data.scores.cha.mod = OseActor._valueFromTable(
|
||||
data.scores.cha.mod = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.cha.value
|
||||
);
|
||||
data.scores.wis.mod = OseActor._valueFromTable(
|
||||
data.scores.wis.mod = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.wis.value
|
||||
);
|
||||
data.scores.con.mod = OseActor._valueFromTable(
|
||||
data.scores.con.mod = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.con.value
|
||||
);
|
||||
|
|
@ -677,12 +678,12 @@ export class OseActor extends Actor {
|
|||
16: 1,
|
||||
18: 2,
|
||||
};
|
||||
data.scores.dex.init = OseActor._valueFromTable(
|
||||
capped,
|
||||
data.scores.dex.init = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.dex.value
|
||||
);
|
||||
data.scores.cha.npc = OseActor._valueFromTable(
|
||||
capped,
|
||||
data.scores.cha.npc = AcksActor._valueFromTable(
|
||||
standard,
|
||||
data.scores.cha.value
|
||||
);
|
||||
data.scores.cha.retain = data.scores.cha.mod + 4;
|
||||
|
|
@ -696,30 +697,28 @@ export class OseActor extends Actor {
|
|||
16: 4,
|
||||
18: 5,
|
||||
};
|
||||
data.exploration.odMod = OseActor._valueFromTable(
|
||||
data.exploration.odMod = AcksActor._valueFromTable(
|
||||
od,
|
||||
data.scores.str.value
|
||||
);
|
||||
|
||||
const literacy = {
|
||||
0: "",
|
||||
3: "OSE.Illiterate",
|
||||
6: "OSE.LiteracyBasic",
|
||||
9: "OSE.Literate",
|
||||
3: "ACKS.Illiterate",
|
||||
9: "ACKS.Literate",
|
||||
};
|
||||
data.languages.literacy = OseActor._valueFromTable(
|
||||
data.languages.literacy = AcksActor._valueFromTable(
|
||||
literacy,
|
||||
data.scores.int.value
|
||||
);
|
||||
|
||||
const spoken = {
|
||||
0: "OSE.NativeBroken",
|
||||
3: "OSE.Native",
|
||||
13: "OSE.NativePlus1",
|
||||
16: "OSE.NativePlus2",
|
||||
18: "OSE.NativePlus3",
|
||||
0: "ACKS.NativeBroken",
|
||||
3: "ACKS.Native",
|
||||
13: "ACKS.NativePlus1",
|
||||
16: "ACKS.NativePlus2",
|
||||
18: "ACKS.NativePlus3",
|
||||
};
|
||||
data.languages.spoken = OseActor._valueFromTable(
|
||||
data.languages.spoken = AcksActor._valueFromTable(
|
||||
spoken,
|
||||
data.scores.int.value
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import { OseActor } from "./entity.js";
|
||||
import { OseActorSheet } from "./actor-sheet.js";
|
||||
import { AcksActor } from "./entity.js";
|
||||
import { AcksActorSheet } from "./actor-sheet.js";
|
||||
|
||||
/**
|
||||
* Extend the basic ActorSheet with some very simple modifications
|
||||
*/
|
||||
export class OseActorSheetMonster extends OseActorSheet {
|
||||
export class AcksActorSheetMonster extends AcksActorSheet {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
}
|
||||
|
|
@ -17,8 +17,8 @@ export class OseActorSheetMonster extends OseActorSheet {
|
|||
*/
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["ose", "sheet", "monster", "actor"],
|
||||
template: "systems/ose/templates/actors/monster-sheet.html",
|
||||
classes: ["acks", "sheet", "monster", "actor"],
|
||||
template: "systems/acks/templates/actors/monster-sheet.html",
|
||||
width: 450,
|
||||
height: 560,
|
||||
resizable: true,
|
||||
|
|
@ -36,20 +36,20 @@ export class OseActorSheetMonster extends OseActorSheet {
|
|||
* Monster creation helpers
|
||||
*/
|
||||
async generateSave() {
|
||||
let choices = CONFIG.OSE.monster_saves;
|
||||
let choices = CONFIG.ACKS.monster_saves;
|
||||
|
||||
let templateData = { choices: choices },
|
||||
dlg = await renderTemplate(
|
||||
"/systems/ose/templates/actors/dialogs/monster-saves.html",
|
||||
"/systems/acks/templates/actors/dialogs/monster-saves.html",
|
||||
templateData
|
||||
);
|
||||
//Create Dialog window
|
||||
new Dialog({
|
||||
title: game.i18n.localize("OSE.dialog.generateSaves"),
|
||||
title: game.i18n.localize("ACKS.dialog.generateSaves"),
|
||||
content: dlg,
|
||||
buttons: {
|
||||
ok: {
|
||||
label: game.i18n.localize("OSE.Ok"),
|
||||
label: game.i18n.localize("ACKS.Ok"),
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
callback: (html) => {
|
||||
let hd = html.find('select[name="choice"]').val();
|
||||
|
|
@ -58,7 +58,7 @@ export class OseActorSheetMonster extends OseActorSheet {
|
|||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: game.i18n.localize("OSE.Cancel"),
|
||||
label: game.i18n.localize("ACKS.Cancel"),
|
||||
},
|
||||
},
|
||||
default: "ok",
|
||||
|
|
@ -75,7 +75,7 @@ export class OseActorSheetMonster extends OseActorSheet {
|
|||
const data = super.getData();
|
||||
|
||||
// Settings
|
||||
data.config.morale = game.settings.get("ose", "morale");
|
||||
data.config.morale = game.settings.get("acks", "morale");
|
||||
data.data.details.treasure.link = TextEditor.enrichHTML(data.data.details.treasure.table);
|
||||
data.isNew = this.actor.isNew();
|
||||
return data;
|
||||
|
|
@ -117,7 +117,7 @@ export class OseActorSheetMonster extends OseActorSheet {
|
|||
content: dlg,
|
||||
buttons: {
|
||||
ok: {
|
||||
label: game.i18n.localize("OSE.Ok"),
|
||||
label: game.i18n.localize("ACKS.Ok"),
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
callback: (html) => {
|
||||
resolve({
|
||||
|
|
@ -128,7 +128,7 @@ export class OseActorSheetMonster extends OseActorSheet {
|
|||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: game.i18n.localize("OSE.Cancel"),
|
||||
label: game.i18n.localize("ACKS.Cancel"),
|
||||
},
|
||||
},
|
||||
default: "ok",
|
||||
|
|
@ -252,7 +252,7 @@ export class OseActorSheetMonster extends OseActorSheet {
|
|||
const li = $(ev.currentTarget).parents(".item");
|
||||
const item = this.actor.getOwnedItem(li.data("itemId"));
|
||||
let currentColor = item.data.data.pattern;
|
||||
let colors = Object.keys(CONFIG.OSE.colors);
|
||||
let colors = Object.keys(CONFIG.ACKS.colors);
|
||||
let index = colors.indexOf(currentColor);
|
||||
if (index + 1 == colors.length) {
|
||||
index = 0;
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@ export const addChatMessageContextOptions = function(html, options) {
|
|||
let canApply = li => canvas.tokens.controlled.length && li.find(".dice-roll").length;
|
||||
options.push(
|
||||
{
|
||||
name: game.i18n.localize("OSE.messages.applyDamage"),
|
||||
name: game.i18n.localize("ACKS.messages.applyDamage"),
|
||||
icon: '<i class="fas fa-user-minus"></i>',
|
||||
condition: canApply,
|
||||
callback: li => applyChatCardDamage(li, 1)
|
||||
},
|
||||
{
|
||||
name: game.i18n.localize("OSE.messages.applyHealing"),
|
||||
name: game.i18n.localize("ACKS.messages.applyHealing"),
|
||||
icon: '<i class="fas fa-user-plus"></i>',
|
||||
condition: canApply,
|
||||
callback: li => applyChatCardDamage(li, -1)
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
export class OseCombat {
|
||||
export class AcksCombat {
|
||||
static rollInitiative(combat, data) {
|
||||
// Check groups
|
||||
data.combatants = [];
|
||||
let groups = {};
|
||||
combat.data.combatants.forEach((cbt) => {
|
||||
groups[cbt.flags.ose.group] = { present: true };
|
||||
groups[cbt.flags.acks.group] = { present: true };
|
||||
data.combatants.push(cbt);
|
||||
});
|
||||
|
||||
|
|
@ -12,7 +12,7 @@ export class OseCombat {
|
|||
Object.keys(groups).forEach((group) => {
|
||||
let roll = new Roll("1d6").roll();
|
||||
roll.toMessage({
|
||||
flavor: game.i18n.format('OSE.roll.initiative', { group: CONFIG["OSE"].colors[group] }),
|
||||
flavor: game.i18n.format('ACKS.roll.initiative', { group: CONFIG["ACKS"].colors[group] }),
|
||||
});
|
||||
groups[group].initiative = roll.total;
|
||||
});
|
||||
|
|
@ -26,14 +26,14 @@ export class OseCombat {
|
|||
data.combatants[i].initiative = -789;
|
||||
} else {
|
||||
data.combatants[i].initiative =
|
||||
groups[data.combatants[i].flags.ose.group].initiative;
|
||||
groups[data.combatants[i].flags.acks.group].initiative;
|
||||
}
|
||||
}
|
||||
combat.setupTurns();
|
||||
}
|
||||
|
||||
static async resetInitiative(combat, data) {
|
||||
let reroll = game.settings.get("ose", "rerollInitiative");
|
||||
let reroll = game.settings.get("acks", "rerollInitiative");
|
||||
if (!["reset", "reroll"].includes(reroll)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ export class OseCombat {
|
|||
token: c.token._id,
|
||||
alias: c.token.name
|
||||
},
|
||||
flavor: game.i18n.format('OSE.roll.individualInit', { name: c.token.name })
|
||||
flavor: game.i18n.format('ACKS.roll.individualInit', { name: c.token.name })
|
||||
}, {});
|
||||
const chatData = roll.toMessage(messageData, { rollMode, create: false });
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ export class OseCombat {
|
|||
? '<i class="fas fa-dizzy"></i>'
|
||||
: span.innerHTML;
|
||||
});
|
||||
let init = game.settings.get("ose", "initiative") == "group";
|
||||
let init = game.settings.get("acks", "initiative") == "group";
|
||||
if (!init) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -109,19 +109,19 @@ export class OseCombat {
|
|||
|
||||
// Get group color
|
||||
let cmbtant = object.combat.getCombatant(ct.dataset.combatantId);
|
||||
let color = cmbtant.flags.ose.group;
|
||||
let color = cmbtant.flags.acks.group;
|
||||
|
||||
// Append colored flag
|
||||
let controls = $(ct).find(".combatant-controls");
|
||||
controls.prepend(
|
||||
`<a class='combatant-control flag' style='color:${color}' title="${CONFIG.OSE.colors[color]}"><i class='fas fa-flag'></i></a>`
|
||||
`<a class='combatant-control flag' style='color:${color}' title="${CONFIG.ACKS.colors[color]}"><i class='fas fa-flag'></i></a>`
|
||||
);
|
||||
});
|
||||
OseCombat.addListeners(html);
|
||||
AcksCombat.addListeners(html);
|
||||
}
|
||||
|
||||
static updateCombatant(combat, combatant, data) {
|
||||
let init = game.settings.get("ose", "initiative");
|
||||
let init = game.settings.get("acks", "initiative");
|
||||
// Why do you reroll ?
|
||||
if (combatant.actor.data.data.isSlow) {
|
||||
data.initiative = -789;
|
||||
|
|
@ -135,7 +135,7 @@ export class OseCombat {
|
|||
ct.initiative &&
|
||||
ct.initiative != "-789.00" &&
|
||||
ct._id != data._id &&
|
||||
ct.flags.ose.group == combatant.flags.ose.group
|
||||
ct.flags.acks.group == combatant.flags.acks.group
|
||||
) {
|
||||
groupInit = ct.initiative;
|
||||
// Set init
|
||||
|
|
@ -152,7 +152,7 @@ export class OseCombat {
|
|||
return;
|
||||
}
|
||||
let currentColor = ev.currentTarget.style.color;
|
||||
let colors = Object.keys(CONFIG.OSE.colors);
|
||||
let colors = Object.keys(CONFIG.ACKS.colors);
|
||||
let index = colors.indexOf(currentColor);
|
||||
if (index + 1 == colors.length) {
|
||||
index = 0;
|
||||
|
|
@ -162,7 +162,7 @@ export class OseCombat {
|
|||
let id = $(ev.currentTarget).closest(".combatant")[0].dataset.combatantId;
|
||||
game.combat.updateCombatant({
|
||||
_id: id,
|
||||
flags: { ose: { group: colors[index] } },
|
||||
flags: { acks: { group: colors[index] } },
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -171,7 +171,7 @@ export class OseCombat {
|
|||
return;
|
||||
}
|
||||
let data = {};
|
||||
OseCombat.rollInitiative(game.combat, data);
|
||||
AcksCombat.rollInitiative(game.combat, data);
|
||||
game.combat.update({ data: data }).then(() => {
|
||||
game.combat.setupTurns();
|
||||
});
|
||||
|
|
@ -193,7 +193,7 @@ export class OseCombat {
|
|||
break;
|
||||
}
|
||||
data.flags = {
|
||||
ose: {
|
||||
acks: {
|
||||
group: color,
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
export const OSE = {
|
||||
export const ACKS = {
|
||||
scores: {
|
||||
str: "OSE.scores.str.long",
|
||||
int: "OSE.scores.int.long",
|
||||
dex: "OSE.scores.dex.long",
|
||||
wis: "OSE.scores.wis.long",
|
||||
con: "OSE.scores.con.long",
|
||||
cha: "OSE.scores.cha.long",
|
||||
str: "ACKS.scores.str.long",
|
||||
int: "ACKS.scores.int.long",
|
||||
dex: "ACKS.scores.dex.long",
|
||||
wis: "ACKS.scores.wis.long",
|
||||
con: "ACKS.scores.con.long",
|
||||
cha: "ACKS.scores.cha.long",
|
||||
},
|
||||
roll_type: {
|
||||
result: "=",
|
||||
|
|
@ -13,80 +13,95 @@ export const OSE = {
|
|||
below: "≤"
|
||||
},
|
||||
saves_short: {
|
||||
death: "OSE.saves.death.short",
|
||||
wand: "OSE.saves.wand.short",
|
||||
paralysis: "OSE.saves.paralysis.short",
|
||||
breath: "OSE.saves.breath.short",
|
||||
spell: "OSE.saves.spell.short",
|
||||
death: "ACKS.saves.death.short",
|
||||
wand: "ACKS.saves.wand.short",
|
||||
paralysis: "ACKS.saves.paralysis.short",
|
||||
breath: "ACKS.saves.breath.short",
|
||||
spell: "ACKS.saves.spell.short",
|
||||
},
|
||||
saves_long: {
|
||||
death: "OSE.saves.death.long",
|
||||
wand: "OSE.saves.wand.long",
|
||||
paralysis: "OSE.saves.paralysis.long",
|
||||
breath: "OSE.saves.breath.long",
|
||||
spell: "OSE.saves.spell.long",
|
||||
death: "ACKS.saves.death.long",
|
||||
wand: "ACKS.saves.wand.long",
|
||||
paralysis: "ACKS.saves.paralysis.long",
|
||||
breath: "ACKS.saves.breath.long",
|
||||
spell: "ACKS.saves.spell.long",
|
||||
},
|
||||
armor : {
|
||||
unarmored: "OSE.armor.unarmored",
|
||||
light: "OSE.armor.light",
|
||||
heavy: "OSE.armor.heavy",
|
||||
shield: "OSE.armor.shield",
|
||||
unarmored: "ACKS.armor.unarmored",
|
||||
light: "ACKS.armor.light",
|
||||
heavy: "ACKS.armor.heavy",
|
||||
shield: "ACKS.armor.shield",
|
||||
},
|
||||
colors: {
|
||||
green: "OSE.colors.green",
|
||||
red: "OSE.colors.red",
|
||||
yellow: "OSE.colors.yellow",
|
||||
purple: "OSE.colors.purple",
|
||||
blue: "OSE.colors.blue",
|
||||
orange: "OSE.colors.orange",
|
||||
white: "OSE.colors.white"
|
||||
green: "ACKS.colors.green",
|
||||
red: "ACKS.colors.red",
|
||||
yellow: "ACKS.colors.yellow",
|
||||
purple: "ACKS.colors.purple",
|
||||
blue: "ACKS.colors.blue",
|
||||
orange: "ACKS.colors.orange",
|
||||
white: "ACKS.colors.white"
|
||||
},
|
||||
languages: [
|
||||
"Common",
|
||||
"Lawful",
|
||||
"Chaotic",
|
||||
"Neutral",
|
||||
"Bugbear",
|
||||
"Doppelgänger",
|
||||
"Dragon",
|
||||
"Dwarvish",
|
||||
"Elvish",
|
||||
"Gargoyle",
|
||||
"Gnoll",
|
||||
"Gnomish",
|
||||
"Goblin",
|
||||
"Halfling",
|
||||
"Harpy",
|
||||
"Hobgoblin",
|
||||
"Kobold",
|
||||
"Lizard Man",
|
||||
"Medusa",
|
||||
"Minotaur",
|
||||
"Ogre",
|
||||
"Orcish",
|
||||
"Pixie"
|
||||
],
|
||||
"Northern",
|
||||
"Jutlandic",
|
||||
"Auran",
|
||||
"Dwarvish",
|
||||
"Elvish",
|
||||
"Celedorean",
|
||||
"Kemeshi",
|
||||
"Krysean",
|
||||
"Kushtun",
|
||||
"Nicean",
|
||||
"Opelenean",
|
||||
"Rornish",
|
||||
"Shebatean",
|
||||
"Skysos",
|
||||
"Somirean",
|
||||
"Ancient Zaharan",
|
||||
"Archaian",
|
||||
"Besheradi",
|
||||
"Bugbear",
|
||||
"Classical Argollëan",
|
||||
"Classical Auran",
|
||||
"Doppelgänger",
|
||||
"Draconic",
|
||||
"Gargoyle",
|
||||
"Gnoll",
|
||||
"Gnomish",
|
||||
"Goblin",
|
||||
"Halfling",
|
||||
"Harpy",
|
||||
"Hobgoblin",
|
||||
"Kobold",
|
||||
"Lizardman",
|
||||
"Medusa",
|
||||
"Minotaur",
|
||||
"Ogre",
|
||||
"Orcish",
|
||||
"Pixie",
|
||||
"Thrassian"
|
||||
],
|
||||
tags: {
|
||||
melee: "OSE.items.Melee",
|
||||
missile: "OSE.items.Missile",
|
||||
slow: "OSE.items.Slow",
|
||||
twohanded: "OSE.items.TwoHanded",
|
||||
blunt: "OSE.items.Blunt",
|
||||
brace: "OSE.items.Brace",
|
||||
splash: "OSE.items.Splash",
|
||||
reload: "OSE.items.Reload",
|
||||
charge: "OSE.items.Charge",
|
||||
melee: "ACKS.items.Melee",
|
||||
missile: "ACKS.items.Missile",
|
||||
slow: "ACKS.items.Slow",
|
||||
twohanded: "ACKS.items.TwoHanded",
|
||||
blunt: "ACKS.items.Blunt",
|
||||
brace: "ACKS.items.Brace",
|
||||
splash: "ACKS.items.Splash",
|
||||
reload: "ACKS.items.Reload",
|
||||
charge: "ACKS.items.Charge",
|
||||
},
|
||||
tag_images: {
|
||||
melee: "/systems/ose/assets/melee.png",
|
||||
missile: "/systems/ose/assets/missile.png",
|
||||
slow: "/systems/ose/assets/slow.png",
|
||||
twohanded: "/systems/ose/assets/twohanded.png",
|
||||
blunt: "/systems/ose/assets/blunt.png",
|
||||
brace: "/systems/ose/assets/brace.png",
|
||||
splash: "/systems/ose/assets/splash.png",
|
||||
reload: "/systems/ose/assets/reload.png",
|
||||
charge: "/systems/ose/assets/charge.png",
|
||||
melee: "/systems/acks/assets/melee.png",
|
||||
missile: "/systems/acks/assets/missile.png",
|
||||
slow: "/systems/acks/assets/slow.png",
|
||||
twohanded: "/systems/acks/assets/twohanded.png",
|
||||
blunt: "/systems/acks/assets/blunt.png",
|
||||
brace: "/systems/acks/assets/brace.png",
|
||||
splash: "/systems/acks/assets/splash.png",
|
||||
reload: "/systems/acks/assets/reload.png",
|
||||
charge: "/systems/acks/assets/charge.png",
|
||||
},
|
||||
monster_saves: {
|
||||
0: {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
import { OseActor } from '../actor/entity.js';
|
||||
import { OseDice } from "../dice.js";
|
||||
import { AcksActor } from '../actor/entity.js';
|
||||
import { AcksDice } from "../dice.js";
|
||||
|
||||
export class OseCharacterCreator extends FormApplication {
|
||||
export class AcksCharacterCreator extends FormApplication {
|
||||
static get defaultOptions() {
|
||||
const options = super.defaultOptions;
|
||||
options.classes = ["ose", "dialog", "creator"],
|
||||
options.classes = ["acks", "dialog", "creator"],
|
||||
options.id = 'character-creator';
|
||||
options.template =
|
||||
'systems/ose/templates/actors/dialogs/character-creation.html';
|
||||
'systems/acks/templates/actors/dialogs/character-creation.html';
|
||||
options.width = 235;
|
||||
return options;
|
||||
}
|
||||
|
|
@ -19,7 +19,7 @@ export class OseCharacterCreator extends FormApplication {
|
|||
* @type {String}
|
||||
*/
|
||||
get title() {
|
||||
return `${this.object.name}: ${game.i18n.localize('OSE.dialog.generator')}`;
|
||||
return `${this.object.name}: ${game.i18n.localize('ACKS.dialog.generator')}`;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
|
@ -31,7 +31,7 @@ export class OseCharacterCreator extends FormApplication {
|
|||
getData() {
|
||||
let data = this.object.data;
|
||||
data.user = game.user;
|
||||
data.config = CONFIG.OSE;
|
||||
data.config = CONFIG.ACKS;
|
||||
data.counters = {
|
||||
str: 0,
|
||||
wis: 0,
|
||||
|
|
@ -85,7 +85,7 @@ export class OseCharacterCreator extends FormApplication {
|
|||
// Increase counter
|
||||
this.object.data.counters[score]++;
|
||||
|
||||
const label = score != "gold" ? game.i18n.localize(`OSE.scores.${score}.long`) : "Gold";
|
||||
const label = score != "gold" ? game.i18n.localize(`ACKS.scores.${score}.long`) : "Gold";
|
||||
const rollParts = ["3d6"];
|
||||
const data = {
|
||||
roll: {
|
||||
|
|
@ -93,14 +93,14 @@ export class OseCharacterCreator extends FormApplication {
|
|||
}
|
||||
};
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: data,
|
||||
skipDialog: true,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.format('OSE.dialog.generateScore', { score: label, count: this.object.data.counters[score] }),
|
||||
title: game.i18n.format('OSE.dialog.generateScore', { score: label, count: this.object.data.counters[score] }),
|
||||
flavor: game.i18n.format('ACKS.dialog.generateScore', { score: label, count: this.object.data.counters[score] }),
|
||||
title: game.i18n.format('ACKS.dialog.generateScore', { score: label, count: this.object.data.counters[score] }),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -116,13 +116,13 @@ export class OseCharacterCreator extends FormApplication {
|
|||
const gold = $(this.form.children).find('.gold-value').val();
|
||||
const speaker = ChatMessage.getSpeaker({ actor: this });
|
||||
const templateData = {
|
||||
config: CONFIG.OSE,
|
||||
config: CONFIG.ACKS,
|
||||
scores: scores,
|
||||
title: game.i18n.localize("OSE.dialog.generator"),
|
||||
title: game.i18n.localize("ACKS.dialog.generator"),
|
||||
stats: this.object.data.stats,
|
||||
gold: gold
|
||||
}
|
||||
const content = await renderTemplate("/systems/ose/templates/chat/roll-creation.html", templateData)
|
||||
const content = await renderTemplate("/systems/acks/templates/chat/roll-creation.html", templateData)
|
||||
ChatMessage.create({
|
||||
content: content,
|
||||
speaker,
|
||||
|
|
@ -159,7 +159,7 @@ export class OseCharacterCreator extends FormApplication {
|
|||
const itemData = {
|
||||
name: "GP",
|
||||
type: "item",
|
||||
img: "/systems/ose/assets/gold.png",
|
||||
img: "/systems/acks/assets/gold.png",
|
||||
data: {
|
||||
treasure: true,
|
||||
cost: 1,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
// eslint-disable-next-line no-unused-vars
|
||||
import { OseActor } from '../actor/entity.js';
|
||||
import { AcksActor } from '../actor/entity.js';
|
||||
|
||||
export class OseCharacterModifiers extends FormApplication {
|
||||
export class AcksCharacterModifiers extends FormApplication {
|
||||
static get defaultOptions() {
|
||||
const options = super.defaultOptions;
|
||||
options.classes = ["ose", "dialog", "modifiers"],
|
||||
options.classes = ["acks", "dialog", "modifiers"],
|
||||
options.id = 'sheet-modifiers';
|
||||
options.template =
|
||||
'systems/ose/templates/actors/dialogs/modifiers-dialog.html';
|
||||
'systems/acks/templates/actors/dialogs/modifiers-dialog.html';
|
||||
options.width = 240;
|
||||
return options;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
// eslint-disable-next-line no-unused-vars
|
||||
import { OseActor } from '../actor/entity.js';
|
||||
import { AcksActor } from '../actor/entity.js';
|
||||
|
||||
export class OseEntityTweaks extends FormApplication {
|
||||
export class AcksEntityTweaks extends FormApplication {
|
||||
static get defaultOptions() {
|
||||
const options = super.defaultOptions;
|
||||
options.id = 'sheet-tweaks';
|
||||
options.template =
|
||||
'systems/ose/templates/actors/dialogs/tweaks-dialog.html';
|
||||
'systems/acks/templates/actors/dialogs/tweaks-dialog.html';
|
||||
options.width = 380;
|
||||
return options;
|
||||
}
|
||||
|
|
@ -18,7 +18,7 @@ export class OseEntityTweaks extends FormApplication {
|
|||
* @type {String}
|
||||
*/
|
||||
get title() {
|
||||
return `${this.object.name}: ${game.i18n.localize('OSE.dialog.tweaks')}`;
|
||||
return `${this.object.name}: ${game.i18n.localize('ACKS.dialog.tweaks')}`;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
|
@ -33,7 +33,7 @@ export class OseEntityTweaks extends FormApplication {
|
|||
data.isCharacter = true;
|
||||
}
|
||||
data.user = game.user;
|
||||
data.config = CONFIG.OSE;
|
||||
data.config = CONFIG.ACKS;
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
export class OsePartySheet extends FormApplication {
|
||||
export class AcksPartySheet extends FormApplication {
|
||||
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["ose", "dialog", "party-sheet"],
|
||||
template: "systems/ose/templates/apps/party-sheet.html",
|
||||
classes: ["acks", "dialog", "party-sheet"],
|
||||
template: "systems/acks/templates/apps/party-sheet.html",
|
||||
width: 280,
|
||||
height: 400,
|
||||
resizable: true,
|
||||
|
|
@ -17,7 +17,7 @@ export class OsePartySheet extends FormApplication {
|
|||
* @type {String}
|
||||
*/
|
||||
get title() {
|
||||
return game.i18n.localize("OSE.dialog.partysheet");
|
||||
return game.i18n.localize("ACKS.dialog.partysheet");
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
|
@ -28,11 +28,11 @@ export class OsePartySheet extends FormApplication {
|
|||
*/
|
||||
getData() {
|
||||
const settings = {
|
||||
ascending: game.settings.get('ose', 'ascendingAC')
|
||||
ascending: game.settings.get('acks', 'ascendingAC')
|
||||
};
|
||||
let data = {
|
||||
data: this.object,
|
||||
config: CONFIG.OSE,
|
||||
config: CONFIG.ACKS,
|
||||
user: game.user,
|
||||
settings: settings
|
||||
};
|
||||
|
|
@ -62,7 +62,7 @@ export class OsePartySheet extends FormApplication {
|
|||
</div>
|
||||
</form>`;
|
||||
let pcs = this.object.entities.filter((e) => {
|
||||
return e.getFlag('ose', 'party') && e.data.type == "character";
|
||||
return e.getFlag('acks', 'party') && e.data.type == "character";
|
||||
});
|
||||
new Dialog({
|
||||
title: "Deal Experience",
|
||||
|
|
@ -70,7 +70,7 @@ export class OsePartySheet extends FormApplication {
|
|||
buttons: {
|
||||
set: {
|
||||
icon: '<i class="fas fa-hand"></i>',
|
||||
label: game.i18n.localize("OSE.dialog.dealXP"),
|
||||
label: game.i18n.localize("ACKS.dialog.dealXP"),
|
||||
callback: (html) => {
|
||||
let toDeal = html.find('input[name="total"]').val();
|
||||
// calculate number of shares
|
||||
|
|
@ -90,7 +90,7 @@ export class OsePartySheet extends FormApplication {
|
|||
}
|
||||
|
||||
async _selectActors(ev) {
|
||||
const template = "/systems/ose/templates/apps/party-select.html";
|
||||
const template = "/systems/acks/templates/apps/party-select.html";
|
||||
const templateData = {
|
||||
actors: this.object.entities
|
||||
}
|
||||
|
|
@ -101,12 +101,12 @@ export class OsePartySheet extends FormApplication {
|
|||
buttons: {
|
||||
set: {
|
||||
icon: '<i class="fas fa-save"></i>',
|
||||
label: game.i18n.localize("OSE.Update"),
|
||||
label: game.i18n.localize("ACKS.Update"),
|
||||
callback: (html) => {
|
||||
let checks = html.find("input[data-action='select-actor']");
|
||||
checks.each(async (_, c) => {
|
||||
let key = c.getAttribute('name');
|
||||
await this.object.entities[key].setFlag('ose', 'party', c.checked);
|
||||
await this.object.entities[key].setFlag('acks', 'party', c.checked);
|
||||
});
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
export class OseDice {
|
||||
export class AcksDice {
|
||||
static digestResult(data, roll) {
|
||||
let result = {
|
||||
isSuccess: false,
|
||||
|
|
@ -51,7 +51,7 @@ export class OseDice {
|
|||
speaker = null,
|
||||
form = null,
|
||||
} = {}) {
|
||||
const template = "systems/ose/templates/chat/roll-result.html";
|
||||
const template = "systems/acks/templates/chat/roll-result.html";
|
||||
|
||||
let chatData = {
|
||||
user: game.user._id,
|
||||
|
|
@ -88,11 +88,11 @@ export class OseDice {
|
|||
data.roll.blindroll = true;
|
||||
}
|
||||
|
||||
templateData.result = OseDice.digestResult(data, roll);
|
||||
templateData.result = AcksDice.digestResult(data, roll);
|
||||
|
||||
return new Promise((resolve) => {
|
||||
roll.render().then((r) => {
|
||||
templateData.rollOSE = r;
|
||||
templateData.rollACKS = r;
|
||||
renderTemplate(template, templateData).then((content) => {
|
||||
chatData.content = content;
|
||||
// Dice So Nice
|
||||
|
|
@ -136,31 +136,32 @@ export class OseDice {
|
|||
: 0;
|
||||
result.victim = data.roll.target ? data.roll.target.data.name : null;
|
||||
|
||||
if (game.settings.get("ose", "ascendingAC")) {
|
||||
if (roll.total < targetAac) {
|
||||
if (game.settings.get("acks", "ascendingAC")) {
|
||||
if (roll.total < targetAac + 10) {
|
||||
result.details = game.i18n.format(
|
||||
"OSE.messages.AttackAscendingFailure",
|
||||
"ACKS.messages.AttackAscendingFailure",
|
||||
{
|
||||
result: roll.total - 10,
|
||||
bonus: result.target,
|
||||
}
|
||||
);
|
||||
return result;
|
||||
}
|
||||
result.details = game.i18n.format("OSE.messages.AttackAscendingSuccess", {
|
||||
result: roll.total,
|
||||
result.details = game.i18n.format("ACKS.messages.AttackAscendingSuccess", {
|
||||
result: roll.total - 10,
|
||||
});
|
||||
result.isSuccess = true;
|
||||
} else {
|
||||
// B/X Historic THAC0 Calculation
|
||||
if (result.target - roll.total > targetAc) {
|
||||
result.details = game.i18n.format("OSE.messages.AttackFailure", {
|
||||
result.details = game.i18n.format("ACKS.messages.AttackFailure", {
|
||||
bonus: result.target,
|
||||
});
|
||||
return result;
|
||||
}
|
||||
result.isSuccess = true;
|
||||
let value = Math.clamped(result.target - roll.total, -3, 9);
|
||||
result.details = game.i18n.format("OSE.messages.AttackSuccess", {
|
||||
result.details = game.i18n.format("ACKS.messages.AttackSuccess", {
|
||||
result: value,
|
||||
bonus: result.target,
|
||||
});
|
||||
|
|
@ -176,7 +177,7 @@ export class OseDice {
|
|||
speaker = null,
|
||||
form = null,
|
||||
} = {}) {
|
||||
const template = "systems/ose/templates/chat/roll-attack.html";
|
||||
const template = "systems/acks/templates/chat/roll-attack.html";
|
||||
|
||||
let chatData = {
|
||||
user: game.user._id,
|
||||
|
|
@ -187,7 +188,7 @@ export class OseDice {
|
|||
title: title,
|
||||
flavor: flavor,
|
||||
data: data,
|
||||
config: CONFIG.OSE,
|
||||
config: CONFIG.ACKS,
|
||||
};
|
||||
|
||||
// Optionally include a situational bonus
|
||||
|
|
@ -213,11 +214,11 @@ export class OseDice {
|
|||
data.roll.blindroll = true;
|
||||
}
|
||||
|
||||
templateData.result = OseDice.digestAttackResult(data, roll);
|
||||
templateData.result = AcksDice.digestAttackResult(data, roll);
|
||||
|
||||
return new Promise((resolve) => {
|
||||
roll.render().then((r) => {
|
||||
templateData.rollOSE = r;
|
||||
templateData.rollACKS = r;
|
||||
dmgRoll.render().then((dr) => {
|
||||
templateData.rollDamage = dr;
|
||||
renderTemplate(template, templateData).then((content) => {
|
||||
|
|
@ -272,7 +273,7 @@ export class OseDice {
|
|||
title = null,
|
||||
} = {}) {
|
||||
let rolled = false;
|
||||
const template = "systems/ose/templates/chat/roll-dialog.html";
|
||||
const template = "systems/acks/templates/chat/roll-dialog.html";
|
||||
let dialogData = {
|
||||
formula: parts.join(" "),
|
||||
data: data,
|
||||
|
|
@ -287,32 +288,32 @@ export class OseDice {
|
|||
flavor: flavor,
|
||||
speaker: speaker,
|
||||
};
|
||||
if (skipDialog) { OseDice.sendRoll(rollData); }
|
||||
if (skipDialog) { AcksDice.sendRoll(rollData); }
|
||||
|
||||
let buttons = {
|
||||
ok: {
|
||||
label: game.i18n.localize("OSE.Roll"),
|
||||
label: game.i18n.localize("ACKS.Roll"),
|
||||
icon: '<i class="fas fa-dice-d20"></i>',
|
||||
callback: (html) => {
|
||||
rolled = true;
|
||||
rollData.form = html[0].children[0];
|
||||
roll = OseDice.sendRoll(rollData);
|
||||
roll = AcksDice.sendRoll(rollData);
|
||||
},
|
||||
},
|
||||
magic: {
|
||||
label: game.i18n.localize("OSE.saves.magic.short"),
|
||||
label: game.i18n.localize("ACKS.saves.magic.short"),
|
||||
icon: '<i class="fas fa-magic"></i>',
|
||||
callback: (html) => {
|
||||
rolled = true;
|
||||
rollData.form = html[0].children[0];
|
||||
rollData.data.roll.target = parseInt(rollData.data.roll.target) + parseInt(rollData.data.roll.magic);
|
||||
rollData.title += ` ${game.i18n.localize("OSE.saves.magic.short")} (${rollData.data.roll.magic})`;
|
||||
roll = OseDice.sendRoll(rollData);
|
||||
rollData.title += ` ${game.i18n.localize("ACKS.saves.magic.short")} (${rollData.data.roll.magic})`;
|
||||
roll = AcksDice.sendRoll(rollData);
|
||||
},
|
||||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: game.i18n.localize("OSE.Cancel"),
|
||||
label: game.i18n.localize("ACKS.Cancel"),
|
||||
callback: (html) => { },
|
||||
},
|
||||
};
|
||||
|
|
@ -343,7 +344,7 @@ export class OseDice {
|
|||
title = null,
|
||||
} = {}) {
|
||||
let rolled = false;
|
||||
const template = "systems/ose/templates/chat/roll-dialog.html";
|
||||
const template = "systems/acks/templates/chat/roll-dialog.html";
|
||||
let dialogData = {
|
||||
formula: parts.join(" "),
|
||||
data: data,
|
||||
|
|
@ -360,25 +361,25 @@ export class OseDice {
|
|||
};
|
||||
if (skipDialog) {
|
||||
return ["melee", "missile", "attack"].includes(data.roll.type)
|
||||
? OseDice.sendAttackRoll(rollData)
|
||||
: OseDice.sendRoll(rollData);
|
||||
? AcksDice.sendAttackRoll(rollData)
|
||||
: AcksDice.sendRoll(rollData);
|
||||
}
|
||||
|
||||
let buttons = {
|
||||
ok: {
|
||||
label: game.i18n.localize("OSE.Roll"),
|
||||
label: game.i18n.localize("ACKS.Roll"),
|
||||
icon: '<i class="fas fa-dice-d20"></i>',
|
||||
callback: (html) => {
|
||||
rolled = true;
|
||||
rollData.form = html[0].children[0];
|
||||
roll = ["melee", "missile", "attack"].includes(data.roll.type)
|
||||
? OseDice.sendAttackRoll(rollData)
|
||||
: OseDice.sendRoll(rollData);
|
||||
? AcksDice.sendAttackRoll(rollData)
|
||||
: AcksDice.sendRoll(rollData);
|
||||
},
|
||||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: game.i18n.localize("OSE.Cancel"),
|
||||
label: game.i18n.localize("ACKS.Cancel"),
|
||||
callback: (html) => { },
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ export const registerHelpers = async function () {
|
|||
});
|
||||
|
||||
Handlebars.registerHelper("getTagIcon", function (tag) {
|
||||
let idx = Object.keys(CONFIG.OSE.tags).find(k => (CONFIG.OSE.tags[k] == tag));
|
||||
return CONFIG.OSE.tag_images[idx];
|
||||
let idx = Object.keys(CONFIG.ACKS.tags).find(k => (CONFIG.ACKS.tags[k] == tag));
|
||||
return CONFIG.ACKS.tag_images[idx];
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("counter", function (status, value, max) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { OseDice } from "../dice.js";
|
||||
import { AcksDice } from "../dice.js";
|
||||
|
||||
/**
|
||||
* Override and extend the basic :class:`Item` implementation
|
||||
*/
|
||||
export class OseItem extends Item {
|
||||
export class AcksItem extends Item {
|
||||
/* -------------------------------------------- */
|
||||
/* Data Preparation */
|
||||
/* -------------------------------------------- */
|
||||
|
|
@ -15,19 +15,19 @@ export class OseItem extends Item {
|
|||
let img = CONST.DEFAULT_TOKEN;
|
||||
switch (this.data.type) {
|
||||
case "spell":
|
||||
img = "/systems/ose/assets/default/spell.png";
|
||||
img = "/systems/acks/assets/default/spell.png";
|
||||
break;
|
||||
case "ability":
|
||||
img = "/systems/ose/assets/default/ability.png";
|
||||
img = "/systems/acks/assets/default/ability.png";
|
||||
break;
|
||||
case "armor":
|
||||
img = "/systems/ose/assets/default/armor.png";
|
||||
img = "/systems/acks/assets/default/armor.png";
|
||||
break;
|
||||
case "weapon":
|
||||
img = "/systems/ose/assets/default/weapon.png";
|
||||
img = "/systems/acks/assets/default/weapon.png";
|
||||
break;
|
||||
case "item":
|
||||
img = "/systems/ose/assets/default/item.png";
|
||||
img = "/systems/acks/assets/default/item.png";
|
||||
break;
|
||||
}
|
||||
if (!this.data.img) this.data.img = img;
|
||||
|
|
@ -132,14 +132,14 @@ export class OseItem extends Item {
|
|||
};
|
||||
|
||||
// Roll and return
|
||||
return OseDice.Roll({
|
||||
return AcksDice.Roll({
|
||||
event: options.event,
|
||||
parts: rollParts,
|
||||
data: newData,
|
||||
skipDialog: true,
|
||||
speaker: ChatMessage.getSpeaker({ actor: this }),
|
||||
flavor: game.i18n.format("OSE.roll.formula", { label: label }),
|
||||
title: game.i18n.format("OSE.roll.formula", { label: label }),
|
||||
flavor: game.i18n.format("ACKS.roll.formula", { label: label }),
|
||||
title: game.i18n.format("ACKS.roll.formula", { label: label }),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -170,7 +170,7 @@ export class OseItem extends Item {
|
|||
data.tags.forEach((t) => {
|
||||
wTags += formatTag(t.value);
|
||||
});
|
||||
wTags += formatTag(CONFIG.OSE.saves_long[data.save], "fa-skull");
|
||||
wTags += formatTag(CONFIG.ACKS.saves_long[data.save], "fa-skull");
|
||||
if (data.missile) {
|
||||
wTags += formatTag(
|
||||
data.range.short + "/" + data.range.medium + "/" + data.range.long,
|
||||
|
|
@ -179,7 +179,7 @@ export class OseItem extends Item {
|
|||
}
|
||||
return wTags;
|
||||
case "armor":
|
||||
return `${formatTag(CONFIG.OSE.armor[data.type], "fa-tshirt")}`;
|
||||
return `${formatTag(CONFIG.ACKS.armor[data.type], "fa-tshirt")}`;
|
||||
case "item":
|
||||
return "";
|
||||
case "spell":
|
||||
|
|
@ -187,13 +187,13 @@ export class OseItem extends Item {
|
|||
data.range
|
||||
)}${formatTag(data.duration)}${formatTag(data.roll)}`;
|
||||
if (data.save) {
|
||||
sTags += formatTag(CONFIG.OSE.saves_long[data.save], "fa-skull");
|
||||
sTags += formatTag(CONFIG.ACKS.saves_long[data.save], "fa-skull");
|
||||
}
|
||||
return sTags;
|
||||
case "ability":
|
||||
let roll = "";
|
||||
roll += data.roll ? data.roll : "";
|
||||
roll += data.rollTarget ? CONFIG.OSE.roll_type[data.rollType] : "";
|
||||
roll += data.rollTarget ? CONFIG.ACKS.roll_type[data.rollType] : "";
|
||||
roll += data.rollTarget ? data.rollTarget : "";
|
||||
return `${formatTag(data.requirements)}${formatTag(roll)}`;
|
||||
}
|
||||
|
|
@ -222,13 +222,13 @@ export class OseItem extends Item {
|
|||
}
|
||||
// Auto fill checkboxes
|
||||
switch (val) {
|
||||
case CONFIG.OSE.tags.melee:
|
||||
case CONFIG.ACKS.tags.melee:
|
||||
newData.melee = true;
|
||||
break;
|
||||
case CONFIG.OSE.tags.slow:
|
||||
case CONFIG.ACKS.tags.slow:
|
||||
newData.slow = true;
|
||||
break;
|
||||
case CONFIG.OSE.tags.missile:
|
||||
case CONFIG.ACKS.tags.missile:
|
||||
newData.missile = true;
|
||||
break;
|
||||
}
|
||||
|
|
@ -288,11 +288,11 @@ export class OseItem extends Item {
|
|||
hasDamage: this.hasDamage,
|
||||
isSpell: this.data.type === "spell",
|
||||
hasSave: this.hasSave,
|
||||
config: CONFIG.OSE,
|
||||
config: CONFIG.ACKS,
|
||||
};
|
||||
|
||||
// Render the chat card template
|
||||
const template = `systems/ose/templates/chat/item-card.html`;
|
||||
const template = `systems/acks/templates/chat/item-card.html`;
|
||||
const html = await renderTemplate(template, templateData);
|
||||
|
||||
// Basic chat message data
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* Extend the basic ItemSheet with some very simple modifications
|
||||
*/
|
||||
export class OseItemSheet extends ItemSheet {
|
||||
export class AcksItemSheet extends ItemSheet {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ export class OseItemSheet extends ItemSheet {
|
|||
*/
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["ose", "sheet", "item"],
|
||||
classes: ["acks", "sheet", "item"],
|
||||
width: 520,
|
||||
height: 390,
|
||||
resizable: false,
|
||||
|
|
@ -35,7 +35,7 @@ export class OseItemSheet extends ItemSheet {
|
|||
|
||||
/** @override */
|
||||
get template() {
|
||||
const path = "systems/ose/templates/items/";
|
||||
const path = "systems/acks/templates/items/";
|
||||
return `${path}/${this.item.data.type}-sheet.html`;
|
||||
}
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ export class OseItemSheet extends ItemSheet {
|
|||
*/
|
||||
getData() {
|
||||
const data = super.getData();
|
||||
data.config = CONFIG.OSE;
|
||||
data.config = CONFIG.ACKS;
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@
|
|||
* @param {number} slot The hotbar slot to use
|
||||
* @returns {Promise}
|
||||
*/
|
||||
export async function createOseMacro(data, slot) {
|
||||
export async function createAcksMacro(data, slot) {
|
||||
if ( data.type !== "Item" ) return;
|
||||
if (!( "data" in data ) ) return ui.notifications.warn("You can only create macro buttons for owned Items");
|
||||
const item = data.data;
|
||||
|
||||
// Create the macro command
|
||||
const command = `game.ose.rollItemMacro("${item.name}");`;
|
||||
const command = `game.acks.rollItemMacro("${item.name}");`;
|
||||
let macro = game.macros.entities.find(m => (m.name === item.name) && (m.command === command));
|
||||
if ( !macro ) {
|
||||
macro = await Macro.create({
|
||||
|
|
@ -24,7 +24,7 @@ export async function createOseMacro(data, slot) {
|
|||
type: "script",
|
||||
img: item.img,
|
||||
command: command,
|
||||
flags: {"ose.itemMacro": true}
|
||||
flags: {"acks.itemMacro": true}
|
||||
});
|
||||
}
|
||||
game.user.assignHotbarMacro(macro, slot);
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
import { OsePartySheet } from "./dialog/party-sheet.js";
|
||||
import { AcksPartySheet } from "./dialog/party-sheet.js";
|
||||
|
||||
export const addControl = (object, html) => {
|
||||
let control = `<button class='ose-party-sheet' type="button" title='${game.i18n.localize('OSE.dialog.partysheet')}'><i class='fas fa-users'></i></button>`;
|
||||
let control = `<button class='acks-party-sheet' type="button" title='${game.i18n.localize('ACKS.dialog.partysheet')}'><i class='fas fa-users'></i></button>`;
|
||||
html.find(".fas.fa-search").replaceWith($(control))
|
||||
html.find('.ose-party-sheet').click(ev => {
|
||||
html.find('.acks-party-sheet').click(ev => {
|
||||
showPartySheet(object);
|
||||
})
|
||||
}
|
||||
|
||||
export const showPartySheet = (object) => {
|
||||
event.preventDefault();
|
||||
new OsePartySheet(object, {
|
||||
new AcksPartySheet(object, {
|
||||
top: window.screen.height / 2 - 180,
|
||||
left:window.screen.width / 2 - 140,
|
||||
}).render(true);
|
||||
}
|
||||
|
||||
export const update = (actor, data) => {
|
||||
if (actor.getFlag('ose', 'party')) {
|
||||
if (actor.getFlag('acks', 'party')) {
|
||||
Object.values(ui.windows).forEach(w => {
|
||||
if (w instanceof OsePartySheet) {
|
||||
if (w instanceof AcksPartySheet) {
|
||||
w.render(true);
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
export const preloadHandlebarsTemplates = async function () {
|
||||
const templatePaths = [
|
||||
//Character Sheets
|
||||
'systems/ose/templates/actors/character-html.html',
|
||||
'systems/ose/templates/actors/monster-html.html',
|
||||
'systems/acks/templates/actors/character-html.html',
|
||||
'systems/acks/templates/actors/monster-html.html',
|
||||
//Actor partials
|
||||
//Sheet tabs
|
||||
'systems/ose/templates/actors/partials/character-header.html',
|
||||
'systems/ose/templates/actors/partials/character-attributes-tab.html',
|
||||
'systems/ose/templates/actors/partials/character-abilities-tab.html',
|
||||
'systems/ose/templates/actors/partials/character-spells-tab.html',
|
||||
'systems/ose/templates/actors/partials/character-inventory-tab.html',
|
||||
'systems/ose/templates/actors/partials/character-notes-tab.html',
|
||||
'systems/acks/templates/actors/partials/character-header.html',
|
||||
'systems/acks/templates/actors/partials/character-attributes-tab.html',
|
||||
'systems/acks/templates/actors/partials/character-abilities-tab.html',
|
||||
'systems/acks/templates/actors/partials/character-spells-tab.html',
|
||||
'systems/acks/templates/actors/partials/character-inventory-tab.html',
|
||||
'systems/acks/templates/actors/partials/character-notes-tab.html',
|
||||
|
||||
'systems/ose/templates/actors/partials/monster-header.html',
|
||||
'systems/ose/templates/actors/partials/monster-attributes-tab.html'
|
||||
'systems/acks/templates/actors/partials/monster-header.html',
|
||||
'systems/acks/templates/actors/partials/monster-attributes-tab.html'
|
||||
];
|
||||
return loadTemplates(templatePaths);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,36 +1,38 @@
|
|||
export const registerSettings = function () {
|
||||
|
||||
game.settings.register("ose", "initiative", {
|
||||
name: game.i18n.localize("OSE.Setting.Initiative"),
|
||||
hint: game.i18n.localize("OSE.Setting.InitiativeHint"),
|
||||
game.settings.register("acks", "initiative", {
|
||||
name: game.i18n.localize("ACKS.Setting.Initiative"),
|
||||
hint: game.i18n.localize("ACKS.Setting.InitiativeHint"),
|
||||
default: "group",
|
||||
scope: "world",
|
||||
type: String,
|
||||
config: true,
|
||||
choices: {
|
||||
individual: "OSE.Setting.InitiativeIndividual",
|
||||
group: "OSE.Setting.InitiativeGroup",
|
||||
disabled: "ACKS.Setting.InitiativeOnce",
|
||||
rerolled: "ACKS.Setting.InitiativeReroll",
|
||||
reset: "ACKS.Setting.InitiativeReset",
|
||||
group: "ACKS.Setting.InitiativeGroup",
|
||||
},
|
||||
onChange: _ => window.location.reload()
|
||||
});
|
||||
|
||||
game.settings.register("ose", "rerollInitiative", {
|
||||
name: game.i18n.localize("OSE.Setting.RerollInitiative"),
|
||||
hint: game.i18n.localize("OSE.Setting.RerollInitiativeHint"),
|
||||
game.settings.register("acks", "ascendingAC", {
|
||||
name: game.i18n.localize("ACKS.Setting.RerollInitiative"),
|
||||
hint: game.i18n.localize("ACKS.Setting.RerollInitiativeHint"),
|
||||
default: "reset",
|
||||
scope: "world",
|
||||
type: String,
|
||||
config: true,
|
||||
choices: {
|
||||
keep: "OSE.Setting.InitiativeKeep",
|
||||
reset: "OSE.Setting.InitiativeReset",
|
||||
reroll: "OSE.Setting.InitiativeReroll",
|
||||
keep: "ACKS.Setting.InitiativeKeep",
|
||||
reset: "ACKS.Setting.InitiativeReset",
|
||||
reroll: "ACKS.Setting.InitiativeReroll",
|
||||
}
|
||||
});
|
||||
|
||||
game.settings.register("ose", "ascendingAC", {
|
||||
name: game.i18n.localize("OSE.Setting.AscendingAC"),
|
||||
hint: game.i18n.localize("OSE.Setting.AscendingACHint"),
|
||||
game.settings.register("acks", "ascendingAC", {
|
||||
name: game.i18n.localize("ACKS.Setting.AscendingAC"),
|
||||
hint: game.i18n.localize("ACKS.Setting.AscendingACHint"),
|
||||
default: false,
|
||||
scope: "world",
|
||||
type: Boolean,
|
||||
|
|
@ -38,34 +40,34 @@ export const registerSettings = function () {
|
|||
onChange: _ => window.location.reload()
|
||||
});
|
||||
|
||||
game.settings.register("ose", "morale", {
|
||||
name: game.i18n.localize("OSE.Setting.Morale"),
|
||||
hint: game.i18n.localize("OSE.Setting.MoraleHint"),
|
||||
game.settings.register("acks", "morale", {
|
||||
name: game.i18n.localize("ACKS.Setting.Morale"),
|
||||
hint: game.i18n.localize("ACKS.Setting.MoraleHint"),
|
||||
default: false,
|
||||
scope: "world",
|
||||
type: Boolean,
|
||||
config: true,
|
||||
});
|
||||
|
||||
game.settings.register("ose", "encumbranceOption", {
|
||||
name: game.i18n.localize("OSE.Setting.Encumbrance"),
|
||||
hint: game.i18n.localize("OSE.Setting.EncumbranceHint"),
|
||||
game.settings.register("acks", "encumbranceOption", {
|
||||
name: game.i18n.localize("ACKS.Setting.Encumbrance"),
|
||||
hint: game.i18n.localize("ACKS.Setting.EncumbranceHint"),
|
||||
default: "detailed",
|
||||
scope: "world",
|
||||
type: String,
|
||||
config: true,
|
||||
choices: {
|
||||
disabled: "OSE.Setting.EncumbranceDisabled",
|
||||
basic: "OSE.Setting.EncumbranceBasic",
|
||||
detailed: "OSE.Setting.EncumbranceDetailed",
|
||||
complete: "OSE.Setting.EncumbranceComplete",
|
||||
disabled: "ACKS.Setting.EncumbranceDisabled",
|
||||
basic: "ACKS.Setting.EncumbranceBasic",
|
||||
detailed: "ACKS.Setting.EncumbranceDetailed",
|
||||
complete: "ACKS.Setting.EncumbranceComplete",
|
||||
},
|
||||
onChange: _ => window.location.reload()
|
||||
});
|
||||
|
||||
game.settings.register("ose", "significantTreasure", {
|
||||
name: game.i18n.localize("OSE.Setting.SignificantTreasure"),
|
||||
hint: game.i18n.localize("OSE.Setting.SignificantTreasureHint"),
|
||||
game.settings.register("acks", "significantTreasure", {
|
||||
name: game.i18n.localize("ACKS.Setting.SignificantTreasure"),
|
||||
hint: game.i18n.localize("ACKS.Setting.SignificantTreasureHint"),
|
||||
default: 800,
|
||||
scope: "world",
|
||||
type: Number,
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
export const augmentTable = (table, html, data) => {
|
||||
// Treasure Toggle
|
||||
let head = html.find(".sheet-header");
|
||||
const flag = table.object.getFlag("ose", "treasure");
|
||||
const flag = table.object.getFlag("acks", "treasure");
|
||||
const treasure = flag
|
||||
? "<div class='toggle-treasure active'></div>"
|
||||
: "<div class='toggle-treasure'></div>";
|
||||
head.append(treasure);
|
||||
|
||||
html.find(".toggle-treasure").click((ev) => {
|
||||
let isTreasure = table.object.getFlag("ose", "treasure");
|
||||
table.object.setFlag("ose", "treasure", !isTreasure);
|
||||
let isTreasure = table.object.getFlag("acks", "treasure");
|
||||
table.object.setFlag("acks", "treasure", !isTreasure);
|
||||
});
|
||||
|
||||
// Treasure table formatting
|
||||
|
|
@ -21,7 +21,7 @@ export const augmentTable = (table, html, data) => {
|
|||
html.find(".result-weight").first().text("Chance");
|
||||
|
||||
// Replace Roll button
|
||||
const roll = `<button class="roll-treasure" type="button"><i class="fas fa-gem"></i> ${game.i18n.localize('OSE.table.treasure.roll')}</button>`;
|
||||
const roll = `<button class="roll-treasure" type="button"><i class="fas fa-gem"></i> ${game.i18n.localize('ACKS.table.treasure.roll')}</button>`;
|
||||
html.find(".sheet-footer .roll").replaceWith(roll);
|
||||
}
|
||||
|
||||
|
|
@ -82,13 +82,13 @@ async function rollTreasure(table, options = {}) {
|
|||
}
|
||||
|
||||
let html = await renderTemplate(
|
||||
"systems/ose/templates/chat/roll-treasure.html",
|
||||
"systems/acks/templates/chat/roll-treasure.html",
|
||||
templateData
|
||||
);
|
||||
|
||||
let chatData = {
|
||||
content: html,
|
||||
// sound: "/systems/ose/assets/coins.mp3"
|
||||
// sound: "/systems/acks/assets/coins.mp3"
|
||||
}
|
||||
|
||||
let rollMode = game.settings.get("core", "rollMode");
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.ose.sheet.actor {
|
||||
.acks.sheet.actor {
|
||||
$detailsHeight: 44px;
|
||||
.blinking {
|
||||
font-weight: bold;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
.ose.roll-dialog {
|
||||
.acks.roll-dialog {
|
||||
.roll-details {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.ose.dialog.creator {
|
||||
.acks.dialog.creator {
|
||||
.attribute-list {
|
||||
.form-fields {
|
||||
flex: 0 0 50px;
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.ose.dialog.party-sheet {
|
||||
.acks.dialog.party-sheet {
|
||||
min-width: 250px;
|
||||
min-height: 250px;
|
||||
.window-content {
|
||||
|
|
@ -120,7 +120,7 @@
|
|||
}
|
||||
|
||||
#sidebar #actors .directory-header .header-search {
|
||||
.ose-party-sheet {
|
||||
.acks-party-sheet {
|
||||
width: 32px;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
|
|
@ -130,7 +130,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.ose.dialog.modifiers {
|
||||
.acks.dialog.modifiers {
|
||||
.attribute-bonuses {
|
||||
label {
|
||||
font-weight: bold;
|
||||
|
|
@ -150,7 +150,7 @@
|
|||
color: white;
|
||||
margin: 0 2px 5px 8px;
|
||||
border-radius: 8px;
|
||||
background: url("/systems/ose/assets/treasure.png") no-repeat center;
|
||||
background: url("/systems/acks/assets/treasure.png") no-repeat center;
|
||||
background-size: cover;
|
||||
padding: 5px 8px;
|
||||
cursor: pointer;
|
||||
|
|
@ -176,7 +176,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
#settings .ose.game-license {
|
||||
#settings .acks.game-license {
|
||||
font-size: 12px;
|
||||
.button {
|
||||
text-align: center;
|
||||
|
|
@ -187,7 +187,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.ose.chat-block {
|
||||
.acks.chat-block {
|
||||
margin: 0;
|
||||
.chat-header {
|
||||
height: 46px;
|
||||
|
|
@ -263,7 +263,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.ose.chat-card {
|
||||
.acks.chat-card {
|
||||
font-style: normal;
|
||||
font-size: 12px;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
/* ----------------------------------------- */
|
||||
/* Basic Structure */
|
||||
/* ----------------------------------------- */
|
||||
.ose.sheet.actor.character {
|
||||
.acks.sheet.actor.character {
|
||||
min-width: 450px;
|
||||
min-height: 550px;
|
||||
|
||||
|
|
@ -98,7 +98,7 @@
|
|||
}
|
||||
.health {
|
||||
&.armor-class {
|
||||
background: url('/systems/ose/assets/shield.png') no-repeat center;
|
||||
background: url('/systems/acks/assets/shield.png') no-repeat center;
|
||||
background-size: 70px;
|
||||
.shield {
|
||||
text-align: right;
|
||||
|
|
@ -130,12 +130,12 @@
|
|||
right: calc(50% + -20px);
|
||||
}
|
||||
.health-empty {
|
||||
background: url('/systems/ose/assets/heart_empty.png') no-repeat center;
|
||||
background: url('/systems/acks/assets/heart_empty.png') no-repeat center;
|
||||
background-size: 70px;
|
||||
background-position: top;
|
||||
}
|
||||
.health-full {
|
||||
background: url('/systems/ose/assets/heart_full.png') no-repeat center;
|
||||
background: url('/systems/acks/assets/heart_full.png') no-repeat center;
|
||||
background-size: 70px;
|
||||
background-position: bottom;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
.ose .window-content {
|
||||
.acks.window-content {
|
||||
// Utils
|
||||
.collapsed {
|
||||
display: none;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
.ose.sheet.item {
|
||||
.acks.sheet.item {
|
||||
.sheet-header {
|
||||
h1 {
|
||||
input {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
.ose.actor.monster {
|
||||
.acks.actor.monster {
|
||||
min-height: 565px;
|
||||
min-width: 460px;
|
||||
.header-details {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
/* Sheet Styles */
|
||||
/* ----------------------------------------- */
|
||||
|
||||
$darkBackground: url('/systems/ose/assets/back.png');
|
||||
$darkBackground: url('/systems/acks/assets/back.png');
|
||||
$colorDark: rgba(0, 0, 0, 0.9);
|
||||
$colorFaint: #d8d6c9;
|
||||
$colorInactive: #969696;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"name": "ose",
|
||||
"title": "Old-School Essentials",
|
||||
"description": "Play B/X OSR modules with Old-School Essentials on Foundry VTT",
|
||||
"version": "1.0.3",
|
||||
"name": "acks",
|
||||
"title": "Adventurer Conqueror Kings System",
|
||||
"description": "Play B/X OSR modules with ACKS on Foundry VTT",
|
||||
"version": "0.1.0",
|
||||
"minimumCoreVersion": "0.6.2",
|
||||
"compatibleCoreVersion": "0.6.6",
|
||||
"templateVersion": 2,
|
||||
"author": "U~man",
|
||||
"esmodules": ["ose.js"],
|
||||
"styles": ["ose.css"],
|
||||
"author": "The Happy Anarchist",
|
||||
"esmodules": ["acks.js"],
|
||||
"styles": ["acks.css"],
|
||||
"packs": [],
|
||||
"languages": [
|
||||
{
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
],
|
||||
"gridDistance": 5,
|
||||
"gridUnits": "ft",
|
||||
"url": "https://gitlab.com/mesfoliesludiques/foundryvtt-ose",
|
||||
"manifest": "https://gitlab.com/mesfoliesludiques/foundryvtt-ose/raw/master/src/system.json",
|
||||
"download": "https://gitlab.com/mesfoliesludiques/foundryvtt-ose/-/raw/master/package/ose-v1.0.3.zip"
|
||||
"url": "https://github.com/thehappyanarchist/foundryacks",
|
||||
"manifest": "https://github.com/thehappyanarchist/foundryacks/raw/master/src/system.json",
|
||||
"download": "https://github.com/thehappyanarchist/foundryacks/-/raw/master/package/ose-v1.0.0.zip"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,48 +1,48 @@
|
|||
<form class="{{cssClass}}" autocomplete="off">
|
||||
{{! Sheet Header }}
|
||||
<header class="sheet-header flexrow">
|
||||
{{> "systems/ose/templates/actors/partials/character-header.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/character-header.html"}}
|
||||
</header>
|
||||
|
||||
{{! Sheet Tab Navigation }}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="attributes">
|
||||
{{localize "OSE.category.attributes"}}
|
||||
{{localize "ACKS.category.attributes"}}
|
||||
</a>
|
||||
<a class="item" data-tab="abilities">
|
||||
{{localize "OSE.category.abilities"}}
|
||||
{{localize "ACKS.category.abilities"}}
|
||||
</a>
|
||||
{{#if data.spells.enabled}}
|
||||
<a class="item" data-tab="spells">
|
||||
{{localize "OSE.category.spells"}}
|
||||
{{localize "ACKS.category.spells"}}
|
||||
</a>
|
||||
{{/if}}
|
||||
<a class="item" data-tab="inventory">
|
||||
{{localize "OSE.category.inventory"}}
|
||||
{{localize "ACKS.category.inventory"}}
|
||||
</a>
|
||||
<a class="item" data-tab="notes">
|
||||
{{localize "OSE.category.notes"}}
|
||||
{{localize "ACKS.category.notes"}}
|
||||
</a>
|
||||
</nav>
|
||||
{{! Sheet Body }}
|
||||
<section class="sheet-body">
|
||||
{{! Attributes Tab }}
|
||||
<div class="tab" data-group="primary" data-tab="attributes">
|
||||
{{> "systems/ose/templates/actors/partials/character-attributes-tab.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/character-attributes-tab.html"}}
|
||||
</div>
|
||||
<div class="tab" data-group="primary" data-tab="abilities">
|
||||
{{> "systems/ose/templates/actors/partials/character-abilities-tab.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/character-abilities-tab.html"}}
|
||||
</div>
|
||||
{{#if data.spells.enabled}}
|
||||
<div class="tab" data-group="primary" data-tab="spells">
|
||||
{{> "systems/ose/templates/actors/partials/character-spells-tab.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/character-spells-tab.html"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="tab" data-group="primary" data-tab="inventory">
|
||||
{{> "systems/ose/templates/actors/partials/character-inventory-tab.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/character-inventory-tab.html"}}
|
||||
</div>
|
||||
<div class="tab" data-group="primary" data-tab="notes">
|
||||
{{> "systems/ose/templates/actors/partials/character-notes-tab.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/character-notes-tab.html"}}
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<form class="ose dialog">
|
||||
<form class="acks dialog">
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.Language'}}</label>
|
||||
<label>{{localize 'ACKS.Language'}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="choice">
|
||||
{{#select choices}}
|
||||
|
|
|
|||
|
|
@ -1,67 +1,67 @@
|
|||
<form autocomplete="off">
|
||||
<div class="attribute-bonuses">
|
||||
<label>{{localize 'OSE.scores.str.long'}}</label>
|
||||
<label>{{localize 'ACKS.scores.str.long'}}</label>
|
||||
<ol>
|
||||
<li>
|
||||
{{localize 'OSE.Melee'}} ({{mod data.scores.str.mod}})
|
||||
{{localize 'ACKS.Melee'}} ({{mod data.scores.str.mod}})
|
||||
</li>
|
||||
<li>
|
||||
{{localize 'OSE.exploration.od.long'}} ({{data.exploration.odMod}} in 6)
|
||||
{{localize 'ACKS.exploration.od.long'}} ({{data.exploration.odMod}} in 6)
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="attribute-bonuses">
|
||||
<label>{{localize 'OSE.scores.int.long'}}</label>
|
||||
<label>{{localize 'ACKS.scores.int.long'}}</label>
|
||||
<ol>
|
||||
<li>
|
||||
{{localize 'OSE.SpokenLanguages'}} ({{localize data.languages.spoken}})
|
||||
{{localize 'ACKS.SpokenLanguages'}} ({{localize data.languages.spoken}})
|
||||
</li>
|
||||
<li>
|
||||
{{localize 'OSE.Literacy'}} ({{localize data.languages.literacy}})
|
||||
{{localize 'ACKS.Literacy'}} ({{localize data.languages.literacy}})
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="attribute-bonuses">
|
||||
<label>{{localize 'OSE.scores.wis.long'}}</label>
|
||||
<label>{{localize 'ACKS.scores.wis.long'}}</label>
|
||||
<ol>
|
||||
<li>
|
||||
{{localize 'OSE.saves.magic.long'}} ({{mod data.scores.wis.mod}})
|
||||
{{localize 'ACKS.saves.magic.long'}} ({{mod data.scores.wis.mod}})
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="attribute-bonuses">
|
||||
<label>{{localize 'OSE.scores.dex.long'}}</label>
|
||||
<label>{{localize 'ACKS.scores.dex.long'}}</label>
|
||||
<ol>
|
||||
<li>
|
||||
{{localize 'OSE.Missile'}} ({{mod data.scores.dex.mod}})
|
||||
{{localize 'ACKS.Missile'}} ({{mod data.scores.dex.mod}})
|
||||
</li>
|
||||
<li>
|
||||
{{localize 'OSE.Initiative'}} ({{mod data.scores.dex.init}})
|
||||
{{localize 'ACKS.Initiative'}} ({{mod data.scores.dex.init}})
|
||||
</li>
|
||||
<li>
|
||||
{{localize 'OSE.ArmorClass'}} ({{mod data.scores.dex.mod}})
|
||||
{{localize 'ACKS.ArmorClass'}} ({{mod data.scores.dex.mod}})
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="attribute-bonuses">
|
||||
<label>{{localize 'OSE.scores.con.long'}}</label>
|
||||
<label>{{localize 'ACKS.scores.con.long'}}</label>
|
||||
<ol>
|
||||
<li>
|
||||
{{localize 'OSE.Health'}} ({{mod data.scores.con.mod}})
|
||||
{{localize 'ACKS.Health'}} ({{mod data.scores.con.mod}})
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="attribute-bonuses">
|
||||
<label>{{localize 'OSE.scores.cha.long'}}</label>
|
||||
<label>{{localize 'ACKS.scores.cha.long'}}</label>
|
||||
<ol>
|
||||
<li>
|
||||
{{localize 'OSE.NPCReaction'}} ({{mod data.scores.cha.npc}})
|
||||
{{localize 'ACKS.NPCReaction'}} ({{mod data.scores.cha.npc}})
|
||||
</li>
|
||||
<li>
|
||||
{{localize 'OSE.RetainersMax'}} ({{add data.scores.cha.mod 4}})
|
||||
{{localize 'ACKS.RetainersMax'}} ({{add data.scores.cha.mod 4}})
|
||||
</li>
|
||||
<li>
|
||||
{{localize 'OSE.Loyalty'}} ({{add data.scores.cha.mod 7}})
|
||||
{{localize 'ACKS.Loyalty'}} ({{add data.scores.cha.mod 7}})
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<form class="ose dialog">
|
||||
<form class="acks dialog">
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.HitDice'}}</label>
|
||||
<label>{{localize 'ACKS.HitDice'}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="choice">
|
||||
{{#select choices}}
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<form autocomplete="off">
|
||||
<div class="form-group">
|
||||
<label for="spellcaster">{{localize "OSE.Spellcaster"}}</label>
|
||||
<label for="spellcaster">{{localize "ACKS.Spellcaster"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="checkbox" name="data.spells.enabled" id="spellcaster" {{checked
|
||||
data.spells.enabled}} data-dtype="Boolean" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="retainer">{{localize "OSE.Retainer"}}</label>
|
||||
<label for="retainer">{{localize "ACKS.Retainer"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="checkbox" name="data.retainer.enabled" id="retainer" {{checked
|
||||
data.retainer.enabled}} data-dtype="Boolean"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.InitiativeBonus"}}</label>
|
||||
<label>{{localize "ACKS.InitiativeBonus"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.initiative.mod" id="initiative" value="{{data.initiative.mod}}"
|
||||
data-dtype="Number" />
|
||||
|
|
@ -22,38 +22,38 @@
|
|||
</div>
|
||||
{{#if (eq this.type 'character')}}
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.details.experience.next"}}</label>
|
||||
<label>{{localize "ACKS.details.experience.next"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.details.xp.next" id="experiencenext" value="{{data.details.xp.next}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.details.experience.bonus"}} (%)</label>
|
||||
<label>{{localize "ACKS.details.experience.bonus"}} (%)</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.details.xp.bonus" id="experience" value="{{data.details.xp.bonus}}" data-dtype="Number"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.details.experience.share"}} (%)</label>
|
||||
<label>{{localize "ACKS.details.experience.share"}} (%)</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.details.xp.share" id="experience-share" value="{{data.details.xp.share}}" data-dtype="Number"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.MeleeBonus"}}</label>
|
||||
<label>{{localize "ACKS.MeleeBonus"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.thac0.mod.melee" id="melee" value="{{data.thac0.mod.melee}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.MissileBonus"}}</label>
|
||||
<label>{{localize "ACKS.MissileBonus"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.thac0.mod.missile" id="missile" value="{{data.thac0.mod.missile}}"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.ArmorClassBonus"}}</label>
|
||||
<label>{{localize "ACKS.ArmorClassBonus"}}</label>
|
||||
<div class="form-fields">
|
||||
{{#if config.ascending}}
|
||||
<input type="text" name="data.aac.mod" id="ac" value="{{data.aac.mod}}"
|
||||
|
|
@ -65,14 +65,14 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.Encumbrance"}}</label>
|
||||
<label>{{localize "ACKS.Encumbrance"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.encumbrance.max" id="encumbrance" value="{{data.encumbrance.max}}"
|
||||
data-dtype="Number" {{#unless user.isGM}}disabled{{/unless}} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="movementAuto">{{localize "OSE.Setting.MovementAuto"}}</label>
|
||||
<label for="movementAuto">{{localize "ACKS.Setting.MovementAuto"}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="checkbox" name="data.config.movementAuto" id="movementAuto" {{checked
|
||||
data.config.movementAuto}} data-dtype="Boolean" {{#unless user.isGM}}disabled{{/unless}} />
|
||||
|
|
|
|||
|
|
@ -1,37 +1,37 @@
|
|||
<form class="{{cssClass}}" autocomplete="off">
|
||||
{{! Sheet Header }}
|
||||
<header class="sheet-header flexrow">
|
||||
{{> "systems/ose/templates/actors/partials/monster-header.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/monster-header.html"}}
|
||||
</header>
|
||||
|
||||
{{! Sheet Tab Navigation }}
|
||||
<nav class="sheet-tabs tabs flexrow" data-group="primary">
|
||||
<a class="item" data-tab="attributes">
|
||||
{{localize "OSE.category.attributes"}}
|
||||
{{localize "ACKS.category.attributes"}}
|
||||
</a>
|
||||
{{#if data.spells.enabled}}
|
||||
<a class="item" data-tab="spells">
|
||||
{{localize "OSE.category.spells"}}
|
||||
{{localize "ACKS.category.spells"}}
|
||||
</a>
|
||||
{{/if}}
|
||||
<a class="item" data-tab="notes">
|
||||
{{localize "OSE.category.notes"}}
|
||||
{{localize "ACKS.category.notes"}}
|
||||
</a>
|
||||
</nav>
|
||||
{{! Sheet Body }}
|
||||
<section class="sheet-body">
|
||||
{{! Attributes Tab }}
|
||||
<div class="tab" data-group="primary" data-tab="attributes">
|
||||
{{> "systems/ose/templates/actors/partials/monster-attributes-tab.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/monster-attributes-tab.html"}}
|
||||
</div>
|
||||
{{#if data.spells.enabled}}
|
||||
<div class="tab" data-group="primary" data-tab="spells">
|
||||
{{> "systems/ose/templates/actors/partials/character-spells-tab.html"}}
|
||||
{{> "systems/acks/templates/actors/partials/character-spells-tab.html"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="tab" data-group="primary" data-tab="notes">
|
||||
<div class="inventory">
|
||||
<div class="item-titles">{{localize "OSE.category.notes"}}</div>
|
||||
<div class="item-titles">{{localize "ACKS.category.notes"}}</div>
|
||||
<div class="resizable-editor" data-editor-size="320">
|
||||
{{editor content=data.details.biography target="data.details.biography"
|
||||
button=true owner=owner editable=editable}}
|
||||
|
|
|
|||
|
|
@ -1,26 +1,26 @@
|
|||
<ul class="attributes exploration flexrow">
|
||||
<li class="attribute flexrow" data-exploration="ld">
|
||||
<h4 class="attribute-name box-title" title="({{localize 'OSE.exploration.ld.abrev'}}) {{localize 'OSE.exploration.ld.long'}}"><a>{{ localize "OSE.exploration.ld.short" }}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.ld.abrev'}}) {{localize 'ACKS.exploration.ld.long'}}"><a>{{ localize "ACKS.exploration.ld.short" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.exploration.ld" type="text" value="{{data.exploration.ld}}" data-dtype="Number" placeholder="0" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute flexrow" data-exploration="od">
|
||||
<h4 class="attribute-name box-title" title="({{localize 'OSE.exploration.od.abrev'}}) {{localize 'OSE.exploration.od.long'}}"><a>{{ localize "OSE.exploration.od.short" }}</a>
|
||||
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.od.abrev'}}) {{localize 'ACKS.exploration.od.long'}}"><a>{{ localize "ACKS.exploration.od.short" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.exploration.od" type="text" value="{{data.exploration.od}}" placeholder="0" data-dtype="String" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute flexrow" data-exploration="sd">
|
||||
<h4 class="attribute-name box-title" title="({{localize 'OSE.exploration.sd.abrev'}}) {{localize 'OSE.exploration.sd.long'}}"><a>{{ localize "OSE.exploration.sd.short" }}</a>
|
||||
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.sd.abrev'}}) {{localize 'ACKS.exploration.sd.long'}}"><a>{{ localize "ACKS.exploration.sd.short" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.exploration.sd" type="text" value="{{data.exploration.sd}}" placeholder="0" data-dtype="String" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute flexrow" data-exploration="ft">
|
||||
<h4 class="attribute-name box-title" title="({{localize 'OSE.exploration.ft.abrev'}}) {{localize 'OSE.exploration.ft.long'}}"><a>{{ localize "OSE.exploration.ft.short" }}</a>
|
||||
<h4 class="attribute-name box-title" title="({{localize 'ACKS.exploration.ft.abrev'}}) {{localize 'ACKS.exploration.ft.long'}}"><a>{{ localize "ACKS.exploration.ft.short" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.exploration.ft" type="text" value="{{data.exploration.ft}}" placeholder="0" data-dtype="String" />
|
||||
|
|
@ -29,10 +29,10 @@
|
|||
</ul>
|
||||
<div class="inventory abilities">
|
||||
<div class="item-titles flexrow">
|
||||
<div class="item-name">{{localize 'OSE.category.abilities'}}</div>
|
||||
<div class="item-name">{{localize 'ACKS.category.abilities'}}</div>
|
||||
<div class="item-controls">
|
||||
{{#if owner}}
|
||||
<a class="item-control item-create" title='{{localize "OSE.Add"}}' data-type="ability"><i
|
||||
<a class="item-control item-create" title='{{localize "ACKS.Add"}}' data-type="ability"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
@ -51,9 +51,9 @@
|
|||
</div>
|
||||
<div class="item-controls">
|
||||
{{#if ../owner}}
|
||||
<a class="item-control item-show" title='{{localize "OSE.Show"}}'><i class="fas fa-eye"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-show" title='{{localize "ACKS.Show"}}'><i class="fas fa-eye"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -3,55 +3,55 @@
|
|||
<div class="attribute-group">
|
||||
<div class="modifiers-btn">
|
||||
{{#unless isNew}}
|
||||
<a data-action="modifiers" title="{{localize 'OSE.Modifiers'}}"><i class="fas fa-book"></i></a>
|
||||
<a data-action="modifiers" title="{{localize 'ACKS.Modifiers'}}"><i class="fas fa-book"></i></a>
|
||||
{{else}}
|
||||
<a data-action="generate-scores" title="{{localize 'OSE.dialog.generateScores'}}"><i class="fas fa-dice blinking"></i></a>
|
||||
<a data-action="generate-scores" title="{{localize 'ACKS.dialog.generateScores'}}"><i class="fas fa-dice blinking"></i></a>
|
||||
{{/unless}}
|
||||
</div>
|
||||
<ul class="attributes">
|
||||
<li class="attribute ability-score" data-score="str">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.scores.str.long' }}">
|
||||
<a>{{ localize "OSE.scores.str.short" }}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.str.long' }}">
|
||||
<a>{{ localize "ACKS.scores.str.short" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.scores.str.value" type="text" value="{{data.scores.str.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute ability-score" data-score="int">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.scores.int.long' }}">
|
||||
<a>{{ localize "OSE.scores.int.short" }}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.int.long' }}">
|
||||
<a>{{ localize "ACKS.scores.int.short" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.scores.int.value" type="text" value="{{data.scores.int.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute ability-score" data-score="wis">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.scores.wis.long' }}">
|
||||
<a>{{ localize "OSE.scores.wis.short" }}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.wis.long' }}">
|
||||
<a>{{ localize "ACKS.scores.wis.short" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.scores.wis.value" type="text" value="{{data.scores.wis.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute ability-score" data-score="dex">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.scores.dex.long' }}">
|
||||
<a>{{ localize "OSE.scores.dex.short" }}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.dex.long' }}">
|
||||
<a>{{ localize "ACKS.scores.dex.short" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.scores.dex.value" type="text" value="{{data.scores.dex.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute ability-score" data-score="con">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.scores.con.long' }}">
|
||||
<a>{{ localize "OSE.scores.con.short" }}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.con.long' }}">
|
||||
<a>{{ localize "ACKS.scores.con.short" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.scores.con.value" type="text" value="{{data.scores.con.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute ability-score" data-score="cha">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.scores.cha.long' }}">
|
||||
<a>{{ localize "OSE.scores.cha.short" }}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.scores.cha.long' }}">
|
||||
<a>{{ localize "ACKS.scores.cha.short" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.scores.cha.value" type="text" value="{{data.scores.cha.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
|
|
@ -59,8 +59,8 @@
|
|||
</li>
|
||||
{{#if data.retainer.enabled}}
|
||||
<li class="attribute ability-score" data-stat="lr">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.Loyalty' }}">
|
||||
<a>{{ localize "OSE.LoyaltyShort" }}</a>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Loyalty' }}">
|
||||
<a>{{ localize "ACKS.LoyaltyShort" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.retainer.loyalty" type="text" value="{{data.retainer.loyalty}}" placeholder="0"
|
||||
|
|
@ -75,24 +75,24 @@
|
|||
<div class="flexrow">
|
||||
<div class="health">
|
||||
<input class="health-value health-top" name="data.hp.value" type="text" value="{{data.hp.value}}"
|
||||
data-dtype="Number" placeholder="0" title="{{localize 'OSE.Health'}}" />
|
||||
data-dtype="Number" placeholder="0" title="{{localize 'ACKS.Health'}}" />
|
||||
<input class="health-value health-bottom" name="data.hp.max" type="text" value="{{data.hp.max}}"
|
||||
data-dtype="Number" placeholder="0" title="{{localize 'OSE.HealthMax'}}" />
|
||||
data-dtype="Number" placeholder="0" title="{{localize 'ACKS.HealthMax'}}" />
|
||||
<div class="health-empty" style="height:{{counter false data.hp.value data.hp.max}}%"></div>
|
||||
<div class="health-full" style="height:{{counter true data.hp.value data.hp.max}}%"></div>
|
||||
</div>
|
||||
<div class="health armor-class">
|
||||
{{#if config.ascendingAC}}
|
||||
<div class="health-value health-top" title="{{localize 'OSE.ArmorClass'}}">{{data.aac.value}}</div>
|
||||
<div class="health-value health-bottom" title="{{localize 'OSE.ArmorClassNaked'}}">
|
||||
<div class="health-value health-top" title="{{localize 'ACKS.ArmorClass'}}">{{data.aac.value}}</div>
|
||||
<div class="health-value health-bottom" title="{{localize 'ACKS.ArmorClassNaked'}}">
|
||||
{{data.aac.naked}}</div>
|
||||
{{#if data.aac.shield}}<div class="shield" title="{{localize 'OSE.items.hasShield'}} ({{data.aac.shield}})"><i
|
||||
{{#if data.aac.shield}}<div class="shield" title="{{localize 'ACKS.items.hasShield'}} ({{data.aac.shield}})"><i
|
||||
class="fas fa-shield-alt"></i></div>{{/if}}
|
||||
{{else}}
|
||||
<div class="health-value health-top" title="{{localize 'OSE.ArmorClass'}}">{{data.ac.value}}</div>
|
||||
<div class="health-value health-bottom" title="{{localize 'OSE.ArmorClassNaked'}}">
|
||||
<div class="health-value health-top" title="{{localize 'ACKS.ArmorClass'}}">{{data.ac.value}}</div>
|
||||
<div class="health-value health-bottom" title="{{localize 'ACKS.ArmorClassNaked'}}">
|
||||
{{data.ac.naked}}</div>
|
||||
{{#if data.ac.shield}}<div class="shield" title="{{localize 'OSE.items.hasShield'}} ({{data.ac.shield}})"><i
|
||||
{{#if data.ac.shield}}<div class="shield" title="{{localize 'ACKS.items.hasShield'}} ({{data.ac.shield}})"><i
|
||||
class="fas fa-shield-alt"></i></div>{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
@ -100,8 +100,8 @@
|
|||
<div class="flexrow">
|
||||
<ul class="attributes flexrow">
|
||||
<li class="attribute hit-dice">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.HitDice' }}">
|
||||
<a>{{ localize "OSE.HitDiceShort" }}</a>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.HitDice' }}">
|
||||
<a>{{ localize "ACKS.HitDiceShort" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.hp.hd" type="text" value="{{data.hp.hd}}" placeholder=""
|
||||
|
|
@ -110,10 +110,10 @@
|
|||
</li>
|
||||
{{#if config.initiative}}
|
||||
<li class="attribute">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.Initiative' }}">
|
||||
{{ localize "OSE.InitiativeShort" }}</h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Initiative' }}">
|
||||
{{ localize "ACKS.InitiativeShort" }}</h4>
|
||||
<div class="attribute-value"
|
||||
title="{{localize 'OSE.scores.dex.long'}}({{data.scores.dex.init}}) + {{localize 'OSE.Modifier'}}({{data.initiative.mod}})">
|
||||
title="{{localize 'ACKS.scores.dex.long'}}({{data.scores.dex.init}}) + {{localize 'ACKS.Modifier'}}({{data.initiative.mod}})">
|
||||
{{add data.scores.dex.init data.initiative.mod}}
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -123,18 +123,18 @@
|
|||
<div class="flexrow">
|
||||
<ul class="attributes flexrow">
|
||||
<li class="attribute attribute-secondaries attack" data-attack="melee">
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.Melee'}}">
|
||||
<a>{{localize 'OSE.MeleeShort'}}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.Melee'}}">
|
||||
<a>{{localize 'ACKS.MeleeShort'}}</a></h4>
|
||||
<div class="flexrow">
|
||||
<div class="attribute-value"
|
||||
title="{{localize 'OSE.scores.str.long'}}({{data.scores.str.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.melee}})">
|
||||
title="{{localize 'ACKS.scores.str.long'}}({{data.scores.str.mod}}) + {{localize 'ACKS.Modifier'}}({{data.thac0.mod.melee}})">
|
||||
{{add data.scores.str.mod data.thac0.mod.melee}}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{{#if config.ascendingAC}}
|
||||
<li class="attribute">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.AB' }}">{{ localize "OSE.ABShort"}}
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.AB' }}">{{ localize "ACKS.ABShort"}}
|
||||
</h4>
|
||||
<div class="flexrow">
|
||||
<div class="attribute-value">
|
||||
|
|
@ -145,7 +145,7 @@
|
|||
</li>
|
||||
{{else}}
|
||||
<li class="attribute">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.Thac0' }}">{{ localize "OSE.Thac0"}}
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Thac0' }}">{{ localize "ACKS.Thac0"}}
|
||||
</h4>
|
||||
<div class="flexrow">
|
||||
<div class="attribute-value">
|
||||
|
|
@ -156,11 +156,11 @@
|
|||
</li>
|
||||
{{/if}}
|
||||
<li class="attribute attribute-secondaries attack" data-attack="missile">
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.Missile'}}">
|
||||
<a>{{localize 'OSE.MissileShort'}}</a></h4>
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.Missile'}}">
|
||||
<a>{{localize 'ACKS.MissileShort'}}</a></h4>
|
||||
<div class="flexrow">
|
||||
<div class="attribute-value"
|
||||
title="{{localize 'OSE.scores.dex.long'}}({{data.scores.dex.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.missile}})">
|
||||
title="{{localize 'ACKS.scores.dex.long'}}({{data.scores.dex.mod}}) + {{localize 'ACKS.Modifier'}}({{data.thac0.mod.missile}})">
|
||||
{{add data.scores.dex.mod data.thac0.mod.missile}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -170,8 +170,8 @@
|
|||
<div class="flexrow">
|
||||
<ul class="attributes flexrow">
|
||||
<li class="attribute attribute-secondaries">
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.movement.overland.long'}}">
|
||||
{{localize 'OSE.movement.overland.short'}}</h4>
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.movement.overland.long'}}">
|
||||
{{localize 'ACKS.movement.overland.short'}}</h4>
|
||||
<div class="flexrow">
|
||||
<div class="attribute-value">
|
||||
{{divide data.movement.base 5}}
|
||||
|
|
@ -179,16 +179,16 @@
|
|||
</div>
|
||||
</li>
|
||||
<li class="attribute">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.movement.exploration.long' }}">
|
||||
{{ localize "OSE.movement.exploration.short" }}</h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.movement.exploration.long' }}">
|
||||
{{ localize "ACKS.movement.exploration.short" }}</h4>
|
||||
<div class="attribute-value flexrow">
|
||||
<input name="data.movement.base" type="text" value="{{data.movement.base}}" placeholder="0"
|
||||
data-dtype="Number" {{#if data.config.movementAuto}}disabled{{/if}} />
|
||||
</div>
|
||||
</li>
|
||||
<li class="attribute attribute-secondaries">
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.movement.encounter.long'}}">
|
||||
{{localize 'OSE.movement.encounter.short'}}</h4>
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.movement.encounter.long'}}">
|
||||
{{localize 'ACKS.movement.encounter.short'}}</h4>
|
||||
<div class="flexrow">
|
||||
<div class="attribute-value">
|
||||
{{divide data.movement.base 3}}
|
||||
|
|
@ -201,45 +201,45 @@
|
|||
{{!-- Saving throws --}}
|
||||
<div class="attribute-group">
|
||||
<ul class="attributes">
|
||||
<li class="attribute saving-throw" data-save="death">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.death.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.death.value" type="text" value="{{data.saves.death.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="wand">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.wand.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.wand.value" type="text" value="{{data.saves.wand.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="paralysis">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.paralysis.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.paralysis.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.paralysis.value" type="text" value="{{data.saves.paralysis.value}}"
|
||||
placeholder="0" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="death">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "ACKS.saves.death.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.death.value" type="text" value="{{data.saves.death.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="breath">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.breath.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.breath.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.breath.value" type="text" value="{{data.saves.breath.value}}"
|
||||
placeholder="0" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="wand">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "ACKS.saves.wand.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.wand.value" type="text" value="{{data.saves.wand.value}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="spell">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.spell.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.spell.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.spell.value" type="text" value="{{data.saves.spell.value}}"
|
||||
placeholder="0" />
|
||||
</li>
|
||||
<li class="attribute saving-throw">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.saves.magic.long' }}">
|
||||
{{ localize "OSE.saves.magic.long"}}</h4>
|
||||
<div class="attribute-value flat" title="{{localize 'OSE.scores.wis.long'}}({{data.scores.wis.mod}})">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.saves.magic.long' }}">
|
||||
{{ localize "ACKS.saves.magic.long"}}</h4>
|
||||
<div class="attribute-value flat" title="{{localize 'ACKS.scores.wis.long'}}({{data.scores.wis.mod}})">
|
||||
{{mod data.scores.wis.mod}}
|
||||
</div>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -1,43 +1,43 @@
|
|||
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
|
||||
<section class="header-details flexrow">
|
||||
<h1 class="charname">
|
||||
<input name="name" type="text" value="{{actor.name}}" placeholder="{{localize 'OSE.details.name'}}" data-dtype="String" />
|
||||
<input name="name" type="text" value="{{actor.name}}" placeholder="{{localize 'ACKS.details.name'}}" data-dtype="String" />
|
||||
</h1>
|
||||
<ul class="summary flexrow">
|
||||
{{#if data.retainer.enabled}}
|
||||
<li>
|
||||
<input type="text" name="data.retainer.wage" value="{{data.retainer.wage}}" data-dtype="String"
|
||||
/>
|
||||
<label>{{localize 'OSE.RetainerWage'}}</label>
|
||||
<label>{{localize 'ACKS.RetainerWage'}}</label>
|
||||
</li>
|
||||
{{else}}
|
||||
<li>
|
||||
<input type="text" name="data.details.title" value="{{data.details.title}}" data-dtype="String"
|
||||
/>
|
||||
<label>{{localize 'OSE.details.title'}}</label>
|
||||
<label>{{localize 'ACKS.details.title'}}</label>
|
||||
</li>
|
||||
{{/if}}
|
||||
<li>
|
||||
<input type="text" name="data.details.alignment" value="{{data.details.alignment}}" data-dtype="String"
|
||||
/>
|
||||
<label>{{localize 'OSE.details.alignment'}}</label>
|
||||
<label>{{localize 'ACKS.details.alignment'}}</label>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="summary flexrow">
|
||||
<li class="flex3">
|
||||
<input type="text" name="data.details.class" value="{{data.details.class}}" data-dtype="String"
|
||||
/>
|
||||
<label>{{localize 'OSE.details.class'}}</label>
|
||||
<label>{{localize 'ACKS.details.class'}}</label>
|
||||
</li>
|
||||
<li class="{{#if (gt data.details.xp.value data.details.xp.next)}}notify{{/if}}">
|
||||
<input type="text" name="data.details.level" value="{{data.details.level}}" data-dtype="Number"
|
||||
/>
|
||||
<label>{{localize 'OSE.details.level'}}</label>
|
||||
<label>{{localize 'ACKS.details.level'}}</label>
|
||||
</li>
|
||||
<li class="flex2">
|
||||
<input type="text" name="data.details.xp.value" value="{{data.details.xp.value}}" data-dtype="Number"
|
||||
/>
|
||||
<label>{{localize 'OSE.details.experience.base'}}</label>
|
||||
<label>{{localize 'ACKS.details.experience.base'}}</label>
|
||||
{{#if data.details.xp.bonus}}
|
||||
<span class="xp-bonus">+{{data.details.xp.bonus}}%</span>
|
||||
{{/if}}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
<div>
|
||||
<li class="item-titles flexrow">
|
||||
<div class="item-caret"><i class="fas fa-caret-down"></i></div>
|
||||
<div class="item-name">{{localize "OSE.items.Weapons"}}</div>
|
||||
<div class="icon-row">{{localize "OSE.items.Qualities"}}</div>
|
||||
<div class="item-name">{{localize "ACKS.items.Weapons"}}</div>
|
||||
<div class="icon-row">{{localize "ACKS.items.Qualities"}}</div>
|
||||
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-create" data-type="weapon" title="{{localize 'OSE.Add'}}"><i
|
||||
<a class="item-control item-create" data-type="weapon" title="{{localize 'ACKS.Add'}}"><i
|
||||
class="fa fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -32,6 +32,7 @@
|
|||
{{#unless (getTagIcon tag.value)}}
|
||||
<span title="{{tag.title}}">{{tag.value}}{{#unless @last}},{{/unless}}</span>
|
||||
|
||||
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
|
@ -41,11 +42,11 @@
|
|||
<div class="item-controls">
|
||||
{{#if ../owner}}
|
||||
<a class="item-control item-toggle {{#unless item.data.equipped}}item-unequipped{{/unless}}"
|
||||
title='{{localize "OSE.items.Equip"}}'>
|
||||
title='{{localize "ACKS.items.Equip"}}'>
|
||||
<i class="fas fa-tshirt"></i>
|
||||
</a>
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -56,15 +57,15 @@
|
|||
<div>
|
||||
<li class="item-titles flexrow">
|
||||
<div class="item-caret"><i class="fas fa-caret-down"></i></div>
|
||||
<div class="item-name">{{localize "OSE.items.Armors"}}</div>
|
||||
<div class="item-name">{{localize "ACKS.items.Armors"}}</div>
|
||||
{{#if @root.config.ascendingAC}}
|
||||
<div class="field-short">{{localize "OSE.items.ArmorAAC"}}</div>
|
||||
<div class="field-short">{{localize "ACKS.items.ArmorAAC"}}</div>
|
||||
{{else}}
|
||||
<div class="field-short">{{localize "OSE.items.ArmorAC"}}</div>
|
||||
<div class="field-short">{{localize "ACKS.items.ArmorAC"}}</div>
|
||||
{{/if}}
|
||||
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-create" data-type="armor" title="{{localize 'OSE.Add'}}"><i
|
||||
<a class="item-control item-create" data-type="armor" title="{{localize 'ACKS.Add'}}"><i
|
||||
class="fa fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -93,11 +94,11 @@
|
|||
<div class="item-controls">
|
||||
{{#if ../owner}}
|
||||
<a class="item-control item-toggle {{#unless item.data.equipped}}item-unequipped{{/unless}}"
|
||||
title='{{localize "OSE.items.Equip"}}'>
|
||||
title='{{localize "ACKS.items.Equip"}}'>
|
||||
<i class="fas fa-tshirt"></i>
|
||||
</a>
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -109,11 +110,11 @@
|
|||
{{!-- Misc items --}}
|
||||
<li class="item-titles flexrow">
|
||||
<div class="item-caret"><i class="fas fa-caret-down"></i></div>
|
||||
<div class="item-name">{{localize "OSE.items.Misc"}}</div>
|
||||
<div class="item-name">{{localize "ACKS.items.Misc"}}</div>
|
||||
<div class="field-short"><i class="fas fa-hashtag"></i></div>
|
||||
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-create" data-type="item" title="{{localize 'OSE.Add'}}"><i
|
||||
<a class="item-control item-create" data-type="item" title="{{localize 'ACKS.Add'}}"><i
|
||||
class="fa fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -139,8 +140,8 @@
|
|||
</div>
|
||||
<div class="item-controls">
|
||||
{{#if ../owner}}
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -153,12 +154,12 @@
|
|||
{{!-- Treasure items --}}
|
||||
<li class="item-titles flexrow">
|
||||
<div class="item-caret"><i class="fas fa-caret-down"></i></div>
|
||||
<div class="item-name">{{localize "OSE.items.Treasure"}}</div>
|
||||
<div class="item-name">{{localize "ACKS.items.Treasure"}}</div>
|
||||
<div class="field-long">{{data.treasure}} <i class="fas fa-circle"></i></div>
|
||||
<div class="field-short"><i class="fas fa-hashtag"></i></div>
|
||||
<div class="field-short"><i class="fas fa-weight-hanging"></i></div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-create" data-type="item" data-treasure="true" title="{{localize 'OSE.Add'}}"><i
|
||||
<a class="item-control item-create" data-type="item" data-treasure="true" title="{{localize 'ACKS.Add'}}"><i
|
||||
class="fa fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -185,8 +186,8 @@
|
|||
</div>
|
||||
<div class="item-controls">
|
||||
{{#if ../owner}}
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
<div class="languages">
|
||||
<div class="item-titles flexrow">
|
||||
<div class="item-name">
|
||||
{{localize "OSE.category.languages"}}
|
||||
{{localize "ACKS.category.languages"}}
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-push" data-array="languages" title="{{localize 'OSE.Add'}}"><i
|
||||
<a class="item-control item-push" data-array="languages" title="{{localize 'ACKS.Add'}}"><i
|
||||
class="fa fa-plus"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
{{lang}}
|
||||
</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-pop" data-array="languages" title="{{localize 'OSE.Del'}}"><i
|
||||
<a class="item-control item-pop" data-array="languages" title="{{localize 'ACKS.Del'}}"><i
|
||||
class="fa fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
</ol>
|
||||
</div>
|
||||
<div class="flex3 description">
|
||||
<div class="item-titles">{{localize "OSE.category.description"}}</div>
|
||||
<div class="item-titles">{{localize "ACKS.category.description"}}</div>
|
||||
<div>
|
||||
{{editor content=data.details.description target="data.details.description"
|
||||
button=true owner=owner editable=editable}}
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="inventory notes">
|
||||
<div class="item-titles">{{localize "OSE.category.notes"}}</div>
|
||||
<div class="item-titles">{{localize "ACKS.category.notes"}}</div>
|
||||
<div class="resizable-editor" data-editor-size="140">
|
||||
{{editor content=data.details.notes target="data.details.notes"
|
||||
button=true owner=owner editable=editable}}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<section class="inventory spells resizable" data-base-size="320">
|
||||
<div class="item-titles flexrow" style="line-height:15px">
|
||||
<div class="item-name">{{localize "OSE.category.spells"}}</div>
|
||||
<div class="item-name">{{localize "ACKS.category.spells"}}</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-reset" title='{{localize "OSE.spells.ResetSlots"}}'><i class="fas fa-sync"></i></a>
|
||||
<a class="item-control item-create" data-type="spell" title="{{localize 'OSE.Add'}}"><i
|
||||
<a class="item-control item-reset" title='{{localize "ACKS.spells.ResetSlots"}}'><i class="fas fa-sync"></i></a>
|
||||
<a class="item-control item-create" data-type="spell" title="{{localize 'ACKS.Add'}}"><i
|
||||
class="fa fa-plus"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -11,14 +11,14 @@
|
|||
<div>
|
||||
<li class="item-titles flexrow">
|
||||
<div class="item-caret"><i class="fas fa-caret-down"></i> </div>
|
||||
<div class="item-name">{{localize "OSE.spells.Level"}} {{id}}</div>
|
||||
<div class="field-short">{{localize 'OSE.spells.Slots'}}</div>
|
||||
<div class="item-name">{{localize "ACKS.spells.Level"}} {{id}}</div>
|
||||
<div class="field-short">{{localize 'ACKS.spells.Slots'}}</div>
|
||||
<div class="field-long flexrow">
|
||||
<input type="text" value="{{lookup @root.slots.used @key}}" name="data.spells.{{id}}.value" data-dtype="Number"
|
||||
placeholder="0" disabled>/<input type="text" value="{{lookup (lookup ../actor.data.spells @key) 'max'}}"
|
||||
name="data.spells.{{id}}.max" data-dtype="Number" placeholder="0"></div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-create" data-type="spell" data-lvl="{{id}}" title="{{localize 'OSE.Add'}}"><i
|
||||
<a class="item-control item-create" data-type="spell" data-lvl="{{id}}" title="{{localize 'ACKS.Add'}}"><i
|
||||
class="fa fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
|
|
@ -36,15 +36,15 @@
|
|||
</div>
|
||||
<div class="field-long memorize flexrow">
|
||||
<input type="text" value="{{item.data.cast}}" data-dtype="Number" placeholder="0" data-field="cast"
|
||||
title="{{localize 'OSE.spells.Cast'}}">
|
||||
title="{{localize 'ACKS.spells.Cast'}}">
|
||||
/
|
||||
<input type="text" value="{{item.data.memorized}}" data-field="memorize" data-dtype="Number" placeholder="0"
|
||||
title="{{localize 'OSE.spells.Memorized'}}"></div>
|
||||
title="{{localize 'ACKS.spells.Memorized'}}"></div>
|
||||
<div class="item-controls">
|
||||
{{#if ../../owner}}
|
||||
<a class="item-control item-show" title='{{localize "OSE.Show"}}'><i class="fas fa-eye"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-show" title='{{localize "ACKS.Show"}}'><i class="fas fa-eye"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<section class="flexrow">
|
||||
<ul class="attributes flexrow">
|
||||
<li class="attribute health">
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.Health'}}">{{ localize "OSE.HealthShort" }}
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.Health'}}">{{ localize "ACKS.HealthShort" }}
|
||||
<a class="hp-roll"><i class="fas fa-dice"></i></a></h4>
|
||||
<div class="attribute-value flexrow">
|
||||
<input name="data.hp.value" type="text" value="{{data.hp.value}}" data-dtype="Number"
|
||||
|
|
@ -12,8 +12,8 @@
|
|||
</div>
|
||||
</li>
|
||||
<li class="attribute hit-dice">
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.HitDice'}}">
|
||||
<a>{{ localize "OSE.HitDiceShort" }}</a>
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.HitDice'}}">
|
||||
<a>{{ localize "ACKS.HitDiceShort" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.hp.hd" type="text" value="{{data.hp.hd}}" data-dtype="String" />
|
||||
|
|
@ -21,15 +21,15 @@
|
|||
</li>
|
||||
<li class="attribute">
|
||||
{{#if config.ascendingAC}}
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.ArmorClass' }}">
|
||||
{{ localize "OSE.AscArmorClassShort" }}</h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.ArmorClass' }}">
|
||||
{{ localize "ACKS.AscArmorClassShort" }}</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.aac.value" type="text" value="{{data.aac.value}}" data-dtype="Number"
|
||||
placeholder="10" data-dtype="Number" />
|
||||
</div>
|
||||
{{else}}
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.ArmorClass' }}">
|
||||
{{ localize "OSE.ArmorClassShort" }}</h4>
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.ArmorClass' }}">
|
||||
{{ localize "ACKS.ArmorClassShort" }}</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.ac.value" type="text" value="{{data.ac.value}}" data-dtype="Number"
|
||||
placeholder="9" data-dtype="Number" />
|
||||
|
|
@ -38,14 +38,14 @@
|
|||
</li>
|
||||
<li class="attribute attack">
|
||||
{{#if config.ascendingAC}}
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.AB'}}"><a>{{ localize "OSE.ABShort" }}</a>
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.AB'}}"><a>{{ localize "ACKS.ABShort" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.thac0.bba" type="text" value="{{data.thac0.bba}}" placeholder="0"
|
||||
data-dtype="Number" />
|
||||
</div>
|
||||
{{else}}
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.Thac0'}}"><a>{{ localize "OSE.Thac0" }}</a>
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.Thac0'}}"><a>{{ localize "ACKS.Thac0" }}</a>
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.thac0.value" type="text" value="{{data.thac0.value}}" placeholder="0"
|
||||
|
|
@ -55,8 +55,8 @@
|
|||
</li>
|
||||
{{#if data.retainer.enabled}}
|
||||
<li class="attribute">
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'OSE.Loyalty' }}">
|
||||
{{ localize "OSE.LoyaltyShort" }}
|
||||
<h4 class="attribute-name box-title" title="{{ localize 'ACKS.Loyalty' }}">
|
||||
{{ localize "ACKS.LoyaltyShort" }}
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.retainer.loyalty" type="text" value="{{data.retainer.loyalty}}" placeholder="0"
|
||||
|
|
@ -65,8 +65,8 @@
|
|||
</li>
|
||||
{{/if}}
|
||||
<li class="attribute">
|
||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.movement.base'}}">
|
||||
{{ localize "OSE.movement.short" }}
|
||||
<h4 class="attribute-name box-title" title="{{localize 'ACKS.movement.base'}}">
|
||||
{{ localize "ACKS.movement.short" }}
|
||||
</h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.movement.base" type="text" value="{{data.movement.base}}" placeholder="0"
|
||||
|
|
@ -80,12 +80,12 @@
|
|||
<div class="flex3 panel inventory abilities">
|
||||
<div>
|
||||
<li class="item-titles flexrow panel-title">
|
||||
<div class="item-name">{{localize 'OSE.category.abilities'}} & {{localize 'OSE.category.equipment'}}</div>
|
||||
<div class="item-name">{{localize 'ACKS.category.abilities'}} & {{localize 'ACKS.category.equipment'}}</div>
|
||||
<div class="item-controls">
|
||||
{{#if owner}}
|
||||
<a class="item-control item-reset" title='{{localize "OSE.items.resetAttacks"}}'><i
|
||||
<a class="item-control item-reset" title='{{localize "ACKS.items.resetAttacks"}}'><i
|
||||
class="fas fa-sync"></i></a>
|
||||
<a class="item-control item-create" title='{{localize "OSE.Add"}}' data-type="choice"
|
||||
<a class="item-control item-create" title='{{localize "ACKS.Add"}}' data-type="choice"
|
||||
data-choices="weapon,ability,armor,item"><i class="fas fa-plus"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
{{#each abilities as |item|}}
|
||||
<li class="item-entry">
|
||||
<div class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-pattern" title="{{localize 'OSE.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.pattern}}, transparent)"></div>
|
||||
<div class="item-pattern" title="{{localize 'ACKS.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.pattern}}, transparent)"></div>
|
||||
<div class="item-name {{#if item.data.roll}}item-rollable{{/if}} flexrow">
|
||||
<div class="item-image" style="background-image: url({{item.img}})"></div>
|
||||
<h4 title="{{item.name}}">
|
||||
|
|
@ -103,11 +103,11 @@
|
|||
</div>
|
||||
<div class="item-controls">
|
||||
{{#if ../owner}}
|
||||
<a class="item-control item-show" title='{{localize "OSE.Show"}}'><i
|
||||
<a class="item-control item-show" title='{{localize "ACKS.Show"}}'><i
|
||||
class="fas fa-eye"></i></a>
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i
|
||||
class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i
|
||||
class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
<li class="item-entry">
|
||||
<div class="item flexrow" data-item-id="{{item._id}}">
|
||||
{{#if (eq item.type 'weapon')}}
|
||||
<div class="item-pattern" title="{{localize 'OSE.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.pattern}}, transparent)"></div>
|
||||
<div class="item-pattern" title="{{localize 'ACKS.items.pattern'}}" style="background:linear-gradient(0.25turn, {{item.data.pattern}}, transparent)"></div>
|
||||
{{/if}}
|
||||
<div class="item-name {{#if (eq item.type 'weapon')}}item-rollable{{/if}} flexrow">
|
||||
<div class="item-image" style="background-image: url({{item.img}})"></div>
|
||||
|
|
@ -130,17 +130,17 @@
|
|||
{{#if (eq item.type 'weapon')}}
|
||||
<div class="field-long counter flexrow">
|
||||
<input type="text" value="{{item.data.counter.value}}" data-dtype="Number"
|
||||
placeholder="0" data-field="value" title="{{localize 'OSE.items.roundAttacks'}}">
|
||||
placeholder="0" data-field="value" title="{{localize 'ACKS.items.roundAttacks'}}">
|
||||
/
|
||||
<input type="text" value="{{item.data.counter.max}}" data-field="max"
|
||||
data-dtype="Number" placeholder="0"
|
||||
title="{{localize 'OSE.items.roundAttacksMax'}}"></div>
|
||||
title="{{localize 'ACKS.items.roundAttacksMax'}}"></div>
|
||||
{{/if}}
|
||||
<div class="item-controls">
|
||||
{{#if ../../owner}}
|
||||
<a class="item-control item-edit" title='{{localize "OSE.Edit"}}'><i
|
||||
<a class="item-control item-edit" title='{{localize "ACKS.Edit"}}'><i
|
||||
class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title='{{localize "OSE.Delete"}}'><i
|
||||
<a class="item-control item-delete" title='{{localize "ACKS.Delete"}}'><i
|
||||
class="fas fa-trash"></i></a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
@ -156,43 +156,43 @@
|
|||
<ul class="attributes">
|
||||
<li class="attacks-description">
|
||||
{{#unless isNew}}
|
||||
<label>{{ localize "OSE.movement.details" }}</label>
|
||||
<label>{{ localize "ACKS.movement.details" }}</label>
|
||||
<input name="data.movement.value" type="text" value="{{data.movement.value}}" data-dtype="String" />
|
||||
{{else}}
|
||||
<button data-action="generate-saves">{{localize "OSE.dialog.generateSaves"}}</button>
|
||||
<button data-action="generate-saves">{{localize "ACKS.dialog.generateSaves"}}</button>
|
||||
{{/unless}}
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="death">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.death.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.death.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.death.value" type="text" value="{{data.saves.death.value}}"
|
||||
placeholder="0" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="wand">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.wand.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.wand.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.wand.value" type="text" value="{{data.saves.wand.value}}"
|
||||
placeholder="0" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="paralysis">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.paralysis.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.paralysis.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.paralysis.value" type="text" value="{{data.saves.paralysis.value}}"
|
||||
placeholder="0" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="breath">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.breath.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.breath.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.breath.value" type="text" value="{{data.saves.breath.value}}"
|
||||
placeholder="0" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="attribute saving-throw" data-save="spell">
|
||||
<h4 class="attribute-name box-title">
|
||||
<a>{{ localize "OSE.saves.spell.long" }}</a></h4>
|
||||
<a>{{ localize "ACKS.saves.spell.long" }}</a></h4>
|
||||
<div class="attribute-value">
|
||||
<input name="data.saves.spell.value" type="text" value="{{data.saves.spell.value}}"
|
||||
placeholder="0" />
|
||||
|
|
|
|||
|
|
@ -1,45 +1,45 @@
|
|||
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
|
||||
<section class="header-details flexrow">
|
||||
<h1 class="charname">
|
||||
<input name="name" type="text" value="{{actor.name}}" placeholder="{{localize 'OSE.Name'}}" />
|
||||
<input name="name" type="text" value="{{actor.name}}" placeholder="{{localize 'ACKS.Name'}}" />
|
||||
</h1>
|
||||
<ul class="summary flexrow">
|
||||
<li class="flex2 flexrow check-field">
|
||||
<div>
|
||||
<input type="text" name="data.details.alignment" value="{{data.details.alignment}}" />
|
||||
<label>{{localize 'OSE.details.alignment'}}</label>
|
||||
<label>{{localize 'ACKS.details.alignment'}}</label>
|
||||
</div>
|
||||
<div class="check reaction-check" title="{{localize 'OSE.roll.reaction'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
<div class="check reaction-check" title="{{localize 'ACKS.roll.reaction'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
</li>
|
||||
<li class="flexrow check-field" data-check="dungeon">
|
||||
<div>
|
||||
<input type="text" name="data.details.appearing.d" value="{{data.details.appearing.d}}" />
|
||||
<label>{{localize 'OSE.details.appearing'}}</label>
|
||||
<label>{{localize 'ACKS.details.appearing'}}</label>
|
||||
</div>
|
||||
<div class="check appearing-check" title="{{localize 'OSE.roll.appearing'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
<div class="check appearing-check" title="{{localize 'ACKS.roll.appearing'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
</li>
|
||||
<li class="flexrow check-field" data-check="wilderness">
|
||||
(<div><input type="text" name="data.details.appearing.w" value="{{data.details.appearing.w}}" /></div>)
|
||||
<div class="check appearing-check" title="{{localize 'OSE.roll.appearing'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
<div class="check appearing-check" title="{{localize 'ACKS.roll.appearing'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
</li>
|
||||
{{#if config.morale}}
|
||||
<li class="flexrow check-field">
|
||||
<div>
|
||||
<input type="text" name="data.details.morale" value="{{data.details.morale}}" />
|
||||
<label>{{localize 'OSE.details.morale'}}</label>
|
||||
<label>{{localize 'ACKS.details.morale'}}</label>
|
||||
</div>
|
||||
<div class="check morale-check" title="{{localize 'OSE.roll.morale'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
<div class="check morale-check" title="{{localize 'ACKS.roll.morale'}}"><a><i class="fas fa-dice"></i></a></div>
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<ul class="summary flexrow">
|
||||
<li>
|
||||
<input type="text" name="data.details.xp" value="{{data.details.xp}}" />
|
||||
<label>{{localize 'OSE.details.experience.award'}}</label>
|
||||
<label>{{localize 'ACKS.details.experience.award'}}</label>
|
||||
</li>
|
||||
<li class="treasure-table" title="{{localize 'OSE.details.treasureTableHint'}}">
|
||||
<li class="treasure-table" title="{{localize 'ACKS.details.treasureTableHint'}}">
|
||||
<div>{{{data.details.treasure.link}}}</div>
|
||||
<label>{{localize 'OSE.details.treasure'}}</label>
|
||||
<label>{{localize 'ACKS.details.treasure'}}</label>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<li class="form-group actor" data-actor-id="{{actor.id}}">
|
||||
<label>{{actor.name}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="checkbox" data-action="select-actor" name="{{key}}" data-dtype="Boolean" {{checked actor.data.flags.ose.party}}/>
|
||||
<input type="checkbox" data-action="select-actor" name="{{key}}" data-dtype="Boolean" {{checked actor.data.flags.acks.party}}/>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
|
|
|
|||
|
|
@ -6,16 +6,16 @@
|
|||
{{#if user.isGM}}
|
||||
<div class="item-controls flexrow">
|
||||
<div class="item-control">
|
||||
<button type="button" class="deal-xp" title="{{localize 'OSE.dialog.dealXP'}}"><i class="fas fa-hand-holding"></i></button>
|
||||
<button type="button" class="deal-xp" title="{{localize 'ACKS.dialog.dealXP'}}"><i class="fas fa-hand-holding"></i></button>
|
||||
</div>
|
||||
<div class="item-control">
|
||||
<button type="button" class="select-actors" title="{{localize 'OSE.dialog.selectActors'}}"><i class="fas fa-users"></i></button>
|
||||
<button type="button" class="select-actors" title="{{localize 'ACKS.dialog.selectActors'}}"><i class="fas fa-users"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<ol class="actor-list">
|
||||
{{#each data.entities as |e|}} {{#if e.data.flags.ose.party}}
|
||||
{{#each data.entities as |e|}} {{#if e.data.flags.acks.party}}
|
||||
<li class="actor flexrow" data-actor-id="{{e.id}}">
|
||||
<div class="field-img">
|
||||
<img src="{{e.img}}" />
|
||||
|
|
@ -28,11 +28,11 @@
|
|||
<div class="field-name flex2">
|
||||
<strong>{{e.name}}</strong>
|
||||
</div>
|
||||
<div class="field-long" title="{{localize 'OSE.Health'}}">
|
||||
<div class="field-long" title="{{localize 'ACKS.Health'}}">
|
||||
<i class="fas fa-heart"></i>
|
||||
{{e.data.data.hp.value}}/{{e.data.data.hp.max}}
|
||||
</div>
|
||||
<div class="field-short" title="{{localize 'OSE.ArmorClass'}}">
|
||||
<div class="field-short" title="{{localize 'ACKS.ArmorClass'}}">
|
||||
<i class="fas fa-shield-alt"></i>
|
||||
{{#if @root.settings.ascending}}<strong>{{e.data.data.aac.value}}</strong>
|
||||
<sub>{{e.data.data.aac.naked}}</sub>
|
||||
|
|
@ -41,7 +41,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="flexrow field-row">
|
||||
<div class="field-short" title="{{localize 'OSE.Thac0'}}">
|
||||
<div class="field-short" title="{{localize 'ACKS.Thac0'}}">
|
||||
<i class="fas fa-crosshairs"></i>
|
||||
{{#unless settings.ascendingAC}}
|
||||
{{e.data.data.thac0.value}}
|
||||
|
|
@ -50,23 +50,23 @@
|
|||
{{/unless}}
|
||||
</div>
|
||||
{{#if (eq e.data.type 'character')}}
|
||||
<div class="field-short" title="{{localize 'OSE.Melee'}}">
|
||||
<div class="field-short" title="{{localize 'ACKS.Melee'}}">
|
||||
<i class="fas fa-fist-raised"></i>
|
||||
{{add e.data.data.scores.str.mod e.data.data.thac0.mod.melee}}
|
||||
</div>
|
||||
<div class="field-short" title="{{localize 'OSE.Missile'}}">
|
||||
<div class="field-short" title="{{localize 'ACKS.Missile'}}">
|
||||
<i class="fas fa-bullseye"></i>
|
||||
{{add e.data.data.scores.dex.mod e.data.data.thac0.mod.missile}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="field-short flex2">
|
||||
<i class="fas fa-shoe-prints" title="{{localize 'OSE.movement.base'}}"></i>
|
||||
<span title="{{localize 'OSE.movement.encounter.long'}}">{{e.data.data.movement.encounter}}</span> <sub
|
||||
title="{{localize 'OSE.movement.exploration.long'}}">{{e.data.data.movement.base}}</sub>
|
||||
<i class="fas fa-shoe-prints" title="{{localize 'ACKS.movement.base'}}"></i>
|
||||
<span title="{{localize 'ACKS.movement.encounter.long'}}">{{e.data.data.movement.encounter}}</span> <sub
|
||||
title="{{localize 'ACKS.movement.exploration.long'}}">{{e.data.data.movement.base}}</sub>
|
||||
</div>
|
||||
{{#if (eq e.data.type 'character')}}
|
||||
<div class="field-short flex2">
|
||||
<i class="fas fa-weight-hanging" title="{{localize 'OSE.Encumbrance'}}"></i>
|
||||
<i class="fas fa-weight-hanging" title="{{localize 'ACKS.Encumbrance'}}"></i>
|
||||
{{roundWeight e.data.data.encumbrance.value}}k
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<span title="{{lookup @root.config.saves_long i}}">{{lookup @root.config.saves_short i}} {{s.value}}</span>
|
||||
{{/each}}
|
||||
{{#if (eq e.data.type 'character')}}<span><i class="fas fa-magic"
|
||||
title="{{localize 'OSE.saves.magic.long'}}"></i>{{mod e.data.data.scores.wis.mod}}</span>{{/if}}
|
||||
title="{{localize 'ACKS.saves.magic.long'}}"></i>{{mod e.data.data.scores.wis.mod}}</span>{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<div class="ose chat-card item-card" data-actor-id="{{actor._id}}" data-item-id="{{item._id}}"
|
||||
<div class="acks chat-card item-card" data-actor-id="{{actor._id}}" data-item-id="{{item._id}}"
|
||||
{{#if tokenId}}data-token-id="{{tokenId}}" {{/if}}>
|
||||
<header class="card-header flexrow">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="36" height="36" />
|
||||
|
|
@ -10,26 +10,26 @@
|
|||
</div>
|
||||
|
||||
<div class="card-buttons">
|
||||
{{#if hasAttack}}<button data-action="attack">{{ localize "OSE.Attack" }}</button>{{/if}}
|
||||
{{#if hasAttack}}<button data-action="attack">{{ localize "ACKS.Attack" }}</button>{{/if}}
|
||||
|
||||
{{#if hasDamage}}
|
||||
<button data-action="damage">
|
||||
{{#if isHealing}}
|
||||
{{ localize "OSE.Healing" }}
|
||||
{{ localize "ACKS.Healing" }}
|
||||
{{else}}
|
||||
{{localize "OSE.Damage" }}
|
||||
{{localize "ACKS.Damage" }}
|
||||
{{/if}}
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
{{#if data.save}}
|
||||
<button data-action="save" data-save="{{data.save}}" disabled>
|
||||
{{lookup config.saves_long data.save}} - {{localize "OSE.spells.Save"}}
|
||||
{{lookup config.saves_long data.save}} - {{localize "ACKS.spells.Save"}}
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
{{#if data.roll}}
|
||||
<button data-action="formula">{{ localize "OSE.Roll"}} {{data.roll}} {{#if data.blindroll}}({{localize 'OSE.items.BlindRoll'}}){{/if}}</button>
|
||||
<button data-action="formula">{{ localize "ACKS.Roll"}} {{data.roll}} {{#if data.blindroll}}({{localize 'ACKS.items.BlindRoll'}}){{/if}}</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,12 @@
|
|||
<div class="ose game-license">
|
||||
<p class="ose game-license">
|
||||
This unofficial system requires Old-School Essentials Core Rules that
|
||||
you can find <a href="https://necroticgnome.com">here</a>.
|
||||
<div class="acks game-license">
|
||||
<p class="acks game-license">
|
||||
This unofficial system requires Adventuer Conqueror King System Rules that
|
||||
you can find <a href="http://autarch.co">here</a>.
|
||||
</p>
|
||||
<p>
|
||||
Old School Essentials is a trademark of Necrotic Gnome, the trademark is
|
||||
used with permission under license.
|
||||
Brought to life on Foundry VTT by The Happy Anarchist, with most of the heavy lifting done by U~man.
|
||||
</p>
|
||||
<p>
|
||||
Brought to life on Foundry VTT by U~man.
|
||||
</p>
|
||||
<div class="button">
|
||||
<a href="https://ko-fi.com/H2H21WMKA" target="_blank"
|
||||
><img
|
||||
height="36"
|
||||
style="border: 0px; height: 28px;"
|
||||
src="https://cdn.ko-fi.com/cdn/kofi2.png?v=2"
|
||||
border="0"
|
||||
alt="Buy Me a Coffee at ko-fi.com"
|
||||
/></a>
|
||||
</div>
|
||||
<div class="footer">
|
||||
Report your issues on <a href="https://gitlab.com/mesfoliesludiques/foundryvtt-ose/-/boards">Gitlab</a>
|
||||
Report your issues to The Happy Anarchist at maileater@thehiddencitadel.com
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<div class="ose chat-card item-card" data-actor-id="{{data.actor._id}}" data-item-id="{{data.item._id}}"
|
||||
<div class="acks chat-card item-card" data-actor-id="{{data.actor._id}}" data-item-id="{{data.item._id}}"
|
||||
{{#if tokenId}}data-token-id="{{tokenId}}" {{/if}}>
|
||||
<div class="ose chat-block">
|
||||
<div class="acks chat-block">
|
||||
<div class="flexrow chat-header">
|
||||
<div class="chat-title">
|
||||
<h2>{{title}}</h2>
|
||||
|
|
@ -20,16 +20,16 @@
|
|||
<div class="chat-details">
|
||||
<div class="roll-result">{{{result.details}}}</div>
|
||||
</div>
|
||||
{{#if rollOSE}}<div>{{{rollOSE}}}</div>{{/if}}
|
||||
{{#if rollACKS}}<div>{{{rollACKS}}}</div>{{/if}}
|
||||
{{#if result.isSuccess}}
|
||||
<div class="chat-details">
|
||||
<div class="roll-result"><b>{{localize 'OSE.messages.InflictsDamage'}}</b></div>
|
||||
<div class="roll-result"><b>{{localize 'ACKS.messages.InflictsDamage'}}</b></div>
|
||||
</div>
|
||||
<div class="damage-roll">{{{rollDamage}}}</div>
|
||||
{{#if data.roll.save}}
|
||||
<div class="card-buttons">
|
||||
<button data-action="save" data-save="{{data.roll.save}}" disabled>
|
||||
{{lookup config.saves_long data.roll.save}} - {{localize "OSE.spells.Save"}}
|
||||
{{lookup config.saves_long data.roll.save}} - {{localize "ACKS.spells.Save"}}
|
||||
</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<section class="ose chat-message">
|
||||
<div class="ose chat-block">
|
||||
<section class="acks chat-message">
|
||||
<div class="acks chat-block">
|
||||
<div class="flexrow chat-header">
|
||||
<div class="chat-title"><h2>{{title}}</h2></div>
|
||||
<div class="chat-img" style="background-image:url('{{data.actor.img}}')"></div>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
<form class="ose roll-dialog">
|
||||
<form class="acks roll-dialog">
|
||||
{{#if data.rollData.details}}
|
||||
<div class="roll-details">
|
||||
{{data.rollData.details}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.Formula"}}</label>
|
||||
<label>{{localize "ACKS.Formula"}}</label>
|
||||
<input type="text" name="formula" value="{{formula}}" disabled />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.SitMod"}}</label>
|
||||
<input type="text" name="bonus" value="" placeholder="{{localize 'OSE.RollExample'}}" />
|
||||
<label>{{localize "ACKS.SitMod"}}</label>
|
||||
<input type="text" name="bonus" value="" placeholder="{{localize 'ACKS.RollExample'}}" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize "OSE.RollMode"}}</label>
|
||||
<label>{{localize "ACKS.RollMode"}}</label>
|
||||
<select name="rollMode">
|
||||
{{#select rollMode}}
|
||||
{{#each rollModes as |label mode|}}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<section class="ose chat-message">
|
||||
<div class="ose chat-block">
|
||||
<section class="acks chat-message">
|
||||
<div class="acks chat-block">
|
||||
<div class="flexrow chat-header">
|
||||
<div class="chat-title"><h2>{{title}}</h2></div>
|
||||
{{#if data.item}}
|
||||
|
|
@ -10,11 +10,11 @@
|
|||
</div>
|
||||
<div class="blindable" data-blind="{{data.roll.blindroll}}">
|
||||
{{#if result.details}}<div class="chat-details">{{{result.details}}}</div>{{/if}}
|
||||
{{#if result.isFailure}}<div class='roll-result roll-fail'><b>{{localize 'OSE.Failure'}}</b> ({{result.target}})
|
||||
{{#if result.isFailure}}<div class='roll-result roll-fail'><b>{{localize 'ACKS.Failure'}}</b> ({{result.target}})
|
||||
</div>{{/if}}
|
||||
{{#if result.isSuccess}}<div class='roll-result roll-success'><b>{{localize 'OSE.Success'}}</b>
|
||||
{{#if result.isSuccess}}<div class='roll-result roll-success'><b>{{localize 'ACKS.Success'}}</b>
|
||||
({{result.target}})</div>{{/if}}
|
||||
{{#if rollOSE}}<div>{{{rollOSE}}}</div>{{/if}}
|
||||
{{#if rollACKS}}<div>{{{rollACKS}}}</div>{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<div class="ose chat-card treasure-card">
|
||||
<div class="acks chat-card treasure-card">
|
||||
<header class="card-header flexrow">
|
||||
<img src="/systems/ose/assets/treasure.png" title="{{table.name}}" width="36" height="36" />
|
||||
<img src="/systems/acks/assets/treasure.png" title="{{table.name}}" width="36" height="36" />
|
||||
<h3>{{table.name}}</h3>
|
||||
</header>
|
||||
<div class="card-content">
|
||||
|
|
|
|||
|
|
@ -11,19 +11,19 @@
|
|||
<div class="flexrow">
|
||||
<div class="stats">
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.abilities.Requirements'}}</label>
|
||||
<label>{{localize 'ACKS.abilities.Requirements'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.requirements" value="{{data.requirements}}" data-dtype="String" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.items.Roll'}}</label>
|
||||
<label>{{localize 'ACKS.items.Roll'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.roll" value="{{data.roll}}" data-dtype="String" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.RollType'}}</label>
|
||||
<label>{{localize 'ACKS.items.RollType'}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="data.rollType">
|
||||
{{#select data.rollType}}
|
||||
|
|
@ -35,19 +35,19 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.RollTarget'}}</label>
|
||||
<label>{{localize 'ACKS.items.RollTarget'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.rollTarget" value="{{data.rollTarget}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.BlindRoll'}}</label>
|
||||
<label>{{localize 'ACKS.items.BlindRoll'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="checkbox" name="data.blindroll" value="{{data.blindroll}}" {{checked data.blindroll}} data-dtype="Number"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.spells.Save'}}</label>
|
||||
<label>{{localize 'ACKS.spells.Save'}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="data.save">
|
||||
{{#select data.save}}
|
||||
|
|
|
|||
|
|
@ -11,19 +11,19 @@
|
|||
<div class="flexrow">
|
||||
<div class="stats">
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.ArmorAC'}}</label>
|
||||
<label>{{localize 'ACKS.items.ArmorAC'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.ac.value" value="{{data.ac.value}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.ArmorAAC'}}</label>
|
||||
<label>{{localize 'ACKS.items.ArmorAAC'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.aac.value" value="{{data.aac.value}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.armor.type'}}</label>
|
||||
<label>{{localize 'ACKS.armor.type'}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="data.type">
|
||||
{{#select data.type}}
|
||||
|
|
@ -36,13 +36,13 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.Cost'}}</label>
|
||||
<label>{{localize 'ACKS.items.Cost'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.cost" value="{{data.cost}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.Weight'}}</label>
|
||||
<label>{{localize 'ACKS.items.Weight'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number" />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,25 +11,25 @@
|
|||
<div class="flexrow">
|
||||
<div class="stats">
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.Quantity'}}</label>
|
||||
<label>{{localize 'ACKS.items.Quantity'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.quantity.value" value="{{data.quantity.value}}" data-dtype="Number" />/<input type="text" name="data.quantity.max" value="{{data.quantity.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.Treasure'}}</label>
|
||||
<label>{{localize 'ACKS.items.Treasure'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="checkbox" name="data.treasure" value="{{data.treasure}}" {{checked data.treasure}} data-dtype="Boolean"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.Cost'}}</label>
|
||||
<label>{{localize 'ACKS.items.Cost'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.cost" value="{{data.cost}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.Weight'}}</label>
|
||||
<label>{{localize 'ACKS.items.Weight'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.weight" value="{{data.weight}}" data-dtype="Number" />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,31 +11,31 @@
|
|||
<div class="flexrow">
|
||||
<div class="stats narrow">
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.spells.Level'}}</label>
|
||||
<label>{{localize 'ACKS.spells.Level'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.lvl" value="{{data.lvl}}" data-dtype="Number" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.spells.Class'}}</label>
|
||||
<label>{{localize 'ACKS.spells.Class'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.class" value="{{data.class}}" data-dtype="String" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.spells.Duration'}}</label>
|
||||
<label>{{localize 'ACKS.spells.Duration'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.duration" value="{{data.duration}}" data-dtype="String" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.spells.Range'}}</label>
|
||||
<label>{{localize 'ACKS.spells.Range'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.range" value="{{data.range}}" data-dtype="String" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.spells.Save'}}</label>
|
||||
<label>{{localize 'ACKS.spells.Save'}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="data.save">
|
||||
{{#select data.save}}
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.items.Roll'}}</label>
|
||||
<label>{{localize 'ACKS.items.Roll'}}</label>
|
||||
<div class="form-fields">
|
||||
<input type="text" name="data.roll" value="{{data.roll}}" data-dtype="String" />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
</h1>
|
||||
<div class="details">
|
||||
<div class="form-group">
|
||||
<label title="{{localize 'OSE.items.Cost'}}"><i class="fas
|
||||
<label title="{{localize 'ACKS.items.Cost'}}"><i class="fas
|
||||
fa-circle"></i></label>
|
||||
<div class="form-fields">
|
||||
<input
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label title="{{localize 'OSE.items.Weight'}}"><i class="fas
|
||||
<label title="{{localize 'ACKS.items.Weight'}}"><i class="fas
|
||||
fa-weight-hanging"></i></label>
|
||||
<div class="form-fields">
|
||||
<input
|
||||
|
|
@ -61,13 +61,13 @@
|
|||
<input
|
||||
type="text"
|
||||
data-action="add-tag"
|
||||
title="{{localize 'OSE.items.typeTag'}}"
|
||||
placeholder="{{localize 'OSE.items.enterTag'}}"
|
||||
title="{{localize 'ACKS.items.typeTag'}}"
|
||||
placeholder="{{localize 'ACKS.items.enterTag'}}"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.items.Damage'}}</label>
|
||||
<label>{{localize 'ACKS.items.Damage'}}</label>
|
||||
<div class="form-fields">
|
||||
<input
|
||||
type="text"
|
||||
|
|
@ -78,8 +78,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label title="{{localize 'OSE.items.AtkBonus'}}">{{localize
|
||||
'OSE.items.Bonus'}}</label>
|
||||
<label title="{{localize 'ACKS.items.AtkBonus'}}">{{localize
|
||||
'ACKS.items.Bonus'}}</label>
|
||||
<div class="form-fields">
|
||||
<input
|
||||
type="text"
|
||||
|
|
@ -90,14 +90,14 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group attack-type">
|
||||
<a title="{{localize 'OSE.items.Melee'}}" class="melee-toggle {{#if
|
||||
<a title="{{localize 'ACKS.items.Melee'}}" class="melee-toggle {{#if
|
||||
data.melee}}active{{/if}}"><i class="fas fa-fist-raised"></i></a>
|
||||
<a title="{{localize 'OSE.items.Missile'}}" class="missile-toggle
|
||||
<a title="{{localize 'ACKS.items.Missile'}}" class="missile-toggle
|
||||
{{#if data.missile}}active{{/if}}"><i class="fas fa-bullseye"></i></a>
|
||||
</div>
|
||||
{{#if data.missile}}
|
||||
<div class="form-group block-input">
|
||||
<label>{{localize 'OSE.items.Range'}}</label>
|
||||
<label>{{localize 'ACKS.items.Range'}}</label>
|
||||
<div class="form-fields range">
|
||||
<input
|
||||
type="text"
|
||||
|
|
@ -123,7 +123,7 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.spells.Save'}}</label>
|
||||
<label>{{localize 'ACKS.spells.Save'}}</label>
|
||||
<div class="form-fields">
|
||||
<select name="data.save">
|
||||
{{#select data.save}}
|
||||
|
|
@ -136,7 +136,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{localize 'OSE.items.Slow'}}</label>
|
||||
<label>{{localize 'ACKS.items.Slow'}}</label>
|
||||
<div class="form-fields">
|
||||
<input
|
||||
type="checkbox"
|
||||
|
|
|
|||
Loading…
Reference in New Issue