Compare commits
9 Commits
fvtt-ecrym
...
fvtt-ecrym
Author | SHA1 | Date | |
---|---|---|---|
dbf4b17afb | |||
51e5a409c4 | |||
1e4692e850 | |||
40e12c1bba | |||
2450dce46c | |||
67c1066194 | |||
65fe498572 | |||
e1990f88b4 | |||
f99abb0966 |
11
changelog.md
@ -1,3 +1,14 @@
|
||||
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
|
||||
|
4
images/.directory
Normal file
@ -0,0 +1,4 @@
|
||||
[Dolphin]
|
||||
Timestamp=2024,3,15,11,30,15.103
|
||||
Version=4
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
4
images/assets/.directory
Normal file
@ -0,0 +1,4 @@
|
||||
[Dolphin]
|
||||
Timestamp=2024,3,15,11,30,26.235
|
||||
Version=4
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
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_landing_01.webp
Normal file
After Width: | Height: | Size: 388 KiB |
BIN
images/assets/ecryme_level.png
Normal file
After Width: | Height: | Size: 248 KiB |
4
images/ui/.directory
Normal file
@ -0,0 +1,4 @@
|
||||
[Dolphin]
|
||||
Timestamp=2024,3,15,11,30,19.681
|
||||
Version=4
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
@ -11,7 +11,7 @@ export class EcrymeActorSheet extends 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.description, { async: true }),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
|
||||
equipementlibre: await TextEditor.enrichHTML(this.object.system.equipementlibre, { async: true }),
|
||||
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 }),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@ -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()
|
||||
|
||||
// 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)
|
||||
}
|
||||
|
||||
skill = duplicate(skill)
|
||||
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,8 @@ 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)
|
||||
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
|
||||
confrontStartDialog.render(true)
|
||||
}
|
||||
@ -438,17 +456,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 +481,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 +496,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
|
||||
|
@ -11,7 +11,7 @@ export class EcrymeAnnencySheet extends 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,
|
||||
|
@ -57,6 +57,20 @@ 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": "EC,RY.ui.preservation"
|
||||
},
|
||||
bonusMalusPersoOptions: [
|
||||
{value: "-3", label: "-3"},
|
||||
{value: "-2", label: "-2"},
|
||||
{value: "-1", label: "-1"},
|
||||
{value: "0", label: "0"},
|
||||
{value: "+1", label: "+1"},
|
||||
{value: "+2", label: "+2"},
|
||||
{value: "+3", label: "+3"}
|
||||
]
|
||||
|
||||
|
||||
}
|
@ -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
|
||||
}
|
||||
@ -275,7 +276,7 @@ export class EcrymeUtility {
|
||||
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) {
|
||||
if (rollData.skill && rollData.skill.value >= i && !rollData.transcendUsed && rollData.spec) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@ -404,7 +405,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 +532,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 +540,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
|
||||
@ -565,9 +566,9 @@ 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
|
||||
|
||||
@ -682,7 +683,7 @@ export class EcrymeUtility {
|
||||
/* -------------------------------------------- */
|
||||
static getBasicRollData() {
|
||||
let rollData = {
|
||||
rollId: randomID(16),
|
||||
rollId: foundry.utils.randomID(16),
|
||||
type: "roll-data",
|
||||
bonusMalusPerso: 0,
|
||||
bonusMalusSituation: 0,
|
||||
@ -695,7 +696,7 @@ export class EcrymeUtility {
|
||||
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
|
||||
|
@ -6,7 +6,7 @@ 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
|
||||
@ -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
|
||||
|
@ -50,15 +50,15 @@ export class EcrymeConfrontStartDialog extends Dialog {
|
||||
/* -------------------------------------------- */
|
||||
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)
|
||||
}
|
||||
|
@ -67,7 +67,6 @@ Hooks.once("init", async function () {
|
||||
|
||||
EcrymeUtility.init()
|
||||
|
||||
console.log("Babele INIT!")
|
||||
Babele.get().setSystemTranslationsDir("translated")
|
||||
|
||||
});
|
||||
@ -84,28 +83,13 @@ function welcomeMessage() {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register world usage statistics
|
||||
function registerUsageCount(registerKey) {
|
||||
if (game.user.isGM) {
|
||||
game.settings.register(registerKey, "world-key", {
|
||||
name: "Unique world key",
|
||||
scope: "world",
|
||||
config: false,
|
||||
default: "",
|
||||
type: String
|
||||
});
|
||||
|
||||
let worldKey = game.settings.get(registerKey, "world-key")
|
||||
if (worldKey == undefined || worldKey == "") {
|
||||
worldKey = randomID(32)
|
||||
game.settings.set(registerKey, "world-key", worldKey)
|
||||
}
|
||||
// Simple API counter
|
||||
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
|
||||
//$.ajaxSetup({
|
||||
//headers: { 'Access-Control-Allow-Origin': '*' }
|
||||
//})
|
||||
$.ajax(regURL)
|
||||
async function importDefaultScene() {
|
||||
let exists = game.scenes.find(j => j.name == "Landing page 1");
|
||||
if (!exists) {
|
||||
const scenes = await EcrymeUtility.loadCompendium("fvtt-ecryme.scenes")
|
||||
let newDocuments = scenes.filter(i => i.name == "Landing page 1");
|
||||
await game.scenes.documentClass.create(newDocuments);
|
||||
game.scenes.find(i => i.name == "Landing page 1").activate();
|
||||
}
|
||||
}
|
||||
|
||||
@ -123,10 +107,17 @@ Hooks.once("ready", function () {
|
||||
});
|
||||
}
|
||||
|
||||
registerUsageCount(game.system.id)
|
||||
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||
console.log("ClassCounter loaded", moduleCounter)
|
||||
moduleCounter.ClassCounter.registerUsageCount()
|
||||
}).catch(err=>
|
||||
console.log("No stats available, giving up.")
|
||||
)
|
||||
|
||||
welcomeMessage();
|
||||
EcrymeUtility.ready()
|
||||
EcrymeCharacterSummary.ready()
|
||||
EcrymeUtility.ready();
|
||||
EcrymeCharacterSummary.ready();
|
||||
importDefaultScene();
|
||||
|
||||
})
|
||||
|
||||
|
@ -8,7 +8,7 @@ export class EcrymeItemSheet extends 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,8 +56,8 @@ 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,
|
||||
@ -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/000158.ldb
Normal file
@ -1 +1 @@
|
||||
MANIFEST-000110
|
||||
MANIFEST-000159
|
||||
|
@ -1,7 +1,7 @@
|
||||
2023/10/11-23:48:51.541808 7ffafd7f96c0 Recovering log #108
|
||||
2023/10/11-23:48:51.552684 7ffafd7f96c0 Delete type=3 #106
|
||||
2023/10/11-23:48:51.552736 7ffafd7f96c0 Delete type=0 #108
|
||||
2023/10/12-08:26:09.141923 7ff865e026c0 Level-0 table #113: started
|
||||
2023/10/12-08:26:09.141979 7ff865e026c0 Level-0 table #113: 0 bytes OK
|
||||
2023/10/12-08:26:09.148564 7ff865e026c0 Delete type=0 #111
|
||||
2023/10/12-08:26:09.156649 7ff865e026c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:22:08.707793 7f89060006c0 Recovering log #156
|
||||
2024/04/26-19:22:08.718085 7f89060006c0 Delete type=3 #154
|
||||
2024/04/26-19:22:08.718160 7f89060006c0 Delete type=0 #156
|
||||
2024/04/26-19:25:18.674002 7f88ffe006c0 Level-0 table #162: started
|
||||
2024/04/26-19:25:18.674046 7f88ffe006c0 Level-0 table #162: 0 bytes OK
|
||||
2024/04/26-19:25:18.715930 7f88ffe006c0 Delete type=0 #160
|
||||
2024/04/26-19:25:18.747436 7f88ffe006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,14 @@
|
||||
2023/10/10-15:44:15.214470 7fb8baffd6c0 Recovering log #104
|
||||
2023/10/10-15:44:15.228942 7fb8baffd6c0 Delete type=3 #102
|
||||
2023/10/10-15:44:15.229018 7fb8baffd6c0 Delete type=0 #104
|
||||
2023/10/10-16:47:17.816560 7fb8b97fa6c0 Level-0 table #109: started
|
||||
2023/10/10-16:47:17.816585 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
|
||||
2023/10/10-16:47:17.822797 7fb8b97fa6c0 Delete type=0 #107
|
||||
2023/10/10-16:47:17.832584 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-18:42:26.253704 7f89060006c0 Recovering log #152
|
||||
2024/04/26-18:42:26.264507 7f89060006c0 Delete type=3 #150
|
||||
2024/04/26-18:42:26.264666 7f89060006c0 Delete type=0 #152
|
||||
2024/04/26-19:22:04.326808 7f88ffe006c0 Level-0 table #157: started
|
||||
2024/04/26-19:22:04.330698 7f88ffe006c0 Level-0 table #157: 26343 bytes OK
|
||||
2024/04/26-19:22:04.337326 7f88ffe006c0 Delete type=0 #155
|
||||
2024/04/26-19:22:04.358386 7f88ffe006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at '!items!zs7krgXhDRndtqbl' @ 338 : 1
|
||||
2024/04/26-19:22:04.358402 7f88ffe006c0 Compacting 1@0 + 1@1 files
|
||||
2024/04/26-19:22:04.362396 7f88ffe006c0 Generated table #158@0: 174 keys, 27263 bytes
|
||||
2024/04/26-19:22:04.362426 7f88ffe006c0 Compacted 1@0 + 1@1 files => 27263 bytes
|
||||
2024/04/26-19:22:04.368459 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2024/04/26-19:22:04.368664 7f88ffe006c0 Delete type=2 #9
|
||||
2024/04/26-19:22:04.368919 7f88ffe006c0 Delete type=2 #157
|
||||
2024/04/26-19:22:04.400712 7f88ffe006c0 Manual compaction at level-0 from '!items!zs7krgXhDRndtqbl' @ 338 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
|
||||
|
BIN
packs/equipment/MANIFEST-000159
Normal file
BIN
packs/help/000095.ldb
Normal file
@ -1 +1 @@
|
||||
MANIFEST-000046
|
||||
MANIFEST-000096
|
||||
|
@ -1,8 +1,8 @@
|
||||
2023/10/11-23:48:51.581592 7ffafdffa6c0 Recovering log #44
|
||||
2023/10/11-23:48:51.591855 7ffafdffa6c0 Delete type=3 #42
|
||||
2023/10/11-23:48:51.591921 7ffafdffa6c0 Delete type=0 #44
|
||||
2023/10/12-08:26:09.156682 7ff865e026c0 Level-0 table #49: started
|
||||
2023/10/12-08:26:09.156770 7ff865e026c0 Level-0 table #49: 0 bytes OK
|
||||
2023/10/12-08:26:09.164722 7ff865e026c0 Delete type=0 #47
|
||||
2023/10/12-08:26:09.174057 7ff865e026c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2023/10/12-08:26:09.174129 7ff865e026c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:22:08.762783 7f89074006c0 Recovering log #93
|
||||
2024/04/26-19:22:08.773921 7f89074006c0 Delete type=3 #91
|
||||
2024/04/26-19:22:08.774007 7f89074006c0 Delete type=0 #93
|
||||
2024/04/26-19:25:18.785678 7f88ffe006c0 Level-0 table #99: started
|
||||
2024/04/26-19:25:18.785720 7f88ffe006c0 Level-0 table #99: 0 bytes OK
|
||||
2024/04/26-19:25:18.821605 7f88ffe006c0 Delete type=0 #97
|
||||
2024/04/26-19:25:18.901806 7f88ffe006c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:25:18.901870 7f88ffe006c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,8 +1,15 @@
|
||||
2023/10/10-15:44:15.264794 7fb8bb7fe6c0 Recovering log #40
|
||||
2023/10/10-15:44:15.274945 7fb8bb7fe6c0 Delete type=3 #38
|
||||
2023/10/10-15:44:15.275026 7fb8bb7fe6c0 Delete type=0 #40
|
||||
2023/10/10-16:47:17.838950 7fb8b97fa6c0 Level-0 table #45: started
|
||||
2023/10/10-16:47:17.838969 7fb8b97fa6c0 Level-0 table #45: 0 bytes OK
|
||||
2023/10/10-16:47:17.846123 7fb8b97fa6c0 Delete type=0 #43
|
||||
2023/10/10-16:47:17.846349 7fb8b97fa6c0 Manual compaction at level-0 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2023/10/10-16:47:17.846379 7fb8b97fa6c0 Manual compaction at level-1 from '!journal!N3XOO6dRLuKwQfp2' @ 72057594037927935 : 1 .. '!journal.pages!N3XOO6dRLuKwQfp2.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-18:42:26.318647 7f8906a006c0 Recovering log #89
|
||||
2024/04/26-18:42:26.329907 7f8906a006c0 Delete type=3 #87
|
||||
2024/04/26-18:42:26.329974 7f8906a006c0 Delete type=0 #89
|
||||
2024/04/26-19:22:04.427916 7f88ffe006c0 Level-0 table #94: started
|
||||
2024/04/26-19:22:04.431410 7f88ffe006c0 Level-0 table #94: 2184 bytes OK
|
||||
2024/04/26-19:22:04.438566 7f88ffe006c0 Delete type=0 #92
|
||||
2024/04/26-19:22:04.449035 7f88ffe006c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:22:04.449082 7f88ffe006c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 14 : 1
|
||||
2024/04/26-19:22:04.449091 7f88ffe006c0 Compacting 1@1 + 1@2 files
|
||||
2024/04/26-19:22:04.452506 7f88ffe006c0 Generated table #95@1: 4 keys, 2184 bytes
|
||||
2024/04/26-19:22:04.452542 7f88ffe006c0 Compacted 1@1 + 1@2 files => 2184 bytes
|
||||
2024/04/26-19:22:04.458702 7f88ffe006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2024/04/26-19:22:04.458800 7f88ffe006c0 Delete type=2 #74
|
||||
2024/04/26-19:22:04.458954 7f88ffe006c0 Delete type=2 #94
|
||||
2024/04/26-19:22:04.482775 7f88ffe006c0 Manual compaction at level-1 from '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 14 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
|
||||
|
BIN
packs/help/MANIFEST-000096
Normal file
BIN
packs/maneuvers/000158.ldb
Normal file
@ -1 +1 @@
|
||||
MANIFEST-000110
|
||||
MANIFEST-000159
|
||||
|
@ -1,7 +1,7 @@
|
||||
2023/10/11-23:48:51.568912 7ff867fff6c0 Recovering log #108
|
||||
2023/10/11-23:48:51.579440 7ff867fff6c0 Delete type=3 #106
|
||||
2023/10/11-23:48:51.579511 7ff867fff6c0 Delete type=0 #108
|
||||
2023/10/12-08:26:09.164906 7ff865e026c0 Level-0 table #113: started
|
||||
2023/10/12-08:26:09.164969 7ff865e026c0 Level-0 table #113: 0 bytes OK
|
||||
2023/10/12-08:26:09.173679 7ff865e026c0 Delete type=0 #111
|
||||
2023/10/12-08:26:09.174093 7ff865e026c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:22:08.749669 7f8906a006c0 Recovering log #156
|
||||
2024/04/26-19:22:08.759716 7f8906a006c0 Delete type=3 #154
|
||||
2024/04/26-19:22:08.759885 7f8906a006c0 Delete type=0 #156
|
||||
2024/04/26-19:25:18.747562 7f88ffe006c0 Level-0 table #162: started
|
||||
2024/04/26-19:25:18.747596 7f88ffe006c0 Level-0 table #162: 0 bytes OK
|
||||
2024/04/26-19:25:18.785476 7f88ffe006c0 Delete type=0 #160
|
||||
2024/04/26-19:25:18.901779 7f88ffe006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,14 @@
|
||||
2023/10/10-15:44:15.251468 7fb8ba7fc6c0 Recovering log #104
|
||||
2023/10/10-15:44:15.263005 7fb8ba7fc6c0 Delete type=3 #102
|
||||
2023/10/10-15:44:15.263083 7fb8ba7fc6c0 Delete type=0 #104
|
||||
2023/10/10-16:47:17.832601 7fb8b97fa6c0 Level-0 table #109: started
|
||||
2023/10/10-16:47:17.832642 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
|
||||
2023/10/10-16:47:17.838860 7fb8b97fa6c0 Delete type=0 #107
|
||||
2023/10/10-16:47:17.846327 7fb8b97fa6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-18:42:26.305585 7f89056006c0 Recovering log #152
|
||||
2024/04/26-18:42:26.316048 7f89056006c0 Delete type=3 #150
|
||||
2024/04/26-18:42:26.316142 7f89056006c0 Delete type=0 #152
|
||||
2024/04/26-19:22:04.400858 7f88ffe006c0 Level-0 table #157: started
|
||||
2024/04/26-19:22:04.404082 7f88ffe006c0 Level-0 table #157: 6648 bytes OK
|
||||
2024/04/26-19:22:04.410232 7f88ffe006c0 Delete type=0 #155
|
||||
2024/04/26-19:22:04.438765 7f88ffe006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at '!items!oSutlbe9wyBZccmf' @ 45 : 1
|
||||
2024/04/26-19:22:04.438781 7f88ffe006c0 Compacting 1@0 + 1@1 files
|
||||
2024/04/26-19:22:04.442180 7f88ffe006c0 Generated table #158@0: 15 keys, 6648 bytes
|
||||
2024/04/26-19:22:04.442217 7f88ffe006c0 Compacted 1@0 + 1@1 files => 6648 bytes
|
||||
2024/04/26-19:22:04.448645 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2024/04/26-19:22:04.448777 7f88ffe006c0 Delete type=2 #9
|
||||
2024/04/26-19:22:04.448921 7f88ffe006c0 Delete type=2 #157
|
||||
2024/04/26-19:22:04.449050 7f88ffe006c0 Manual compaction at level-0 from '!items!oSutlbe9wyBZccmf' @ 45 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
|
||||
|
BIN
packs/maneuvers/MANIFEST-000159
Normal file
BIN
packs/scenes/000042.ldb
Normal file
1
packs/scenes/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000043
|
8
packs/scenes/LOG
Normal file
@ -0,0 +1,8 @@
|
||||
2024/04/26-19:22:08.735377 7f89074006c0 Recovering log #40
|
||||
2024/04/26-19:22:08.745776 7f89074006c0 Delete type=3 #38
|
||||
2024/04/26-19:22:08.745887 7f89074006c0 Delete type=0 #40
|
||||
2024/04/26-19:25:18.595904 7f88ffe006c0 Level-0 table #46: started
|
||||
2024/04/26-19:25:18.595980 7f88ffe006c0 Level-0 table #46: 0 bytes OK
|
||||
2024/04/26-19:25:18.630930 7f88ffe006c0 Delete type=0 #44
|
||||
2024/04/26-19:25:18.747411 7f88ffe006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:25:18.747487 7f88ffe006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
15
packs/scenes/LOG.old
Normal file
@ -0,0 +1,15 @@
|
||||
2024/04/26-18:42:26.291319 7f8906a006c0 Recovering log #36
|
||||
2024/04/26-18:42:26.301937 7f8906a006c0 Delete type=3 #34
|
||||
2024/04/26-18:42:26.302002 7f8906a006c0 Delete type=0 #36
|
||||
2024/04/26-19:22:04.316977 7f88ffe006c0 Level-0 table #41: started
|
||||
2024/04/26-19:22:04.320512 7f88ffe006c0 Level-0 table #41: 1610 bytes OK
|
||||
2024/04/26-19:22:04.326671 7f88ffe006c0 Delete type=0 #39
|
||||
2024/04/26-19:22:04.358352 7f88ffe006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:22:04.389705 7f88ffe006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at '!scenes!wJJTdzEVyJpkUXaM' @ 4 : 1
|
||||
2024/04/26-19:22:04.389720 7f88ffe006c0 Compacting 1@1 + 1@2 files
|
||||
2024/04/26-19:22:04.392996 7f88ffe006c0 Generated table #42@1: 2 keys, 1610 bytes
|
||||
2024/04/26-19:22:04.393035 7f88ffe006c0 Compacted 1@1 + 1@2 files => 1610 bytes
|
||||
2024/04/26-19:22:04.400428 7f88ffe006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2024/04/26-19:22:04.400531 7f88ffe006c0 Delete type=2 #5
|
||||
2024/04/26-19:22:04.400646 7f88ffe006c0 Delete type=2 #41
|
||||
2024/04/26-19:22:04.400749 7f88ffe006c0 Manual compaction at level-1 from '!scenes!wJJTdzEVyJpkUXaM' @ 4 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
|
BIN
packs/scenes/MANIFEST-000043
Normal file
BIN
packs/specialisation/000158.ldb
Normal file
0
packs/specialisation/000161.log
Normal file
@ -1 +1 @@
|
||||
MANIFEST-000110
|
||||
MANIFEST-000159
|
||||
|
@ -1,7 +1,7 @@
|
||||
2023/10/11-23:48:51.528323 7ffafdffa6c0 Recovering log #108
|
||||
2023/10/11-23:48:51.539236 7ffafdffa6c0 Delete type=3 #106
|
||||
2023/10/11-23:48:51.539371 7ffafdffa6c0 Delete type=0 #108
|
||||
2023/10/12-08:26:09.134584 7ff865e026c0 Level-0 table #113: started
|
||||
2023/10/12-08:26:09.134646 7ff865e026c0 Level-0 table #113: 0 bytes OK
|
||||
2023/10/12-08:26:09.141658 7ff865e026c0 Delete type=0 #111
|
||||
2023/10/12-08:26:09.148759 7ff865e026c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:22:08.694940 7f89056006c0 Recovering log #156
|
||||
2024/04/26-19:22:08.705096 7f89056006c0 Delete type=3 #154
|
||||
2024/04/26-19:22:08.705158 7f89056006c0 Delete type=0 #156
|
||||
2024/04/26-19:25:18.631092 7f88ffe006c0 Level-0 table #162: started
|
||||
2024/04/26-19:25:18.631157 7f88ffe006c0 Level-0 table #162: 0 bytes OK
|
||||
2024/04/26-19:25:18.673806 7f88ffe006c0 Delete type=0 #160
|
||||
2024/04/26-19:25:18.747426 7f88ffe006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,14 @@
|
||||
2023/10/10-15:44:15.196298 7fb8bb7fe6c0 Recovering log #104
|
||||
2023/10/10-15:44:15.211750 7fb8bb7fe6c0 Delete type=3 #102
|
||||
2023/10/10-15:44:15.211839 7fb8bb7fe6c0 Delete type=0 #104
|
||||
2023/10/10-16:47:17.809484 7fb8b97fa6c0 Level-0 table #109: started
|
||||
2023/10/10-16:47:17.809511 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
|
||||
2023/10/10-16:47:17.816437 7fb8b97fa6c0 Delete type=0 #107
|
||||
2023/10/10-16:47:17.832558 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-18:42:26.237456 7f89074006c0 Recovering log #152
|
||||
2024/04/26-18:42:26.248857 7f89074006c0 Delete type=3 #150
|
||||
2024/04/26-18:42:26.249007 7f89074006c0 Delete type=0 #152
|
||||
2024/04/26-19:22:04.337456 7f88ffe006c0 Level-0 table #157: started
|
||||
2024/04/26-19:22:04.340711 7f88ffe006c0 Level-0 table #157: 14514 bytes OK
|
||||
2024/04/26-19:22:04.346950 7f88ffe006c0 Delete type=0 #155
|
||||
2024/04/26-19:22:04.369097 7f88ffe006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at '!items!yozTUjNuc2rEGjFK' @ 208 : 1
|
||||
2024/04/26-19:22:04.369120 7f88ffe006c0 Compacting 1@0 + 1@1 files
|
||||
2024/04/26-19:22:04.373318 7f88ffe006c0 Generated table #158@0: 113 keys, 16306 bytes
|
||||
2024/04/26-19:22:04.373343 7f88ffe006c0 Compacted 1@0 + 1@1 files => 16306 bytes
|
||||
2024/04/26-19:22:04.379990 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2024/04/26-19:22:04.380097 7f88ffe006c0 Delete type=2 #9
|
||||
2024/04/26-19:22:04.380204 7f88ffe006c0 Delete type=2 #157
|
||||
2024/04/26-19:22:04.400725 7f88ffe006c0 Manual compaction at level-0 from '!items!yozTUjNuc2rEGjFK' @ 208 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
|
||||
|
BIN
packs/specialisation/MANIFEST-000159
Normal file
BIN
packs/traits/000158.ldb
Normal file
0
packs/traits/000161.log
Normal file
@ -1 +1 @@
|
||||
MANIFEST-000110
|
||||
MANIFEST-000159
|
||||
|
@ -1,7 +1,7 @@
|
||||
2023/10/11-23:48:51.555605 7ffafcff86c0 Recovering log #108
|
||||
2023/10/11-23:48:51.566715 7ffafcff86c0 Delete type=3 #106
|
||||
2023/10/11-23:48:51.566824 7ffafcff86c0 Delete type=0 #108
|
||||
2023/10/12-08:26:09.148992 7ff865e026c0 Level-0 table #113: started
|
||||
2023/10/12-08:26:09.149043 7ff865e026c0 Level-0 table #113: 0 bytes OK
|
||||
2023/10/12-08:26:09.156386 7ff865e026c0 Delete type=0 #111
|
||||
2023/10/12-08:26:09.173997 7ff865e026c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-19:22:08.721470 7f8906a006c0 Recovering log #156
|
||||
2024/04/26-19:22:08.732531 7f8906a006c0 Delete type=3 #154
|
||||
2024/04/26-19:22:08.732624 7f8906a006c0 Delete type=0 #156
|
||||
2024/04/26-19:25:18.716069 7f88ffe006c0 Level-0 table #162: started
|
||||
2024/04/26-19:25:18.716099 7f88ffe006c0 Level-0 table #162: 0 bytes OK
|
||||
2024/04/26-19:25:18.747273 7f88ffe006c0 Delete type=0 #160
|
||||
2024/04/26-19:25:18.747446 7f88ffe006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,7 +1,14 @@
|
||||
2023/10/10-15:44:15.233698 7fb8b9ffb6c0 Recovering log #104
|
||||
2023/10/10-15:44:15.249165 7fb8b9ffb6c0 Delete type=3 #102
|
||||
2023/10/10-15:44:15.249275 7fb8b9ffb6c0 Delete type=0 #104
|
||||
2023/10/10-16:47:17.823003 7fb8b97fa6c0 Level-0 table #109: started
|
||||
2023/10/10-16:47:17.823041 7fb8b97fa6c0 Level-0 table #109: 0 bytes OK
|
||||
2023/10/10-16:47:17.832350 7fb8b97fa6c0 Delete type=0 #107
|
||||
2023/10/10-16:47:17.838938 7fb8b97fa6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
2024/04/26-18:42:26.268836 7f89056006c0 Recovering log #152
|
||||
2024/04/26-18:42:26.284952 7f89056006c0 Delete type=3 #150
|
||||
2024/04/26-18:42:26.285029 7f89056006c0 Delete type=0 #152
|
||||
2024/04/26-19:22:04.347189 7f88ffe006c0 Level-0 table #157: started
|
||||
2024/04/26-19:22:04.350819 7f88ffe006c0 Level-0 table #157: 3577 bytes OK
|
||||
2024/04/26-19:22:04.358154 7f88ffe006c0 Delete type=0 #155
|
||||
2024/04/26-19:22:04.380268 7f88ffe006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at '!items!zgNI2haxhBxBDBdl' @ 98 : 1
|
||||
2024/04/26-19:22:04.380277 7f88ffe006c0 Compacting 1@0 + 1@1 files
|
||||
2024/04/26-19:22:04.383386 7f88ffe006c0 Generated table #158@0: 25 keys, 4133 bytes
|
||||
2024/04/26-19:22:04.383409 7f88ffe006c0 Compacted 1@0 + 1@1 files => 4133 bytes
|
||||
2024/04/26-19:22:04.389454 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2024/04/26-19:22:04.389551 7f88ffe006c0 Delete type=2 #9
|
||||
2024/04/26-19:22:04.389636 7f88ffe006c0 Delete type=2 #157
|
||||
2024/04/26-19:22:04.400736 7f88ffe006c0 Manual compaction at level-0 from '!items!zgNI2haxhBxBDBdl' @ 98 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
|
||||
|
BIN
packs/traits/MANIFEST-000159
Normal file
@ -1265,6 +1265,7 @@ ul, li {
|
||||
min-width: 12rem;
|
||||
}
|
||||
.item-name-label-short {
|
||||
margin-top: 4px;
|
||||
flex-grow:1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
@ -1275,6 +1276,16 @@ ul, li {
|
||||
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;
|
||||
@ -1287,10 +1298,17 @@ ul, li {
|
||||
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;
|
||||
@ -1331,6 +1349,11 @@ ul, li {
|
||||
.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;
|
||||
|
@ -1245,6 +1245,7 @@ ul, li {
|
||||
min-width: 12rem;
|
||||
}
|
||||
.item-name-label-short {
|
||||
margin-top: 4px;
|
||||
flex-grow:1;
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
@ -1255,6 +1256,16 @@ ul, li {
|
||||
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;
|
||||
@ -1267,10 +1278,17 @@ ul, li {
|
||||
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;
|
||||
@ -1311,6 +1329,11 @@ ul, li {
|
||||
.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;
|
||||
|
20
system.json
@ -62,6 +62,18 @@
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Scenes",
|
||||
"type": "Scene",
|
||||
"name": "scenes",
|
||||
"path": "packs/scenes",
|
||||
"system": "fvtt-ecryme",
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Maneuvers",
|
||||
"type": "Item",
|
||||
@ -90,8 +102,8 @@
|
||||
"license": "LICENSE.txt",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/system.json",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "11"
|
||||
"minimum": "11",
|
||||
"verified": "12"
|
||||
},
|
||||
"id": "fvtt-ecryme",
|
||||
"primaryTokenAttribute": "secondary.health",
|
||||
@ -111,7 +123,7 @@
|
||||
},
|
||||
"title": "Ecryme, le Jeu de Rôles",
|
||||
"url": "https://www.uberwald.me/gitea/public/fvtt-ecryme",
|
||||
"version": "11.0.37",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v11.0.37.zip",
|
||||
"version": "12.0.0",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v12.0.0.zip",
|
||||
"background": "systems/fvtt-ecryme/images/assets/ecryme_extract_panel_01.webp"
|
||||
}
|
@ -28,6 +28,7 @@
|
||||
"skills": {
|
||||
"physical": {
|
||||
"name": "ECRY.ui.physical",
|
||||
"pnjvalue": 0,
|
||||
"skilllist": {
|
||||
"athletics": {
|
||||
"name": "ECRY.ui.athletics",
|
||||
@ -58,6 +59,7 @@
|
||||
},
|
||||
"mental": {
|
||||
"name": "ECRY.ui.mental",
|
||||
"pnjvalue": 0,
|
||||
"skilllist": {
|
||||
"anthropomecanology": {
|
||||
"name": "ECRY.ui.anthropomecanology",
|
||||
@ -88,6 +90,7 @@
|
||||
},
|
||||
"social": {
|
||||
"name": "ECRY.ui.social",
|
||||
"pnjvalue": 0,
|
||||
"skilllist": {
|
||||
"quibbling": {
|
||||
"name": "ECRY.ui.quibbling",
|
||||
|
@ -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">
|
||||
|
@ -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>
|
||||
|
||||
@ -122,15 +115,7 @@
|
||||
<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}}
|
||||
{{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso valueAttr="value" 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>
|
||||
|
||||
@ -76,15 +72,7 @@
|
||||
<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}}
|
||||
{{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso valueAttr="value" 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="Number">
|
||||
{{selectOptions config.difficulty selected=difficulty localize=true valueAttr="value" 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" textAttr="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>
|
||||
{{selectOptions config.traitLevel selected=system.level valueAttr="value" textAttr="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}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
|
@ -2,6 +2,18 @@
|
||||
"label": "Equipement",
|
||||
"mapping": {
|
||||
"description": "system.description"
|
||||
},
|
||||
"folders": {
|
||||
"Armor": "Armure",
|
||||
"Weapons": "Armes",
|
||||
"Clothing": "Vêtements",
|
||||
"Food": "Nourriture",
|
||||
"Lighting": "Eclairage",
|
||||
"Miscellany" : "Divers",
|
||||
"Musical instruments": "Instruments de musique",
|
||||
"Reading, writing, recording": "Lecture, écriture, enregistrement",
|
||||
"Travel equipment": "Equipement de voyage",
|
||||
"Vehicle": "Véhicule"
|
||||
},
|
||||
"entries": {
|
||||
"Absinthe": {
|
||||
|
@ -2,6 +2,11 @@
|
||||
"label": "Spécialisation",
|
||||
"mapping": {
|
||||
"description": "system.description"
|
||||
},
|
||||
"folders": {
|
||||
"Mental": "Mentale",
|
||||
"Physical": "Physique",
|
||||
"Spocial": "Sociale"
|
||||
},
|
||||
"entries": {
|
||||
"Aircraft": {
|
||||
|
@ -2,6 +2,9 @@
|
||||
"label": "Traits",
|
||||
"mapping": {
|
||||
"description": "system.description"
|
||||
},
|
||||
"folders": {
|
||||
"Maneuvers": "Manoeuvres"
|
||||
},
|
||||
"entries": {
|
||||
"Ability to stay calm": {
|
||||
|