Update item sheets
This commit is contained in:
parent
91c468e736
commit
1cc3a0bc21
@ -13,7 +13,6 @@ import * as applications from "./module/applications/_module.mjs"
|
||||
|
||||
import { handleSocketEvent } from "./module/socket.mjs"
|
||||
import { Macros } from "./module/macros.mjs"
|
||||
import { initControlButtons } from "./module/control-buttons.mjs"
|
||||
import { setupTextEnrichers } from "./module/enrichers.mjs"
|
||||
|
||||
export class ClassCounter{static printHello(){console.log("Hello")}static sendJsonPostRequest(e,s){const t={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(s)};return fetch(e,t).then((e=>{if(!e.ok)throw new Error("La requête a échoué avec le statut "+e.status);return e.json()})).catch((e=>{throw console.error("Erreur envoi de la requête:",e),e}))}static registerUsageCount(e=game.system.id,s={}){if(game.user.isGM){game.settings.register(e,"world-key",{name:"Unique world key",scope:"world",config:!1,default:"",type:String});let t=game.settings.get(e,"world-key");null!=t&&""!=t&&"NONE"!=t&&"none"!=t.toLowerCase()||(t=foundry.utils.randomID(32),game.settings.set(e,"world-key",t));let a={name:e,system:game.system.id,worldKey:t,version:game.system.version,language:game.settings.get("core","language"),remoteAddr:game.data.addresses.remote,nbInstalledModules:game.modules.size,nbActiveModules:game.modules.filter((e=>e.active)).length,nbPacks:game.world.packs.size,nbUsers:game.users.size,nbScenes:game.scenes.size,nbActors:game.actors.size,nbPlaylist:game.playlists.size,nbTables:game.tables.size,nbCards:game.cards.size,optionsData:s,foundryVersion:`${game.release.generation}.${game.release.build}`};this.sendJsonPostRequest("https://www.uberwald.me/fvtt_appcount/count_post.php",a)}}}
|
||||
@ -82,9 +81,6 @@ Hooks.once("init", function () {
|
||||
// Activate socket handler
|
||||
game.socket.on(`system.${SYSTEM.id}`, handleSocketEvent)
|
||||
|
||||
|
||||
initControlButtons()
|
||||
|
||||
setupTextEnrichers()
|
||||
|
||||
// Gestion des jets de dés depuis les journaux
|
||||
@ -97,7 +93,6 @@ Hooks.once("init", function () {
|
||||
const target = anchor.dataset.rollTarget
|
||||
const title = anchor.dataset.rollTitle
|
||||
const avantage = anchor.dataset.rollAvantage
|
||||
applications.CthulhuEternalManager.askRollForAll(type, target, title, avantage)
|
||||
})
|
||||
|
||||
console.info("CTHULHU ETERNAL | System Initialized")
|
||||
@ -114,28 +109,14 @@ function preLocalizeConfig() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// CONFIG.Dice.rollModes = Object.fromEntries(Object.entries(CONFIG.Dice.rollModes).map(([key, value]) => [key, game.i18n.localize(value)]))
|
||||
|
||||
// localizeConfigObject(SYSTEM.ACTION.TAG_CATEGORIES, ["label"])
|
||||
// localizeConfigObject(CONFIG.Dice.rollModes, ["label"])
|
||||
}
|
||||
|
||||
Hooks.once("ready", function () {
|
||||
console.info("CTHULHU ETERNAL | Ready")
|
||||
game.system.applicationManager = new applications.CthulhuEternalManager()
|
||||
if (game.user.isGM) {
|
||||
//game.system.applicationManager.render(true)
|
||||
}
|
||||
|
||||
if (!SYSTEM.DEV_MODE) {
|
||||
registerWorldCount("fvtt-cthulhu-eternal")
|
||||
}
|
||||
ClassCounter.registerUsageCount("fvtt-cthulhu-eternal", {})
|
||||
_showUserGuide()
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
/* Display the user guide */
|
||||
async function _showUserGuide() {
|
||||
if (game.user.isGM) {
|
||||
const newVer = game.system.version
|
||||
|
245
lang/en.json
245
lang/en.json
@ -40,28 +40,18 @@
|
||||
"int": {
|
||||
"label": "Intelligence"
|
||||
},
|
||||
"wis": {
|
||||
"label": "Wisdom"
|
||||
"pow": {
|
||||
"label": "Power"
|
||||
},
|
||||
"con": {
|
||||
"label": "Constitution"
|
||||
},
|
||||
"char": {
|
||||
"label": "Charisma"
|
||||
},
|
||||
"app": {
|
||||
"label": "Appearance"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Skill": {
|
||||
"Category": {
|
||||
"layperson": "Layperson",
|
||||
"professional": "Professional",
|
||||
"weapon": "Weapon",
|
||||
"armor": "Armor",
|
||||
"resist": "Resist"
|
||||
},
|
||||
"FIELDS": {
|
||||
"diceEvolved": {
|
||||
"label": "Can increase on failure"
|
||||
@ -82,22 +72,16 @@
|
||||
},
|
||||
"Gear": {
|
||||
"FIELDS": {
|
||||
"cost": {
|
||||
"label": "Cost"
|
||||
"resourceLevel": {
|
||||
"label": "Resource level"
|
||||
},
|
||||
"money": {
|
||||
"label": "Money unit"
|
||||
},
|
||||
"description": {
|
||||
"label": "Description"
|
||||
"settings": {
|
||||
"label": "Settings era"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Injury": {
|
||||
"FIELDS": {
|
||||
"cost": {
|
||||
"label": "Cost"
|
||||
},
|
||||
"description": {
|
||||
"label": "Description"
|
||||
}
|
||||
@ -109,175 +93,52 @@
|
||||
"ranged": "Ranged"
|
||||
},
|
||||
"FIELDS": {
|
||||
"settings": {
|
||||
"label": "Settings era"
|
||||
},
|
||||
"weaponType": {
|
||||
"label": "Type"
|
||||
},
|
||||
"damageType": {
|
||||
"typeP": {
|
||||
"label": "Piercing"
|
||||
},
|
||||
"typeB": {
|
||||
"label": "Bashing"
|
||||
},
|
||||
"typeS": {
|
||||
"label": "Slashing"
|
||||
}
|
||||
},
|
||||
"damage": {
|
||||
"damageS": {
|
||||
"label": "Small"
|
||||
"label": "Damage"
|
||||
},
|
||||
"damageM": {
|
||||
"label": "Medium"
|
||||
}
|
||||
"description": {
|
||||
"label": "Description"
|
||||
},
|
||||
"hands": {
|
||||
"label": "Hands"
|
||||
"baseRange": {
|
||||
"label": "Base range"
|
||||
},
|
||||
"defenseMax": {
|
||||
"label": "Defense max"
|
||||
"rangeUnit": {
|
||||
"label": "Range unit"
|
||||
},
|
||||
"secondsToAttack": {
|
||||
"label": "Seconds to attack"
|
||||
"killRadius": {
|
||||
"label": "Kill radius"
|
||||
},
|
||||
"speed": {
|
||||
"simpleAim": {
|
||||
"label": "Simple aim"
|
||||
"lethality": {
|
||||
"label": "Lethality"
|
||||
},
|
||||
"carefulAim": {
|
||||
"label": "Careful aim"
|
||||
},
|
||||
"focusedAim": {
|
||||
"label": "Focused aim"
|
||||
}
|
||||
},
|
||||
"defense": {
|
||||
"label": "Defense"
|
||||
},
|
||||
"range": {
|
||||
"pointBlank": {
|
||||
"label": "Point blank"
|
||||
},
|
||||
"short": {
|
||||
"label": "Short"
|
||||
},
|
||||
"medium": {
|
||||
"label": "Medium"
|
||||
},
|
||||
"long": {
|
||||
"label": "Long"
|
||||
},
|
||||
"extreme": {
|
||||
"label": "Extreme"
|
||||
},
|
||||
"outOfSkill": {
|
||||
"label": "Out of skill"
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"label": "Load"
|
||||
},
|
||||
"cost": {
|
||||
"label": "Cost"
|
||||
},
|
||||
"money": {
|
||||
"label": "Money unit"
|
||||
"resourceLevel": {
|
||||
"label": "Resource level"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Armor": {
|
||||
"Category": {
|
||||
"light": "Light",
|
||||
"medium": "Medium",
|
||||
"heavy": "Heavy"
|
||||
},
|
||||
"FIELDS": {
|
||||
"armortype": {
|
||||
"label": "Category"
|
||||
"settings": {
|
||||
"label": "Settings Era"
|
||||
},
|
||||
"defense": {
|
||||
"label": "Defense"
|
||||
"protection": {
|
||||
"label": "Protection"
|
||||
},
|
||||
"movementreduction": {
|
||||
"label": "Movement reduction"
|
||||
},
|
||||
"hp": {
|
||||
"label": "HP"
|
||||
},
|
||||
"damagereduction": {
|
||||
"label": "Damage reduction"
|
||||
},
|
||||
"load": {
|
||||
"label": "Load"
|
||||
},
|
||||
"cost": {
|
||||
"label": "Cost"
|
||||
},
|
||||
"money": {
|
||||
"label": "Money unit"
|
||||
"resourceLevel": {
|
||||
"label": "Resource level"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Motivation": {
|
||||
"FIELDS": {
|
||||
"defense": {
|
||||
"label": "Defense"
|
||||
},
|
||||
"movementreduction": {
|
||||
"label": "Movement reduction"
|
||||
},
|
||||
"hp": {
|
||||
"label": "HP"
|
||||
},
|
||||
"standing": {
|
||||
"min":{
|
||||
"label": "Min"
|
||||
},
|
||||
"max":{
|
||||
"label": "Max"
|
||||
}
|
||||
},
|
||||
"crouching": {
|
||||
"min":{
|
||||
"label": "Min"
|
||||
},
|
||||
"max":{
|
||||
"label": "Max"
|
||||
}
|
||||
},
|
||||
"destruction": {
|
||||
"bashing": {
|
||||
"label": "Bashing"
|
||||
},
|
||||
"slashing": {
|
||||
"label": "Slashing"
|
||||
},
|
||||
"piercing": {
|
||||
"label": "Piercing"
|
||||
}
|
||||
},
|
||||
"autodestruction": {
|
||||
"bashing": {
|
||||
"label": "Bashing"
|
||||
},
|
||||
"slashing": {
|
||||
"label": "Slashing"
|
||||
},
|
||||
"piercing": {
|
||||
"label": "Piercing"
|
||||
}
|
||||
},
|
||||
"damagereduction": {
|
||||
"label": "Damage reduction"
|
||||
},
|
||||
"load": {
|
||||
"label": "Load"
|
||||
},
|
||||
"cost": {
|
||||
"label": "Cost"
|
||||
},
|
||||
"money": {
|
||||
"label": "Money unit"
|
||||
"description": {
|
||||
"label": "Description"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -285,51 +146,19 @@
|
||||
"FIELDS": {
|
||||
"description": {
|
||||
"label": "Description"
|
||||
},
|
||||
"components": {
|
||||
"verbal": {
|
||||
"label": "Verbal"
|
||||
},
|
||||
"somatic": {
|
||||
"label": "Somatic"
|
||||
},
|
||||
"material": {
|
||||
"label": "Material"
|
||||
}
|
||||
},
|
||||
"level": {
|
||||
"label": "Level"
|
||||
},
|
||||
"cost" : {
|
||||
"label": "Cost"
|
||||
},
|
||||
"castingTime": {
|
||||
"label": "Casting time"
|
||||
},
|
||||
"range": {
|
||||
"label": "Range"
|
||||
},
|
||||
"duration": {
|
||||
"label": "Duration"
|
||||
},
|
||||
"areaAffected": {
|
||||
"label": "Area affected"
|
||||
},
|
||||
"savingThrow": {
|
||||
"label": "Saving throw"
|
||||
},
|
||||
"extraAetherPoints": {
|
||||
"label": "Extra aether points"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Bond": {
|
||||
"FIELDS": {
|
||||
"cost": {
|
||||
"label": "Cost"
|
||||
"bondType": {
|
||||
"label": "Type"
|
||||
},
|
||||
"description": {
|
||||
"label": "Description"
|
||||
},
|
||||
"value": {
|
||||
"label": "Value"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -343,6 +172,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"BondType": {
|
||||
"individual": "Individual",
|
||||
"community": "Community"
|
||||
},
|
||||
"Label": {
|
||||
"description": "Description",
|
||||
"total": "Total",
|
||||
|
@ -8,4 +8,3 @@ export { default as CthulhuEternalArmorSheet } from "./sheets/armor-sheet.mjs"
|
||||
export { default as CthulhuEternalMentalDisorderSheet } from "./sheets/mentaldisorder-sheet.mjs"
|
||||
export { default as CthulhuEternalGearSheet } from "./sheets/gear-sheet.mjs"
|
||||
export { default as CthulhuEternalMotivationSheet } from "./sheets/motivation-sheet.mjs"
|
||||
export { default as CthulhuEternalManager } from "./manager.mjs"
|
||||
|
@ -1,142 +0,0 @@
|
||||
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api
|
||||
import { SYSTEM } from "../config/system.mjs"
|
||||
|
||||
/**
|
||||
* An application for configuring the permissions which are available to each User role.
|
||||
* @extends ApplicationV2
|
||||
* @mixes HandlebarsApplication
|
||||
* @alias PermissionConfig
|
||||
*/
|
||||
export default class CthulhuEternalManager extends HandlebarsApplicationMixin(ApplicationV2) {
|
||||
static DEFAULT_OPTIONS = {
|
||||
id: "cthulhueternal-application-manager",
|
||||
tag: "form",
|
||||
window: {
|
||||
contentClasses: ["cthulhueternal-manager"],
|
||||
title: "CTHULHUETERNAL.Manager.title",
|
||||
resizable: true,
|
||||
},
|
||||
position: {
|
||||
width: "auto",
|
||||
height: "auto",
|
||||
top: 80,
|
||||
left: 400,
|
||||
},
|
||||
form: {
|
||||
closeOnSubmit: true,
|
||||
},
|
||||
actions: {
|
||||
resourceAll: CthulhuEternalManager.#onResourceAll,
|
||||
resourceOne: CthulhuEternalManager.#onResourceOne,
|
||||
saveAll: CthulhuEternalManager.#onSaveAll,
|
||||
saveOne: CthulhuEternalManager.#onSaveOne,
|
||||
openSheet: CthulhuEternalManager.#onOpenSheet,
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-cthulhu-eternal/templates/manager.hbs",
|
||||
},
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Rendering */
|
||||
/* -------------------------------------------- */
|
||||
|
||||
/** @override */
|
||||
async _prepareContext(_options = {}) {
|
||||
return {
|
||||
players: game.users.filter((u) => u.hasPlayerOwner && u.active),
|
||||
}
|
||||
}
|
||||
|
||||
static async #onResourceAll(event, target) {
|
||||
const value = event.target.dataset.resource
|
||||
CthulhuEternalManager.askRollForAll("resource", value)
|
||||
}
|
||||
|
||||
static async #onSaveAll(event, target) {
|
||||
const value = event.target.dataset.save
|
||||
CthulhuEternalManager.askRollForAll("save", value)
|
||||
}
|
||||
|
||||
static #onResourceOne(event, target) {
|
||||
const value = event.target.dataset.resource
|
||||
const recipient = event.target.parentElement.dataset.userId
|
||||
const name = event.target.parentElement.dataset.characterName
|
||||
CthulhuEternalManager.askRollForOne("resource", value, recipient, name)
|
||||
}
|
||||
|
||||
static async #onSaveOne(event, target) {
|
||||
const value = event.target.dataset.save
|
||||
const recipient = event.target.parentElement.dataset.userId
|
||||
const name = event.target.parentElement.dataset.characterName
|
||||
CthulhuEternalManager.askRollForOne("save", value, recipient, name)
|
||||
}
|
||||
|
||||
static #onOpenSheet(event, target) {
|
||||
const characterId = event.target.dataset.characterId
|
||||
game.actors.get(characterId).sheet.render(true)
|
||||
}
|
||||
|
||||
static async askRollForAll(type, value, title = null, avantage = null) {
|
||||
let label = game.i18n.localize(`CTHULHUETERNAL.Manager.${value}`)
|
||||
let text = game.i18n.format("CTHULHUETERNAL.Chat.askRollForAll", { value: label })
|
||||
|
||||
if (avantage) {
|
||||
switch (avantage) {
|
||||
case "++":
|
||||
text += ` ${game.i18n.localize("CTHULHUETERNAL.Roll.doubleAvantage")}`
|
||||
break
|
||||
case "+":
|
||||
text += ` ${game.i18n.localize("CTHULHUETERNAL.Roll.avantage")}`
|
||||
break
|
||||
case "-":
|
||||
text += ` ${game.i18n.localize("CTHULHUETERNAL.Roll.desavantage")}`
|
||||
break
|
||||
case "--":
|
||||
text += ` ${game.i18n.localize("CTHULHUETERNAL.Roll.doubleDesavantage")}`
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
content: await renderTemplate(`systems/fvtt-cthulhu-eternal/templates/chat-ask-roll.hbs`, {
|
||||
title: title !== null ? title : "",
|
||||
text: text,
|
||||
rollType: type,
|
||||
value: value,
|
||||
avantage: avantage,
|
||||
}),
|
||||
flags: { tenebris: { typeMessage: "askRoll" } },
|
||||
})
|
||||
}
|
||||
|
||||
static async askRollForOne(type, value, recipient, name) {
|
||||
let label = game.i18n.localize(`CTHULHUETERNAL.Manager.${value}`)
|
||||
const text = game.i18n.format("CTHULHUETERNAL.Chat.askRollForOne", { value: label, name: name })
|
||||
|
||||
game.socket.emit(`system.${SYSTEM.id}`, {
|
||||
action: "askRoll",
|
||||
data: {
|
||||
userId: recipient,
|
||||
},
|
||||
})
|
||||
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
content: await renderTemplate(`systems/fvtt-cthulhu-eternal/templates/chat-ask-roll.hbs`, {
|
||||
text: text,
|
||||
rollType: type,
|
||||
value: value,
|
||||
}),
|
||||
whisper: [recipient],
|
||||
flags: { tenebris: { typeMessage: "askRoll" } },
|
||||
})
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
export const BOND_TYPE = {
|
||||
"individual": "CTHULHUETERNAL.Weapon.WeaponType.melee",
|
||||
"community": "CTHULHUETERNAL.Weapon.WeaponType.ranged"
|
||||
"individual": "CTHULHUETERNAL.BondType.individual",
|
||||
"community": "CTHULHUETERNAL.BondType.community"
|
||||
}
|
||||
|
||||
|
@ -7,9 +7,9 @@ export const CHARACTERISTICS = Object.freeze({
|
||||
id: "int",
|
||||
label: "CTHULHUETERNAL.Character.int.label"
|
||||
},
|
||||
wis: {
|
||||
id: "wis",
|
||||
label: "CTHULHUETERNAL.Character.wis.label"
|
||||
pow: {
|
||||
id: "pow",
|
||||
label: "CTHULHUETERNAL.Character.pow.label"
|
||||
},
|
||||
dex: {
|
||||
id: "dex",
|
||||
@ -22,36 +22,6 @@ export const CHARACTERISTICS = Object.freeze({
|
||||
cha: {
|
||||
id: "cha",
|
||||
label: "CTHULHUETERNAL.Character.cha.label"
|
||||
},
|
||||
app: {
|
||||
id: "app",
|
||||
label: "CTHULHUETERNAL.Character.app.label"
|
||||
},
|
||||
})
|
||||
|
||||
export const SAVES = Object.freeze({
|
||||
str: {
|
||||
id: "str",
|
||||
label: "CTHULHUETERNAL.Character.str.label"
|
||||
},
|
||||
agility: {
|
||||
id: "agility",
|
||||
label: "CTHULHUETERNAL.Character.agility.label"
|
||||
},
|
||||
dying: {
|
||||
id: "dying",
|
||||
label: "CTHULHUETERNAL.Character.dying.label"
|
||||
},
|
||||
will: {
|
||||
id: "will",
|
||||
label: "CTHULHUETERNAL.Character.will.label"
|
||||
},
|
||||
dodge: {
|
||||
id: "dodge",
|
||||
label: "CTHULHUETERNAL.Character.dodge.label"
|
||||
},
|
||||
toughness: {
|
||||
id: "toughness",
|
||||
label: "CTHULHUETERNAL.Character.toughness.label"
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
/**
|
||||
* Menu spécifique au système
|
||||
*/
|
||||
export function initControlButtons() {
|
||||
CONFIG.Canvas.layers.tenebris = { layerClass: ControlsLayer, group: "primary" }
|
||||
|
||||
Hooks.on("getSceneControlButtons", (btns) => {
|
||||
let menu = []
|
||||
|
||||
menu.push({
|
||||
name: "fortune",
|
||||
title: game.i18n.localize("TENEBRIS.Fortune.title"),
|
||||
icon: "fa-solid fa-clover",
|
||||
button: true,
|
||||
onClick: () => {
|
||||
if (!foundry.applications.instances.has("tenebris-application-fortune")) {
|
||||
game.system.applicationFortune.render(true)
|
||||
} else game.system.applicationFortune.close()
|
||||
},
|
||||
})
|
||||
|
||||
if (game.user.isGM) {
|
||||
menu.push({
|
||||
name: "gm-manager",
|
||||
title: game.i18n.localize("TENEBRIS.Manager.title"),
|
||||
icon: "fa-solid fa-users",
|
||||
button: true,
|
||||
onClick: () => {
|
||||
if (!foundry.applications.instances.has("tenebris-application-manager")) {
|
||||
game.system.applicationManager.render(true)
|
||||
} else game.system.applicationManager.close()
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
btns.push({
|
||||
name: "tenebris",
|
||||
title: "Cthulhu CthulhuEternal",
|
||||
icon: "tenebris",
|
||||
layer: "tenebris",
|
||||
tools: menu,
|
||||
})
|
||||
})
|
||||
}
|
@ -105,21 +105,21 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
|
||||
switch (this.type) {
|
||||
case ROLL_TYPE.SAVE:
|
||||
const saveLabel = game.i18n.localize(`TENEBRIS.Character.FIELDS.caracteristiques.${this.target}.valeur.label`)
|
||||
text = game.i18n.format("TENEBRIS.Roll.save", { save: saveLabel })
|
||||
const saveLabel = game.i18n.localize(`CTHULHUETERNAL.Character.FIELDS.caracteristiques.${this.target}.valeur.label`)
|
||||
text = game.i18n.format("CTHULHUETERNAL.Roll.save", { save: saveLabel })
|
||||
text = text.concat("<br>").concat(`Seuil : ${this.treshold}`)
|
||||
break
|
||||
case ROLL_TYPE.RESOURCE:
|
||||
const resourceLabel = game.i18n.localize(`TENEBRIS.Character.FIELDS.ressources.${this.target}.valeur.label`)
|
||||
text = game.i18n.format("TENEBRIS.Roll.resource", { resource: resourceLabel })
|
||||
const resourceLabel = game.i18n.localize(`CTHULHUETERNAL.Character.FIELDS.ressources.${this.target}.valeur.label`)
|
||||
text = game.i18n.format("CTHULHUETERNAL.Roll.resource", { resource: resourceLabel })
|
||||
break
|
||||
case ROLL_TYPE.DAMAGE:
|
||||
const damageLabel = this.target
|
||||
text = game.i18n.format("TENEBRIS.Roll.damage", { item: damageLabel })
|
||||
text = game.i18n.format("CTHULHUETERNAL.Roll.damage", { item: damageLabel })
|
||||
break
|
||||
case ROLL_TYPE.ATTACK:
|
||||
const attackLabel = this.target
|
||||
text = game.i18n.format("TENEBRIS.Roll.attack", { item: attackLabel })
|
||||
text = game.i18n.format("CTHULHUETERNAL.Roll.attack", { item: attackLabel })
|
||||
break
|
||||
}
|
||||
return text
|
||||
@ -131,7 +131,7 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
* @returns {string} A formatted string containing the value, help, hindrance, and modifier.
|
||||
*/
|
||||
_createIntroTextTooltip() {
|
||||
let tooltip = game.i18n.format("TENEBRIS.Tooltip.saveIntroTextTooltip", { value: this.value, aide: this.aide, gene: this.gene, modificateur: this.modificateur })
|
||||
let tooltip = game.i18n.format("CTHULHUETERNAL.Tooltip.saveIntroTextTooltip", { value: this.value, aide: this.aide, gene: this.gene, modificateur: this.modificateur })
|
||||
if (this.hasTarget) {
|
||||
tooltip = tooltip.concat(`<br>Cible : ${this.targetName}`)
|
||||
}
|
||||
@ -160,9 +160,9 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
|
||||
// Formula for a resource roll
|
||||
if (options.rollType === ROLL_TYPE.RESOURCE) {
|
||||
let ressource = game.i18n.localize(`TENEBRIS.Character.FIELDS.ressources.${options.rollTarget}.valeur.label`)
|
||||
let ressource = game.i18n.localize(`CTHULHUETERNAL.Character.FIELDS.ressources.${options.rollTarget}.valeur.label`)
|
||||
if (formula === "0" || formula === "") {
|
||||
ui.notifications.warn(game.i18n.format("TENEBRIS.Warning.plusDeRessource", { ressource: ressource }))
|
||||
ui.notifications.warn(game.i18n.format("CTHULHUETERNAL.Warning.plusDeRessource", { ressource: ressource }))
|
||||
return null
|
||||
}
|
||||
}
|
||||
@ -266,10 +266,10 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
const content = await renderTemplate("systems/fvtt-cthulhu-eternal/templates/roll-dialog.hbs", dialogContext)
|
||||
|
||||
const title = CthulhuEternalRoll.createTitle(options.rollType, options.rollTarget)
|
||||
const label = game.i18n.localize("TENEBRIS.Roll.roll")
|
||||
const label = game.i18n.localize("CTHULHUETERNAL.Roll.roll")
|
||||
const rollContext = await foundry.applications.api.DialogV2.wait({
|
||||
window: { title: title },
|
||||
classes: ["lethalfantasy"],
|
||||
classes: ["fvtt-cthulhu-eternal"],
|
||||
content,
|
||||
buttons: [
|
||||
{
|
||||
@ -429,15 +429,15 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
static createTitle(type, target) {
|
||||
switch (type) {
|
||||
case ROLL_TYPE.SAVE:
|
||||
return `${game.i18n.localize("TENEBRIS.Dialog.titleSave")} : ${game.i18n.localize(`TENEBRIS.Manager.${target}`)}`
|
||||
return `${game.i18n.localize("CTHULHUETERNAL.Dialog.titleSave")} : ${game.i18n.localize(`CTHULHUETERNAL.Manager.${target}`)}`
|
||||
case ROLL_TYPE.RESOURCE:
|
||||
return `${game.i18n.localize("TENEBRIS.Dialog.titleResource")} : ${game.i18n.localize(`TENEBRIS.Manager.${target}`)}`
|
||||
return `${game.i18n.localize("CTHULHUETERNAL.Dialog.titleResource")} : ${game.i18n.localize(`CTHULHUETERNAL.Manager.${target}`)}`
|
||||
case ROLL_TYPE.DAMAGE:
|
||||
return `${game.i18n.localize("TENEBRIS.Dialog.titleDamage")} : ${target}`
|
||||
return `${game.i18n.localize("CTHULHUETERNAL.Dialog.titleDamage")} : ${target}`
|
||||
case ROLL_TYPE.ATTACK:
|
||||
return `${game.i18n.localize("TENEBRIS.Dialog.titleAttack")} : ${target}`
|
||||
return `${game.i18n.localize("CTHULHUETERNAL.Dialog.titleAttack")} : ${target}`
|
||||
default:
|
||||
return game.i18n.localize("TENEBRIS.Dialog.titleStandard")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Dialog.titleStandard")
|
||||
}
|
||||
}
|
||||
|
||||
@ -543,25 +543,25 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
static _convertAvantages(value) {
|
||||
switch (value) {
|
||||
case "1":
|
||||
return game.i18n.localize("TENEBRIS.Roll.doubleDesavantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.doubleDesavantage")
|
||||
case "2":
|
||||
return game.i18n.localize("TENEBRIS.Roll.desavantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.desavantage")
|
||||
case "3":
|
||||
return game.i18n.localize("TENEBRIS.Roll.normal")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.normal")
|
||||
case "4":
|
||||
return game.i18n.localize("TENEBRIS.Roll.avantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.avantage")
|
||||
case "5":
|
||||
return game.i18n.localize("TENEBRIS.Roll.doubleAvantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.doubleAvantage")
|
||||
case "--":
|
||||
return game.i18n.localize("TENEBRIS.Roll.doubleDesavantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.doubleDesavantage")
|
||||
case "-":
|
||||
return game.i18n.localize("TENEBRIS.Roll.desavantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.desavantage")
|
||||
case "=":
|
||||
return game.i18n.localize("TENEBRIS.Roll.normal")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.normal")
|
||||
case "+":
|
||||
return game.i18n.localize("TENEBRIS.Roll.avantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.avantage")
|
||||
case "++":
|
||||
return game.i18n.localize("TENEBRIS.Roll.doubleAvantage")
|
||||
return game.i18n.localize("CTHULHUETERNAL.Roll.doubleAvantage")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,9 +14,7 @@ export default class CthulhuEternalProtagonist extends foundry.abstract.TypeData
|
||||
const characteristicField = (label) => {
|
||||
const schema = {
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 3, min: 0 }),
|
||||
percent: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 100 }),
|
||||
attackMod: new fields.NumberField({ ...requiredInteger, initial: 0 }),
|
||||
defenseMod: new fields.NumberField({ ...requiredInteger, initial: 0 })
|
||||
feature: new fields.StringField({ required: true, nullable: false, initial: "" })
|
||||
}
|
||||
return new fields.SchemaField(schema, { label })
|
||||
}
|
||||
@ -28,44 +26,44 @@ export default class CthulhuEternalProtagonist extends foundry.abstract.TypeData
|
||||
}, {}),
|
||||
)
|
||||
|
||||
schema.wp = new fields.SchemaField({
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
max: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
exhausted: new fields.BooleanField({ required: true, initial: false })
|
||||
})
|
||||
|
||||
schema.hp = new fields.SchemaField({
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
max: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
})
|
||||
|
||||
schema.perception = new fields.SchemaField({
|
||||
schema.san = new fields.SchemaField({
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
bonus: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
max: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
recoverySAN: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
violence: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
helplessness: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
breakingPoint: new fields.BooleanField({ required: true, initial: false })
|
||||
})
|
||||
schema.grit = new fields.SchemaField({
|
||||
earned: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
current: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
})
|
||||
schema.luck = new fields.SchemaField({
|
||||
earned: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
current: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
})
|
||||
schema.movement = new fields.SchemaField({
|
||||
walk: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
jog: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
sprint: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
run: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
armorAdjust: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
|
||||
schema.damageBonus = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
|
||||
schema.resources = new fields.SchemaField({
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
hand: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
stowed: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
storage: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
})
|
||||
|
||||
schema.biodata = new fields.SchemaField({
|
||||
class: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
level: new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 }),
|
||||
mortal: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
alignment: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
age: new fields.NumberField({ ...requiredInteger, initial: 15, min: 6 }),
|
||||
height: new fields.NumberField({ ...requiredInteger, initial: 170, min: 50 }),
|
||||
gender: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
home: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
birthplace: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
eyes: new fields.StringField({ required: true, nullable: false, initial: "" }),
|
||||
hair: new fields.StringField({ required: true, nullable: false, initial: "" })
|
||||
})
|
||||
schema.developmentPoints = new fields.SchemaField({
|
||||
total: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
|
||||
remaining: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
|
||||
})
|
||||
|
||||
return schema
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
|
||||
schema.weaponType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_TYPE })
|
||||
schema.damage = new fields.StringField({required: true, initial: "1d6"})
|
||||
schema.baseRange = new fields.StringField({required: true, initial: ""})
|
||||
schema.rangeDistance = new fields.StringField({ required: true, initial: "yard", choices: SYSTEM.WEAPON_RANGE_UNIT })
|
||||
schema.rangeUnit = new fields.StringField({ required: true, initial: "yard", choices: SYSTEM.WEAPON_RANGE_UNIT })
|
||||
schema.lethality = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
schema.killRadius = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
|
||||
|
5967
package-lock.json
generated
Normal file
5967
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,11 +3,9 @@
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
{{formField systemFields.cost value=system.cost}}
|
||||
{{formField systemFields.money value=system.money localize=true}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||
</fieldset>
|
||||
|
@ -4,18 +4,12 @@
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
{{formField systemFields.armortype value=system.armortype localize=true}}
|
||||
{{formField systemFields.defense value=system.defense}}
|
||||
{{formField systemFields.movementreduction value=system.movementreduction}}
|
||||
{{formField systemFields.hp value=system.hp}}
|
||||
{{formField systemFields.damagereduction value=system.damagereduction}}
|
||||
{{formField systemFields.load value=system.load}}
|
||||
|
||||
{{formField systemFields.cost value=system.cost}}
|
||||
{{formField systemFields.money value=system.money localize=true}}
|
||||
{{formField systemFields.settings value=system.settings localize=true}}
|
||||
{{formField systemFields.protection value=system.protection}}
|
||||
{{formField systemFields.resourceLevel value=system.resourceLevel}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput
|
||||
systemFields.description
|
||||
enriched=description
|
||||
|
@ -1,12 +0,0 @@
|
||||
<section>
|
||||
<div class="header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
{{formField systemFields.degats value=system.degats}}
|
||||
<fieldset>
|
||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
</section>
|
@ -3,10 +3,12 @@
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
{{formField systemFields.bondType value=system.bondType localize=true}}
|
||||
{{formField systemFields.value value=system.value}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</fieldset>
|
||||
|
@ -1,17 +0,0 @@
|
||||
{{!log 'chat-fortune' this}}
|
||||
<div class="tenebris fortune">
|
||||
<div class="intro-chat">
|
||||
{{#if (ne actingCharImg "icons/svg/mystery-man.svg")}}
|
||||
<div class="intro-img">
|
||||
<img src="{{actingCharImg}}" data-tooltip="{{name}}" />
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="intro-right">
|
||||
<p class="introText">{{localize "TENEBRIS.Chat.askFortune" name=name}}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{#if isGM}}
|
||||
<a class="button control" data-action="accept-fortune" data-tooltip="Accepter"><i class="fa-solid fa-check"></i></a>
|
||||
<div class="fortune-accepted" style="display: none;">Accepté !</div>
|
||||
{{/if}}
|
||||
</div>
|
15
templates/gear.hbs
Normal file
15
templates/gear.hbs
Normal file
@ -0,0 +1,15 @@
|
||||
<section>
|
||||
<div class="header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
{{formField systemFields.settings value=system.settings localize=true}}
|
||||
{{formField systemFields.resourceLevel value=system.resourceLevel}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
</section>
|
@ -3,10 +3,9 @@
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
{{formField systemFields.cost value=system.cost}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
|
||||
</fieldset>
|
||||
|
17
templates/mentaldisorder.hbs
Normal file
17
templates/mentaldisorder.hbs
Normal file
@ -0,0 +1,17 @@
|
||||
<section>
|
||||
<div class="header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput
|
||||
systemFields.description
|
||||
enriched=description
|
||||
value=system.description
|
||||
name="system.description"
|
||||
toggled="false"
|
||||
}}
|
||||
</fieldset>
|
||||
</section>
|
@ -6,7 +6,7 @@
|
||||
{{formField systemFields.cost value=system.cost}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||
</fieldset>
|
||||
|
@ -1,7 +0,0 @@
|
||||
<section class="path-name">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
|
||||
<a class="control" data-action="toggleSheet" data-tooltip="TENEBRIS.ToggleSheet">
|
||||
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
|
||||
</a>
|
||||
</section>
|
@ -1,44 +0,0 @@
|
||||
<section class="tab path-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
<fieldset>
|
||||
<legend>{{localize "TENEBRIS.Label.profil"}}</legend>
|
||||
<div class="profil">
|
||||
<div class="profil-gauche">
|
||||
{{formField systemFields.caracteristiques.fields.rob.fields.valeur value=system.caracteristiques.rob.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.caracteristiques.fields.dex.fields.valeur value=system.caracteristiques.dex.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.caracteristiques.fields.int.fields.valeur value=system.caracteristiques.int.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.caracteristiques.fields.per.fields.valeur value=system.caracteristiques.per.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.caracteristiques.fields.vol.fields.valeur value=system.caracteristiques.vol.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.dv value=system.dv rootId=partId disabled=isPlayMode}}
|
||||
</div>
|
||||
<div class="profil-droite">
|
||||
{{formField systemFields.dmax value=system.dmax rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.ressources.fields.san.fields.valeur value=system.ressources.san.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.ressources.fields.oeil.fields.valeur value=system.ressources.oeil.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.ressources.fields.verbe.fields.valeur value=system.ressources.verbe.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.ressources.fields.bourse.fields.valeur value=system.ressources.bourse.valeur rootId=partId disabled=isPlayMode}}
|
||||
{{formField systemFields.ressources.fields.magie.fields.valeur value=system.ressources.magie.valeur rootId=partId disabled=isPlayMode}}
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="biens">
|
||||
<legend>{{localize "TENEBRIS.Label.biens"}}</legend>
|
||||
{{formInput systemFields.biens enriched=enrichedBiens value=system.biens documentUUID=item.uuid name="system.biens" collaborate="true" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="langues">
|
||||
<legend>{{localize "TENEBRIS.Label.langues"}}</legend>
|
||||
{{formInput systemFields.langues enriched=enrichedLangues value=system.langues documentUUID=item.uuid name="system.langues" collaborate="true" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="description">
|
||||
<legend>{{localize "TENEBRIS.Label.description"}}</legend>
|
||||
{{formInput
|
||||
systemFields.description
|
||||
enriched=enrichedDescription
|
||||
value=system.description
|
||||
name="system.description"
|
||||
toggled=true
|
||||
}}
|
||||
</fieldset>
|
||||
</section>
|
@ -1,28 +0,0 @@
|
||||
<section class="tab path-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
|
||||
{{!log "path-talents" this}}
|
||||
{{#each talents as |item|}}
|
||||
{{!log "path-talent" this}}
|
||||
<div class="talent" data-item-uuid="{{item.uuid}}">
|
||||
<div class="header">
|
||||
<div class="name">{{item.name}} {{#if item.system.canProgress}}<span data-tooltip="{{localize 'TENEBRIS.Label.progressionPossible'}}"> (P)</span>{{/if}}
|
||||
{{#if item.system.isLearned}}
|
||||
<span data-tooltip="{{localize 'TENEBRIS.Talent.FIELDS.appris.label'}}"> <i class="fa-solid fa-book"></i>({{item.system.niveau}})</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if @root.isEditMode}}
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'TENEBRIS.Edit'}}" data-action="edit" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'TENEBRIS.Delete'}}" data-action="delete" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if item.system.isLearned}}
|
||||
<div class="progression">
|
||||
<div>{{localize "TENEBRIS.Label.appris"}}</div>
|
||||
<div>{{localize "TENEBRIS.Label.niveau"}} {{item.system.niveau}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="description">{{{item.system.improvedDescription}}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
@ -1,59 +0,0 @@
|
||||
<section>
|
||||
<div class="header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="align-top">
|
||||
{{formField systemFields.defense value=system.defense}}
|
||||
{{formField systemFields.movementreduction value=system.movementreduction}}
|
||||
|
||||
<label>Standing</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.standing.fields.min value=system.standing.min}}
|
||||
{{formField systemFields.standing.fields.max value=system.standing.min}}
|
||||
</div>
|
||||
|
||||
<label>Crouching</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.crouching.fields.min value=system.crouching.min}}
|
||||
{{formField systemFields.crouching.fields.max value=system.crouching.min}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="align-top">
|
||||
<label>Destruction</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.destruction.fields.bashing value=system.destruction.bashing}}
|
||||
{{formField systemFields.destruction.fields.slashing value=system.destruction.slashing}}
|
||||
{{formField systemFields.destruction.fields.piercing value=system.destruction.piercing}}
|
||||
</div>
|
||||
|
||||
<label>Auto-Destruction</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.autodestruction.fields.bashing value=system.autodestruction.bashing}}
|
||||
{{formField systemFields.autodestruction.fields.slashing value=system.autodestruction.slashing}}
|
||||
{{formField systemFields.autodestruction.fields.piercing value=system.autodestruction.piercing}}
|
||||
</div>
|
||||
|
||||
{{formField systemFields.load value=system.load}}
|
||||
|
||||
{{formField systemFields.cost value=system.cost}}
|
||||
{{formField systemFields.money value=system.money localize=true}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
{{formInput
|
||||
systemFields.description
|
||||
enriched=description
|
||||
value=system.description
|
||||
name="system.description"
|
||||
toggled="false"
|
||||
}}
|
||||
</fieldset>
|
||||
</section>
|
@ -1,29 +0,0 @@
|
||||
<section>
|
||||
<div class="header">
|
||||
<img class="item-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
{{formField systemFields.level value=system.level}}
|
||||
{{formField systemFields.cost value=system.cost}}
|
||||
|
||||
<label>Components</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.components.fields.verbal value=system.components.verbal}}
|
||||
{{formField systemFields.components.fields.somatic value=system.components.somatic}}
|
||||
{{formField systemFields.components.fields.material value=system.components.material}}
|
||||
</div>
|
||||
|
||||
{{formField systemFields.castingTime value=system.castingTime}}
|
||||
{{formField systemFields.range value=system.range}}
|
||||
{{formField systemFields.areaAffected value=system.areaAffected}}
|
||||
{{formField systemFields.duration value=system.duration}}
|
||||
{{formField systemFields.savingThrow value=system.savingThrow}}
|
||||
{{formField systemFields.extraAetherPoints value=system.extraAetherPoints}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
{{formInput systemFields.description enriched=description value=system.description name="system.description" toggled=true}}
|
||||
</fieldset>
|
||||
|
||||
</section>
|
@ -4,65 +4,19 @@
|
||||
{{formInput fields.name value=source.name}}
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="align-top">
|
||||
|
||||
{{formField systemFields.settings value=system.settings localize=true}}
|
||||
{{formField systemFields.weaponType value=system.weaponType localize=true}}
|
||||
|
||||
<label>Damage Type</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.damageType.fields.typeP value=system.standing.typeP}}
|
||||
{{formField systemFields.damageType.fields.typeB value=system.standing.typeB}}
|
||||
{{formField systemFields.damageType.fields.typeS value=system.standing.typeS}}
|
||||
</div>
|
||||
{{formField systemFields.damage value=system.damage}}
|
||||
{{formField systemFields.baseRange value=system.baseRange}}
|
||||
{{formField systemFields.rangeUnit value=system.rangeUnit localize=true}}
|
||||
{{formField systemFields.lethality value=system.lethality}}
|
||||
{{formField systemFields.killRadius value=system.killRadius}}
|
||||
|
||||
<label>Damage</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.damage.fields.damageS value=system.standing.damageS}}
|
||||
{{formField systemFields.damage.fields.damageM value=system.standing.damageM}}
|
||||
</div>
|
||||
|
||||
{{formField systemFields.hands value=system.hands localize=true}}
|
||||
|
||||
{{#if (eq system.weaponType "melee")}}
|
||||
{{formField systemFields.defenseMax value=system.defenseMax}}
|
||||
{{formField systemFields.secondsToAttack value=system.secondsToAttack}}
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq system.weaponType "ranged")}}
|
||||
<label>Speed</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.speed.fields.simpleAim value=system.speed.simpleAim}}
|
||||
{{formField systemFields.speed.fields.carefulAim value=system.speed.carefulAim}}
|
||||
{{formField systemFields.speed.fields.focusedAim value=system.speed.focusedAim}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="align-top">
|
||||
{{#if (eq system.weaponType "ranged")}}
|
||||
|
||||
{{formField systemFields.defense value=system.defense}}
|
||||
|
||||
<label>Range</label>
|
||||
<div class="shift-right">
|
||||
{{formField systemFields.range.fields.pointBlank value=system.range.pointBlank}}
|
||||
{{formField systemFields.range.fields.short value=system.range.short}}
|
||||
{{formField systemFields.range.fields.medium value=system.range.medium}}
|
||||
{{formField systemFields.range.fields.long value=system.range.long}}
|
||||
{{formField systemFields.range.fields.extreme value=system.range.extreme}}
|
||||
{{formField systemFields.range.fields.outOfSkill value=system.range.outOfSkill}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{formField systemFields.load value=system.load}}
|
||||
|
||||
{{formField systemFields.cost value=system.cost}}
|
||||
{{formField systemFields.money value=system.money localize=true}}
|
||||
</div>
|
||||
</div>
|
||||
{{formField systemFields.resourceLevel value=system.resourceLevel}}
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "LETHALFANTASY.Label.description"}}</legend>
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.description"}}</legend>
|
||||
{{formInput
|
||||
systemFields.description
|
||||
enriched=description
|
||||
|
Loading…
x
Reference in New Issue
Block a user