Compare commits
29 Commits
fvtt-ecrym
...
fvtt-ecrym
| Author | SHA1 | Date | |
|---|---|---|---|
| bda88c067e | |||
| 4003e0e42b | |||
| a6d811bcda | |||
| 94eb637637 | |||
| 8c58367cdc | |||
| c439ca978c | |||
| ffe1144f2a | |||
| 38ef07d17b | |||
| a8cc2dce4b | |||
| 0fadd0783c | |||
| a55a038d32 | |||
| d012f78881 | |||
| 01e13da234 | |||
| bc09b5050d | |||
| d68001b376 | |||
| 6b22dade9c | |||
| 965fc02eb3 | |||
| 0ef689bf1b | |||
| c6dcc187d8 | |||
| e2f24405af | |||
| 0487893f47 | |||
| d7b7bccbdf | |||
| dbf4b17afb | |||
| 51e5a409c4 | |||
| 1e4692e850 | |||
| 40e12c1bba | |||
| 2450dce46c | |||
| 67c1066194 | |||
| 65fe498572 |
16
changelog.md
@@ -1,3 +1,19 @@
|
||||
v12.0.0
|
||||
|
||||
- Support Foundry v11/v12
|
||||
- Correction sur le niveau de jeu par défaut
|
||||
|
||||
v11.0.39
|
||||
|
||||
- Modification sur la prise en compte des traits en bonus/malus
|
||||
- Correction sur les images de l'aide intégrée FR
|
||||
|
||||
v11.0.38
|
||||
|
||||
- Corrections sur les champs background/notes/equipement libre
|
||||
- Taduction des répertoires
|
||||
- Ajout de 2 landing pages
|
||||
|
||||
v11.0.36
|
||||
|
||||
- Enable deletion specialization
|
||||
|
||||
BIN
images/assets/ecryme_cephalie_01.png
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
images/assets/ecryme_cephalie_02.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
images/assets/ecryme_cephalie_03.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
images/assets/ecryme_confrontation_01.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
images/assets/ecryme_confrontation_02.png
Normal file
|
After Width: | Height: | Size: 353 KiB |
BIN
images/assets/ecryme_confrontation_03.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
images/assets/ecryme_confrontation_04.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
images/assets/ecryme_level.png
Normal file
|
After Width: | Height: | Size: 248 KiB |
@@ -6,12 +6,12 @@
|
||||
import { EcrymeUtility } from "../common/ecryme-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class EcrymeActorSheet extends ActorSheet {
|
||||
export class EcrymeActorSheet extends foundry.appv1.sheets.ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-ecryme", "sheet", "actor"],
|
||||
template: "systems/fvtt-ecryme/templates/actors/actor-sheet.hbs",
|
||||
width: 860,
|
||||
@@ -33,7 +33,7 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
name: this.actor.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: duplicate(this.object.system),
|
||||
system: foundry.utils.duplicate(this.object.system),
|
||||
limited: this.object.limited,
|
||||
skills: this.actor.prepareSkills(),
|
||||
traits: this.actor.getRollTraits(),
|
||||
@@ -41,21 +41,21 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
ideal: this.actor.getIdeal(),
|
||||
spleen: this.actor.getSpleen(),
|
||||
impacts: this.object.getImpacts(),
|
||||
config: duplicate(game.system.ecryme.config),
|
||||
config: foundry.utils.duplicate(game.system.ecryme.config),
|
||||
weapons: this.actor.getWeapons(),
|
||||
maneuvers: this.actor.getManeuvers(),
|
||||
impactsMalus: this.actor.getImpactsMalus(),
|
||||
archetype: duplicate(this.actor.getArchetype()),
|
||||
archetype: foundry.utils.duplicate(this.actor.getArchetype()),
|
||||
equipments: this.actor.getEquipments(),
|
||||
hasCephaly: EcrymeUtility.hasCephaly(),
|
||||
hasBoheme: EcrymeUtility.hasBoheme(),
|
||||
hasAmertume: EcrymeUtility.hasAmertume(),
|
||||
cephalySkills: this.actor.getCephalySkills(),
|
||||
subActors: duplicate(this.actor.getSubActors()),
|
||||
subActors: foundry.utils.duplicate(this.actor.getSubActors()),
|
||||
annency: this.actor.getAnnency(),
|
||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, { async: true }),
|
||||
equipementlibre: await TextEditor.enrichHTML(this.object.system.equipmentfree, { async: true }),
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, { async: true }),
|
||||
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.notes, { async: true }),
|
||||
equipementlibre: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.equipmentfree, { async: true }),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@@ -63,7 +63,7 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
}
|
||||
this.formData = formData;
|
||||
|
||||
console.log("PC : ", formData, this.object);
|
||||
//console.log("PC : ", formData, this.object);
|
||||
return formData;
|
||||
}
|
||||
|
||||
@@ -90,6 +90,9 @@ export class EcrymeActorSheet extends ActorSheet {
|
||||
html.find('.item-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item")
|
||||
let itemId = li.data("item-id")
|
||||
if (!itemId) {
|
||||
itemId = $(ev.currentTarget).data("item-id")
|
||||
}
|
||||
const item = this.actor.items.get( itemId );
|
||||
item.sheet.render(true);
|
||||
});
|
||||
|
||||
@@ -29,7 +29,7 @@ export class EcrymeActor extends Actor {
|
||||
if (data instanceof Array) {
|
||||
return super.create(data, options);
|
||||
}
|
||||
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
|
||||
// If the created actor has items (only applicable to foundry.utils.duplicated actors) bypass the new actor creation logic
|
||||
if (data.items) {
|
||||
let actor = super.create(data, options);
|
||||
return actor;
|
||||
@@ -73,7 +73,7 @@ export class EcrymeActor extends Actor {
|
||||
return comp;
|
||||
}
|
||||
getArchetype() {
|
||||
let comp = duplicate(this.items.find(item => item.type == 'archetype') || { name: "Pas d'archetype" })
|
||||
let comp = foundry.utils.duplicate(this.items.find(item => item.type == 'archetype') || { name: "Pas d'archetype" })
|
||||
if (comp?.system) {
|
||||
comp.tarot = EcrymeUtility.getTarot(comp.system.lametutelaire)
|
||||
}
|
||||
@@ -92,7 +92,7 @@ export class EcrymeActor extends Actor {
|
||||
}
|
||||
/* ----------------------- --------------------- */
|
||||
addAnnencyActor(actorId) {
|
||||
let members = duplicate(this.system.base.characters)
|
||||
let members = foundry.utils.duplicate(this.system.base.characters)
|
||||
members.push(actorId)
|
||||
this.update({ 'system.base.characters': members })
|
||||
}
|
||||
@@ -103,7 +103,8 @@ export class EcrymeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getAnnency() {
|
||||
return game.actors.find(a => a.type == 'annency' && a.system.base.characters.includes(this.id))
|
||||
let annency = game.actors.find(a => a.type == 'annency' && a.system.base.characters.includes(this.id))
|
||||
return annency || {}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getConfrontations() {
|
||||
@@ -135,7 +136,7 @@ export class EcrymeActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
prepareSkills() {
|
||||
let skills = duplicate(this.system.skills)
|
||||
let skills = foundry.utils.duplicate(this.system.skills)
|
||||
for (let categKey in skills) {
|
||||
let category = skills[categKey]
|
||||
for (let skillKey in category.skilllist) {
|
||||
@@ -147,22 +148,22 @@ export class EcrymeActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCephalySkills() {
|
||||
let skills = duplicate(this.system.cephaly.skilllist)
|
||||
let skills = foundry.utils.duplicate(this.system.cephaly.skilllist)
|
||||
return skills
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getImpacts() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'impact') || [])
|
||||
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'impact') || [])
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getWeapons() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || [])
|
||||
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'weapon') || [])
|
||||
EcrymeUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
getManeuvers() {
|
||||
let comp = duplicate(this.items.filter(item => item.type == 'maneuver') || [])
|
||||
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'maneuver') || [])
|
||||
EcrymeUtility.sortArrayObjectsByName(comp)
|
||||
return comp;
|
||||
}
|
||||
@@ -170,7 +171,7 @@ export class EcrymeActor extends Actor {
|
||||
getItemById(id) {
|
||||
let item = this.items.find(item => item.id == id);
|
||||
if (item) {
|
||||
item = duplicate(item)
|
||||
item = foundry.utils.duplicate(item)
|
||||
}
|
||||
return item;
|
||||
}
|
||||
@@ -205,7 +206,7 @@ export class EcrymeActor extends Actor {
|
||||
|
||||
/* ------------------------------------------- */
|
||||
async buildContainerTree() {
|
||||
let equipments = duplicate(this.items.filter(item => item.type == "equipment") || [])
|
||||
let equipments = foundry.utils.duplicate(this.items.filter(item => item.type == "equipment") || [])
|
||||
for (let equip1 of equipments) {
|
||||
if (equip1.system.iscontainer) {
|
||||
equip1.system.contents = []
|
||||
@@ -300,13 +301,13 @@ export class EcrymeActor extends Actor {
|
||||
getSubActors() {
|
||||
let subActors = [];
|
||||
for (let id of this.system.subactors) {
|
||||
subActors.push(duplicate(game.actors.get(id)))
|
||||
subActors.push(foundry.utils.duplicate(game.actors.get(id)))
|
||||
}
|
||||
return subActors;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async addSubActor(subActorId) {
|
||||
let subActors = duplicate(this.system.subactors);
|
||||
let subActors = foundry.utils.duplicate(this.system.subactors);
|
||||
subActors.push(subActorId);
|
||||
await this.update({ 'system.subactors': subActors });
|
||||
}
|
||||
@@ -377,9 +378,10 @@ export class EcrymeActor extends Actor {
|
||||
rollData.actorId = this.id
|
||||
rollData.img = this.img
|
||||
rollData.isReroll = false
|
||||
rollData.traits = duplicate(this.getRollTraits())
|
||||
rollData.spleen = duplicate(this.getSpleen() || {})
|
||||
rollData.ideal = duplicate(this.getIdeal() || {})
|
||||
rollData.config = game.system.ecryme.config
|
||||
rollData.traits = foundry.utils.duplicate(this.getRollTraits())
|
||||
rollData.spleen = foundry.utils.duplicate(this.getSpleen() || {})
|
||||
rollData.ideal = foundry.utils.duplicate(this.getIdeal() || {})
|
||||
rollData.confrontBonus = this.getBonusList()
|
||||
|
||||
return rollData
|
||||
@@ -387,14 +389,30 @@ export class EcrymeActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonSkill(categKey, skillKey) {
|
||||
let skill = this.system.skills[categKey].skilllist[skillKey]
|
||||
let rollData = this.getCommonRollData()
|
||||
|
||||
skill = duplicate(skill)
|
||||
// Specific NPC case
|
||||
let skill
|
||||
if (skillKey == "rawnpc") {
|
||||
skill = {
|
||||
name: "ECRY.ui." + categKey,
|
||||
max: 10,
|
||||
value: this.system.skills[categKey].pnjvalue,
|
||||
spec: []
|
||||
}
|
||||
} else {
|
||||
skill = this.system.skills[categKey].skilllist[skillKey]
|
||||
skill = foundry.utils.duplicate(skill)
|
||||
skill.spec = this.getSpecializations(skillKey)
|
||||
}
|
||||
|
||||
rollData.skillLevelOptions = [];
|
||||
for (let i=0; i<=skill.value; i++) {
|
||||
rollData.skillLevelOptions[i] = `${i}`
|
||||
}
|
||||
|
||||
skill.categKey = categKey
|
||||
skill.skillKey = skillKey
|
||||
skill.spec = this.getSpecializations(skillKey)
|
||||
|
||||
rollData.skill = skill
|
||||
rollData.img = skill.img
|
||||
rollData.impactMalus = this.getImpactMalus(categKey)
|
||||
@@ -416,7 +434,7 @@ export class EcrymeActor extends Actor {
|
||||
let spec = this.items.find(it => it.type == "specialization" && it.id == specId)
|
||||
rollData.mode = "skill"
|
||||
rollData.selectedSpecs = [spec.id]
|
||||
rollData.forcedSpec = duplicate(spec)
|
||||
rollData.forcedSpec = foundry.utils.duplicate(spec)
|
||||
rollData.title = game.i18n.localize(rollData.skill.name)
|
||||
this.startRoll(rollData).catch("Error on startRoll")
|
||||
}
|
||||
@@ -429,8 +447,9 @@ export class EcrymeActor extends Actor {
|
||||
rollData.executionTotal = rollData.skill.value
|
||||
rollData.preservationTotal = rollData.skill.value
|
||||
rollData.applyTranscendence = "execution"
|
||||
rollData.traitsBonus = duplicate(rollData.traits)
|
||||
rollData.traitsMalus = duplicate(rollData.traits)
|
||||
rollData.traitsBonus = foundry.utils.duplicate(rollData.traits)
|
||||
rollData.traitsMalus = foundry.utils.duplicate(rollData.traits)
|
||||
console.log("ROLLDATA", rollData)
|
||||
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
|
||||
confrontStartDialog.render(true)
|
||||
}
|
||||
@@ -438,17 +457,16 @@ export class EcrymeActor extends Actor {
|
||||
async rollCephalySkillConfront(skillKey) {
|
||||
let rollData = this.getCommonRollData()
|
||||
rollData.mode = "cephaly"
|
||||
rollData.skill = duplicate(this.system.cephaly.skilllist[skillKey])
|
||||
rollData.annency = duplicate(this.getAnnency())
|
||||
rollData.skill = foundry.utils.duplicate(this.system.cephaly.skilllist[skillKey])
|
||||
rollData.annency = foundry.utils.duplicate(this.getAnnency())
|
||||
rollData.img = rollData.skill.img
|
||||
rollData.skill.categKey = "cephaly"
|
||||
rollData.skill.skillKey = skillKey
|
||||
//rollData.impactMalus = this.getImpactMalus(categKey)
|
||||
rollData.title = game.i18n.localize("ECRY.ui.cephaly") + " : " + game.i18n.localize(rollData.skill.name)
|
||||
rollData.executionTotal = rollData.skill.value
|
||||
rollData.preservationTotal = rollData.skill.value
|
||||
rollData.traitsBonus = duplicate(rollData.traits)
|
||||
rollData.traitsMalus = duplicate(rollData.traits)
|
||||
rollData.traitsBonus = foundry.utils.duplicate(rollData.traits)
|
||||
rollData.traitsMalus = foundry.utils.duplicate(rollData.traits)
|
||||
rollData.applyTranscendence = "execution"
|
||||
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
|
||||
confrontStartDialog.render(true)
|
||||
@@ -464,12 +482,12 @@ export class EcrymeActor extends Actor {
|
||||
rollData = this.getCommonSkill("physical", "shooting")
|
||||
}
|
||||
rollData.mode = "weapon"
|
||||
rollData.weapon = duplicate(weapon)
|
||||
rollData.weapon = foundry.utils.duplicate(weapon)
|
||||
rollData.title = game.i18n.localize("ECRY.ui.confrontation") + " : " + game.i18n.localize(rollData.skill.name)
|
||||
rollData.executionTotal = rollData.skill.value
|
||||
rollData.preservationTotal = rollData.skill.value
|
||||
rollData.traitsBonus = duplicate(rollData.traits)
|
||||
rollData.traitsMalus = duplicate(rollData.traits)
|
||||
rollData.traitsBonus = foundry.utils.duplicate(rollData.traits)
|
||||
rollData.traitsMalus = foundry.utils.duplicate(rollData.traits)
|
||||
rollData.applyTranscendence = "execution"
|
||||
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
|
||||
confrontStartDialog.render(true)
|
||||
@@ -479,12 +497,12 @@ export class EcrymeActor extends Actor {
|
||||
rollWeapon(weaponId) {
|
||||
let weapon = this.items.get(weaponId)
|
||||
if (weapon) {
|
||||
weapon = duplicate(weapon)
|
||||
weapon = foundry.utils.duplicate(weapon)
|
||||
let rollData = this.getCommonRollData()
|
||||
if (weapon.system.armetype == "mainsnues" || weapon.system.armetype == "epee") {
|
||||
rollData.attr = { label: "(Physique+Habilité)/2", value: Math.floor((this.getPhysiqueMalus() + this.system.attributs.physique.value + this.system.attributs.habilite.value) / 2) }
|
||||
} else {
|
||||
rollData.attr = duplicate(this.system.attributs.habilite)
|
||||
rollData.attr = foundry.utils.duplicate(this.system.attributs.habilite)
|
||||
}
|
||||
rollData.mode = "weapon"
|
||||
rollData.weapon = weapon
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
import { EcrymeUtility } from "../common/ecryme-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class EcrymeAnnencySheet extends ActorSheet {
|
||||
export class EcrymeAnnencySheet extends foundry.appv1.sheets.ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-ecryme", "sheet", "actor"],
|
||||
template: "systems/fvtt-ecryme/templates/actors/annency-sheet.hbs",
|
||||
width: 640,
|
||||
@@ -33,9 +33,9 @@ export class EcrymeAnnencySheet extends ActorSheet {
|
||||
name: this.actor.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: duplicate(this.object.system),
|
||||
system: foundry.utils.duplicate(this.object.system),
|
||||
limited: this.object.limited,
|
||||
config: duplicate(game.system.ecryme.config),
|
||||
config: foundry.utils.duplicate(game.system.ecryme.config),
|
||||
hasCephaly: EcrymeUtility.hasCephaly(),
|
||||
hasBoheme: EcrymeUtility.hasBoheme(),
|
||||
hasAmertume: EcrymeUtility.hasAmertume(),
|
||||
|
||||
@@ -43,7 +43,7 @@ export class EcrymeCharacterSummary extends Application {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
template: "systems/fvtt-ecryme/templates/dialogs/character-summary.hbs",
|
||||
popOut: true,
|
||||
resizable: true,
|
||||
|
||||
@@ -10,14 +10,14 @@ export const ECRYME_CONFIG = {
|
||||
"melee": "ECRY.ui.melee",
|
||||
"ranged": "ECRY.ui.ranged"
|
||||
},
|
||||
traitLevel: [
|
||||
{value: -3, text: "-3"},
|
||||
{value: -2, text: "-2"},
|
||||
{value: -1, text: "-1"},
|
||||
{value: +1, text: "+1"},
|
||||
{value: +2, text: "+2"},
|
||||
{value: +3, text: "+3"}
|
||||
],
|
||||
traitLevel: {
|
||||
"-3":{value: "-3", text: "-3"},
|
||||
"-2":{value: "-2", text: "-2"},
|
||||
"-1":{value: "-1", text: "-1"},
|
||||
"+1":{value: "+1", text: "+1"},
|
||||
"+2":{value: "+2", text: "+2"},
|
||||
"+3":{value: "+3", text: "+3"}
|
||||
},
|
||||
impactTypes: {
|
||||
physical: "ECRY.ui.physical",
|
||||
mental: "ECRY.ui.mental",
|
||||
@@ -30,7 +30,7 @@ export const ECRYME_CONFIG = {
|
||||
major: "ECRY.ui.major"
|
||||
},
|
||||
difficulty: {
|
||||
"-1": {difficulty: "ECRY.ui.none", frequency: "ECRY.ui.none", value: "-"},
|
||||
"-1": {difficulty: "ECRY.ui.none", frequency: "ECRY.ui.none", value: "-1"},
|
||||
"8": { difficulty: "ECRY.ui.troublesome", frequency: "ECRY.ui.occasional", value: 8 },
|
||||
"10": { difficulty: "ECRY.ui.difficult", frequency: "ECRY.ui.uncommon", value: 10 },
|
||||
"12": { difficulty: "ECRY.ui.verydifficult", frequency: "ECRY.ui.rare", value: 12 },
|
||||
@@ -57,6 +57,19 @@ export const ECRYME_CONFIG = {
|
||||
"lige": {name: "ECRY.ui.lige", value: 100 },
|
||||
"hurle": {name: "ECRY.ui.hurle", value: 10 },
|
||||
"coin": {name: "ECRY.ui.coin", value: 1 }
|
||||
},
|
||||
transcendanceOptions: {
|
||||
"execution": "ECRY.ui.execution",
|
||||
"preservation": "ECRY.ui.preservation"
|
||||
},
|
||||
bonusMalusPersoOptions: {
|
||||
"-3": {value: "-3", label: "-3"},
|
||||
"-2": {value: "-2", label: "-2"},
|
||||
"-1": {value: "-1", label: "-1"},
|
||||
"0": {value: "0", label: "0"},
|
||||
"+1": {value: "1", label: "+1"},
|
||||
"+2": {value: "2", label: "+2"},
|
||||
"+3": {value: "3", label: "+3"}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -36,7 +36,7 @@ export class EcrymeUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async init() {
|
||||
Hooks.on('renderChatLog', (log, html, data) => EcrymeUtility.chatListeners(html));
|
||||
Hooks.on("getChatLogEntryContext", (html, options) => EcrymeUtility.chatMenuManager(html, options));
|
||||
Hooks.on("getChatMessageContextOptions", (html, options) => EcrymeUtility.chatMenuManager(html, options));
|
||||
|
||||
this.rollDataStore = {}
|
||||
this.defenderStore = {}
|
||||
@@ -97,6 +97,7 @@ export class EcrymeUtility {
|
||||
"level_b": game.i18n.localize("ECRY.settings.boheme"),
|
||||
"level_a": game.i18n.localize("ECRY.settings.amertume"),
|
||||
},
|
||||
default: "level_a",
|
||||
restricted: true
|
||||
})
|
||||
|
||||
@@ -126,7 +127,7 @@ export class EcrymeUtility {
|
||||
for (let categKey in game.data.template.Actor.templates.core.skills) {
|
||||
let category = game.data.template.Actor.templates.core.skills[categKey]
|
||||
for (let skillKey in category.skilllist) {
|
||||
let skill = duplicate(category.skilllist[skillKey])
|
||||
let skill = foundry.utils.duplicate(category.skilllist[skillKey])
|
||||
skill.categKey = categKey // Auto reference the category
|
||||
game.system.ecryme.config.skills[skillKey] = skill
|
||||
}
|
||||
@@ -154,8 +155,8 @@ export class EcrymeUtility {
|
||||
/* -------------------------------------------- */
|
||||
static getActorFromRollData(rollData) {
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
if (rollData.tokenId) {
|
||||
let token = canvas.tokens.placeables.find(t => t.id == rollData.tokenId)
|
||||
if (rollData.defenderTokenId) {
|
||||
let token = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
|
||||
if (token) {
|
||||
actor = token.actor
|
||||
}
|
||||
@@ -215,7 +216,7 @@ export class EcrymeUtility {
|
||||
confront.impactPreservation = this.getImpactFromEffect(Math.abs(confront.effectPreservation))
|
||||
}
|
||||
if (confront.marginPreservation > 0) {
|
||||
confront.bonus1 = -confront.marginPreservation
|
||||
confront.bonus1 = confront.marginPreservation
|
||||
}
|
||||
|
||||
let msg = await this.createChatWithRollMode(this.confrontData1.alias, {
|
||||
@@ -272,20 +273,17 @@ export class EcrymeUtility {
|
||||
let canTranscendRoll = []
|
||||
for (let i = 1; i <= 10; i++) {
|
||||
canTranscendRoll[i] = function (li) {
|
||||
let message = game.messages.get(li.attr("data-message-id"))
|
||||
let message = game.messages.get($(li).attr("data-message-id"))
|
||||
let rollData = message.getFlag("world", "rolldata")
|
||||
//console.log(">>>>>>>>>>>>>>>>>>>>>>>>>> Menu !!!!", rollData)
|
||||
if (rollData.skill && i <= rollData.skill.value && !rollData.transcendUsed && rollData.spec) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
return (rollData?.skill?.value >= i && !rollData.transcendUsed && rollData.spec)
|
||||
}
|
||||
options.push({
|
||||
name: game.i18n.localize("ECRY.chat.spectranscend") + i,
|
||||
icon: '<i class="fas fa-plus-square"></i>',
|
||||
condition: canTranscendRoll[i],
|
||||
callback: li => {
|
||||
let message = game.messages.get(li.attr("data-message-id"))
|
||||
let message = game.messages.get($(li).attr("data-message-id"))
|
||||
let rollData = message.getFlag("world", "rolldata")
|
||||
EcrymeUtility.transcendFromSpec(rollData, i).catch("Error on Transcend")
|
||||
}
|
||||
@@ -296,27 +294,35 @@ export class EcrymeUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async chatListeners(html) {
|
||||
|
||||
html.on("click", '.button-select-confront', event => {
|
||||
$(html).on("click", '.button-select-confront', event => {
|
||||
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "ecryme-rolldata")
|
||||
ui.notifications.info(game.i18n.localize("ECRY.chat.confrontselect"))
|
||||
EcrymeUtility.manageConfrontation(rollData)
|
||||
})
|
||||
html.on("click", '.button-apply-cephaly-difficulty', event => {
|
||||
$(html).on("click", '.button-apply-cephaly-difficulty', event => {
|
||||
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "ecryme-rolldata")
|
||||
let difficulty = $("#" + rollData.rollId + "-cephaly-difficulty").val()
|
||||
EcrymeUtility.manageCephalyDifficulty(rollData, difficulty)
|
||||
})
|
||||
html.on("click", '.button-apply-impact', event => {
|
||||
$(html).on("click", '.button-apply-impact', event => {
|
||||
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
|
||||
let tokenId = $(event.currentTarget).data("token-id")
|
||||
let actor
|
||||
if (!tokenId) {
|
||||
actorId = $(event.currentTarget).data("actor-id")
|
||||
actor = game.actors.get(actorId)
|
||||
} else {
|
||||
let token = canvas.tokens.placeables.find(t => t.id == tokenId)
|
||||
actor = token?.actor
|
||||
}
|
||||
actor.modifyImpact($(event.currentTarget).data("impact-type"), $(event.currentTarget).data("impact"), 1)
|
||||
})
|
||||
html.on("click", '.button-apply-bonus', event => {
|
||||
$(html).on("click", '.button-apply-bonus', event => {
|
||||
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
|
||||
@@ -338,7 +344,7 @@ export class EcrymeUtility {
|
||||
'systems/fvtt-ecryme/templates/dialogs/partial-confront-bonus-area.hbs',
|
||||
'systems/fvtt-ecryme/templates/actors/partial-impacts.hbs',
|
||||
]
|
||||
return loadTemplates(templatePaths);
|
||||
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -404,7 +410,7 @@ export class EcrymeUtility {
|
||||
|
||||
let id = rollData.rollId
|
||||
let oldRollData = this.rollDataStore[id] || {}
|
||||
let newRollData = mergeObject(oldRollData, rollData)
|
||||
let newRollData = foundry.utils.mergeObject(oldRollData, rollData)
|
||||
this.rollDataStore[id] = newRollData
|
||||
}
|
||||
|
||||
@@ -531,7 +537,7 @@ export class EcrymeUtility {
|
||||
let trait = actor.getTrait(id)
|
||||
console.log(trait, id)
|
||||
rollData.traitsBonusList.push(trait)
|
||||
rollData.bonusMalusTraits += trait.system.level
|
||||
rollData.bonusMalusTraits += Math.abs(trait.system.level)
|
||||
}
|
||||
}
|
||||
if (rollData.traitsMalus && rollData.traitsMalus.length > 0) {
|
||||
@@ -539,7 +545,7 @@ export class EcrymeUtility {
|
||||
for (let id of rollData.traitsMalus) {
|
||||
let trait = actor.getTrait(id)
|
||||
rollData.traitsMalusList.push(trait)
|
||||
rollData.bonusMalusTraits -= trait.system.level
|
||||
rollData.bonusMalusTraits -= Math.abs(trait.system.level)
|
||||
}
|
||||
}
|
||||
diceFormula += "+" + rollData.bonusMalusTraits
|
||||
@@ -557,7 +563,7 @@ export class EcrymeUtility {
|
||||
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
// Fix difficulty
|
||||
if (!rollData.difficulty || rollData.difficulty == "-") {
|
||||
if (!rollData.difficulty || rollData.difficulty == "-1") {
|
||||
rollData.difficulty = 0
|
||||
}
|
||||
rollData.difficulty = Number(rollData.difficulty)
|
||||
@@ -565,16 +571,16 @@ export class EcrymeUtility {
|
||||
let diceFormula = this.computeRollFormula(rollData, actor)
|
||||
|
||||
// Performs roll
|
||||
let myRoll = new Roll(diceFormula).roll({ async: false })
|
||||
let myRoll = await new Roll(diceFormula).roll()
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.roll = duplicate(myRoll)
|
||||
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||
rollData.total = myRoll.total
|
||||
rollData.diceSum = myRoll.terms[0].total
|
||||
|
||||
this.computeResults(rollData)
|
||||
|
||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-generic-result.hbs`, rollData)
|
||||
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-generic-result.hbs`, rollData)
|
||||
})
|
||||
await msg.setFlag("world", "ecryme-rolldata", rollData)
|
||||
console.log("Rolldata result", rollData)
|
||||
@@ -682,20 +688,20 @@ export class EcrymeUtility {
|
||||
/* -------------------------------------------- */
|
||||
static getBasicRollData() {
|
||||
let rollData = {
|
||||
rollId: randomID(16),
|
||||
rollId: foundry.utils.randomID(16),
|
||||
type: "roll-data",
|
||||
bonusMalusPerso: 0,
|
||||
bonusMalusPerso: "0",
|
||||
bonusMalusSituation: 0,
|
||||
bonusMalusDef: 0,
|
||||
annencyBonus: 0,
|
||||
bonusMalusPortee: 0,
|
||||
skillTranscendence: 0,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
difficulty: "-",
|
||||
difficulty: "-1",
|
||||
useSpleen: false,
|
||||
useIdeal: false,
|
||||
impactMalus: 0,
|
||||
config: duplicate(game.system.ecryme.config)
|
||||
config: foundry.utils.duplicate(game.system.ecryme.config)
|
||||
}
|
||||
EcrymeUtility.updateWithTarget(rollData)
|
||||
return rollData
|
||||
@@ -717,11 +723,11 @@ export class EcrymeUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async confirmDelete(actorSheet, li) {
|
||||
let itemId = li.data("item-id");
|
||||
let msgTxt = "<p>Are you sure to remove this Item ?";
|
||||
let msgTxt = "<p>Etes vous certain de souhaiter envoyer cet item dans les limbes ?";
|
||||
let buttons = {
|
||||
delete: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Yes, remove it",
|
||||
label: "Oui, retirez-le",
|
||||
callback: () => {
|
||||
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
|
||||
li.slideUp(200, () => actorSheet.render(false));
|
||||
@@ -729,7 +735,7 @@ export class EcrymeUtility {
|
||||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: "Cancel"
|
||||
label: "Annuler"
|
||||
}
|
||||
}
|
||||
msgTxt += "</p>";
|
||||
|
||||
@@ -6,13 +6,13 @@ export class EcrymeConfrontDialog extends Dialog {
|
||||
/* -------------------------------------------- */
|
||||
static async create(actor, rollData) {
|
||||
|
||||
let options = mergeObject(super.defaultOptions, {
|
||||
let options = foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-ecryme ecryme-confrontation-dialog"],
|
||||
dragDrop: [{ dragSelector: ".confront-dice-container", dropSelector: null }],
|
||||
width: 620, height: 'fit-content', 'z-index': 99999
|
||||
});
|
||||
|
||||
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-dialog.hbs', rollData);
|
||||
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-dialog.hbs', rollData);
|
||||
return new EcrymeConfrontDialog(actor, rollData, html, options);
|
||||
}
|
||||
|
||||
@@ -163,9 +163,9 @@ export class EcrymeConfrontDialog extends Dialog {
|
||||
// Apply Transcend if needed
|
||||
if (this.rollData.skillTranscendence > 0) {
|
||||
if (this.rollData.applyTranscendence == "execution") {
|
||||
this.rollData.executionTotal += this.rollData.skillTranscendence
|
||||
this.rollData.executionTotal += Number(this.rollData.skillTranscendence)
|
||||
} else {
|
||||
this.rollData.preservationTotal += this.rollData.skillTranscendence
|
||||
this.rollData.preservationTotal += Number(this.rollData.skillTranscendence)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -192,7 +192,7 @@ export class EcrymeConfrontDialog extends Dialog {
|
||||
this.processTranscendence()
|
||||
|
||||
if (rollData.selectedSpecs && rollData.selectedSpecs.length > 0) {
|
||||
rollData.spec = duplicate(actor.getSpecialization(rollData.selectedSpecs[0]))
|
||||
rollData.spec = foundry.utils.duplicate(actor.getSpecialization(rollData.selectedSpecs[0]))
|
||||
rollData.specApplied = true
|
||||
rollData.executionTotal += 2
|
||||
rollData.preservationTotal += 2
|
||||
@@ -212,19 +212,19 @@ export class EcrymeConfrontDialog extends Dialog {
|
||||
for (let id of rollData.traitsBonusSelected) {
|
||||
let trait = rollData.traitsBonus.find(t => t._id == id)
|
||||
trait.activated = true
|
||||
rollData.bonusMalusTraits += trait.system.level
|
||||
rollData.bonusMalusTraits += Number(trait.system.level)
|
||||
}
|
||||
}
|
||||
if (rollData.traitsMalusSelected && rollData.traitsMalusSelected.length > 0) {
|
||||
for (let id of rollData.traitsMalusSelected) {
|
||||
let trait = rollData.traitsMalus.find(t => t._id == id)
|
||||
trait.activated = true
|
||||
rollData.bonusMalusTraits -= trait.system.level
|
||||
rollData.bonusMalusTraits -= Number(trait.system.level)
|
||||
}
|
||||
}
|
||||
|
||||
rollData.executionTotal += rollData.bonusMalusTraits + rollData.bonusMalusPerso
|
||||
rollData.preservationTotal += rollData.bonusMalusTraits + rollData.bonusMalusPerso
|
||||
rollData.executionTotal += Number(rollData.bonusMalusTraits) + Number(rollData.bonusMalusPerso)
|
||||
rollData.preservationTotal += Number(rollData.bonusMalusTraits) + Number(rollData.bonusMalusPerso)
|
||||
|
||||
this.refreshDialog()
|
||||
}
|
||||
@@ -234,7 +234,7 @@ export class EcrymeConfrontDialog extends Dialog {
|
||||
super.activateListeners(html);
|
||||
|
||||
html.find('#bonusMalusPerso').change((event) => {
|
||||
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
||||
this.rollData.bonusMalusPerso = event.currentTarget.value
|
||||
this.computeTotals()
|
||||
})
|
||||
html.find('#roll-specialization').change((event) => {
|
||||
|
||||
@@ -5,9 +5,12 @@ export class EcrymeConfrontStartDialog extends Dialog {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async create(actor, rollData) {
|
||||
if (!actor) throw new Error("Ecryme | No actor provided for confront dialog");
|
||||
if (!rollData) throw new Error("Ecryme | No roll data provided for confront dialog");
|
||||
|
||||
if (actor?.token) rollData.tokenId = actor.token.id;
|
||||
let options = { classes: ["fvtt-ecryme ecryme-confront-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
||||
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-start-dialog.hbs', rollData);
|
||||
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-start-dialog.hbs', rollData);
|
||||
return new EcrymeConfrontStartDialog(actor, rollData, html, options);
|
||||
}
|
||||
|
||||
@@ -43,22 +46,22 @@ export class EcrymeConfrontStartDialog extends Dialog {
|
||||
|
||||
super(conf, options);
|
||||
|
||||
this.actor = actor;
|
||||
this.actor = actor?.token?.actor || actor;
|
||||
this.rollData = rollData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollConfront(diceFormula) {
|
||||
// Do the initial roll
|
||||
let myRoll = new Roll(diceFormula).roll({async: false})
|
||||
let myRoll = await new Roll(diceFormula).roll()
|
||||
await EcrymeUtility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
// Fill the available dice table
|
||||
let rollData = this.rollData
|
||||
rollData.roll = duplicate(myRoll)
|
||||
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||
rollData.availableDices = []
|
||||
for (let result of myRoll.terms[0].results) {
|
||||
if (!result.discarded) {
|
||||
let resultDup = duplicate(result)
|
||||
let resultDup = foundry.utils.duplicate(result)
|
||||
resultDup.location = "mainpool"
|
||||
rollData.availableDices.push(resultDup)
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ export class EcrymeRollDialog extends Dialog {
|
||||
static async create(actor, rollData) {
|
||||
|
||||
let options = { classes: ["ecryme-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
|
||||
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
||||
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/roll-dialog-generic.hbs', rollData);
|
||||
return new EcrymeRollDialog(actor, rollData, html, options);
|
||||
}
|
||||
|
||||
@@ -52,12 +52,12 @@ export class EcrymeRollDialog extends Dialog {
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
var dialog = this;
|
||||
function onLoad() {
|
||||
}
|
||||
$(function () { onLoad(); });
|
||||
|
||||
html.find('#bonusMalusPerso').change((event) => {
|
||||
console.log("DIFF", event.currentTarget.value)
|
||||
this.rollData.bonusMalusPerso = Number(event.currentTarget.value)
|
||||
})
|
||||
html.find('#roll-difficulty').change((event) => {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const ECRYME_WELCOME_MESSAGE_URL = "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/welcome-message-ecryme.html"
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Import Modules
|
||||
@@ -57,28 +58,40 @@ Hooks.once("init", async function () {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register sheet application classes
|
||||
Actors.unregisterSheet("core", ActorSheet);
|
||||
Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["pc"], makeDefault: true });
|
||||
Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["npc"], makeDefault: true });
|
||||
Actors.registerSheet("fvtt-ecryme", EcrymeAnnencySheet, { types: ["annency"], makeDefault: false });
|
||||
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["pc"], makeDefault: true });
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["npc"], makeDefault: true });
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeAnnencySheet, { types: ["annency"], makeDefault: false });
|
||||
|
||||
Items.unregisterSheet("core", ItemSheet);
|
||||
Items.registerSheet("fvtt-ecryme", EcrymeItemSheet, { makeDefault: true });
|
||||
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-ecryme", EcrymeItemSheet, { makeDefault: true });
|
||||
|
||||
EcrymeUtility.init()
|
||||
|
||||
Babele.get().setSystemTranslationsDir("translated")
|
||||
|
||||
});
|
||||
|
||||
/* -------------------------------------------- */
|
||||
function welcomeMessage() {
|
||||
if (game.user.isGM) {
|
||||
// Try to fetch the welcome message from the github repo "welcome-message-ecryme.html"
|
||||
fetch(ECRYME_WELCOME_MESSAGE_URL)
|
||||
.then(response => response.text())
|
||||
.then(html => {
|
||||
console.log("Fetched welcome message:", html);
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
whisper: [game.user.id],
|
||||
content: `<div id="welcome-message-ecryme"><span class="rdd-roll-part">
|
||||
<strong>Bienvenu dans Ecryme !</strong>` });
|
||||
content: html
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Error fetching welcome message:", error);
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
whisper: [game.user.id],
|
||||
content: "<b>Bienvenue dans Ecryme RPG !</b><br>Visitez le site officiel pour plus d'informations."
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +104,7 @@ async function importDefaultScene() {
|
||||
await game.scenes.documentClass.create(newDocuments);
|
||||
game.scenes.find(i => i.name == "Landing page 1").activate();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -119,6 +133,9 @@ Hooks.once("ready", function () {
|
||||
EcrymeCharacterSummary.ready();
|
||||
importDefaultScene();
|
||||
|
||||
// Load translations
|
||||
Babele.get().setSystemTranslationsDir("translated")
|
||||
|
||||
})
|
||||
|
||||
|
||||
@@ -135,4 +152,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ import { EcrymeUtility } from "../common/ecryme-utility.js";
|
||||
* Extend the basic ItemSheet with some very simple modifications
|
||||
* @extends {ItemSheet}
|
||||
*/
|
||||
export class EcrymeItemSheet extends ItemSheet {
|
||||
export class EcrymeItemSheet extends foundry.appv1.sheets.ItemSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-ecryme", "sheet", "item"],
|
||||
template: "systems/fvtt-ecryme/templates/item-sheet.hbs",
|
||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||
@@ -56,13 +56,13 @@ export class EcrymeItemSheet extends ItemSheet {
|
||||
name: this.object.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
system: duplicate(this.object.system),
|
||||
config: duplicate(game.system.ecryme.config),
|
||||
system: foundry.utils.duplicate(this.object.system),
|
||||
config: foundry.utils.duplicate(game.system.ecryme.config),
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
|
||||
notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }),
|
||||
isGM: game.user.isGM
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ export class EcrymeItemSheet extends ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
postItem() {
|
||||
let chatData = duplicate(this.item)
|
||||
let chatData = foundry.utils.duplicate(this.item)
|
||||
if (this.actor) {
|
||||
chatData.actor = { id: this.actor.id };
|
||||
}
|
||||
|
||||
BIN
packs/equipment/000192.ldb
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000122
|
||||
MANIFEST-000241
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-12:08:26.246276 7fee396006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.262508 7fee396006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.262560 7fee396006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.404439 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.404513 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.412072 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.418373 7fee33e006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:30:30.745305 7f7b753f96c0 Recovering log #239
|
||||
2025/10/17-15:30:30.799430 7f7b753f96c0 Delete type=3 #237
|
||||
2025/10/17-15:30:30.799501 7f7b753f96c0 Delete type=0 #239
|
||||
2025/10/17-15:38:10.264480 7f7b6f3ff6c0 Level-0 table #244: started
|
||||
2025/10/17-15:38:10.264510 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
|
||||
2025/10/17-15:38:10.271838 7f7b6f3ff6c0 Delete type=0 #242
|
||||
2025/10/17-15:38:10.286239 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-11:36:32.744581 7fee3b4006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.754905 7fee3b4006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.754960 7fee3b4006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.094830 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.094864 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.102032 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.119287 7fee33e006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:00:21.595853 7f7b75bfa6c0 Recovering log #235
|
||||
2025/10/17-15:00:21.649813 7f7b75bfa6c0 Delete type=3 #233
|
||||
2025/10/17-15:00:21.649870 7f7b75bfa6c0 Delete type=0 #235
|
||||
2025/10/17-15:19:41.013969 7f7b6f3ff6c0 Level-0 table #240: started
|
||||
2025/10/17-15:19:41.014009 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
|
||||
2025/10/17-15:19:41.021013 7f7b6f3ff6c0 Delete type=0 #238
|
||||
2025/10/17-15:19:41.041182 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
packs/equipment/MANIFEST-000241
Normal file
BIN
packs/help/000129.ldb
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000058
|
||||
MANIFEST-000178
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2024/03/15-12:08:26.306495 7fee3aa006c0 Recovering log #56
|
||||
2024/03/15-12:08:26.316618 7fee3aa006c0 Delete type=3 #54
|
||||
2024/03/15-12:08:26.316680 7fee3aa006c0 Delete type=0 #56
|
||||
2024/03/15-12:09:03.431830 7fee33e006c0 Level-0 table #61: started
|
||||
2024/03/15-12:09:03.431854 7fee33e006c0 Level-0 table #61: 0 bytes OK
|
||||
2024/03/15-12:09:03.438391 7fee33e006c0 Delete type=0 #59
|
||||
2024/03/15-12:09:03.438645 7fee33e006c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/03/15-12:09:03.438681 7fee33e006c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:30:30.971906 7f7b75bfa6c0 Recovering log #176
|
||||
2025/10/17-15:30:31.026021 7f7b75bfa6c0 Delete type=3 #174
|
||||
2025/10/17-15:30:31.026086 7f7b75bfa6c0 Delete type=0 #176
|
||||
2025/10/17-15:38:10.306636 7f7b6f3ff6c0 Level-0 table #181: started
|
||||
2025/10/17-15:38:10.306674 7f7b6f3ff6c0 Level-0 table #181: 0 bytes OK
|
||||
2025/10/17-15:38:10.313150 7f7b6f3ff6c0 Delete type=0 #179
|
||||
2025/10/17-15:38:10.313296 7f7b6f3ff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:38:10.313313 7f7b6f3ff6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2024/03/15-11:36:32.800015 7fee3aa006c0 Recovering log #52
|
||||
2024/03/15-11:36:32.809877 7fee3aa006c0 Delete type=3 #50
|
||||
2024/03/15-11:36:32.809946 7fee3aa006c0 Delete type=0 #52
|
||||
2024/03/15-11:37:15.125674 7fee33e006c0 Level-0 table #57: started
|
||||
2024/03/15-11:37:15.125696 7fee33e006c0 Level-0 table #57: 0 bytes OK
|
||||
2024/03/15-11:37:15.132809 7fee33e006c0 Delete type=0 #55
|
||||
2024/03/15-11:37:15.133076 7fee33e006c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/03/15-11:37:15.133134 7fee33e006c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:00:21.833480 7f7b74bf86c0 Recovering log #172
|
||||
2025/10/17-15:00:21.882268 7f7b74bf86c0 Delete type=3 #170
|
||||
2025/10/17-15:00:21.882323 7f7b74bf86c0 Delete type=0 #172
|
||||
2025/10/17-15:19:41.054674 7f7b6f3ff6c0 Level-0 table #177: started
|
||||
2025/10/17-15:19:41.054706 7f7b6f3ff6c0 Level-0 table #177: 0 bytes OK
|
||||
2025/10/17-15:19:41.060762 7f7b6f3ff6c0 Delete type=0 #175
|
||||
2025/10/17-15:19:41.066886 7f7b6f3ff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:19:41.066920 7f7b6f3ff6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
packs/help/MANIFEST-000178
Normal file
BIN
packs/maneuvers/000192.ldb
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000122
|
||||
MANIFEST-000241
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-12:08:26.294104 7fee396006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.304385 7fee396006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.304465 7fee396006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.425550 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.425581 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.431713 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.438625 7fee33e006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:30:30.916441 7f7b6ffff6c0 Recovering log #239
|
||||
2025/10/17-15:30:30.969161 7f7b6ffff6c0 Delete type=3 #237
|
||||
2025/10/17-15:30:30.969226 7f7b6ffff6c0 Delete type=0 #239
|
||||
2025/10/17-15:38:10.293308 7f7b6f3ff6c0 Level-0 table #244: started
|
||||
2025/10/17-15:38:10.293344 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
|
||||
2025/10/17-15:38:10.299936 7f7b6f3ff6c0 Delete type=0 #242
|
||||
2025/10/17-15:38:10.313277 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-11:36:32.787457 7fee396006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.797573 7fee396006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.797918 7fee396006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.119298 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.119321 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.125565 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.133015 7fee33e006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:00:21.772351 7f7b753f96c0 Recovering log #235
|
||||
2025/10/17-15:00:21.831028 7f7b753f96c0 Delete type=3 #233
|
||||
2025/10/17-15:00:21.831106 7f7b753f96c0 Delete type=0 #235
|
||||
2025/10/17-15:19:41.021157 7f7b6f3ff6c0 Level-0 table #240: started
|
||||
2025/10/17-15:19:41.021192 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
|
||||
2025/10/17-15:19:41.028272 7f7b6f3ff6c0 Delete type=0 #238
|
||||
2025/10/17-15:19:41.041197 7f7b6f3ff6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
packs/maneuvers/MANIFEST-000241
Normal file
BIN
packs/scenes/000090.ldb
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000006
|
||||
MANIFEST-000127
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
2024/03/15-12:08:26.281286 7fee396006c0 Recovering log #4
|
||||
2024/03/15-12:08:26.291076 7fee396006c0 Delete type=3 #2
|
||||
2024/03/15-12:08:26.291124 7fee396006c0 Delete type=0 #4
|
||||
2024/03/15-12:09:03.418395 7fee33e006c0 Level-0 table #9: started
|
||||
2024/03/15-12:09:03.418438 7fee33e006c0 Level-0 table #9: 0 bytes OK
|
||||
2024/03/15-12:09:03.425447 7fee33e006c0 Delete type=0 #7
|
||||
2024/03/15-12:09:03.438599 7fee33e006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
||||
2024/03/15-12:09:03.438664 7fee33e006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:30:30.864236 7f7b75bfa6c0 Recovering log #125
|
||||
2025/10/17-15:30:30.913603 7f7b75bfa6c0 Delete type=3 #123
|
||||
2025/10/17-15:30:30.913658 7f7b75bfa6c0 Delete type=0 #125
|
||||
2025/10/17-15:38:10.278555 7f7b6f3ff6c0 Level-0 table #130: started
|
||||
2025/10/17-15:38:10.278587 7f7b6f3ff6c0 Level-0 table #130: 0 bytes OK
|
||||
2025/10/17-15:38:10.286086 7f7b6f3ff6c0 Delete type=0 #128
|
||||
2025/10/17-15:38:10.286263 7f7b6f3ff6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:38:10.286292 7f7b6f3ff6c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
2024/03/15-11:36:32.784966 7fee396006c0 Delete type=3 #1
|
||||
2024/03/15-11:37:15.108793 7fee33e006c0 Level-0 table #5: started
|
||||
2024/03/15-11:37:15.112379 7fee33e006c0 Level-0 table #5: 1287 bytes OK
|
||||
2024/03/15-11:37:15.119185 7fee33e006c0 Delete type=0 #3
|
||||
2024/03/15-11:37:15.125663 7fee33e006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:00:21.717758 7f7b74bf86c0 Recovering log #121
|
||||
2025/10/17-15:00:21.769008 7f7b74bf86c0 Delete type=3 #119
|
||||
2025/10/17-15:00:21.769070 7f7b74bf86c0 Delete type=0 #121
|
||||
2025/10/17-15:19:41.060844 7f7b6f3ff6c0 Level-0 table #126: started
|
||||
2025/10/17-15:19:41.060869 7f7b6f3ff6c0 Level-0 table #126: 0 bytes OK
|
||||
2025/10/17-15:19:41.066791 7f7b6f3ff6c0 Delete type=0 #124
|
||||
2025/10/17-15:19:41.066893 7f7b6f3ff6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:19:41.066927 7f7b6f3ff6c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
packs/scenes/MANIFEST-000127
Normal file
BIN
packs/specialisation/000192.ldb
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000122
|
||||
MANIFEST-000241
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-12:08:26.233305 7fee3aa006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.243263 7fee3aa006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.243340 7fee3aa006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.377683 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.377713 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.383693 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.383828 7fee33e006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:30:30.682022 7f7b75bfa6c0 Recovering log #239
|
||||
2025/10/17-15:30:30.742602 7f7b75bfa6c0 Delete type=3 #237
|
||||
2025/10/17-15:30:30.742693 7f7b75bfa6c0 Delete type=0 #239
|
||||
2025/10/17-15:38:10.271948 7f7b6f3ff6c0 Level-0 table #244: started
|
||||
2025/10/17-15:38:10.271975 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
|
||||
2025/10/17-15:38:10.278425 7f7b6f3ff6c0 Delete type=0 #242
|
||||
2025/10/17-15:38:10.286252 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-11:36:32.732586 7fee3a0006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.741979 7fee3a0006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.742032 7fee3a0006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.078700 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.078734 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.085219 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.085375 7fee33e006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:00:21.537451 7f7b74bf86c0 Recovering log #235
|
||||
2025/10/17-15:00:21.591584 7f7b74bf86c0 Delete type=3 #233
|
||||
2025/10/17-15:00:21.591645 7f7b74bf86c0 Delete type=0 #235
|
||||
2025/10/17-15:19:41.028380 7f7b6f3ff6c0 Level-0 table #240: started
|
||||
2025/10/17-15:19:41.028403 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
|
||||
2025/10/17-15:19:41.034791 7f7b6f3ff6c0 Delete type=0 #238
|
||||
2025/10/17-15:19:41.041211 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
packs/specialisation/MANIFEST-000241
Normal file
BIN
packs/traits/000192.ldb
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000122
|
||||
MANIFEST-000241
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-12:08:26.264913 7fee3aa006c0 Recovering log #120
|
||||
2024/03/15-12:08:26.279081 7fee3aa006c0 Delete type=3 #118
|
||||
2024/03/15-12:08:26.279134 7fee3aa006c0 Delete type=0 #120
|
||||
2024/03/15-12:09:03.412189 7fee33e006c0 Level-0 table #125: started
|
||||
2024/03/15-12:09:03.412214 7fee33e006c0 Level-0 table #125: 0 bytes OK
|
||||
2024/03/15-12:09:03.418237 7fee33e006c0 Delete type=0 #123
|
||||
2024/03/15-12:09:03.431821 7fee33e006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:30:30.802095 7f7b6ffff6c0 Recovering log #239
|
||||
2025/10/17-15:30:30.861659 7f7b6ffff6c0 Delete type=3 #237
|
||||
2025/10/17-15:30:30.861731 7f7b6ffff6c0 Delete type=0 #239
|
||||
2025/10/17-15:38:10.258105 7f7b6f3ff6c0 Level-0 table #244: started
|
||||
2025/10/17-15:38:10.258177 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
|
||||
2025/10/17-15:38:10.264342 7f7b6f3ff6c0 Delete type=0 #242
|
||||
2025/10/17-15:38:10.286223 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2024/03/15-11:36:32.757613 7fee3a0006c0 Recovering log #116
|
||||
2024/03/15-11:36:32.768867 7fee3a0006c0 Delete type=3 #114
|
||||
2024/03/15-11:36:32.768966 7fee3a0006c0 Delete type=0 #116
|
||||
2024/03/15-11:37:15.102318 7fee33e006c0 Level-0 table #121: started
|
||||
2024/03/15-11:37:15.102363 7fee33e006c0 Level-0 table #121: 0 bytes OK
|
||||
2024/03/15-11:37:15.108565 7fee33e006c0 Delete type=0 #119
|
||||
2024/03/15-11:37:15.125646 7fee33e006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
2025/10/17-15:00:21.652305 7f7b753f96c0 Recovering log #235
|
||||
2025/10/17-15:00:21.715259 7f7b753f96c0 Delete type=3 #233
|
||||
2025/10/17-15:00:21.715340 7f7b753f96c0 Delete type=0 #235
|
||||
2025/10/17-15:19:41.034921 7f7b6f3ff6c0 Level-0 table #240: started
|
||||
2025/10/17-15:19:41.034948 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
|
||||
2025/10/17-15:19:41.041045 7f7b6f3ff6c0 Delete type=0 #238
|
||||
2025/10/17-15:19:41.041223 7f7b6f3ff6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
|
||||
BIN
packs/traits/MANIFEST-000241
Normal file
@@ -46,13 +46,29 @@
|
||||
}
|
||||
|
||||
/* Fonts */
|
||||
.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item {
|
||||
.sheet header.sheet-header h1 input,
|
||||
.window-app .window-header,
|
||||
#actors .directory-list,
|
||||
#navigation #scene-list .scene.nav-item {
|
||||
font-size: 1.0rem;
|
||||
} /* For title, sidebar character and scene */
|
||||
}
|
||||
|
||||
/* For title, sidebar character and scene */
|
||||
.sheet nav.sheet-tabs {
|
||||
font-size: 0.8rem;
|
||||
} /* For nav and title */
|
||||
.window-app input, .fvtt-ecryme .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle {
|
||||
}
|
||||
|
||||
/* For nav and title */
|
||||
.window-app input,
|
||||
.fvtt-ecryme .item-form,
|
||||
.sheet header.sheet-header .flex-group-center.flex-compteurs,
|
||||
.sheet header.sheet-header .flex-group-center.flex-fatigue,
|
||||
select,
|
||||
button,
|
||||
.item-checkbox,
|
||||
#sidebar,
|
||||
#players,
|
||||
#navigation #nav-toggle {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
@@ -64,15 +80,19 @@
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.strong-text {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover {
|
||||
.tabs .item.active,
|
||||
.blessures-list li ul li:first-child:hover,
|
||||
a:hover {
|
||||
text-shadow: 1px 0px 0px #ff6600;
|
||||
}
|
||||
|
||||
.rollable:hover, .rollable:focus {
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
color: #000;
|
||||
text-shadow: 0 0 10px red;
|
||||
cursor: pointer;
|
||||
@@ -86,12 +106,17 @@ input:hover {
|
||||
input:disabled {
|
||||
color: #1c2058;
|
||||
}
|
||||
|
||||
select:disabled {
|
||||
color: #1c2058;
|
||||
}
|
||||
table {border: 1px solid #7a7971;}
|
||||
|
||||
.grid, .grid-2col {
|
||||
table {
|
||||
border: 1px solid #7a7971;
|
||||
}
|
||||
|
||||
.grid,
|
||||
.grid-2col {
|
||||
display: grid;
|
||||
grid-column: span 2 / span 2;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
@@ -235,6 +260,7 @@ table {border: 1px solid #7a7971;}
|
||||
object-position: 50% 0;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
.profile-img-container {
|
||||
margin-right: 0.2rem;
|
||||
max-width: 140px;
|
||||
@@ -407,7 +433,8 @@ li.folder > .folder-header h3 {
|
||||
/*background: #494e6b;*/
|
||||
}
|
||||
|
||||
input[type="text"], select[type="text"] {
|
||||
input[type="text"],
|
||||
select[type="text"] {
|
||||
background: white;
|
||||
color: #494e6b;
|
||||
}
|
||||
@@ -416,14 +443,22 @@ select {
|
||||
background: white;
|
||||
color: #494e6b;
|
||||
}
|
||||
|
||||
/* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
|
||||
/*color: rgba(168, 139, 139, 0.5);*/
|
||||
.window-app.sheet .window-content .sheet-header select[type="text"], .window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-body input[type="text"], .window-app.sheet .window-content .sheet-body input[type="number"], .window-app.sheet .window-content .sheet-body select[type="text"] {
|
||||
.window-app.sheet .window-content .sheet-header select[type="text"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="text"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="number"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="text"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="number"],
|
||||
.window-app.sheet .window-content .sheet-body select[type="text"] {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
/*color: #494e6b;*/
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] {
|
||||
.window-app.sheet .window-content .sheet-header input[type="password"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="date"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="time"] {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: url("../images/ui/fond_carnet_01.webp");
|
||||
border: 1 none;
|
||||
@@ -431,7 +466,9 @@ select {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .sheet-body input[type="password"], .window-app.sheet .window-content .sheet-body input[type="date"], .window-app.sheet .window-content .sheet-body input[type="time"] {
|
||||
.window-app.sheet .window-content .sheet-body input[type="password"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="date"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="time"] {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: url("../images/ui/fond_carnet_01.webp");
|
||||
border: 1 none;
|
||||
@@ -439,7 +476,8 @@ select {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .sheet-body select, .window-app.sheet .window-content .sheet-header select {
|
||||
.window-app.sheet .window-content .sheet-body select,
|
||||
.window-app.sheet .window-content .sheet-header select {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: #fff;
|
||||
border: 1 none;
|
||||
@@ -447,7 +485,8 @@ select {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.window-app .window-content, .window-app.sheet .window-content .sheet-body{
|
||||
.window-app .window-content,
|
||||
.window-app.sheet .window-content .sheet-body {
|
||||
font-size: 0.8rem;
|
||||
/*background: url("../images/ui/pc_sheet_bg.webp") repeat left top;*/
|
||||
background: url("../images/ui/fond_carnet_01.webp");
|
||||
@@ -456,7 +495,9 @@ select {
|
||||
|
||||
/* background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top;*/
|
||||
|
||||
section.sheet-body{padding: 0.25rem 0.5rem;}
|
||||
section.sheet-body {
|
||||
padding: 0.25rem 0.5rem;
|
||||
}
|
||||
|
||||
.sheet header.sheet-header .profile-img {
|
||||
object-fit: cover;
|
||||
@@ -508,8 +549,13 @@ section.sheet-body:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.sheet header.sheet-header .flex-compteurs {text-align: right;}
|
||||
.sheet header.sheet-header .resource-content {width: 2rem;}
|
||||
.sheet header.sheet-header .flex-compteurs {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.sheet header.sheet-header .resource-content {
|
||||
width: 2rem;
|
||||
}
|
||||
|
||||
.select-diff {
|
||||
display: inline-block;
|
||||
@@ -524,7 +570,8 @@ section.sheet-body:after {
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .carac-value, .window-app.sheet .window-content .competence-xp {
|
||||
.window-app.sheet .window-content .carac-value,
|
||||
.window-app.sheet .window-content .competence-xp {
|
||||
margin: 0.05rem;
|
||||
flex-basis: 3rem;
|
||||
text-align: center;
|
||||
@@ -535,15 +582,21 @@ section.sheet-body:after {
|
||||
|
||||
/* ======================================== */
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
ul,
|
||||
ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
ul, li {
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
@@ -551,6 +604,7 @@ ul, li {
|
||||
margin: 0.010rem;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
.header-fields li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -559,9 +613,11 @@ ul, li {
|
||||
.alterne-list>.list-item:hover {
|
||||
background: rgba(100, 100, 50, 0.25);
|
||||
}
|
||||
|
||||
.alterne-list>.list-item:nth-child(even) {
|
||||
background: rgba(80, 60, 0, 0.10);
|
||||
}
|
||||
|
||||
.alterne-list>.list-item:nth-child(odd) {
|
||||
background: rgb(160, 130, 100, 0.05);
|
||||
}
|
||||
@@ -584,36 +640,45 @@ ul, li {
|
||||
display: flex !important;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
|
||||
.list-item-shadow {
|
||||
background: rgba(87, 60, 32, 0.35);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.list-item-shadow2 {
|
||||
background: rgba(87, 60, 32, 0.25);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.item-display-show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.item-display-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.item-quantite {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.list-item-margin1 {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.list-item-margin2 {
|
||||
margin-left: 2rem;
|
||||
}
|
||||
|
||||
.list-item-margin3 {
|
||||
margin-left: 3rem;
|
||||
}
|
||||
|
||||
.list-item-margin4 {
|
||||
margin-left: 4rem;
|
||||
}
|
||||
@@ -626,6 +691,7 @@ ul, li {
|
||||
flex-grow: 0;
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.competence-column {
|
||||
flex-direction: column;
|
||||
align-content: flex-start;
|
||||
@@ -633,6 +699,7 @@ ul, li {
|
||||
flex-grow: 0;
|
||||
flex-basis: 1;
|
||||
}
|
||||
|
||||
.competence-header {
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
@@ -644,16 +711,20 @@ ul, li {
|
||||
flex-grow: 2;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.status-header-label {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.roll-dialog-label {
|
||||
margin: 4px 0;
|
||||
min-width: 96px;
|
||||
}
|
||||
|
||||
.short-label {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.keyword-label {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
@@ -678,6 +749,7 @@ ul, li {
|
||||
margin-right: 4px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.sante-value,
|
||||
.competence-value {
|
||||
flex-grow: 0;
|
||||
@@ -685,26 +757,32 @@ ul, li {
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
.description-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 4rem;
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
.small-label {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.padd-right {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.padd-left {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.stack-left {
|
||||
align-items: center;
|
||||
flex-shrink: 1;
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.packed-left {
|
||||
white-space: nowrap;
|
||||
flex-grow: 0;
|
||||
@@ -730,6 +808,7 @@ ul, li {
|
||||
flex: 0 !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.tokenhudext.left {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
@@ -737,6 +816,7 @@ ul, li {
|
||||
top: 2.75rem;
|
||||
right: 4rem;
|
||||
}
|
||||
|
||||
.tokenhudext.right {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
@@ -744,6 +824,7 @@ ul, li {
|
||||
top: 2.75rem;
|
||||
left: 4rem;
|
||||
}
|
||||
|
||||
.control-icon.tokenhudicon {
|
||||
width: fit-content;
|
||||
height: fit-content;
|
||||
@@ -753,12 +834,15 @@ ul, li {
|
||||
line-height: 1rem;
|
||||
margin: 0.25rem;
|
||||
}
|
||||
|
||||
.control-icon.tokenhudicon.right {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
#token-hud .status-effects.active {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.token-sheet .window-content .flexcol .sheet-tabs {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
@@ -782,6 +866,7 @@ ul, li {
|
||||
.skill-label {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
.skill-good-checkbox {
|
||||
max-height: 10px;
|
||||
max-width: 10px;
|
||||
@@ -809,7 +894,8 @@ ul, li {
|
||||
height: 470px !important;
|
||||
}
|
||||
|
||||
#sidebar-tabs > .collapsed, #chat-controls .chat-control-icon {
|
||||
#sidebar-tabs>.collapsed,
|
||||
#chat-controls .chat-control-icon {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
@@ -824,6 +910,7 @@ ul, li {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chat-message-header {
|
||||
background: rgba(220, 220, 210, 0.5);
|
||||
font-size: 1.1rem;
|
||||
@@ -834,9 +921,15 @@ ul, li {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to {
|
||||
.message-chat-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.chat-message .message-header .flavor-text,
|
||||
.chat-message .message-header .whisper-to {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.chat-result-text,
|
||||
.chat-actor-name {
|
||||
font-weight: bold;
|
||||
@@ -844,12 +937,15 @@ ul, li {
|
||||
font-size: 1.2rem;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.chat-result-success {
|
||||
color: darkgreen;
|
||||
}
|
||||
|
||||
.chat-result-failure {
|
||||
color: darkred;
|
||||
}
|
||||
|
||||
.chat-img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
@@ -927,6 +1023,7 @@ ul, li {
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.small-ability-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
@@ -935,6 +1032,7 @@ ul, li {
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.combat-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
@@ -969,7 +1067,8 @@ ul, li {
|
||||
/*--------------------------------------------------------------------------*/
|
||||
/* Control, Tool, hotbar & navigation */
|
||||
|
||||
#controls .scene-control, #controls .control-tool {
|
||||
#controls .scene-control,
|
||||
#controls .control-tool {
|
||||
box-shadow: 0 0 3px #000;
|
||||
margin: 0 0 8px;
|
||||
border-radius: 0;
|
||||
@@ -980,7 +1079,10 @@ ul, li {
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
|
||||
#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover {
|
||||
#controls .scene-control.active,
|
||||
#controls .control-tool.active,
|
||||
#controls .scene-control:hover,
|
||||
#controls .control-tool:hover {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
@@ -1026,7 +1128,8 @@ ul, li {
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
|
||||
#navigation #scene-list .scene.view, #navigation #scene-list .scene.context {
|
||||
#navigation #scene-list .scene.view,
|
||||
#navigation #scene-list .scene.context {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
@@ -1071,7 +1174,8 @@ ul, li {
|
||||
|
||||
|
||||
.tooltip-nobottom {
|
||||
border-bottom: unset; /* If you want dots under the hoverable text */
|
||||
border-bottom: unset;
|
||||
/* If you want dots under the hoverable text */
|
||||
}
|
||||
|
||||
/* Show the tooltip text when you mouse over the tooltip container */
|
||||
@@ -1101,6 +1205,7 @@ ul, li {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
.chat-card-button:active {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
@@ -1146,14 +1251,14 @@ ul, li {
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
#pause
|
||||
{
|
||||
#pause {
|
||||
font-size: 2rem;
|
||||
}
|
||||
#pause > h3
|
||||
{
|
||||
|
||||
#pause>h3 {
|
||||
color: #CCC
|
||||
}
|
||||
|
||||
#pause>img {
|
||||
content: url(../images/ui/ecryme_logo_small_01.webp);
|
||||
height: 200px;
|
||||
@@ -1184,23 +1289,28 @@ ul, li {
|
||||
.status-small-label {
|
||||
font-size: 0.65rem;
|
||||
}
|
||||
|
||||
.no-grow {
|
||||
flex-grow: 1;
|
||||
max-width: 32px;
|
||||
}
|
||||
|
||||
.status-col-name {
|
||||
max-width: 72px;
|
||||
}
|
||||
|
||||
.img-no-border {
|
||||
max-width: 48px;
|
||||
max-height: 48px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.items-title-bg {
|
||||
margin-top: 6px;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
|
||||
}
|
||||
|
||||
.impact-box {
|
||||
border-width: 2px;
|
||||
border-color: #000000;
|
||||
@@ -1209,6 +1319,7 @@ ul, li {
|
||||
margin: 4px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.impact-title {
|
||||
font-size: bold;
|
||||
display: flex;
|
||||
@@ -1224,117 +1335,169 @@ ul, li {
|
||||
font-family: MailartRubberstamp;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.lock-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.item-sheet-img {
|
||||
width: 64px;
|
||||
height: auto;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.item-name-img {
|
||||
flex-grow: 1;
|
||||
max-width: 2rem;
|
||||
min-width: 2rem;
|
||||
}
|
||||
|
||||
.item-name-label-header {
|
||||
flex-grow: 2;
|
||||
max-width: 12rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
|
||||
.item-name-label-header-long {
|
||||
flex-grow: 2;
|
||||
max-width: 14rem;
|
||||
min-width: 14rem;
|
||||
}
|
||||
|
||||
.item-name-label-header-long2 {
|
||||
flex-grow: 2;
|
||||
max-width: 24rem;
|
||||
min-width: 24rem;
|
||||
}
|
||||
|
||||
.item-name-label {
|
||||
flex-grow: 2;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
.item-name-label-long {
|
||||
margin-top: 4px;
|
||||
flex-grow: 2;
|
||||
max-width: 12rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
|
||||
.item-name-label-short {
|
||||
margin-top: 4px;
|
||||
flex-grow: 1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
}
|
||||
|
||||
.item-name-label-medium {
|
||||
margin-top: 4px;
|
||||
flex-grow: 2;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
}
|
||||
|
||||
.item-name-label-medium2 {
|
||||
margin-top: 4px;
|
||||
flex-grow: 0;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
.item-name-label-free {
|
||||
margin-top: 4px;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.item-name-label-long2 {
|
||||
margin-top: 4px;
|
||||
flex-grow: 2;
|
||||
max-width: 22rem;
|
||||
min-width: 22rem;
|
||||
}
|
||||
|
||||
.item-name-label-level2 {
|
||||
flex-grow: 2;
|
||||
max-width: 9rem;
|
||||
min-width: 9rem;
|
||||
}
|
||||
|
||||
.item-field-label-short {
|
||||
margin-top: 4px;
|
||||
flex-grow: 1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
}
|
||||
|
||||
.item-field-label-short-header {
|
||||
margin-top: 4px;
|
||||
flex-grow: 1;
|
||||
max-width: 2.2rem;
|
||||
min-width: 2.2rem;
|
||||
}
|
||||
|
||||
.item-field-label-medium {
|
||||
flex-grow: 1;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
}
|
||||
|
||||
.item-field-skill {
|
||||
flex-grow: 1;
|
||||
max-width: 6.8rem;
|
||||
min-width: 6.8rem;
|
||||
}
|
||||
|
||||
.item-field-label-long {
|
||||
flex-grow: 1;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
.item-control-end {
|
||||
align-self: flex-end;
|
||||
}
|
||||
|
||||
.alternate-list {
|
||||
margin-top: 4px;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.item-filler {
|
||||
flex-grow: 6;
|
||||
flex-shrink: 7;
|
||||
}
|
||||
|
||||
.item-controls-fixed {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
|
||||
.item-controls-fixed-full {
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
|
||||
.attribute-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.flexrow-no-expand {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.flexrow-start {
|
||||
justify-content: flex-start;
|
||||
align-content: flex-start;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.item-input-small {
|
||||
max-width: 16px;
|
||||
max-height: 12px;
|
||||
}
|
||||
|
||||
.character-summary-rollable {
|
||||
text-decoration: underline;
|
||||
}
|
||||
@@ -1342,6 +1505,7 @@ ul, li {
|
||||
.ecryme-roll-dialog .window-header {
|
||||
border-radius: 10px 10px 0% 0%;
|
||||
}
|
||||
|
||||
.ecryme-roll-dialog .window-content {
|
||||
border-radius: 0% 0% 10px 10px;
|
||||
}
|
||||
@@ -1358,16 +1522,19 @@ ul, li {
|
||||
.bonus-spec {
|
||||
max-width: 48px;
|
||||
}
|
||||
|
||||
.confront-bonus-container {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.pool-list {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.confront-bonus-centered {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
@@ -1381,12 +1548,14 @@ ul, li {
|
||||
.dice-spec {
|
||||
max-width: 64px;
|
||||
}
|
||||
|
||||
.confront-dice-container {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.confront-dice-centered {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
@@ -1396,6 +1565,7 @@ ul, li {
|
||||
font-family: MailartRubberstamp;
|
||||
transform: translate(-50%, -55%);
|
||||
}
|
||||
|
||||
.confront-area {
|
||||
margin: 2px;
|
||||
padding: 4px;
|
||||
|
||||
@@ -46,13 +46,29 @@
|
||||
}
|
||||
|
||||
/* Fonts */
|
||||
.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item {
|
||||
.sheet header.sheet-header h1 input,
|
||||
.window-app .window-header,
|
||||
#actors .directory-list,
|
||||
#navigation #scene-list .scene.nav-item {
|
||||
font-size: 1.0rem;
|
||||
} /* For title, sidebar character and scene */
|
||||
}
|
||||
|
||||
/* For title, sidebar character and scene */
|
||||
.sheet nav.sheet-tabs {
|
||||
font-size: 0.8rem;
|
||||
} /* For nav and title */
|
||||
.window-app input, .fvtt-ecryme .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue, select, button, .item-checkbox, #sidebar, #players, #navigation #nav-toggle {
|
||||
}
|
||||
|
||||
/* For nav and title */
|
||||
.window-app input,
|
||||
.fvtt-ecryme .item-form,
|
||||
.sheet header.sheet-header .flex-group-center.flex-compteurs,
|
||||
.sheet header.sheet-header .flex-group-center.flex-fatigue,
|
||||
select,
|
||||
button,
|
||||
.item-checkbox,
|
||||
#sidebar,
|
||||
#players,
|
||||
#navigation #nav-toggle {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
@@ -64,15 +80,19 @@
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.strong-text {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover {
|
||||
.tabs .item.active,
|
||||
.blessures-list li ul li:first-child:hover,
|
||||
a:hover {
|
||||
text-shadow: 1px 0px 0px #ff6600;
|
||||
}
|
||||
|
||||
.rollable:hover, .rollable:focus {
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
color: #000;
|
||||
text-shadow: 0 0 10px red;
|
||||
cursor: pointer;
|
||||
@@ -86,12 +106,17 @@ input:hover {
|
||||
input:disabled {
|
||||
color: #1c2058;
|
||||
}
|
||||
|
||||
select:disabled {
|
||||
color: #1c2058;
|
||||
}
|
||||
table {border: 1px solid #7a7971;}
|
||||
|
||||
.grid, .grid-2col {
|
||||
table {
|
||||
border: 1px solid #7a7971;
|
||||
}
|
||||
|
||||
.grid,
|
||||
.grid-2col {
|
||||
display: grid;
|
||||
grid-column: span 2 / span 2;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
@@ -212,6 +237,7 @@ table {border: 1px solid #7a7971;}
|
||||
object-position: 50% 0;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
.profile-img-container {
|
||||
margin-right: 0.2rem;
|
||||
max-width: 140px;
|
||||
@@ -376,7 +402,8 @@ li.folder > .folder-header h3 {
|
||||
/*background: #494e6b;*/
|
||||
}
|
||||
|
||||
input[type="text"], select[type="text"] {
|
||||
input[type="text"],
|
||||
select[type="text"] {
|
||||
background: white;
|
||||
color: #494e6b;
|
||||
}
|
||||
@@ -385,14 +412,22 @@ select {
|
||||
background: white;
|
||||
color: #494e6b;
|
||||
}
|
||||
|
||||
/* background: #011d33 url("../images/ui/fond1.webp") repeat left top;*/
|
||||
/*color: rgba(168, 139, 139, 0.5);*/
|
||||
.window-app.sheet .window-content .sheet-header select[type="text"], .window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-body input[type="text"], .window-app.sheet .window-content .sheet-body input[type="number"], .window-app.sheet .window-content .sheet-body select[type="text"] {
|
||||
.window-app.sheet .window-content .sheet-header select[type="text"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="text"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="number"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="text"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="number"],
|
||||
.window-app.sheet .window-content .sheet-body select[type="text"] {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
/*color: #494e6b;*/
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] {
|
||||
.window-app.sheet .window-content .sheet-header input[type="password"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="date"],
|
||||
.window-app.sheet .window-content .sheet-header input[type="time"] {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: url("../images/ui/fond_carnet_01.webp");
|
||||
border: 1 none;
|
||||
@@ -400,7 +435,9 @@ select {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .sheet-body input[type="password"], .window-app.sheet .window-content .sheet-body input[type="date"], .window-app.sheet .window-content .sheet-body input[type="time"] {
|
||||
.window-app.sheet .window-content .sheet-body input[type="password"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="date"],
|
||||
.window-app.sheet .window-content .sheet-body input[type="time"] {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: url("../images/ui/fond_carnet_01.webp");
|
||||
border: 1 none;
|
||||
@@ -408,7 +445,8 @@ select {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .sheet-body select, .window-app.sheet .window-content .sheet-header select {
|
||||
.window-app.sheet .window-content .sheet-body select,
|
||||
.window-app.sheet .window-content .sheet-header select {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
background: #fff;
|
||||
border: 1 none;
|
||||
@@ -416,7 +454,8 @@ select {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.window-app .window-content, .window-app.sheet .window-content .sheet-body{
|
||||
.window-app .window-content,
|
||||
.window-app.sheet .window-content .sheet-body {
|
||||
font-size: 0.8rem;
|
||||
/*background: url("../images/ui/pc_sheet_bg.webp") repeat left top;*/
|
||||
background: url("../images/ui/fond_carnet_01.webp");
|
||||
@@ -425,7 +464,9 @@ select {
|
||||
|
||||
/* background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top;*/
|
||||
|
||||
section.sheet-body{padding: 0.25rem 0.5rem;}
|
||||
section.sheet-body {
|
||||
padding: 0.25rem 0.5rem;
|
||||
}
|
||||
|
||||
.sheet header.sheet-header .profile-img {
|
||||
-o-object-fit: cover;
|
||||
@@ -454,9 +495,11 @@ section.sheet-body{padding: 0.25rem 0.5rem;}
|
||||
|
||||
/* background: rgb(245,245,240) url("../images/ui/fond4.webp") repeat left top;*/
|
||||
|
||||
nav.sheet-tabs a,
|
||||
nav.sheet-tabs .item {
|
||||
position: relative;
|
||||
padding: 0 0.25rem;
|
||||
color: beige;
|
||||
}
|
||||
|
||||
nav.sheet-tabs .item:after {
|
||||
@@ -479,8 +522,13 @@ section.sheet-body:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.sheet header.sheet-header .flex-compteurs {text-align: right;}
|
||||
.sheet header.sheet-header .resource-content {width: 2rem;}
|
||||
.sheet header.sheet-header .flex-compteurs {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.sheet header.sheet-header .resource-content {
|
||||
width: 2rem;
|
||||
}
|
||||
|
||||
.select-diff {
|
||||
display: inline-block;
|
||||
@@ -495,7 +543,8 @@ section.sheet-body:after {
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .carac-value, .window-app.sheet .window-content .competence-xp {
|
||||
.window-app.sheet .window-content .carac-value,
|
||||
.window-app.sheet .window-content .competence-xp {
|
||||
margin: 0.05rem;
|
||||
flex-basis: 3rem;
|
||||
text-align: center;
|
||||
@@ -506,15 +555,21 @@ section.sheet-body:after {
|
||||
|
||||
/* ======================================== */
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
ul,
|
||||
ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
ul, li {
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
@@ -522,6 +577,7 @@ ul, li {
|
||||
margin: 0.010rem;
|
||||
padding: 0.25rem;
|
||||
}
|
||||
|
||||
.header-fields li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -530,9 +586,11 @@ ul, li {
|
||||
.alterne-list>.list-item:hover {
|
||||
background: rgba(100, 100, 50, 0.25);
|
||||
}
|
||||
|
||||
.alterne-list>.list-item:nth-child(even) {
|
||||
background: rgba(80, 60, 0, 0.10);
|
||||
}
|
||||
|
||||
.alterne-list>.list-item:nth-child(odd) {
|
||||
background: rgb(160, 130, 100, 0.05);
|
||||
}
|
||||
@@ -555,36 +613,45 @@ ul, li {
|
||||
display: flex !important;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
}
|
||||
|
||||
.list-item-shadow {
|
||||
background: rgba(87, 60, 32, 0.35);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.list-item-shadow2 {
|
||||
background: rgba(87, 60, 32, 0.25);
|
||||
flex-grow: 0;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.item-display-show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.item-display-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.item-quantite {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.list-item-margin1 {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.list-item-margin2 {
|
||||
margin-left: 2rem;
|
||||
}
|
||||
|
||||
.list-item-margin3 {
|
||||
margin-left: 3rem;
|
||||
}
|
||||
|
||||
.list-item-margin4 {
|
||||
margin-left: 4rem;
|
||||
}
|
||||
@@ -597,6 +664,7 @@ ul, li {
|
||||
flex-grow: 0;
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.competence-column {
|
||||
flex-direction: column;
|
||||
align-content: flex-start;
|
||||
@@ -604,6 +672,7 @@ ul, li {
|
||||
flex-grow: 0;
|
||||
flex-basis: 1;
|
||||
}
|
||||
|
||||
.competence-header {
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
@@ -615,16 +684,20 @@ ul, li {
|
||||
flex-grow: 2;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.status-header-label {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.roll-dialog-label {
|
||||
margin: 4px 0;
|
||||
min-width: 96px;
|
||||
}
|
||||
|
||||
.short-label {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.keyword-label {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
@@ -649,6 +722,7 @@ ul, li {
|
||||
margin-right: 4px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.sante-value,
|
||||
.competence-value {
|
||||
flex-grow: 0;
|
||||
@@ -656,26 +730,32 @@ ul, li {
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
.description-value {
|
||||
flex-grow: 0;
|
||||
flex-basis: 4rem;
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
||||
.small-label {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.padd-right {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.padd-left {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.stack-left {
|
||||
align-items: center;
|
||||
flex-shrink: 1;
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.packed-left {
|
||||
white-space: nowrap;
|
||||
flex-grow: 0;
|
||||
@@ -701,6 +781,7 @@ ul, li {
|
||||
flex: 0 !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.tokenhudext.left {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
@@ -708,6 +789,7 @@ ul, li {
|
||||
top: 2.75rem;
|
||||
right: 4rem;
|
||||
}
|
||||
|
||||
.tokenhudext.right {
|
||||
justify-content: flex-start;
|
||||
flex-direction: column;
|
||||
@@ -715,6 +797,7 @@ ul, li {
|
||||
top: 2.75rem;
|
||||
left: 4rem;
|
||||
}
|
||||
|
||||
.control-icon.tokenhudicon {
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
@@ -726,12 +809,15 @@ ul, li {
|
||||
line-height: 1rem;
|
||||
margin: 0.25rem;
|
||||
}
|
||||
|
||||
.control-icon.tokenhudicon.right {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
#token-hud .status-effects.active {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.token-sheet .window-content .flexcol .sheet-tabs {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
@@ -755,6 +841,7 @@ ul, li {
|
||||
.skill-label {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
.skill-good-checkbox {
|
||||
max-height: 10px;
|
||||
max-width: 10px;
|
||||
@@ -782,7 +869,8 @@ ul, li {
|
||||
height: 470px !important;
|
||||
}
|
||||
|
||||
#sidebar-tabs > .collapsed, #chat-controls .chat-control-icon {
|
||||
#sidebar-tabs>.collapsed,
|
||||
#chat-controls .chat-control-icon {
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
@@ -797,6 +885,7 @@ ul, li {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chat-message-header {
|
||||
background: rgba(220, 220, 210, 0.5);
|
||||
font-size: 1.1rem;
|
||||
@@ -807,9 +896,22 @@ ul, li {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to {
|
||||
.message-chat-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.welcome-message-h3 {
|
||||
font-size: 1.2rem;
|
||||
text-align: center;
|
||||
margin-bottom: 0.5rem;
|
||||
color: darkred;
|
||||
}
|
||||
|
||||
.chat-message .message-header .flavor-text,
|
||||
.chat-message .message-header .whisper-to {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.chat-result-text,
|
||||
.chat-actor-name {
|
||||
font-weight: bold;
|
||||
@@ -817,12 +919,15 @@ ul, li {
|
||||
font-size: 1.2rem;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.chat-result-success {
|
||||
color: darkgreen;
|
||||
}
|
||||
|
||||
.chat-result-failure {
|
||||
color: darkred;
|
||||
}
|
||||
|
||||
.chat-img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
@@ -900,6 +1005,7 @@ ul, li {
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.small-ability-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
@@ -908,6 +1014,7 @@ ul, li {
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.combat-icon {
|
||||
border: 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
@@ -942,7 +1049,8 @@ ul, li {
|
||||
/*--------------------------------------------------------------------------*/
|
||||
/* Control, Tool, hotbar & navigation */
|
||||
|
||||
#controls .scene-control, #controls .control-tool {
|
||||
#controls .scene-control,
|
||||
#controls .control-tool {
|
||||
box-shadow: 0 0 3px #000;
|
||||
margin: 0 0 8px;
|
||||
border-radius: 0;
|
||||
@@ -954,7 +1062,10 @@ ul, li {
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
|
||||
#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover {
|
||||
#controls .scene-control.active,
|
||||
#controls .control-tool.active,
|
||||
#controls .scene-control:hover,
|
||||
#controls .control-tool:hover {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
@@ -1004,7 +1115,8 @@ ul, li {
|
||||
border-image-outset: 0px;
|
||||
}
|
||||
|
||||
#navigation #scene-list .scene.view, #navigation #scene-list .scene.context {
|
||||
#navigation #scene-list .scene.view,
|
||||
#navigation #scene-list .scene.context {
|
||||
background: rgba(72, 46, 28, 1);
|
||||
background-origin: padding-box;
|
||||
-o-border-image: url(img/ui/footer-button.png) 10 repeat;
|
||||
@@ -1051,7 +1163,8 @@ ul, li {
|
||||
|
||||
|
||||
.tooltip-nobottom {
|
||||
border-bottom: unset; /* If you want dots under the hoverable text */
|
||||
border-bottom: unset;
|
||||
/* If you want dots under the hoverable text */
|
||||
}
|
||||
|
||||
/* Show the tooltip text when you mouse over the tooltip container */
|
||||
@@ -1081,6 +1194,7 @@ ul, li {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
.chat-card-button:active {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
@@ -1126,14 +1240,14 @@ ul, li {
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
#pause
|
||||
{
|
||||
#pause {
|
||||
font-size: 2rem;
|
||||
}
|
||||
#pause > h3
|
||||
{
|
||||
|
||||
#pause>h3 {
|
||||
color: #CCC
|
||||
}
|
||||
|
||||
#pause>img {
|
||||
content: url(../images/ui/ecryme_logo_small_01.webp);
|
||||
height: 200px;
|
||||
@@ -1164,23 +1278,28 @@ ul, li {
|
||||
.status-small-label {
|
||||
font-size: 0.65rem;
|
||||
}
|
||||
|
||||
.no-grow {
|
||||
flex-grow: 1;
|
||||
max-width: 32px;
|
||||
}
|
||||
|
||||
.status-col-name {
|
||||
max-width: 72px;
|
||||
}
|
||||
|
||||
.img-no-border {
|
||||
max-width: 48px;
|
||||
max-height: 48px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.items-title-bg {
|
||||
margin-top: 6px;
|
||||
color: rgba(19, 18, 18, 0.95);
|
||||
|
||||
}
|
||||
|
||||
.impact-box {
|
||||
border-width: 2px;
|
||||
border-color: #000000;
|
||||
@@ -1189,6 +1308,7 @@ ul, li {
|
||||
margin: 4px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.impact-title {
|
||||
font-size: bold;
|
||||
display: flex;
|
||||
@@ -1204,117 +1324,169 @@ ul, li {
|
||||
font-family: MailartRubberstamp;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.lock-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.item-sheet-img {
|
||||
width: 64px;
|
||||
height: auto;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.item-name-img {
|
||||
flex-grow: 1;
|
||||
max-width: 2rem;
|
||||
min-width: 2rem;
|
||||
}
|
||||
|
||||
.item-name-label-header {
|
||||
flex-grow: 2;
|
||||
max-width: 12rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
|
||||
.item-name-label-header-long {
|
||||
flex-grow: 2;
|
||||
max-width: 14rem;
|
||||
min-width: 14rem;
|
||||
}
|
||||
|
||||
.item-name-label-header-long2 {
|
||||
flex-grow: 2;
|
||||
max-width: 24rem;
|
||||
min-width: 24rem;
|
||||
}
|
||||
|
||||
.item-name-label {
|
||||
flex-grow: 2;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
.item-name-label-long {
|
||||
margin-top: 4px;
|
||||
flex-grow: 2;
|
||||
max-width: 12rem;
|
||||
min-width: 12rem;
|
||||
}
|
||||
|
||||
.item-name-label-short {
|
||||
margin-top: 4px;
|
||||
flex-grow: 1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
}
|
||||
|
||||
.item-name-label-medium {
|
||||
margin-top: 4px;
|
||||
flex-grow: 2;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
}
|
||||
|
||||
.item-name-label-medium2 {
|
||||
margin-top: 4px;
|
||||
flex-grow: 0;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
.item-name-label-free {
|
||||
margin-top: 4px;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.item-name-label-long2 {
|
||||
margin-top: 4px;
|
||||
flex-grow: 2;
|
||||
max-width: 22rem;
|
||||
min-width: 22rem;
|
||||
}
|
||||
|
||||
.item-name-label-level2 {
|
||||
flex-grow: 2;
|
||||
max-width: 9rem;
|
||||
min-width: 9rem;
|
||||
}
|
||||
|
||||
.item-field-label-short {
|
||||
margin-top: 4px;
|
||||
flex-grow: 1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
}
|
||||
|
||||
.item-field-label-short-header {
|
||||
margin-top: 4px;
|
||||
flex-grow: 1;
|
||||
max-width: 2.2rem;
|
||||
min-width: 2.2rem;
|
||||
}
|
||||
|
||||
.item-field-label-medium {
|
||||
flex-grow: 1;
|
||||
max-width: 6rem;
|
||||
min-width: 6rem;
|
||||
}
|
||||
|
||||
.item-field-skill {
|
||||
flex-grow: 1;
|
||||
max-width: 6.8rem;
|
||||
min-width: 6.8rem;
|
||||
}
|
||||
|
||||
.item-field-label-long {
|
||||
flex-grow: 1;
|
||||
max-width: 10rem;
|
||||
min-width: 10rem;
|
||||
}
|
||||
|
||||
.item-control-end {
|
||||
align-self: flex-end;
|
||||
}
|
||||
|
||||
.alternate-list {
|
||||
margin-top: 4px;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.item-filler {
|
||||
flex-grow: 6;
|
||||
flex-shrink: 7;
|
||||
}
|
||||
|
||||
.item-controls-fixed {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
|
||||
.item-controls-fixed-full {
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
|
||||
.attribute-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.flexrow-no-expand {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.flexrow-start {
|
||||
justify-content: flex-start;
|
||||
align-content: flex-start;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.item-input-small {
|
||||
max-width: 16px;
|
||||
max-height: 12px;
|
||||
}
|
||||
|
||||
.character-summary-rollable {
|
||||
text-decoration: underline;
|
||||
}
|
||||
@@ -1322,6 +1494,7 @@ ul, li {
|
||||
.ecryme-roll-dialog .window-header {
|
||||
border-radius: 10px 10px 0% 0%;
|
||||
}
|
||||
|
||||
.ecryme-roll-dialog .window-content {
|
||||
border-radius: 0% 0% 10px 10px;
|
||||
}
|
||||
@@ -1338,16 +1511,19 @@ ul, li {
|
||||
.bonus-spec {
|
||||
max-width: 48px;
|
||||
}
|
||||
|
||||
.confront-bonus-container {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.pool-list {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.confront-bonus-centered {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
@@ -1361,12 +1537,14 @@ ul, li {
|
||||
.dice-spec {
|
||||
max-width: 64px;
|
||||
}
|
||||
|
||||
.confront-dice-container {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.confront-dice-centered {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
@@ -1376,6 +1554,7 @@ ul, li {
|
||||
font-family: MailartRubberstamp;
|
||||
transform: translate(-50%, -55%);
|
||||
}
|
||||
|
||||
.confront-area {
|
||||
margin: 2px;
|
||||
padding: 4px;
|
||||
|
||||
14
system.json
@@ -3,8 +3,10 @@
|
||||
"esmodules": [
|
||||
"modules/ecryme-main.js"
|
||||
],
|
||||
"gridDistance": 1,
|
||||
"gridUnits": "m",
|
||||
"grid": {
|
||||
"distance": 2,
|
||||
"units": "m"
|
||||
},
|
||||
"languages": [
|
||||
{
|
||||
"lang": "fr",
|
||||
@@ -102,8 +104,8 @@
|
||||
"license": "LICENSE.txt",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/system.json",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "11"
|
||||
"minimum": "13",
|
||||
"verified": "13"
|
||||
},
|
||||
"id": "fvtt-ecryme",
|
||||
"primaryTokenAttribute": "secondary.health",
|
||||
@@ -123,7 +125,7 @@
|
||||
},
|
||||
"title": "Ecryme, le Jeu de Rôles",
|
||||
"url": "https://www.uberwald.me/gitea/public/fvtt-ecryme",
|
||||
"version": "11.0.38",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v11.0.38.zip",
|
||||
"version": "13.0.3",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v13.0.3.zip",
|
||||
"background": "systems/fvtt-ecryme/images/assets/ecryme_extract_panel_01.webp"
|
||||
}
|
||||
@@ -28,28 +28,34 @@
|
||||
"skills": {
|
||||
"physical": {
|
||||
"name": "ECRY.ui.physical",
|
||||
"pnjvalue": 0,
|
||||
"skilllist": {
|
||||
"athletics": {
|
||||
"key": "athletics",
|
||||
"name": "ECRY.ui.athletics",
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"driving": {
|
||||
"key": "driving",
|
||||
"name": "ECRY.ui.driving",
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"fencing": {
|
||||
"key": "fencing",
|
||||
"name": "ECRY.ui.fencing",
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"brawling": {
|
||||
"key": "brawling",
|
||||
"name": "ECRY.ui.brawling",
|
||||
"max": 0,
|
||||
"value": 0
|
||||
},
|
||||
"shooting": {
|
||||
"key": "shooting",
|
||||
"name": "ECRY.ui.shooting",
|
||||
"max": 0,
|
||||
"value": 0
|
||||
@@ -58,28 +64,34 @@
|
||||
},
|
||||
"mental": {
|
||||
"name": "ECRY.ui.mental",
|
||||
"pnjvalue": 0,
|
||||
"skilllist": {
|
||||
"anthropomecanology": {
|
||||
"key": "anthropomecanology",
|
||||
"name": "ECRY.ui.anthropomecanology",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"ecrymology": {
|
||||
"key": "ecrymology",
|
||||
"name": "ECRY.ui.ecrymology",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"traumatology": {
|
||||
"key": "traumatology",
|
||||
"name": "ECRY.ui.traumatology",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"traversology": {
|
||||
"key": "traversology",
|
||||
"name": "ECRY.ui.traversology",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"urbatechnology": {
|
||||
"key": "urbatechnology",
|
||||
"name": "ECRY.ui.urbatechnology",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
@@ -88,28 +100,34 @@
|
||||
},
|
||||
"social": {
|
||||
"name": "ECRY.ui.social",
|
||||
"pnjvalue": 0,
|
||||
"skilllist": {
|
||||
"quibbling": {
|
||||
"key": "quibbling",
|
||||
"name": "ECRY.ui.quibbling",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"creativity": {
|
||||
"key": "creativity",
|
||||
"name": "ECRY.ui.creativity",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"loquacity": {
|
||||
"key": "loquacity",
|
||||
"name": "ECRY.ui.loquacity",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"guile": {
|
||||
"key": "guile",
|
||||
"name": "ECRY.ui.guile",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
},
|
||||
"performance": {
|
||||
"key": "performance",
|
||||
"name": "ECRY.ui.performance",
|
||||
"value": 0,
|
||||
"max": 10
|
||||
|
||||
@@ -15,29 +15,40 @@
|
||||
<div class="flexrow">
|
||||
<ul>
|
||||
<li class="flexrow item" data-item-id="{{spleen.id}}">
|
||||
<label class="item-name-label-medium">Spleen :</label>
|
||||
<label class="item-field-label-short">Spleen :</label>
|
||||
<label class="item-name-label-long">{{spleen.name}}</label>
|
||||
<div class="item-filler"> </div>
|
||||
{{#if spleen}}
|
||||
<div class="item-controls item-controls-fixed-full">
|
||||
<a class="item-control item-add" data-type="trait" title="Create Trait"><i class="fas fa-plus"></i></a>
|
||||
<a class="item-control item-add" data-type="trait" title="Create Trait"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
<a class="item-control item-edit" data-type="trait" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-add" data-type="trait" title="Delete Item"><i
|
||||
class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</li>
|
||||
<li class="item flexrow" data-item-id="{{ideal.id}}">
|
||||
<label class="item-name-label-medium">Ideal :</label>
|
||||
<label class="item-field-label-short">Ideal :</label>
|
||||
<label class="item-name-label-long">{{ideal.name}}</label>
|
||||
<div class="item-filler"> </div>
|
||||
{{#if ideal}}
|
||||
<div class="item-controls item-controls-fixed-full">
|
||||
<a class="item-control item-add" data-type="trait" title="Create Trait"><i class="fas fa-plus"></i></a>
|
||||
<a class="item-control item-add" data-type="trait" title="Create Trait"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
<a class="item-control item-edit" data-type="trait" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-add" data-type="trait" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-add" data-type="trait" title="Delete Item"><i
|
||||
class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</li>
|
||||
<li class="item flexrow flexrow-no-expand flexrow-start ">
|
||||
<label class="item-name-label-short">Traits :</label>
|
||||
{{#each traits as |trait key|}}
|
||||
<label class="item-name-label-free"><a data-item-id="{{trait._id}}" class="item-edit">{{trait.name}}</a>, </label>
|
||||
{{/each}}
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -74,10 +85,29 @@
|
||||
<ul class="stat-list alternate-list item-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header impact-title">
|
||||
<h3><label class="items-title-text">{{localize category.name}} ({{valueAtIndex @root.impactsMalus
|
||||
categkey}})</label></h3>
|
||||
<h3>
|
||||
|
||||
{{#if (eq @root.type "npc")}}
|
||||
<a class="roll-skill-confront" data-category-key="{{categkey}}" data-skill-key="rawnpc">
|
||||
<i class="fa-regular fa-swords"></i>
|
||||
</a>
|
||||
<a class="roll-skill" data-category-key="{{categkey}}" data-skill-key="rawnpc">
|
||||
<i class="fa-solid fa-dice-d6"></i>
|
||||
{{/if}}
|
||||
<label class="items-title-text">{{localize category.name}} ({{valueAtIndex @root.impactsMalus
|
||||
categkey}})</label>
|
||||
{{#if (eq @root.type "npc")}}
|
||||
</a>
|
||||
<select class="item-field-label-short-header" type="text"
|
||||
name="system.skills.{{categkey}}.pnjvalue" value="{{category.pnjvalue}}"
|
||||
data-dtype="Number">
|
||||
{{selectOptions @root.config.skillLevel selected=category.pnjvalue}}
|
||||
</select>
|
||||
{{/if}}
|
||||
</h3>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
{{#each category.skilllist as |skill skillkey|}}
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-name-label-long">
|
||||
@@ -91,18 +121,15 @@
|
||||
<select class="item-field-label-short" type="text"
|
||||
name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value" value="{{skill.value}}"
|
||||
data-dtype="Number">
|
||||
{{#select skill.value}}
|
||||
{{#each @root.config.skillLevel as |level key| }}
|
||||
<option value="{{level}}">{{level}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions @root.config.skillLevel selected=skill.value}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="item flexrow list-item">
|
||||
<ul class="ul-level1">
|
||||
{{#each skill.spec as |spec idx|}}
|
||||
<li class="item flexrow list-item" data-item-id="{{spec._id}}" data-item-type="specialization">
|
||||
<a class="roll-spec" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}" data-spec-id="{{spec._id}}">
|
||||
<a class="roll-spec" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}"
|
||||
data-spec-id="{{spec._id}}">
|
||||
<i class="fa-solid fa-dice-d6"></i>
|
||||
{{spec.name}}
|
||||
</a>
|
||||
@@ -143,11 +170,7 @@
|
||||
</a></span>
|
||||
<select class="item-field-label-short" type="text" name="system.cephaly.skilllist.{{skillkey}}.value"
|
||||
value="{{skill.value}}" data-dtype="Number">
|
||||
{{#select skill.value}}
|
||||
{{#each @root.config.skillLevel as |level key| }}
|
||||
<option value="{{level}}">{{level}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions @root.config.skillLevel selected=skill.value}}
|
||||
</select>
|
||||
</li>
|
||||
{{/each}}
|
||||
@@ -157,7 +180,8 @@
|
||||
|
||||
<div>
|
||||
{{#if annency}}
|
||||
<h3>{{localize "ECRY.ui.annency"}} : <a class="open-annency" data-annency-id="{{annency.id}}">{{annency.name}}<i class="fas fa-edit"></i></a></h3>
|
||||
<h3>{{localize "ECRY.ui.annency"}} : <a class="open-annency"
|
||||
data-annency-id="{{annency.id}}">{{annency.name}}<i class="fas fa-edit"></i></a></h3>
|
||||
<ul class="stat-list alternate-list item-list">
|
||||
<li class="item flexrow list-item">
|
||||
<span class="item-name-label-long">
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<div>
|
||||
<ul>
|
||||
<li>Confrontation : {{rollData1.alias}} vs {{rollData2.alias}}</li>
|
||||
<li><strong>Confrontation</strong> : {{rollData1.alias}} vs {{rollData2.alias}}</li>
|
||||
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.value}}) </li>
|
||||
<li>{{rollData1.executionTotal}} vs {{rollData2.preservationTotal}} : {{marginExecution}}</li>
|
||||
<li>{{rollData1.preservationTotal}} vs {{rollData2.executionTotal}} : {{marginPreservation}}</li>
|
||||
@@ -32,21 +32,21 @@
|
||||
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.execution"}} : {{effectExecution}}</li>
|
||||
{{#if impactExecution}}
|
||||
<li>Impact {{rollData2.alias}} : 1 {{localize (concat "ECRY.ui." impactExecution)}}</li>
|
||||
<button class="button-apply-impact" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
|
||||
<button class="button-apply-impact" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
|
||||
{{/if}}
|
||||
{{#if bonus2}}
|
||||
<li>Bonus {{rollData2.alias}} : {{bonus2}}</li>
|
||||
<button class="button-apply-bonus" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
|
||||
<button class="button-apply-bonus" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
|
||||
{{/if}}
|
||||
|
||||
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.preservation"}} : {{effectPreservation}}</li>
|
||||
{{#if impactPreservation}}
|
||||
<li>Impact {{rollData1.alias}} : 1 {{localize (concat "ECRY.ui." impactPreservation)}}</li>
|
||||
<button class="button-apply-impact" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
|
||||
<button class="button-apply-impact" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
|
||||
{{/if}}
|
||||
{{#if bonus1}}
|
||||
<li>Bonus {{rollData1.alias}} : {{bonus1}}</li>
|
||||
<button class="button-apply-bonus" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
|
||||
<button class="button-apply-bonus" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -55,20 +55,13 @@
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">{{localize "ECRY.ui.skilltranscendence"}} : </span>
|
||||
<select class="" id="roll-select-transcendence" data-type="Number">
|
||||
{{#select skillTranscendence}}
|
||||
{{#for 0 skill.value 1}}
|
||||
<option value="{{this}}">{{this}}</option>
|
||||
{{/for}}
|
||||
{{/select}}
|
||||
{{selectOptions config.skillLevel selected=skillTranscendence}}
|
||||
</select>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">{{localize "ECRY.ui.transcendapply"}} : </span>
|
||||
<select class="" id="roll-apply-transcendence" data-type="String">
|
||||
{{#select applyTranscendence}}
|
||||
<option value="execution">{{localize "ECRY.ui.execution"}}</option>
|
||||
<option value="preservation">{{localize "ECRY.ui.preservation"}}</option>
|
||||
{{/select}}
|
||||
{{selectOptions config.transcendanceOptions selected=applyTranscendence localize=true}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -121,16 +114,8 @@
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Bonus/Malus : </span>
|
||||
<select id="bonusMalusPerso" name="bonusMalusPerso">
|
||||
{{#select bonusMalusPerso}}
|
||||
<option value="-3">-3</option>
|
||||
<option value="-2">-2</option>
|
||||
<option value="-1">-1</option>
|
||||
<option value="0">0</option>
|
||||
<option value="1">+1</option>
|
||||
<option value="2">+2</option>
|
||||
<option value="3">+3</option>
|
||||
{{/select}}
|
||||
<select id="bonusMalusPerso" name="bonusMalusPerso" type="text" data-dtype="String">
|
||||
{{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso labelAttr="label"}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -14,11 +14,7 @@
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">{{localize "ECRY.ui.skilltranscendence"}} : </span>
|
||||
<select class="" id="roll-select-transcendence" data-type="Number">
|
||||
{{#select skillTranscendence}}
|
||||
{{#for 0 skill.value 1}}
|
||||
<option value="{{this}}">{{this}}</option>
|
||||
{{/for}}
|
||||
{{/select}}
|
||||
{{selectOptions config.skillLevel selected=skillTranscendence}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -75,16 +71,8 @@
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Bonus/Malus : </span>
|
||||
<select id="bonusMalusPerso" name="bonusMalusPerso">
|
||||
{{#select bonusMalusPerso}}
|
||||
<option value="-3">-3</option>
|
||||
<option value="-2">-2</option>
|
||||
<option value="-1">-1</option>
|
||||
<option value="0">0</option>
|
||||
<option value="1">+1</option>
|
||||
<option value="2">+2</option>
|
||||
<option value="3">+3</option>
|
||||
{{/select}}
|
||||
<select type="text" id="bonusMalusPerso" name="bonusMalusPerso" data-dtype="String">
|
||||
{{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso labelAttr="label"}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -12,13 +12,8 @@
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label">Difficulté : </span>
|
||||
<select class="" type="text" id="roll-difficulty" value="{{difficulty}}" data-dtype="Number">
|
||||
{{#select difficulty}}
|
||||
{{#each config.difficulty as |diffData value| }}
|
||||
<option value="{{diffData.value}}">{{localize diffData.difficulty}} / {{localize diffData.frequency}}
|
||||
({{diffData.value}})</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
<select class="" type="text" id="roll-difficulty" data-dtype="String">
|
||||
{{selectOptions config.difficulty selected=difficulty localize=true labelAttr="difficulty"}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -22,22 +22,14 @@
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.impactType"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.impacttype" value="{{system.impacttype}}" data-dtype="String">
|
||||
{{#select system.impacttype}}
|
||||
{{#each config.impactTypes as |type key| }}
|
||||
<option value="{{key}}">{{localize type}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.impactTypes selected=system.impacttype localize=true }}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.impactLevel"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.impactlevel" value="{{system.impactlevel}}" data-dtype="String">
|
||||
{{#select system.impactlevel}}
|
||||
{{#each config.impactLevels as |level key| }}
|
||||
<option value="{{key}}">{{localize level}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.impactLevels selected=system.impactlevel localize=true }}
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -22,11 +22,7 @@
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.skill"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.skillkey" value="{{system.skillkey}}" data-dtype="String">
|
||||
{{#select system.skillkey}}
|
||||
{{#each config.skills as |skill key| }}
|
||||
<option value="{{key}}">{{localize skill.name}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.skills selected=system.skillkey localize=true valueAttr="key" labelAttr="name"}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
|
||||
@@ -22,23 +22,14 @@
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.traitType"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.traitype" value="{{system.traitype}}" data-dtype="String">
|
||||
{{#select system.traitype}}
|
||||
{{#each config.traitTypes as |type key| }}
|
||||
<option value="{{key}}">{{type}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.traitTypes selected=system.traitype}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.niveauTrait"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.level" value="{{system.level}}" data-dtype="Number">
|
||||
{{#select system.level}}
|
||||
{{#each config.traitLevel as |level key| }}
|
||||
<option value="{{level.value}}">{{level.text}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<select class="item-field-label-medium" type="text" name="system.level" value="{{system.level}}" data-dtype="String">
|
||||
{{selectOptions config.traitLevel selected=system.level labelAttr="text"}}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -22,11 +22,7 @@
|
||||
<li class="flexrow">
|
||||
<label class="item-name-label-long">{{localize "ECRY.ui.weapontype"}}</label>
|
||||
<select class="item-field-label-medium" type="text" name="system.weapontype" value="{{system.weapontype}}" data-dtype="String">
|
||||
{{#select system.weapontype}}
|
||||
{{#each config.weaponTypes as |type key| }}
|
||||
<option value="{{key}}">{{localize type}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.weaponTypes selected=system.weapontype localize=true}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
|
||||
@@ -8,11 +8,7 @@
|
||||
<label class="item-field-label-long">{{localize "ECRY.ui.cost"}}</label>
|
||||
<input type="text" class="item-field-label-short" name="system.cost" value="{{system.cost}}" data-dtype="Number" />
|
||||
<select class="item-field-label-medium" type="text" name="system.costunit" value="{{system.costunit}}" data-dtype="String">
|
||||
{{#select system.costunit}}
|
||||
{{#each config.costUnits as |unit key| }}
|
||||
<option value="{{key}}">{{localize unit.name}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.costUnits selected=system.costunit localize=true labelAttr="name"}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
|
||||
42
welcome-message-ecryme.html
Normal file
@@ -0,0 +1,42 @@
|
||||
<h3 class="welcome-message-h3">Bonjour à tous !</h3>
|
||||
|
||||
<div class="message-chat-center">
|
||||
👋 Juste un petit message pour vous informer que :
|
||||
<br />
|
||||
<strong
|
||||
>⚠️ Le nouveau financement participatif pour la prochaine extension
|
||||
d'Écryme, LES SECRETS DE L'ÉCRYME ouvre le 21 octobre !</strong
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="message-chat-center">
|
||||
⚠️ Suivez la page de pré-lancement ici pour être sûr de ne pas manquer le
|
||||
lancement : <br /><a href="https://shorturl.at/qDjg7"
|
||||
>https://shorturl.at/qDjg7</a
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="message-chat-center">
|
||||
Nous avons aussi un nouveau Discord pour ceux ou celles qui souhaiteraient
|
||||
participer plus activement à la communauté des jeux d'Open Sesame Games, avec
|
||||
un espace dédié aux écrymiens ! <br />
|
||||
Nouveaux joueurs comme vétérans sont les bienvenus, n'hésitez pas à passer
|
||||
pour papoter, profiter de nos ressources, ou suivre les nouvelles d'OSG plus
|
||||
directement. Cliquez ici :<br />
|
||||
<a href="https://discord.gg/dUPhNfJdaD">https://discord.gg/dUPhNfJdaD</a
|
||||
><br />
|
||||
</div>
|
||||
|
||||
<div class="message-chat-center">
|
||||
Ce système vous est proposé par Open Sesame Games.<br />
|
||||
Vous trouverez de l'aide dans
|
||||
@UUID[Compendium.fvtt-ecryme.help.JournalEntry.wooTFYjEwh83FwgT]{Aide pour
|
||||
Ecryme}<br />
|
||||
ainsi que sur le Discord de Foundry FR :<br>
|
||||
<a href="https://discord.gg/pPSDNJk">https://discord.gg/pPSDNJk</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Merci pour votre attention et à très bientôt pour la suite ! L'équipe Open
|
||||
Sesame Games
|
||||
</div>
|
||||