Compare commits
28 Commits
fvtt-les-h
...
master
Author | SHA1 | Date | |
---|---|---|---|
51a457ebf6 | |||
2e9c558027 | |||
bcd0758328 | |||
2b680a203f | |||
e3d7874dce | |||
ab6a5832c0 | |||
d83a999974 | |||
b83890a764 | |||
5ad3c165e5 | |||
2b3e774cbb | |||
96f8d2bceb | |||
e288c90ee4 | |||
8916de8613 | |||
8598df5a57 | |||
8781462c8d | |||
8c38aead3e | |||
67bf71e6c0 | |||
63d15e82bb | |||
62c3787cea | |||
df61abac19 | |||
a7d1a14c52 | |||
b0dc6f36e4 | |||
5109d2aa91 | |||
51c162ecbb | |||
44d02b0cd1 | |||
9b1600304a | |||
2dff59c829 | |||
55a2a8e3c3 |
BIN
assets/icons/sort.webp
Normal file
BIN
assets/icons/sort.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 88 KiB |
BIN
assets/scenes/8DjkNeeujp2qff1N-thumb.webp
Normal file
BIN
assets/scenes/8DjkNeeujp2qff1N-thumb.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
BIN
assets/scenes/ZjIQTg8S4hLZ4kXN-thumb.webp
Normal file
BIN
assets/scenes/ZjIQTg8S4hLZ4kXN-thumb.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/scenes/aanMTXv8znDyE6qb-thumb.webp
Normal file
BIN
assets/scenes/aanMTXv8znDyE6qb-thumb.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/scenes/ypDutqjqZcr7lx6I-thumb.webp
Normal file
BIN
assets/scenes/ypDutqjqZcr7lx6I-thumb.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/ui/heritiers_background_01.webp
Normal file
BIN
assets/ui/heritiers_background_01.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 192 KiB |
46
lang/fr.json
46
lang/fr.json
@ -1,30 +1,24 @@
|
||||
{
|
||||
"ACTOR": {
|
||||
"TypePersonnage": "Personnage",
|
||||
"TypePNJ": "PNJ"
|
||||
},
|
||||
|
||||
"ITEM": {
|
||||
"TypeArtefact": "Artefact",
|
||||
"TypeArme": "Arme",
|
||||
"TypeTalent": "Talent",
|
||||
"TypeHistorique": "Historique",
|
||||
"TypeProfil": "Profil",
|
||||
"TypeCompetence": "Compétence",
|
||||
"TypeProtection": "Protection",
|
||||
"TypeMonnaie": "Monnaie",
|
||||
"TypeEquipement": "Equipement",
|
||||
"TypeRessource": "Ressource",
|
||||
"TypeContact": "Contact"
|
||||
|
||||
},
|
||||
|
||||
"HAWKMOON": {
|
||||
"ui": {
|
||||
"editContact": "Modifier le contact",
|
||||
"deleteContact": "Supprimer le contact",
|
||||
"editTrait": "Modifier le trait",
|
||||
"deleteTrait": "Supprimer le trait"
|
||||
"TYPES": {
|
||||
"Actor": {
|
||||
"personnage": "Personnage",
|
||||
"pnj": "PNJ"
|
||||
},
|
||||
"Item": {
|
||||
"accessoire": "Accessoire",
|
||||
"arme": "Arme",
|
||||
"atoutfeerique": "Atout féerique",
|
||||
"avantage": "Avantage",
|
||||
"capacitenaturelle": "Capacité naturelle",
|
||||
"competence": "Compétence",
|
||||
"contact": "Contact",
|
||||
"desavantage": "Désavantage",
|
||||
"equipement": "Equipement",
|
||||
"fee": "Fée",
|
||||
"pouvoir": "Pouvoir",
|
||||
"profil": "Profil",
|
||||
"protection": "Protection",
|
||||
"sort": "Sort"
|
||||
}
|
||||
}
|
||||
}
|
@ -12,7 +12,7 @@ export class HeritiersActorPNJSheet extends HeritiersActorSheet {
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-les-heritiers", "sheet", "actor"],
|
||||
template: "systems/fvtt-les-heritiers/templates/actor-pnj-sheet.html",
|
||||
width: 780,
|
||||
|
@ -6,12 +6,12 @@
|
||||
import { HeritiersUtility } from "./heritiers-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class HeritiersActorSheet extends ActorSheet {
|
||||
export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-les-heritiers", "sheet", "actor"],
|
||||
template: "systems/fvtt-les-heritiers/templates/actor-sheet.html",
|
||||
width: 780,
|
||||
@ -24,7 +24,7 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const objectData = duplicate(this.object)
|
||||
const objectData = foundry.utils.duplicate(this.object)
|
||||
|
||||
let formData = {
|
||||
title: this.title,
|
||||
@ -42,26 +42,28 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
utileSkillsPhysical :this.actor.organizeUtileSkills("physical"),
|
||||
futileSkills :this.actor.organizeFutileSkills(),
|
||||
contacts: this.actor.organizeContacts(),
|
||||
armes: duplicate(this.actor.getWeapons()),
|
||||
monnaies: duplicate(this.actor.getMonnaies()),
|
||||
pouvoirs: duplicate(this.actor.getPouvoirs()),
|
||||
fee: duplicate(this.actor.getFee() || {} ),
|
||||
protections: duplicate(this.actor.getArmors()),
|
||||
combat: this.actor.getCombatValues(),
|
||||
equipements: duplicate(this.actor.getEquipments()),
|
||||
avantages: duplicate(this.actor.getAvantages()),
|
||||
atouts: duplicate(this.actor.getAtouts()),
|
||||
capacites: duplicate(this.actor.getCapacites()),
|
||||
desavantages: duplicate(this.actor.getDesavantages()),
|
||||
profils: duplicate(this.actor.getProfils()),
|
||||
pvMalus: this.actor.getPvMalus(),
|
||||
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
||||
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
||||
pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()),
|
||||
fee: foundry.utils.duplicate(this.actor.getFee() || {} ),
|
||||
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
||||
combat: this.actor.getCombatValues(),
|
||||
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
||||
avantages: foundry.utils.duplicate(this.actor.getAvantages()),
|
||||
atouts: foundry.utils.duplicate(this.actor.getAtouts()),
|
||||
capacites: foundry.utils.duplicate(this.actor.getCapacites()),
|
||||
desavantages: foundry.utils.duplicate(this.actor.getDesavantages()),
|
||||
profils: foundry.utils.duplicate(this.actor.getProfils()),
|
||||
pvMalus: this.actor.getPvMalus(),
|
||||
heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"),
|
||||
initiative: this.actor.getFlag("world", "last-initiative") || -1,
|
||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||
revesetranges: await TextEditor.enrichHTML(this.object.system.biodata.revesetranges, {async: true}),
|
||||
secretsdecouverts: await TextEditor.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}),
|
||||
questions: await TextEditor.enrichHTML(this.object.system.biodata.questions, {async: true}),
|
||||
habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
|
||||
playernotes: await TextEditor.enrichHTML(this.object.system.biodata.playernotes, {async: true}),
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||
revesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.revesetranges, {async: true}),
|
||||
secretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}),
|
||||
questions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.questions, {async: true}),
|
||||
habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, {async: true}),
|
||||
playernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.playernotes, {async: true}),
|
||||
magieList: this.actor.prepareMagie(),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@ -76,19 +78,42 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCelluleTalents( ) {
|
||||
let talents = []
|
||||
for(let cellule of game.actors) {
|
||||
if (cellule.type == "cellule") {
|
||||
let found = cellule.system.members.find( it => it.id == this.actor.id)
|
||||
if (found) {
|
||||
talents = talents.concat( cellule.getTalents() )
|
||||
dialogRecupUsage() {
|
||||
new Dialog({
|
||||
title: "Récupération des Points d'Usage",
|
||||
content: "<p>Combien de Points d'Usage souhaitez-vous récupérer ?</p>",
|
||||
buttons: {
|
||||
one: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "1 Point",
|
||||
callback: () => {
|
||||
this.actor.recupUsage(1)
|
||||
}
|
||||
},
|
||||
two: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "2 Points",
|
||||
callback: () => {
|
||||
this.actor.recupUsage(2)
|
||||
}
|
||||
},
|
||||
four: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "4 Points",
|
||||
callback: () => {
|
||||
this.actor.recupUsage(4)
|
||||
}
|
||||
},
|
||||
all: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Tous les Points",
|
||||
callback: () => {
|
||||
this.actor.recupUsage(100)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return talents
|
||||
}).render(true)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
activateListeners(html) {
|
||||
@ -96,14 +121,14 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
|
||||
// Everything below here is only needed if the sheet is editable
|
||||
if (!this.options.editable) return;
|
||||
|
||||
|
||||
// Update Inventory Item
|
||||
html.find('.item-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item")
|
||||
let itemId = li.data("item-id")
|
||||
const item = this.actor.items.get( itemId )
|
||||
item.sheet.render(true)
|
||||
})
|
||||
})
|
||||
// Delete Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
@ -125,7 +150,7 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
let value = Number($(event.currentTarget).data("adversite-value"))
|
||||
this.actor.incDecAdversite(adv, value)
|
||||
})
|
||||
|
||||
|
||||
html.find('.quantity-modify').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
const value = Number($(event.currentTarget).data("quantite-value"))
|
||||
@ -135,7 +160,7 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
html.find('.roll-initiative').click((event) => {
|
||||
this.actor.rollInitiative()
|
||||
})
|
||||
|
||||
|
||||
html.find('.roll-carac').click((event) => {
|
||||
const key = $(event.currentTarget).data("key")
|
||||
this.actor.rollCarac(key, false)
|
||||
@ -143,7 +168,7 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
html.find('.roll-rang').click((event) => {
|
||||
const key = $(event.currentTarget).data("rang-key")
|
||||
this.actor.rollRang(key, false)
|
||||
})
|
||||
})
|
||||
html.find('.roll-root-competence').click((event) => {
|
||||
const compKey = $(event.currentTarget).data("attr-key")
|
||||
this.actor.rollRootCompetence(compKey)
|
||||
@ -153,6 +178,11 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
let compId = li.data("item-id")
|
||||
this.actor.rollCompetence(compId)
|
||||
})
|
||||
html.find('.roll-sort').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
let sortId = li.data("item-id")
|
||||
this.actor.rollSort(sortId)
|
||||
})
|
||||
html.find('.roll-attaque-arme').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
let armeId = li.data("item-id")
|
||||
@ -162,7 +192,7 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
let armeId = li.data("item-id")
|
||||
this.actor.rollAttaqueBrutaleArme(armeId)
|
||||
})
|
||||
})
|
||||
html.find('.roll-attaque-charge-arme').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
let armeId = li.data("item-id")
|
||||
@ -173,30 +203,33 @@ export class HeritiersActorSheet extends ActorSheet {
|
||||
let armeId = li.data("item-id")
|
||||
this.actor.rollAssomerArme(armeId)
|
||||
})
|
||||
|
||||
|
||||
html.find('.roll-pouvoir').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item")
|
||||
let pouvoirId = li.data("item-id")
|
||||
this.actor.rollPouvoir(pouvoirId)
|
||||
})
|
||||
|
||||
html.find('.dialog-recup-usage').click((event) => {
|
||||
this.dialogRecupUsage()
|
||||
})
|
||||
|
||||
html.find('.item-add').click((event) => {
|
||||
const itemType = $(event.currentTarget).data("type")
|
||||
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
|
||||
})
|
||||
|
||||
|
||||
html.find('.lock-unlock-sheet').click((event) => {
|
||||
this.options.editScore = !this.options.editScore;
|
||||
this.render(true);
|
||||
});
|
||||
});
|
||||
html.find('.item-equip').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.equipItem( li.data("item-id") );
|
||||
this.render(true);
|
||||
this.render(true);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
setPosition(options = {}) {
|
||||
|
@ -41,7 +41,7 @@ export class HeritiersActor extends Actor {
|
||||
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
|
||||
data.items = []
|
||||
for (let skill of skills) {
|
||||
if (skill.system.categorie == "utile") {
|
||||
if (skill.system.categorie == "utile" && skill.system.profil != "magie") {
|
||||
data.items.push(skill.toObject())
|
||||
}
|
||||
}
|
||||
@ -54,7 +54,7 @@ export class HeritiersActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
prepareArme(arme) {
|
||||
arme = duplicate(arme)
|
||||
arme = foundry.utils.duplicate(arme)
|
||||
arme.system.isMelee = HeritiersUtility.isArmeMelee(arme)
|
||||
return arme
|
||||
}
|
||||
@ -73,7 +73,7 @@ export class HeritiersActor extends Actor {
|
||||
getOtherMeleeWeapons(excludeArme) {
|
||||
let armes = []
|
||||
for (let arme of this.items) {
|
||||
if ( HeritiersUtility.isArmeMelee(arme) && arme.id != excludeArme._id) {
|
||||
if (HeritiersUtility.isArmeMelee(arme) && arme.id != excludeArme._id) {
|
||||
armes.push(this.prepareArme(arme))
|
||||
}
|
||||
}
|
||||
@ -86,7 +86,7 @@ export class HeritiersActor extends Actor {
|
||||
|
||||
/* ----------------------- --------------------- */
|
||||
addMember(actorId) {
|
||||
let members = duplicate(this.system.members)
|
||||
let members = foundry.utils.duplicate(this.system.members)
|
||||
members.push({ id: actorId })
|
||||
this.update({ 'system.members': members })
|
||||
}
|
||||
@ -135,13 +135,55 @@ export class HeritiersActor extends Actor {
|
||||
return this.getItemSorted(["profil"])
|
||||
}
|
||||
getPouvoirs() {
|
||||
return this.getItemSorted(["pouvoir"])
|
||||
let pouvoirs = []
|
||||
for (let item of this.items) {
|
||||
if (item.type == "pouvoir") {
|
||||
let itemObj = foundry.utils.duplicate(item)
|
||||
itemObj.maxUsage = this.getPouvoirUsageMax(item)
|
||||
pouvoirs.push(itemObj)
|
||||
}
|
||||
}
|
||||
HeritiersUtility.sortArrayObjectsByName(pouvoirs)
|
||||
return pouvoirs
|
||||
}
|
||||
getSorts() {
|
||||
return this.getItemSorted(["sort"])
|
||||
}
|
||||
getCompetencesMagie() {
|
||||
let comp = []
|
||||
for (let item of this.items) {
|
||||
if (item.type == "competence" && item.system.profil == "magie") {
|
||||
let itemObj = foundry.utils.duplicate(item)
|
||||
comp.push(itemObj)
|
||||
}
|
||||
}
|
||||
HeritiersUtility.sortArrayObjectsByName(comp)
|
||||
return comp
|
||||
}
|
||||
prepareMagie() {
|
||||
let magieList = []
|
||||
for (let item of this.items) {
|
||||
if (item.type == "competence" && item.system.profil == "magie") {
|
||||
let magie = {}
|
||||
magie.name = item.name
|
||||
magie.competence = foundry.utils.duplicate(item)
|
||||
magie.sorts = []
|
||||
for (let sort of this.items) {
|
||||
if (sort.type == "sort" && sort.system.competence == item.name) {
|
||||
magie.sorts.push(sort)
|
||||
}
|
||||
}
|
||||
magieList.push(magie)
|
||||
}
|
||||
}
|
||||
return magieList
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getSkills() {
|
||||
let comp = []
|
||||
for (let item of this.items) {
|
||||
item = duplicate(item)
|
||||
item = foundry.utils.duplicate(item)
|
||||
if (item.type == "competence") {
|
||||
comp.push(item)
|
||||
}
|
||||
@ -152,7 +194,7 @@ export class HeritiersActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
prepareUtileSkill(item) {
|
||||
let specList = []
|
||||
if (item && item.system.categorie && item.system.categorie == "utile") {
|
||||
if (item?.system?.categorie == "utile") {
|
||||
for (let spec of item.system.specialites) {
|
||||
specList.push(spec.name)
|
||||
}
|
||||
@ -248,9 +290,39 @@ export class HeritiersActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async prepareData() {
|
||||
|
||||
let pvMax = (this.system.caracteristiques.con.rang * 3) + 9 + this.system.pv.mod
|
||||
if (this.system.pv.max != pvMax) {
|
||||
this.update({ 'system.pv.max': pvMax })
|
||||
}
|
||||
if (this.system.biodata.magie || this.type == "pnj") {
|
||||
let pointsAmes = this.system.caracteristiques.esp.rang + this.system.caracteristiques.san.rang + this.getMaxRangMagie()
|
||||
if (this.system.magie.pointsame.max != pointsAmes) {
|
||||
this.update({ 'system.magie.pointsame.max': pointsAmes })
|
||||
}
|
||||
}
|
||||
|
||||
super.prepareData();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getMaxRangMagie() {
|
||||
let niv = 0
|
||||
let bestMagie
|
||||
for (let comp of this.items) {
|
||||
if (comp.type == "competence" && comp.system.profil == "magie") {
|
||||
if (comp.system.niveau > niv) {
|
||||
bestMagie = comp
|
||||
niv = comp.system.niveau
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bestMagie) {
|
||||
return Math.round(bestMagie.system.niveau / 2)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
prepareDerivedData() {
|
||||
|
||||
@ -270,7 +342,7 @@ export class HeritiersActor 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;
|
||||
}
|
||||
@ -278,7 +350,7 @@ export class HeritiersActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async equipItem(itemId) {
|
||||
let item = this.items.find(item => item.id == itemId)
|
||||
if (item && item.system) {
|
||||
if (item?.system) {
|
||||
let update = { _id: item.id, "system.equipped": !item.system.equipped }
|
||||
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||
}
|
||||
@ -304,12 +376,12 @@ export class HeritiersActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
getPvMalus() {
|
||||
if (this.system.pv.value > 0) {
|
||||
if (this.system.pv.value < this.system.pv.max / 2) {
|
||||
return { name: "Santé", value: -1 }
|
||||
}
|
||||
if (this.system.pv.value < 5) {
|
||||
return { name: "Santé", value: -2 }
|
||||
}
|
||||
if (this.system.pv.value < this.system.pv.max / 2) {
|
||||
return { name: "Santé", value: -1 }
|
||||
}
|
||||
return { name: "Santé", value: 0 }
|
||||
}
|
||||
return { name: "Moribond(e)", value: -50 }
|
||||
@ -328,7 +400,7 @@ export class HeritiersActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCarac(attrKey) {
|
||||
return duplicate(this.system.caracteristiques)
|
||||
return foundry.utils.duplicate(this.system.caracteristiques)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -339,7 +411,7 @@ export class HeritiersActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async equipGear(equipmentId) {
|
||||
let item = this.items.find(item => item.id == equipmentId);
|
||||
if (item && item.system.data) {
|
||||
if (item?.system) {
|
||||
let update = { _id: item.id, "system.equipped": !item.system.equipped };
|
||||
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||
}
|
||||
@ -349,13 +421,13 @@ export class HeritiersActor 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,7 +449,7 @@ export class HeritiersActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async incDecAdversite(adv, incDec = 0) {
|
||||
let adversite = duplicate(this.system.adversite)
|
||||
let adversite = foundry.utils.duplicate(this.system.adversite)
|
||||
adversite[adv] += Number(incDec)
|
||||
adversite[adv] = Math.max(adversite[adv], 0)
|
||||
this.update({ 'system.adversite': adversite })
|
||||
@ -424,7 +496,7 @@ export class HeritiersActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async setPredilectionUsed(compId, predIdx) {
|
||||
let comp = this.items.get(compId)
|
||||
let pred = duplicate(comp.system.predilections)
|
||||
let pred = foundry.utils.duplicate(comp.system.predilections)
|
||||
pred[predIdx].used = true
|
||||
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
|
||||
}
|
||||
@ -446,7 +518,7 @@ export class HeritiersActor extends Actor {
|
||||
}
|
||||
if (arme.system.totalDefensif > maxDef) {
|
||||
maxDef = arme.system.totalDefensif
|
||||
bestArme = duplicate(arme)
|
||||
bestArme = foundry.utils.duplicate(arme)
|
||||
}
|
||||
}
|
||||
return bestArme
|
||||
@ -461,7 +533,7 @@ export class HeritiersActor extends Actor {
|
||||
for (let auto of talent.system.automations) {
|
||||
if (auto.eventtype === "prepare-roll") {
|
||||
if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
|
||||
talent = duplicate(talent)
|
||||
talent = foundry.utils.duplicate(talent)
|
||||
talent.system.bonus = auto.bonus
|
||||
talent.system.baCost = auto.baCost
|
||||
talents.push(talent)
|
||||
@ -501,15 +573,20 @@ export class HeritiersActor extends Actor {
|
||||
incDecTricherie(value) {
|
||||
let tricherie = this.system.rang.tricherie
|
||||
tricherie.value += value
|
||||
if (tricherie.value < 0 || tricherie.value > tricherie.max) {
|
||||
ui.notifications.warn("Pas assez de points de Tricherie !")
|
||||
return false
|
||||
}
|
||||
tricherie.value = Math.max(tricherie.value, 0)
|
||||
tricherie.value = Math.min(tricherie.value, tricherie.max)
|
||||
this.update({ 'system.rang.tricherie': tricherie })
|
||||
return true
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getPireCompetence(compName1, compName2) {
|
||||
let comp1 = this.items.find( it => it.name == compName1)
|
||||
let comp2 = this.items.find( it => it.name == compName2)
|
||||
if ( comp1 && comp2 ) {
|
||||
let comp1 = this.items.find(it => it.name == compName1)
|
||||
let comp2 = this.items.find(it => it.name == compName2)
|
||||
if (comp1 && comp2) {
|
||||
if (comp1.system.niveau > comp2.system.niveau) {
|
||||
return comp1
|
||||
} else {
|
||||
@ -518,6 +595,7 @@ export class HeritiersActor extends Actor {
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCommonRollData(compId = undefined, compName = undefined) {
|
||||
let rollData = HeritiersUtility.getBasicRollData()
|
||||
@ -533,16 +611,17 @@ export class HeritiersActor extends Actor {
|
||||
rollData.useTricherie = false
|
||||
rollData.useSpecialite = false
|
||||
rollData.useHeritage = false
|
||||
rollData.pouvoirPointsUsage = 1
|
||||
rollData.rulesMalus.push(this.getPvMalus())
|
||||
|
||||
if (compId) {
|
||||
rollData.competence = duplicate(this.items.get(compId) || {})
|
||||
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
|
||||
this.prepareUtileSkill(rollData.competence)
|
||||
rollData.actionImg = rollData.competence?.img
|
||||
}
|
||||
if (compName) {
|
||||
rollData.competence = duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
||||
if (rollData.competence && rollData.competence.name) {
|
||||
rollData.competence = foundry.utils.duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
||||
if (rollData.competence?.name) {
|
||||
this.prepareUtileSkill(rollData.competence)
|
||||
rollData.actionImg = rollData.competence?.img
|
||||
} else {
|
||||
@ -590,7 +669,6 @@ export class HeritiersActor extends Actor {
|
||||
async rollRootCompetence(compKey) {
|
||||
let rollData = this.getCommonRollData()
|
||||
rollData.mode = "competence"
|
||||
console.log("Compkey", compKey)
|
||||
rollData.competence = { name: this.system.competences[compKey].label, system: { niveau: this.system.competences[compKey].niveau } }
|
||||
console.log("RollDatra", rollData)
|
||||
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
||||
@ -606,15 +684,35 @@ export class HeritiersActor extends Actor {
|
||||
rollDialog.render(true)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollSort(sortId) {
|
||||
let sort = this.items.get(sortId)
|
||||
let comp = this.items.find(it => it.type =="competence" && it.name.toLowerCase() == sort.system.competence.toLowerCase())
|
||||
if (!comp) {
|
||||
ui.notifications.warn("Compétence de magie associée non trouvée !")
|
||||
return
|
||||
}
|
||||
|
||||
let rollData = this.getCommonRollData(comp.id)
|
||||
rollData.mode = "sort"
|
||||
rollData.sort = foundry.utils.duplicate(sort)
|
||||
rollData.sdValue = HeritiersUtility.getSDSortValue(sort.system.niveau)
|
||||
rollData.sortPointsAme = sort.system.niveau
|
||||
rollData.caracKey = sort.system.carac
|
||||
console.log("RollData", rollData)
|
||||
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollAttaqueArme(armeId) {
|
||||
let arme = this.items.get(armeId)
|
||||
if (arme) {
|
||||
arme = duplicate(arme)
|
||||
arme = foundry.utils.duplicate(arme)
|
||||
arme.system.isMelee = HeritiersUtility.isArmeMelee(arme)
|
||||
let competenceName = "Tir"
|
||||
let key = "prec"
|
||||
if ( arme.system.isMelee) {
|
||||
if (arme.system.isMelee) {
|
||||
competenceName = "Mêlée"
|
||||
key = "agi"
|
||||
}
|
||||
@ -624,7 +722,7 @@ export class HeritiersActor extends Actor {
|
||||
rollData.arme = arme
|
||||
rollData.mode = "arme"
|
||||
rollData.armes = this.getOtherMeleeWeapons(arme)
|
||||
if (rollData.defenderTokenId && arme.system.isMelee ) {
|
||||
if (rollData.defenderTokenId && arme.system.isMelee) {
|
||||
rollData.cacheDifficulte = true
|
||||
}
|
||||
console.log(">>>> ARME", rollData)
|
||||
@ -643,10 +741,10 @@ export class HeritiersActor extends Actor {
|
||||
let rollData = this.getCommonRollData(undefined, competenceName)
|
||||
rollData.carac = this.system.caracteristiques[key]
|
||||
rollData.caracKey = key
|
||||
rollData.arme = duplicate(arme)
|
||||
rollData.arme = foundry.utils.duplicate(arme)
|
||||
rollData.mode = "attaquebrutale"
|
||||
rollData.armes = this.getOtherMeleeWeapons(arme)
|
||||
rollData.rulesMalus.push({ name: "Attaque brutale", value: -2 } )
|
||||
rollData.rulesMalus.push({ name: "Attaque brutale", value: -2 })
|
||||
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
@ -661,14 +759,14 @@ export class HeritiersActor extends Actor {
|
||||
let rollData = this.getCommonRollData(undefined, pireCompetence.name)
|
||||
rollData.carac = this.system.caracteristiques[key]
|
||||
rollData.caracKey = key
|
||||
rollData.arme = duplicate(arme)
|
||||
rollData.arme = foundry.utils.duplicate(arme)
|
||||
rollData.armes = this.getOtherMeleeWeapons(arme)
|
||||
rollData.mode = "attaquecharge"
|
||||
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollAssomerArme(armeId) {
|
||||
let arme = this.items.get(armeId)
|
||||
@ -678,7 +776,7 @@ export class HeritiersActor extends Actor {
|
||||
let rollData = this.getCommonRollData(undefined, competenceName)
|
||||
rollData.carac = this.system.caracteristiques["agi"]
|
||||
rollData.caracKey = "agi"
|
||||
rollData.arme = duplicate(arme)
|
||||
rollData.arme = foundry.utils.duplicate(arme)
|
||||
rollData.mode = "assommer"
|
||||
if (rollData.defenderTokenId) {
|
||||
rollData.cacheDifficulte = true
|
||||
@ -688,22 +786,136 @@ export class HeritiersActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
pouvoirPassifDialog(pouvoir) {
|
||||
let rollData = this.getCommonRollData()
|
||||
rollData.pouvoir = pouvoir
|
||||
rollData.mode = "pouvoirpassif"
|
||||
rollData.pouvoirPointsUsage = 0
|
||||
rollData.noRoll = true
|
||||
|
||||
let d = new Dialog({
|
||||
title: "Activer le pouvoir passif " + pouvoir.name,
|
||||
content: "<p>Choisissez le nombre de Points d'Usage</p>",
|
||||
buttons: {
|
||||
one: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "1 Point d'Usage",
|
||||
callback: () => {
|
||||
rollData.pouvoirPointsUsage = 1;
|
||||
HeritiersUtility.rollHeritiers(rollData);
|
||||
}
|
||||
},
|
||||
two: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "2 Points d'Usage",
|
||||
callback: () => {
|
||||
rollData.pouvoirPointsUsage = 2;
|
||||
HeritiersUtility.rollHeritiers(rollData);
|
||||
}
|
||||
},
|
||||
three: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "3 Points d'Usage",
|
||||
callback: () => {
|
||||
rollData.pouvoirPointsUsage = 3;
|
||||
HeritiersUtility.rollHeritiers(rollData);
|
||||
}
|
||||
},
|
||||
four: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "4 Points d'Usage",
|
||||
callback: () => {
|
||||
rollData.pouvoirPointsUsage = 4;
|
||||
HeritiersUtility.rollHeritiers(rollData);
|
||||
}
|
||||
},
|
||||
close: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: "Annuler",
|
||||
callback: () => {
|
||||
}
|
||||
}
|
||||
},
|
||||
default: "one",
|
||||
render: html => console.log("Pouvoir passif"),
|
||||
close: html => console.log("No option")
|
||||
});
|
||||
d.render(true);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollPouvoir(pouvoirId) {
|
||||
let pouvoir = this.items.get(pouvoirId)
|
||||
if (pouvoir) {
|
||||
let rollData = this.getCommonRollData(undefined, undefined)
|
||||
if (pouvoir.system.feeriemasque != "autre") {
|
||||
rollData.pouvoirBase = duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()])
|
||||
rollData.pouvoirBase.label = "Féerie"
|
||||
rollData.carac = duplicate(this.system.caracteristiques[pouvoir.system.carac])
|
||||
rollData.caracKey = pouvoir.system.carac
|
||||
if (pouvoir.system.pouvoirtype == "passif") {
|
||||
this.pouvoirPassifDialog(pouvoir)
|
||||
return
|
||||
}
|
||||
rollData.pouvoir = duplicate(pouvoir)
|
||||
|
||||
let rollData = this.getCommonRollData(undefined, undefined)
|
||||
|
||||
rollData.pouvoirMaxUsage = this.getPouvoirUsageMax(pouvoir)
|
||||
rollData.pouvoir = foundry.utils.duplicate(pouvoir)
|
||||
rollData.mode = "pouvoir"
|
||||
|
||||
if (pouvoir.system.feeriemasque != "autre") {
|
||||
rollData.pouvoirBase = foundry.utils.duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()])
|
||||
rollData.pouvoirBase.label = "Féerie"
|
||||
if (pouvoir.system.istest && !pouvoir.system.carac) {
|
||||
ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " n'a pas de caractéristique associée")
|
||||
}
|
||||
if (pouvoir.system.istest) {
|
||||
rollData.carac = foundry.utils.duplicate(this.system.caracteristiques[pouvoir.system.carac])
|
||||
rollData.caracKey = pouvoir.system.carac
|
||||
} else {
|
||||
rollData.noRoll = true
|
||||
HeritiersUtility.rollHeritiers(rollData);
|
||||
return;
|
||||
//this.incDecPointsUsage(pouvoir.id, -rollData.pouvoirPointsUsage)
|
||||
//ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " a été utilisé, dépense de " + pouvoirPointsUsage + " points d'usage")
|
||||
}
|
||||
}
|
||||
let rollDialog = await HeritiersRollDialog.create(this, rollData)
|
||||
rollDialog.render(true)
|
||||
}
|
||||
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
incDecPointsUsage(pouvoirId, value) {
|
||||
let pouvoir = this.items.get(pouvoirId)
|
||||
let newValue = pouvoir.system.pointsusagecourant + value
|
||||
newValue = Math.max(newValue, 0)
|
||||
newValue = Math.min(newValue, this.getPouvoirUsageMax(pouvoir))
|
||||
this.updateEmbeddedDocuments('Item', [{ _id: pouvoirId, 'system.pointsusagecourant': newValue }])
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getPouvoirUsage(pouvoirId) {
|
||||
let pouvoir = this.items.get(pouvoirId)
|
||||
return pouvoir.system.pointsusagecourant
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getPouvoirUsageMax(pouvoir) {
|
||||
if (pouvoir.system.masquetype == "masque") {
|
||||
return this.system.rang.masque.value
|
||||
}
|
||||
return this.system.rang.feerie.value
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
recupUsage(value) {
|
||||
let updates = []
|
||||
for (let pouvoir of this.items) {
|
||||
if (pouvoir.type == "pouvoir") {
|
||||
let newValue = pouvoir.system.pointsusagecourant + value
|
||||
newValue = Math.max(newValue, 0)
|
||||
newValue = Math.min(newValue, this.getPouvoirUsageMax(pouvoir))
|
||||
updates.push({ _id: pouvoir.id, 'system.pointsusagecourant': newValue })
|
||||
}
|
||||
}
|
||||
if (updates.length > 0) {
|
||||
this.updateEmbeddedDocuments('Item', updates)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,8 @@ export const HERITIERS_CONFIG = {
|
||||
"combattant": {kind: "physical",name:"Combattant"},
|
||||
"erudit": {kind: "mental",name:"Erudit"},
|
||||
"savant": {kind: "mental",name:"Savant"},
|
||||
"gentleman": {kind: "mental",name:"Gentleman"}
|
||||
"gentleman": {kind: "mental",name:"Gentleman"},
|
||||
"magie": {kind: "magical", name: "Magie"},
|
||||
},
|
||||
baseTestPouvoir: {
|
||||
"feerie": "Féerie",
|
||||
@ -65,32 +66,32 @@ export const HERITIERS_CONFIG = {
|
||||
},
|
||||
seuilsDifficulte: {
|
||||
"-1": "Aucun/Non applicable",
|
||||
"5": "Enfantine",
|
||||
"6": "Triviale",
|
||||
"7": "Moins Triviale",
|
||||
"8": "Aisée",
|
||||
"7": "Moins Aisée",
|
||||
"10": "Normale",
|
||||
"11": "Moins Normale",
|
||||
"12": "Compliquée",
|
||||
"13": "Plus Compliquée",
|
||||
"14": "Difficile",
|
||||
"15": "Plus Difficile",
|
||||
"16": "Très Difficile",
|
||||
"17": "Très Très Difficile",
|
||||
"18": "Critique",
|
||||
"19": "Plus Critique",
|
||||
"20": "Insurmontable",
|
||||
"20": "Très Insurmontable",
|
||||
"22": "Surhumaine",
|
||||
"23": "Très Surhumaine",
|
||||
"24": "Epique",
|
||||
"25": "Plus Epique",
|
||||
"26": "Légendaire",
|
||||
"26": "Très Légendaire",
|
||||
"28": "Mythique",
|
||||
"29": "Plus Mythique",
|
||||
"30": "Divine"
|
||||
"5": "Enfantine (5)",
|
||||
"6": "Triviale (6)",
|
||||
"7": "Moins Triviale (7)",
|
||||
"8": "Aisée (8)",
|
||||
"9": "Moins Aisée (9)",
|
||||
"10": "Normale (10)",
|
||||
"11": "Moins Normale (11)",
|
||||
"12": "Compliquée (12)",
|
||||
"13": "Plus Compliquée (13)",
|
||||
"14": "Difficile (14)",
|
||||
"15": "Plus Difficile (15)",
|
||||
"16": "Très Difficile (16)",
|
||||
"17": "Très Très Difficile (17)",
|
||||
"18": "Critique (18)",
|
||||
"19": "Plus Critique (19)",
|
||||
"20": "Insurmontable (20)",
|
||||
"21": "Très Insurmontable (21)",
|
||||
"22": "Surhumaine (22)",
|
||||
"23": "Très Surhumaine (23)",
|
||||
"24": "Epique (24)",
|
||||
"25": "Plus Epique (25)",
|
||||
"26": "Légendaire (26)",
|
||||
"27": "Très Légendaire (27)",
|
||||
"28": "Mythique (28)",
|
||||
"29": "Plus Mythique (29)",
|
||||
"30": "Divine (30)"
|
||||
},
|
||||
|
||||
attaqueCible: {
|
||||
@ -145,7 +146,72 @@ export const HERITIERS_CONFIG = {
|
||||
"traditionnelle": "Traditionnelle",
|
||||
"moderne": "Moderne",
|
||||
"orientale": "Orientale"
|
||||
}
|
||||
},
|
||||
typeContact: {
|
||||
"contact": "Contact",
|
||||
"allie": "Allié",
|
||||
"ennemi": "Ennemi",
|
||||
"interet": "Personne d'interêt"
|
||||
},
|
||||
niveauContact: {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
},
|
||||
pointsUsageList: {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
},
|
||||
attaquePlusieursList : {
|
||||
"0": "0",
|
||||
"1": "+1",
|
||||
"2": "+2",
|
||||
},
|
||||
attaque2ArmesListe: [
|
||||
{value: "0", label: "Aucun"},
|
||||
{value: "-4", label: "Deux armes à 1 main"},
|
||||
{value: "-2", label: "Deux armes naturelles"},
|
||||
{value: "-2", label: "Avec spécialisation \"Mauvaise Main\""}
|
||||
],
|
||||
typeProfil: {
|
||||
"mineur": "Mineur",
|
||||
"majeur": "Majeur",
|
||||
},
|
||||
bonusMalusContext: [
|
||||
{value: "-6", label: "-6"},
|
||||
{value: "-5", label: "-5"},
|
||||
{value: "-4", label: "-4"},
|
||||
{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"},
|
||||
{value: "4", label: "+4"},
|
||||
{value: "5", label: "+5"},
|
||||
{value: "6", label: "+6"}
|
||||
],
|
||||
listNiveauSort: {
|
||||
"1" : "1",
|
||||
"2" : "2",
|
||||
"3" : "3",
|
||||
"4" : "4"
|
||||
},
|
||||
listNiveau: {
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"10": "10"
|
||||
},
|
||||
|
||||
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
/**
|
||||
* Extend the basic ActorSheet with some very simple modifications
|
||||
* @extends {ActorSheet}
|
||||
*/
|
||||
|
||||
import { HeritiersActorSheet } from "./heritiers-actor-sheet.js";
|
||||
import { HeritiersUtility } from "./heritiers-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class HeritiersCreatureSheet extends HeritiersActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-les-heritiers", "sheet", "actor"],
|
||||
template: "systems/fvtt-les-heritiers/templates/creature-sheet.html",
|
||||
width: 640,
|
||||
height: 720,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
editScore: false
|
||||
})
|
||||
}
|
||||
}
|
@ -4,12 +4,12 @@ import { HeritiersUtility } from "./heritiers-utility.js";
|
||||
* Extend the basic ItemSheet with some very simple modifications
|
||||
* @extends {ItemSheet}
|
||||
*/
|
||||
export class HeritiersItemSheet extends ItemSheet {
|
||||
export class HeritiersItemSheet extends foundry.appv1.sheets.ItemSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
|
||||
return mergeObject(super.defaultOptions, {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-les-heritiers", "sheet", "item"],
|
||||
template: "systems/fvtt-les-heritiers/templates/item-sheet.html",
|
||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||
@ -48,7 +48,7 @@ export class HeritiersItemSheet extends ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const objectData = duplicate(this.object)
|
||||
const objectData = foundry.utils.duplicate(this.object)
|
||||
let formData = {
|
||||
title: this.title,
|
||||
id: this.id,
|
||||
@ -63,11 +63,24 @@ export class HeritiersItemSheet extends ItemSheet {
|
||||
owner: this.document.isOwner,
|
||||
config: game.system.lesheritiers.config,
|
||||
isArmeMelee: HeritiersUtility.isArmeMelee(this.object),
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, {async: true}),
|
||||
mr: (this.object.type == 'specialisation'),
|
||||
isGM: game.user.isGM
|
||||
isGM: game.user.isGM,
|
||||
usageMax: -1
|
||||
}
|
||||
|
||||
// Items specific data
|
||||
if (this.object.type == 'pouvoir' && this.document.isOwner && this.actor) {
|
||||
formData.usageMax = this.actor.getPouvoirUsageMax(this.object)
|
||||
if (this.object.system.pointsusagecourant == -1) {
|
||||
this.object.system.pointsusagecourant = formData.usageMax
|
||||
}
|
||||
}
|
||||
if (this.object.type == 'sort' ) {
|
||||
formData.competencesMagie = HeritiersUtility.getCompetencesMagie()
|
||||
}
|
||||
|
||||
|
||||
//this.options.editable = !(this.object.origin == "embeddedItem");
|
||||
console.log("ITEM DATA", formData, this);
|
||||
return formData;
|
||||
@ -87,7 +100,7 @@ export class HeritiersItemSheet extends ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
postItem() {
|
||||
let chatData = duplicate(HeritiersUtility.data(this.item));
|
||||
let chatData = foundry.utils.duplicate(HeritiersUtility.data(this.item));
|
||||
if (this.actor) {
|
||||
chatData.actor = { id: this.actor.id };
|
||||
}
|
||||
@ -129,55 +142,55 @@ export class HeritiersItemSheet extends ItemSheet {
|
||||
})
|
||||
|
||||
html.find('#add-specialite').click(ev => {
|
||||
let spec = duplicate(this.object.system.specialites)
|
||||
spec.push( { name: "Nouvelle Spécialité", id: randomID(16), used: false })
|
||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||
spec.push( { name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false })
|
||||
this.object.update( { 'system.specialites': spec })
|
||||
})
|
||||
html.find('.delete-specialite').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".specialite-item")
|
||||
let index = li.data("specialite-index")
|
||||
let spec = duplicate(this.object.system.specialites)
|
||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||
spec.splice(index,1)
|
||||
this.object.update( { 'system.specialites': spec })
|
||||
})
|
||||
html.find('.edit-specialite').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".specialite-item")
|
||||
let index = li.data("specialite-index")
|
||||
let spec = duplicate(this.object.system.specialites)
|
||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||
spec[index].name = ev.currentTarget.value
|
||||
spec[index].id = spec[index].id || randomID(16)
|
||||
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
||||
this.object.update( { 'system.specialites': spec })
|
||||
})
|
||||
html.find('.edit-specialite-description').change(ev => {
|
||||
const li = $(ev.currentTarget).parents(".specialite-item")
|
||||
let index = li.data("specialite-index")
|
||||
let spec = duplicate(this.object.system.specialites)
|
||||
let spec = foundry.utils.duplicate(this.object.system.specialites)
|
||||
spec[index].description = ev.currentTarget.value
|
||||
spec[index].id = spec[index].id || randomID(16)
|
||||
spec[index].id = spec[index].id || foundry.utils.randomID(16)
|
||||
this.object.update( { 'system.specialites': spec })
|
||||
})
|
||||
})
|
||||
|
||||
html.find('#add-automation').click(ev => {
|
||||
let autom = duplicate(this.object.system.automations)
|
||||
autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: randomID(16) })
|
||||
let autom = foundry.utils.duplicate(this.object.system.automations)
|
||||
autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: foundry.utils.randomID(16) })
|
||||
this.object.update( { 'system.automations': autom })
|
||||
})
|
||||
html.find('.delete-automation').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".automation-item")
|
||||
let index = li.data("automation-index")
|
||||
let autom = duplicate(this.object.system.automations)
|
||||
let autom = foundry.utils.duplicate(this.object.system.automations)
|
||||
autom.splice(index,1)
|
||||
this.object.update( { 'system.automations': autom })
|
||||
})
|
||||
html.find('.automation-edit-field').change(ev => {
|
||||
let index = $(ev.currentTarget).data("automation-index")
|
||||
let field = $(ev.currentTarget).data("automation-field")
|
||||
let auto = duplicate(this.object.system.automations)
|
||||
let auto = foundry.utils.duplicate(this.object.system.automations)
|
||||
auto[index][field] = ev.currentTarget.value
|
||||
auto[index].id = auto[index].id || randomID(16)
|
||||
auto[index].id = auto[index].id || foundry.utils.randomID(16)
|
||||
this.object.update( { 'system.automations': auto })
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
// Update Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
|
@ -18,6 +18,7 @@ export const defaultItemImg = {
|
||||
fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
|
||||
profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
|
||||
equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.webp",
|
||||
sort: "systems/fvtt-les-heritiers/assets/icons/sort.webp",
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -12,7 +12,6 @@ import { HeritiersActor } from "./heritiers-actor.js";
|
||||
import { HeritiersItemSheet } from "./heritiers-item-sheet.js";
|
||||
import { HeritiersActorSheet } from "./heritiers-actor-sheet.js";
|
||||
import { HeritiersActorPNJSheet } from "./heritiers-actor-pnj-sheet.js";
|
||||
import { HeritiersCreatureSheet } from "./heritiers-creature-sheet.js";
|
||||
import { HeritiersUtility } from "./heritiers-utility.js";
|
||||
import { HeritiersCombat } from "./heritiers-combat.js";
|
||||
import { HeritiersItem } from "./heritiers-item.js";
|
||||
@ -31,7 +30,7 @@ Hooks.once("init", async function () {
|
||||
HeritiersUtility.preloadHandlebarsTemplates()
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Set an initiative formula for the system
|
||||
// Set an initiative formula for the system
|
||||
CONFIG.Combat.initiative = {
|
||||
formula: "1d10",
|
||||
decimals: 1
|
||||
@ -47,6 +46,8 @@ Hooks.once("init", async function () {
|
||||
CONFIG.Combat.documentClass = HeritiersCombat
|
||||
CONFIG.Actor.documentClass = HeritiersActor
|
||||
CONFIG.Item.documentClass = HeritiersItem
|
||||
// Create an object of bonus/malus from -6 to +6 signed
|
||||
HERITIERS_CONFIG.bonusMalus = Array.from({ length: 7 }, (v, k) => toString(k - 6))
|
||||
game.system.lesheritiers = {
|
||||
HeritiersUtility,
|
||||
config: HERITIERS_CONFIG
|
||||
@ -54,12 +55,12 @@ Hooks.once("init", async function () {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register sheet application classes
|
||||
Actors.unregisterSheet("core", ActorSheet);
|
||||
Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
|
||||
Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
|
||||
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
|
||||
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
|
||||
|
||||
Items.unregisterSheet("core", ItemSheet);
|
||||
Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
|
||||
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
|
||||
|
||||
HeritiersUtility.init()
|
||||
|
||||
@ -79,31 +80,17 @@ 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 == "Accueil");
|
||||
if (!exists) {
|
||||
const scenes = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.scenes")
|
||||
let newDocuments = scenes.filter(i => i.name == "Accueil");
|
||||
await game.scenes.documentClass.create(newDocuments);
|
||||
game.scenes.find(i => i.name == "Accueil").activate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Foundry VTT Initialization */
|
||||
/* -------------------------------------------- */
|
||||
@ -120,14 +107,15 @@ Hooks.once("ready", function () {
|
||||
});
|
||||
}
|
||||
|
||||
registerUsageCount(game.system.id)
|
||||
welcomeMessage()
|
||||
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();
|
||||
importDefaultScene();
|
||||
|
||||
// CSS patch for v9
|
||||
if (game.version) {
|
||||
let sidebar = document.getElementById("sidebar");
|
||||
sidebar.style.width = "min-content";
|
||||
}
|
||||
});
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -137,10 +125,9 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
||||
if (content[0] == '/') {
|
||||
let regExp = /(\S+)/g;
|
||||
let commands = content.match(regExp);
|
||||
if (game.system.mournblade.commands.processChatCommand(commands, content, msg)) {
|
||||
if (game.system.lesheritiers.commands.processChatCommand(commands, content, msg)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
|
@ -6,7 +6,7 @@ export class HeritiersRollDialog extends Dialog {
|
||||
static async create(actor, rollData) {
|
||||
|
||||
let options = { classes: ["HeritiersDialog"], width: 420, height: 'fit-content', 'z-index': 99999 };
|
||||
let html = await renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData);
|
||||
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData);
|
||||
|
||||
return new HeritiersRollDialog(actor, rollData, html, options);
|
||||
}
|
||||
@ -18,18 +18,31 @@ export class HeritiersRollDialog extends Dialog {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Lancer 1d8",
|
||||
callback: () => { this.roll("d8") }
|
||||
},
|
||||
rolld10: {
|
||||
}
|
||||
}
|
||||
let enableD10 = false
|
||||
let enableD12 = false
|
||||
if (rollData.mode == "pouvoir" || rollData.competence?.system.niveau > 0) {
|
||||
enableD10 = true
|
||||
}
|
||||
if (rollData.mode == "pouvoir" || rollData.competence?.system.niveau > 1) {
|
||||
enableD12 = true
|
||||
}
|
||||
if (enableD10) {
|
||||
buttons.rolld10 = {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Lancer 1d10",
|
||||
callback: () => { this.roll("d10") }
|
||||
},
|
||||
rolld12: {
|
||||
}
|
||||
}
|
||||
if (enableD12) {
|
||||
buttons.rolld12 = {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Lancer 1d12",
|
||||
callback: () => { this.roll("d12") }
|
||||
}
|
||||
}
|
||||
|
||||
if (rollData.tricherie) {
|
||||
buttons["rollTricherie"] = {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
@ -55,7 +68,7 @@ export class HeritiersRollDialog extends Dialog {
|
||||
buttons: buttons,
|
||||
close: close
|
||||
}
|
||||
// Overwrite in case of carac only -> 1d10
|
||||
// Overwrite in case of carac only -> 1d8
|
||||
if (rollData.mode == "carac") {
|
||||
conf.buttons = {
|
||||
rolld8: {
|
||||
@ -96,7 +109,6 @@ export class HeritiersRollDialog extends Dialog {
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
var dialog = this;
|
||||
function onLoad() {
|
||||
}
|
||||
$(function () { onLoad(); });
|
||||
@ -105,6 +117,7 @@ export class HeritiersRollDialog extends Dialog {
|
||||
this.rollData.sdValue = Number(event.currentTarget.value)
|
||||
})
|
||||
html.find('#caracKey').change(async (event) => {
|
||||
//console.log("caracKey", event.currentTarget.value)
|
||||
this.rollData.caracKey = String(event.currentTarget.value)
|
||||
})
|
||||
html.find('#bonus-malus-context').change((event) => {
|
||||
@ -116,6 +129,9 @@ export class HeritiersRollDialog extends Dialog {
|
||||
html.find('#useSpecialite').change((event) => {
|
||||
this.rollData.useSpecialite = event.currentTarget.checked
|
||||
})
|
||||
html.find('#pouvoirPointsUsage').change((event) => {
|
||||
this.rollData.pouvoirPointsUsage = Number(event.currentTarget.value)
|
||||
})
|
||||
html.find('#attaqueDos').change((event) => {
|
||||
this.rollData.attaqueDos = event.currentTarget.checked
|
||||
})
|
||||
@ -125,6 +141,6 @@ export class HeritiersRollDialog extends Dialog {
|
||||
html.find('#attaque-cible').change((event) => {
|
||||
this.rollData.attaqueCible = String(event.currentTarget.value)
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -2,6 +2,45 @@
|
||||
import { HeritiersCombat } from "./heritiers-combat.js";
|
||||
import { HeritiersCommands } from "./heritiers-commands.js";
|
||||
|
||||
const __facesAdjacentes = {
|
||||
"d8": {
|
||||
1: [4, 8, 6],
|
||||
2: [7, 5, 3],
|
||||
3: [2, 8, 6],
|
||||
4: [1, 5, 7],
|
||||
5: [2, 4, 8],
|
||||
6: [1, 7, 3],
|
||||
7: [2, 4, 6],
|
||||
8: [1, 3, 5]
|
||||
},
|
||||
"d10": {
|
||||
1: [4, 6, 9, 7],
|
||||
2: [6, 8, 5, 9],
|
||||
3: [7, 5, 8, 10],
|
||||
4: [10, 6, 7, 1],
|
||||
5: [3, 9, 2, 8],
|
||||
6: [1, 4, 2, 9],
|
||||
7: [1, 3, 4, 10],
|
||||
8: [2, 10, 5, 3],
|
||||
9: [1, 5, 6, 2],
|
||||
10: [8, 4, 3, 7]
|
||||
},
|
||||
"d12": {
|
||||
1:[2, 3, 4, 5, 6],
|
||||
2: [1, 6, 8, 12, 3],
|
||||
3: [1, 4, 11, 12, 2],
|
||||
4: [1, 5, 10, 11, 3],
|
||||
5: [1, 6, 9, 10, 4],
|
||||
6: [1, 2, 8, 9, 5],
|
||||
7: [8, 9, 10, 11, 12],
|
||||
8: [2, 6, 9, 7, 12],
|
||||
9: [5, 10, 7, 8, 6],
|
||||
10: [4, 11, 7, 9, 5],
|
||||
11: [7, 10, 4, 3, 12],
|
||||
12: [2, 8, 7, 11, 3]
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class HeritiersUtility {
|
||||
|
||||
@ -9,7 +48,7 @@ export class HeritiersUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async init() {
|
||||
Hooks.on('renderChatLog', (log, html, data) => HeritiersUtility.chatListeners(html))
|
||||
Hooks.on("getChatLogEntryContext", (html, options) => HeritiersUtility.chatRollMenu(html, options))
|
||||
/* Unused for Heitiers : Hooks.on("getChatMessageContextOptions", (html, options) => HeritiersUtility.chatRollMenu(html, options))*/
|
||||
|
||||
this.rollDataStore = {}
|
||||
this.defenderStore = {}
|
||||
@ -65,6 +104,29 @@ export class HeritiersUtility {
|
||||
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
|
||||
this.skills = skills.map(i => i.toObject())
|
||||
|
||||
this.competencesMagie = this.skills.filter(s => s.system.profil == "magie")
|
||||
|
||||
game.settings.register("fvtt-les-heritiers", "heritiers-heritage", {
|
||||
name: "Points d'héritage",
|
||||
hint: "Points d'héritage du groupe",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: 0,
|
||||
type: Number
|
||||
})
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getSDSortValue(niveau) {
|
||||
if (niveau <= 2) return 12;
|
||||
if (niveau <= 4) return 14;
|
||||
if (niveau <= 6) return 16;
|
||||
return 18;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getCompetencesMagie() {
|
||||
return this.competencesMagie
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -86,18 +148,29 @@ export class HeritiersUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async chatListeners(html) {
|
||||
|
||||
html.on("click", '.predilection-reroll', async event => {
|
||||
$(html).on("click", '.predilection-reroll', async event => {
|
||||
let predIdx = $(event.currentTarget).data("predilection-index")
|
||||
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "heritiers-roll")
|
||||
let actor = this.getActorFromRollData(rollData)
|
||||
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
|
||||
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
|
||||
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
|
||||
HeritiersUtility.rollHeritiers(rollData)
|
||||
})
|
||||
|
||||
html.on("click", '.roll-chat-degat', async event => {
|
||||
$(html).on("click", '.roll-tricherie-2', async event => {
|
||||
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "heritiers-roll")
|
||||
let actor = this.getActorFromRollData(rollData)
|
||||
if ( await actor.incDecTricherie(-2) ) {
|
||||
rollData.forcedValue = Number($(event.currentTarget).data("dice-value"))
|
||||
HeritiersUtility.rollHeritiers(rollData)
|
||||
}
|
||||
})
|
||||
|
||||
$(html).on("click", '.roll-chat-degat', async event => {
|
||||
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
|
||||
let message = game.messages.get(messageId)
|
||||
let rollData = message.getFlag("world", "heritiers-roll")
|
||||
@ -114,10 +187,9 @@ export class HeritiersUtility {
|
||||
'systems/fvtt-les-heritiers/templates/partial-item-header.html',
|
||||
'systems/fvtt-les-heritiers/templates/partial-item-description.html',
|
||||
'systems/fvtt-les-heritiers/templates/partial-item-nav.html',
|
||||
'systems/fvtt-les-heritiers/templates/partial-utile-skills.html',
|
||||
'systems/fvtt-les-heritiers/templates/partial-list-niveau.html'
|
||||
'systems/fvtt-les-heritiers/templates/partial-utile-skills.html'
|
||||
]
|
||||
return loadTemplates(templatePaths);
|
||||
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -194,14 +266,14 @@ export class HeritiersUtility {
|
||||
|
||||
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;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static saveRollData(rollData) {
|
||||
game.socket.emit("system.fvtt-les-heritiers", {
|
||||
name: "msg_update_roll", data: rollData
|
||||
}); // Notify all other clients of the roll
|
||||
}); // Notify all other clients of the roll
|
||||
this.updateRollData(rollData);
|
||||
}
|
||||
|
||||
@ -212,7 +284,6 @@ export class HeritiersUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static onSocketMesssage(msg) {
|
||||
//console.log("SOCKET MESSAGE", msg.name, game.user.character.id, msg.data.defenderId);
|
||||
if (msg.name == "msg_update_defense_state") {
|
||||
this.updateDefenseState(msg.data.defenderId, msg.data.rollId);
|
||||
}
|
||||
@ -290,11 +361,12 @@ export class HeritiersUtility {
|
||||
if (isTricherieHeritage) {
|
||||
let resTab = [rollData.roll.terms[0].results[0].result, rollData.roll.terms[0].results[1].result, rollData.roll.terms[0].results[2].result]
|
||||
rollData.diceResult = resTab[0] + "," + resTab[1] + "," + resTab[2]
|
||||
let foundryTotal = resTab[0] + resTab[1] + resTab[2]
|
||||
let foundryTotal = resTab[0] + resTab[1] + resTab[2]
|
||||
if (resTab[1] == 1) { resTab[1] -= 4 }
|
||||
if (resTab[2] == 1) { resTab[2] -= 6 }
|
||||
if (resTab[2] == 2) { resTab[2] -= 7 }
|
||||
rollData.finalResult = rollData.roll.total - foundryTotal + Math.max(Math.max(resTab[0], resTab[1]), resTab[2])
|
||||
rollData.diceValue = Math.max(Math.max(resTab[0], resTab[1]), resTab[2])
|
||||
rollData.finalResult = rollData.roll.total - foundryTotal + rollData.diceValue
|
||||
|
||||
// Gestion des résultats spéciaux
|
||||
resTab = resTab.sort()
|
||||
@ -319,8 +391,9 @@ export class HeritiersUtility {
|
||||
|
||||
} else {
|
||||
rollData.finalResult = rollData.roll.total
|
||||
let rollValue = rollData.roll.terms[0].results[0].result
|
||||
rollData.diceResult = rollData.roll.terms[0].results[0].result
|
||||
let rollValue = rollData.forcedValue || rollData.roll.terms[0].results[0].result
|
||||
rollData.diceResult = rollValue
|
||||
rollData.diceValue = rollValue
|
||||
if (rollData.mainDice.includes("d10")) {
|
||||
if (rollValue == 1) {
|
||||
rollData.finalResult -= 3 + rollValue // substract 3 and the 1 value that has been added
|
||||
@ -331,14 +404,16 @@ export class HeritiersUtility {
|
||||
rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already
|
||||
}
|
||||
}
|
||||
if ( !rollData.forcedValue) {
|
||||
rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue])
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static computeArmeDegats(rollData, actor) {
|
||||
rollData.degatsArme = rollData.arme.system.degats + rollData.marge
|
||||
if (rollData.attaqueDeuxArmes != 0 && rollData.secondeArme ) {
|
||||
if (rollData.attaqueDeuxArmes != 0 && rollData.secondeArme) {
|
||||
let secondeArme = actor.items.get(secondeArme)
|
||||
if (secondeArme) {
|
||||
rollData.degatsArme += secondeArme.system.degats
|
||||
@ -353,7 +428,7 @@ export class HeritiersUtility {
|
||||
}
|
||||
if (rollData.mode == "attaquecharge") {
|
||||
rollData.degatsArme += 3
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rollData.attaqueCible == "membre") {
|
||||
rollData.degatsArme -= 2
|
||||
@ -373,6 +448,10 @@ export class HeritiersUtility {
|
||||
rollData.isSuccess = (rollData.finalResult >= seuil)
|
||||
rollData.isCriticalSuccess = ((rollData.finalResult - seuil) >= 7)
|
||||
rollData.isCriticalFailure = ((rollData.finalResult - seuil) <= -7)
|
||||
// Si compétence > 0 et d8 -> echec critique impossible
|
||||
if (rollData?.competence?.system.niveau > 0 && rollData?.mainDice == "d8") {
|
||||
rollData.isCriticalFailure = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -386,7 +465,7 @@ export class HeritiersUtility {
|
||||
this.computeArmeDegats(rollData, actor)
|
||||
}
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData)
|
||||
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData)
|
||||
}, rollData, "selfroll")
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
@ -396,9 +475,9 @@ export class HeritiersUtility {
|
||||
rollData.defenderValue = valeurDefense
|
||||
rollData.marge = 0
|
||||
this.computeMarge(rollData, valeurDefense)
|
||||
rollData.dureeAssommer = (rollData.marge) ? rollData.marge*2 : 1
|
||||
rollData.dureeAssommer = (rollData.marge) ? rollData.marge * 2 : 1
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData)
|
||||
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData)
|
||||
}, rollData, "selfroll")
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
@ -406,13 +485,23 @@ export class HeritiersUtility {
|
||||
|
||||
let actor = this.getActorFromRollData(rollData)
|
||||
|
||||
//rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
||||
rollData.carac = duplicate(actor.system.caracteristiques[rollData.caracKey])
|
||||
if ( rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
|
||||
ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
|
||||
return
|
||||
}
|
||||
|
||||
if (rollData.useTricherie || rollData.useHeritage) {
|
||||
rollData.diceFormula = "{1d8, 1d10, 1d12}"
|
||||
//rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
||||
if (rollData.caracKey == "pre") rollData.caracKey = "pres"; // Patch tomanage wrong carac key
|
||||
rollData.carac = foundry.utils.duplicate(actor.system.caracteristiques[rollData.caracKey])
|
||||
|
||||
if (rollData.forcedValue) {
|
||||
rollData.diceFormula = rollData.forcedValue
|
||||
} else {
|
||||
rollData.diceFormula = "1" + rollData.mainDice + "kh1"
|
||||
if (rollData.useTricherie || rollData.useHeritage) {
|
||||
rollData.diceFormula = "{1d8, 1d10, 1d12}"
|
||||
} else {
|
||||
rollData.diceFormula = "1" + rollData.mainDice + "kh1"
|
||||
}
|
||||
}
|
||||
|
||||
let rangValue = 0
|
||||
@ -420,11 +509,11 @@ export class HeritiersUtility {
|
||||
rangValue = rollData.rang.value
|
||||
}
|
||||
if (rollData.competence) {
|
||||
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
|
||||
let compmod = 0 // Bonus de compétence à 0 dans Les Heritiers
|
||||
let specBonus = (rollData.useSpecialite) ? 1 : 0
|
||||
rollData.diceFormula += `+${rollData.carac.value}+${rangValue}+${rollData.competence.system.niveau}+${specBonus}+${rollData.bonusMalusContext}+${compmod}`
|
||||
} else if (rollData.pouvoirBase) {
|
||||
rollData.diceFormula += `+${rollData.pouvoirBase.value}+${rangValue}+${rollData.bonusMalusContext}`
|
||||
rollData.diceFormula += `+${rollData.carac.value}+${rollData.pouvoirBase.value}+${rangValue}+${rollData.bonusMalusContext}`
|
||||
} else {
|
||||
rollData.diceFormula += `+${rollData.carac.value}+${rangValue}+${rollData.bonusMalusContext}`
|
||||
}
|
||||
@ -438,7 +527,7 @@ export class HeritiersUtility {
|
||||
let bonusAttaque = rollData.bonusAttaquePlusieurs
|
||||
if (rollData.attaqueDos) {
|
||||
bonusAttaque = 2
|
||||
if (rollData.bonusAttaquePlusieurs) {
|
||||
if (rollData.bonusAttaquePlusieurs) {
|
||||
bonusAttaque = 3 // Valeur max, cf règle page 197
|
||||
}
|
||||
}
|
||||
@ -450,37 +539,43 @@ export class HeritiersUtility {
|
||||
}
|
||||
// Gestion des attaques ciblées
|
||||
if (rollData.attaqueCible != "none") {
|
||||
if ( rollData.attaqueCible == "membre") {
|
||||
if (rollData.attaqueCible == "membre") {
|
||||
rollData.diceFormula += `-2`
|
||||
}
|
||||
if ( rollData.attaqueCible == "main") {
|
||||
if (rollData.attaqueCible == "main") {
|
||||
rollData.diceFormula += `-3`
|
||||
}
|
||||
if ( rollData.attaqueCible == "tete") {
|
||||
if (rollData.attaqueCible == "tete") {
|
||||
rollData.diceFormula += `-6`
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.roll = myRoll
|
||||
console.log(">>>> ", myRoll)
|
||||
this.computeResult(actor, rollData)
|
||||
this.computeMarge(rollData, rollData.sdValue) // Calcul de la marge si seuil présent
|
||||
if ( !rollData.noRoll) {
|
||||
let myRoll = await new Roll(rollData.diceFormula).roll()
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||
console.log(">>>> ", myRoll)
|
||||
this.computeResult(actor, rollData)
|
||||
this.computeMarge(rollData, rollData.sdValue) // Calcul de la marge si seuil présent
|
||||
}
|
||||
|
||||
if (rollData.mode == "init") {
|
||||
actor.setFlag("world", "last-initiative", rollData.finalResult)
|
||||
}
|
||||
|
||||
// Gestion pouvoir et points d'usage
|
||||
if (rollData.mode == "pouvoir" || rollData.mode == "pouvoirpassif") {
|
||||
actor.incDecPointsUsage(rollData.pouvoir._id, -rollData.pouvoirPointsUsage)
|
||||
}
|
||||
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
||||
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
||||
}, rollData)
|
||||
|
||||
// Gestion attaque standard
|
||||
if ( (rollData.mode == "arme" || rollData.mode == "attaquebrutale" || rollData.mode == "attaquecharge") &&
|
||||
rollData.defenderTokenId && rollData.arme) {
|
||||
if (rollData.arme.system.categorie != "trait" && rollData.arme.system.categorie != "poing" && rollData.arme.system.categorie != "epaule" ) {
|
||||
if ((rollData.mode == "arme" || rollData.mode == "attaquebrutale" || rollData.mode == "attaquecharge") &&
|
||||
rollData.defenderTokenId && rollData.arme) {
|
||||
if (rollData.arme.system.categorie != "trait" && rollData.arme.system.categorie != "poing" && rollData.arme.system.categorie != "epaule") {
|
||||
await this.displayUneDefense(rollData, actor, "Parade", rollData.defenderParade)
|
||||
await this.displayUneDefense(rollData, actor, "Esquive", rollData.defenderEsquive)
|
||||
} else if (rollData.sdValue) {
|
||||
@ -492,9 +587,9 @@ export class HeritiersUtility {
|
||||
// Gestion assomer
|
||||
if (rollData.mode == "assommer" && rollData.defenderTokenId && rollData.arme) {
|
||||
await this.displayAsssomer(rollData, actor, "Assommer", "Surprise", rollData.defenderResistancePhysique)
|
||||
await this.displayAsssomer(rollData, actor, "Assommer", "Conscient, Résistance+6", rollData.defenderResistancePhysique+6)
|
||||
await this.displayAsssomer(rollData, actor, "Assommer", "Conscient, Parade", rollData.defenderParade)
|
||||
await this.displayAsssomer(rollData, actor, "Assommer", "Conscient, Esquive", rollData.defenderEsquive+6)
|
||||
await this.displayAsssomer(rollData, actor, "Assommer", "Conscient, Résistance+6", rollData.defenderResistancePhysique + 6)
|
||||
await this.displayAsssomer(rollData, actor, "Assommer", "Conscient, Parade", rollData.defenderParade)
|
||||
await this.displayAsssomer(rollData, actor, "Assommer", "Conscient, Esquive", rollData.defenderEsquive + 6)
|
||||
}
|
||||
|
||||
}
|
||||
@ -503,16 +598,16 @@ export class HeritiersUtility {
|
||||
static async bonusRollHeritiers(rollData) {
|
||||
rollData.bonusFormula = rollData.addedBonus
|
||||
|
||||
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
|
||||
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
||||
rollData.bonusRoll = bonusRoll
|
||||
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
||||
|
||||
rollData.finalResult += rollData.bonusRoll.total
|
||||
|
||||
this.computeResult(rollData)
|
||||
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
||||
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
|
||||
}, rollData)
|
||||
|
||||
}
|
||||
@ -524,7 +619,7 @@ export class HeritiersUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static isArmeMelee(arme) {
|
||||
return (arme.type == "arme" && (arme.system.categorie == "lourde" || arme.system.categorie == "blanche" || arme.system.categorie == "improvise")) ? true : false
|
||||
return (arme.type == "arme" && (arme.system.categorie == "lourde" || arme.system.categorie == "blanche" || arme.system.categorie == "improvise"))
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static getWhisperRecipients(rollMode, name) {
|
||||
@ -543,7 +638,7 @@ export class HeritiersUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static blindMessageToGM(chatOptions) {
|
||||
let chatGM = duplicate(chatOptions);
|
||||
let chatGM = foundry.utils.duplicate(chatOptions);
|
||||
chatGM.whisper = this.getUsers(user => user.isGM);
|
||||
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
||||
console.log("blindMessageToGM", chatGM);
|
||||
@ -607,7 +702,7 @@ export class HeritiersUtility {
|
||||
/* -------------------------------------------- */
|
||||
static getBasicRollData() {
|
||||
let rollData = {
|
||||
rollId: randomID(16),
|
||||
rollId: foundry.utils.randomID(16),
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
sdList: game.system.lesheritiers.config.seuilsDifficulte,
|
||||
sdValue: -1,
|
||||
@ -617,7 +712,7 @@ export class HeritiersUtility {
|
||||
bonusMalusContext: 0,
|
||||
attaqueCible: "none",
|
||||
config: game.system.lesheritiers.config,
|
||||
rulesMalus : []
|
||||
rulesMalus: []
|
||||
}
|
||||
return rollData
|
||||
}
|
||||
@ -685,13 +780,13 @@ export class HeritiersUtility {
|
||||
static chatRollMenu(html, options) {
|
||||
let canApply = li => canvas.tokens.controlled.length && li.find(".heritiers-roll").length
|
||||
let canApplyBA = 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", "heritiers-roll")
|
||||
let actor = this.getActorFromRollData(rollData)
|
||||
return (!rollData.isReroll && actor.getBonneAventure() > 0)
|
||||
}
|
||||
let canApplyPE = 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", "heritiers-roll")
|
||||
let actor = this.getActorFromRollData(rollData)
|
||||
return (!rollData.isReroll && actor.getEclat() > 0)
|
||||
@ -726,11 +821,11 @@ export class HeritiersUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async confirmDelete(actorSheet, li) {
|
||||
let itemId = li.data("item-id");
|
||||
let msgTxt = "<p>Are you sure to remove this Item ?";
|
||||
let msgTxt = "<p>Certain de supprimer cet item ?";
|
||||
let buttons = {
|
||||
delete: {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Yes, remove it",
|
||||
label: "Oui !",
|
||||
callback: () => {
|
||||
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
|
||||
li.slideUp(200, () => actorSheet.render(false));
|
||||
@ -738,12 +833,12 @@ export class HeritiersUtility {
|
||||
},
|
||||
cancel: {
|
||||
icon: '<i class="fas fa-times"></i>',
|
||||
label: "Cancel"
|
||||
label: "Non !"
|
||||
}
|
||||
}
|
||||
msgTxt += "</p>";
|
||||
let d = new Dialog({
|
||||
title: "Confirm removal",
|
||||
title: "Confirmer la suppression",
|
||||
content: msgTxt,
|
||||
buttons: buttons,
|
||||
default: "cancel"
|
||||
@ -751,21 +846,4 @@ export class HeritiersUtility {
|
||||
d.render(true);
|
||||
}
|
||||
|
||||
/************************************************************************************/
|
||||
static async __create_talents_table() {
|
||||
let compName = "fvtt-les-heritiers.talents-cellule"
|
||||
const compData = await HeritiersUtility.loadCompendium(compName)
|
||||
let talents = compData.map(i => i.toObject())
|
||||
|
||||
let htmlTab = "<table border='1'><tbody>";
|
||||
for (let entryData of talents) {
|
||||
console.log(entryData)
|
||||
htmlTab += `<tr><td>@UUID[Compendium.${compName}.${entryData._id}]{${entryData.name}}</td>`
|
||||
htmlTab += `<td>${entryData.system.description}</td>`;
|
||||
//htmlTab += `<td>${entryData.system.resumebonus}</td>`;
|
||||
htmlTab += "</tr>\n";
|
||||
}
|
||||
htmlTab += "</table>";
|
||||
await JournalEntry.create({ name: 'Liste des Talents de Cellule', content: htmlTab });
|
||||
}
|
||||
}
|
||||
|
0
packs/archetypes-fees/000177.log
Normal file
0
packs/archetypes-fees/000177.log
Normal file
BIN
packs/archetypes-fees/000179.ldb
Normal file
BIN
packs/archetypes-fees/000179.ldb
Normal file
Binary file not shown.
1
packs/archetypes-fees/CURRENT
Normal file
1
packs/archetypes-fees/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000175
|
0
packs/archetypes-fees/LOCK
Normal file
0
packs/archetypes-fees/LOCK
Normal file
15
packs/archetypes-fees/LOG
Normal file
15
packs/archetypes-fees/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.578482 7f4168bf96c0 Recovering log #173
|
||||
2025/05/02-08:12:38.589780 7f4168bf96c0 Delete type=3 #171
|
||||
2025/05/02-08:12:38.589884 7f4168bf96c0 Delete type=0 #173
|
||||
2025/05/02-08:32:33.547850 7f4162bff6c0 Level-0 table #178: started
|
||||
2025/05/02-08:32:33.552846 7f4162bff6c0 Level-0 table #178: 76976 bytes OK
|
||||
2025/05/02-08:32:33.560090 7f4162bff6c0 Delete type=0 #176
|
||||
2025/05/02-08:32:33.575866 7f4162bff6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.601802 7f4162bff6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at '!items!y1yOenfAJTsb3r6e' @ 93 : 1
|
||||
2025/05/02-08:32:33.601825 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.607383 7f4162bff6c0 Generated table #179@1: 31 keys, 76976 bytes
|
||||
2025/05/02-08:32:33.607418 7f4162bff6c0 Compacted 1@1 + 1@2 files => 76976 bytes
|
||||
2025/05/02-08:32:33.613654 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.613823 7f4162bff6c0 Delete type=2 #106
|
||||
2025/05/02-08:32:33.614198 7f4162bff6c0 Delete type=2 #178
|
||||
2025/05/02-08:32:33.630595 7f4162bff6c0 Manual compaction at level-1 from '!items!y1yOenfAJTsb3r6e' @ 93 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
8
packs/archetypes-fees/LOG.old
Normal file
8
packs/archetypes-fees/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.433551 7f1d08bf96c0 Recovering log #169
|
||||
2024/11/17-22:48:43.443811 7f1d08bf96c0 Delete type=3 #167
|
||||
2024/11/17-22:48:43.443896 7f1d08bf96c0 Delete type=0 #169
|
||||
2024/11/17-22:50:28.249266 7f1d027ff6c0 Level-0 table #174: started
|
||||
2024/11/17-22:50:28.249291 7f1d027ff6c0 Level-0 table #174: 0 bytes OK
|
||||
2024/11/17-22:50:28.255594 7f1d027ff6c0 Delete type=0 #172
|
||||
2024/11/17-22:50:28.274735 7f1d027ff6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.274768 7f1d027ff6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
|
BIN
packs/archetypes-fees/MANIFEST-000175
Normal file
BIN
packs/archetypes-fees/MANIFEST-000175
Normal file
Binary file not shown.
0
packs/armes-et-protection/000177.log
Normal file
0
packs/armes-et-protection/000177.log
Normal file
BIN
packs/armes-et-protection/000179.ldb
Normal file
BIN
packs/armes-et-protection/000179.ldb
Normal file
Binary file not shown.
1
packs/armes-et-protection/CURRENT
Normal file
1
packs/armes-et-protection/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000175
|
0
packs/armes-et-protection/LOCK
Normal file
0
packs/armes-et-protection/LOCK
Normal file
15
packs/armes-et-protection/LOG
Normal file
15
packs/armes-et-protection/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.625683 7f41693fa6c0 Recovering log #173
|
||||
2025/05/02-08:12:38.636729 7f41693fa6c0 Delete type=3 #171
|
||||
2025/05/02-08:12:38.636867 7f41693fa6c0 Delete type=0 #173
|
||||
2025/05/02-08:32:33.536656 7f4162bff6c0 Level-0 table #178: started
|
||||
2025/05/02-08:32:33.540777 7f4162bff6c0 Level-0 table #178: 18161 bytes OK
|
||||
2025/05/02-08:32:33.547563 7f4162bff6c0 Delete type=0 #176
|
||||
2025/05/02-08:32:33.575848 7f4162bff6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.589023 7f4162bff6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at '!items!zbsVCsWxRzkzzG1N' @ 216 : 1
|
||||
2025/05/02-08:32:33.589042 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.593271 7f4162bff6c0 Generated table #179@1: 72 keys, 18161 bytes
|
||||
2025/05/02-08:32:33.593306 7f4162bff6c0 Compacted 1@1 + 1@2 files => 18161 bytes
|
||||
2025/05/02-08:32:33.600921 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.601153 7f4162bff6c0 Delete type=2 #106
|
||||
2025/05/02-08:32:33.601536 7f4162bff6c0 Delete type=2 #178
|
||||
2025/05/02-08:32:33.630581 7f4162bff6c0 Manual compaction at level-1 from '!items!zbsVCsWxRzkzzG1N' @ 216 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
8
packs/armes-et-protection/LOG.old
Normal file
8
packs/armes-et-protection/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.459868 7f1d093fa6c0 Recovering log #169
|
||||
2024/11/17-22:48:43.470425 7f1d093fa6c0 Delete type=3 #167
|
||||
2024/11/17-22:48:43.470517 7f1d093fa6c0 Delete type=0 #169
|
||||
2024/11/17-22:50:28.262661 7f1d027ff6c0 Level-0 table #174: started
|
||||
2024/11/17-22:50:28.262685 7f1d027ff6c0 Level-0 table #174: 0 bytes OK
|
||||
2024/11/17-22:50:28.268581 7f1d027ff6c0 Delete type=0 #172
|
||||
2024/11/17-22:50:28.274758 7f1d027ff6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.274792 7f1d027ff6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
|
BIN
packs/armes-et-protection/MANIFEST-000175
Normal file
BIN
packs/armes-et-protection/MANIFEST-000175
Normal file
Binary file not shown.
0
packs/atouts-feeriques/000177.log
Normal file
0
packs/atouts-feeriques/000177.log
Normal file
BIN
packs/atouts-feeriques/000179.ldb
Normal file
BIN
packs/atouts-feeriques/000179.ldb
Normal file
Binary file not shown.
1
packs/atouts-feeriques/CURRENT
Normal file
1
packs/atouts-feeriques/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000175
|
0
packs/atouts-feeriques/LOCK
Normal file
0
packs/atouts-feeriques/LOCK
Normal file
15
packs/atouts-feeriques/LOG
Normal file
15
packs/atouts-feeriques/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.561663 7f41637fe6c0 Recovering log #173
|
||||
2025/05/02-08:12:38.572350 7f41637fe6c0 Delete type=3 #171
|
||||
2025/05/02-08:12:38.572464 7f41637fe6c0 Delete type=0 #173
|
||||
2025/05/02-08:32:33.524401 7f4162bff6c0 Level-0 table #178: started
|
||||
2025/05/02-08:32:33.529756 7f4162bff6c0 Level-0 table #178: 61883 bytes OK
|
||||
2025/05/02-08:32:33.536322 7f4162bff6c0 Delete type=0 #176
|
||||
2025/05/02-08:32:33.575825 7f4162bff6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.575912 7f4162bff6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at '!items!zvtBlG6KCIn0oCVk' @ 459 : 1
|
||||
2025/05/02-08:32:33.575922 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.581216 7f4162bff6c0 Generated table #179@1: 153 keys, 61883 bytes
|
||||
2025/05/02-08:32:33.581273 7f4162bff6c0 Compacted 1@1 + 1@2 files => 61883 bytes
|
||||
2025/05/02-08:32:33.588098 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.588368 7f4162bff6c0 Delete type=2 #106
|
||||
2025/05/02-08:32:33.588802 7f4162bff6c0 Delete type=2 #178
|
||||
2025/05/02-08:32:33.630551 7f4162bff6c0 Manual compaction at level-1 from '!items!zvtBlG6KCIn0oCVk' @ 459 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
8
packs/atouts-feeriques/LOG.old
Normal file
8
packs/atouts-feeriques/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.420896 7f1d03fff6c0 Recovering log #169
|
||||
2024/11/17-22:48:43.431112 7f1d03fff6c0 Delete type=3 #167
|
||||
2024/11/17-22:48:43.431187 7f1d03fff6c0 Delete type=0 #169
|
||||
2024/11/17-22:50:28.236628 7f1d027ff6c0 Level-0 table #174: started
|
||||
2024/11/17-22:50:28.236663 7f1d027ff6c0 Level-0 table #174: 0 bytes OK
|
||||
2024/11/17-22:50:28.242846 7f1d027ff6c0 Delete type=0 #172
|
||||
2024/11/17-22:50:28.249127 7f1d027ff6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.249160 7f1d027ff6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
|
BIN
packs/atouts-feeriques/MANIFEST-000175
Normal file
BIN
packs/atouts-feeriques/MANIFEST-000175
Normal file
Binary file not shown.
0
packs/avantages/000177.log
Normal file
0
packs/avantages/000177.log
Normal file
BIN
packs/avantages/000179.ldb
Normal file
BIN
packs/avantages/000179.ldb
Normal file
Binary file not shown.
1
packs/avantages/CURRENT
Normal file
1
packs/avantages/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000175
|
0
packs/avantages/LOCK
Normal file
0
packs/avantages/LOCK
Normal file
15
packs/avantages/LOG
Normal file
15
packs/avantages/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.502811 7f41637fe6c0 Recovering log #173
|
||||
2025/05/02-08:12:38.513277 7f41637fe6c0 Delete type=3 #171
|
||||
2025/05/02-08:12:38.513388 7f41637fe6c0 Delete type=0 #173
|
||||
2025/05/02-08:32:33.465976 7f4162bff6c0 Level-0 table #178: started
|
||||
2025/05/02-08:32:33.470234 7f4162bff6c0 Level-0 table #178: 27421 bytes OK
|
||||
2025/05/02-08:32:33.477187 7f4162bff6c0 Delete type=0 #176
|
||||
2025/05/02-08:32:33.477436 7f4162bff6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.512028 7f4162bff6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at '!items!zfpjROW9LDAlXUkN' @ 189 : 1
|
||||
2025/05/02-08:32:33.512048 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.516387 7f4162bff6c0 Generated table #179@1: 63 keys, 27421 bytes
|
||||
2025/05/02-08:32:33.516430 7f4162bff6c0 Compacted 1@1 + 1@2 files => 27421 bytes
|
||||
2025/05/02-08:32:33.523531 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.523711 7f4162bff6c0 Delete type=2 #106
|
||||
2025/05/02-08:32:33.523938 7f4162bff6c0 Delete type=2 #178
|
||||
2025/05/02-08:32:33.524156 7f4162bff6c0 Manual compaction at level-1 from '!items!zfpjROW9LDAlXUkN' @ 189 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
8
packs/avantages/LOG.old
Normal file
8
packs/avantages/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.382022 7f1d08bf96c0 Recovering log #169
|
||||
2024/11/17-22:48:43.392929 7f1d08bf96c0 Delete type=3 #167
|
||||
2024/11/17-22:48:43.392989 7f1d08bf96c0 Delete type=0 #169
|
||||
2024/11/17-22:50:28.229453 7f1d027ff6c0 Level-0 table #174: started
|
||||
2024/11/17-22:50:28.229478 7f1d027ff6c0 Level-0 table #174: 0 bytes OK
|
||||
2024/11/17-22:50:28.236445 7f1d027ff6c0 Delete type=0 #172
|
||||
2024/11/17-22:50:28.249116 7f1d027ff6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.249151 7f1d027ff6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
|
BIN
packs/avantages/MANIFEST-000175
Normal file
BIN
packs/avantages/MANIFEST-000175
Normal file
Binary file not shown.
0
packs/capacites/000177.log
Normal file
0
packs/capacites/000177.log
Normal file
BIN
packs/capacites/000179.ldb
Normal file
BIN
packs/capacites/000179.ldb
Normal file
Binary file not shown.
1
packs/capacites/CURRENT
Normal file
1
packs/capacites/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000175
|
0
packs/capacites/LOCK
Normal file
0
packs/capacites/LOCK
Normal file
15
packs/capacites/LOG
Normal file
15
packs/capacites/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.545135 7f4163fff6c0 Recovering log #173
|
||||
2025/05/02-08:12:38.556273 7f4163fff6c0 Delete type=3 #171
|
||||
2025/05/02-08:12:38.556450 7f4163fff6c0 Delete type=0 #173
|
||||
2025/05/02-08:32:33.455447 7f4162bff6c0 Level-0 table #178: started
|
||||
2025/05/02-08:32:33.459276 7f4162bff6c0 Level-0 table #178: 24174 bytes OK
|
||||
2025/05/02-08:32:33.465795 7f4162bff6c0 Delete type=0 #176
|
||||
2025/05/02-08:32:33.477419 7f4162bff6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.500781 7f4162bff6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at '!items!yWDg2KlXEz33TSmZ' @ 108 : 1
|
||||
2025/05/02-08:32:33.500794 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.504939 7f4162bff6c0 Generated table #179@1: 36 keys, 24174 bytes
|
||||
2025/05/02-08:32:33.504980 7f4162bff6c0 Compacted 1@1 + 1@2 files => 24174 bytes
|
||||
2025/05/02-08:32:33.511393 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.511579 7f4162bff6c0 Delete type=2 #106
|
||||
2025/05/02-08:32:33.511848 7f4162bff6c0 Delete type=2 #178
|
||||
2025/05/02-08:32:33.524138 7f4162bff6c0 Manual compaction at level-1 from '!items!yWDg2KlXEz33TSmZ' @ 108 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
8
packs/capacites/LOG.old
Normal file
8
packs/capacites/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.408818 7f1d093fa6c0 Recovering log #169
|
||||
2024/11/17-22:48:43.418583 7f1d093fa6c0 Delete type=3 #167
|
||||
2024/11/17-22:48:43.418635 7f1d093fa6c0 Delete type=0 #169
|
||||
2024/11/17-22:50:28.268699 7f1d027ff6c0 Level-0 table #174: started
|
||||
2024/11/17-22:50:28.268724 7f1d027ff6c0 Level-0 table #174: 0 bytes OK
|
||||
2024/11/17-22:50:28.274639 7f1d027ff6c0 Delete type=0 #172
|
||||
2024/11/17-22:50:28.274776 7f1d027ff6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.274799 7f1d027ff6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
|
BIN
packs/capacites/MANIFEST-000175
Normal file
BIN
packs/capacites/MANIFEST-000175
Normal file
Binary file not shown.
0
packs/competences/000178.log
Normal file
0
packs/competences/000178.log
Normal file
BIN
packs/competences/000180.ldb
Normal file
BIN
packs/competences/000180.ldb
Normal file
Binary file not shown.
1
packs/competences/CURRENT
Normal file
1
packs/competences/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000176
|
0
packs/competences/LOCK
Normal file
0
packs/competences/LOCK
Normal file
15
packs/competences/LOG
Normal file
15
packs/competences/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.486843 7f4163fff6c0 Recovering log #174
|
||||
2025/05/02-08:12:38.497823 7f4163fff6c0 Delete type=3 #172
|
||||
2025/05/02-08:12:38.497971 7f4163fff6c0 Delete type=0 #174
|
||||
2025/05/02-08:32:33.432014 7f4162bff6c0 Level-0 table #179: started
|
||||
2025/05/02-08:32:33.436580 7f4162bff6c0 Level-0 table #179: 30205 bytes OK
|
||||
2025/05/02-08:32:33.443380 7f4162bff6c0 Delete type=0 #177
|
||||
2025/05/02-08:32:33.477388 7f4162bff6c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.477460 7f4162bff6c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at '!items!zEl2NQsnCpELVWzh' @ 285 : 1
|
||||
2025/05/02-08:32:33.477471 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.481585 7f4162bff6c0 Generated table #180@1: 74 keys, 30205 bytes
|
||||
2025/05/02-08:32:33.481642 7f4162bff6c0 Compacted 1@1 + 1@2 files => 30205 bytes
|
||||
2025/05/02-08:32:33.488072 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.488265 7f4162bff6c0 Delete type=2 #159
|
||||
2025/05/02-08:32:33.488483 7f4162bff6c0 Delete type=2 #179
|
||||
2025/05/02-08:32:33.524098 7f4162bff6c0 Manual compaction at level-1 from '!items!zEl2NQsnCpELVWzh' @ 285 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
8
packs/competences/LOG.old
Normal file
8
packs/competences/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.369953 7f1d03fff6c0 Recovering log #170
|
||||
2024/11/17-22:48:43.379524 7f1d03fff6c0 Delete type=3 #168
|
||||
2024/11/17-22:48:43.379589 7f1d03fff6c0 Delete type=0 #170
|
||||
2024/11/17-22:50:28.223060 7f1d027ff6c0 Level-0 table #175: started
|
||||
2024/11/17-22:50:28.223138 7f1d027ff6c0 Level-0 table #175: 0 bytes OK
|
||||
2024/11/17-22:50:28.229321 7f1d027ff6c0 Delete type=0 #173
|
||||
2024/11/17-22:50:28.249101 7f1d027ff6c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.249144 7f1d027ff6c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
|
BIN
packs/competences/MANIFEST-000176
Normal file
BIN
packs/competences/MANIFEST-000176
Normal file
Binary file not shown.
0
packs/desavantages/000177.log
Normal file
0
packs/desavantages/000177.log
Normal file
BIN
packs/desavantages/000179.ldb
Normal file
BIN
packs/desavantages/000179.ldb
Normal file
Binary file not shown.
1
packs/desavantages/CURRENT
Normal file
1
packs/desavantages/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000175
|
0
packs/desavantages/LOCK
Normal file
0
packs/desavantages/LOCK
Normal file
15
packs/desavantages/LOG
Normal file
15
packs/desavantages/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.518058 7f41693fa6c0 Recovering log #173
|
||||
2025/05/02-08:12:38.529950 7f41693fa6c0 Delete type=3 #171
|
||||
2025/05/02-08:12:38.530055 7f41693fa6c0 Delete type=0 #173
|
||||
2025/05/02-08:32:33.443582 7f4162bff6c0 Level-0 table #178: started
|
||||
2025/05/02-08:32:33.448404 7f4162bff6c0 Level-0 table #178: 31582 bytes OK
|
||||
2025/05/02-08:32:33.455254 7f4162bff6c0 Delete type=0 #176
|
||||
2025/05/02-08:32:33.477406 7f4162bff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.488601 7f4162bff6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at '!items!xzRJ6JP1HqoqxLdj' @ 195 : 1
|
||||
2025/05/02-08:32:33.488624 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.493136 7f4162bff6c0 Generated table #179@1: 65 keys, 31582 bytes
|
||||
2025/05/02-08:32:33.493174 7f4162bff6c0 Compacted 1@1 + 1@2 files => 31582 bytes
|
||||
2025/05/02-08:32:33.500214 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.500377 7f4162bff6c0 Delete type=2 #106
|
||||
2025/05/02-08:32:33.500642 7f4162bff6c0 Delete type=2 #178
|
||||
2025/05/02-08:32:33.524120 7f4162bff6c0 Manual compaction at level-1 from '!items!xzRJ6JP1HqoqxLdj' @ 195 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
8
packs/desavantages/LOG.old
Normal file
8
packs/desavantages/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.395898 7f1d037fe6c0 Recovering log #169
|
||||
2024/11/17-22:48:43.406363 7f1d037fe6c0 Delete type=3 #167
|
||||
2024/11/17-22:48:43.406473 7f1d037fe6c0 Delete type=0 #169
|
||||
2024/11/17-22:50:28.242967 7f1d027ff6c0 Level-0 table #174: started
|
||||
2024/11/17-22:50:28.242990 7f1d027ff6c0 Level-0 table #174: 0 bytes OK
|
||||
2024/11/17-22:50:28.248975 7f1d027ff6c0 Delete type=0 #172
|
||||
2024/11/17-22:50:28.249136 7f1d027ff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.249166 7f1d027ff6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
|
BIN
packs/desavantages/MANIFEST-000175
Normal file
BIN
packs/desavantages/MANIFEST-000175
Normal file
Binary file not shown.
@ -10,7 +10,7 @@
|
||||
{"name":"Élémentaire majeur (Légendaire)","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"metamorphose","masquetype":"demasque","niveau":"legendaire","activation":"2 points d’usage au lieu d’un, ainsi qu’1 point temporaire de Constitution.","istest":false,"feeriemasque":"feerie","zoneffet":"","testautre":"Attaque avec des crocs","carac":"pres","duree":"une scène","cibles":"","effet":"transformation en élémentaire de son\naffinité ; absorbe Féérie points de dégâts sauf contre des attaques efficaces (élément contraire ou argent). \nAttaques : effectuées avec Mêlée + AGI ; dégâts élémentaires = Féérie + MR (pas de bonus de Force).\n","portee":"","resistance":"aucune","resistanceautre":"Esquive / test d’opposition de Mêlée ou Ressort + Force pour se dégager.","isvirulence":false,"virulence":"","description":"<p>Le djinn se transforme en élémentaire majeur de très grande taille (environ 2,5 mètres de haut et d’envergure), avec d’importants pouvoirs de contrôle de son élément de prédilection : tornade de sable ou d’eau, contrôle du feu, tempête, etc. Ce contrôle élémentaire est de forme relativement libre selon la vraisemblance et ce qu’autorise le Docte et sa puissance est comparable au Pouvoir profond du phénix Contrôle du feu (voir p. 264). Il utilise ses longs bras (1,5 m) pour porter des attaques élémentaires avec des effets critiques liés : le feu enflamme les vêtements, l’eau et le sable étourdissent, l’air ajoute des dégâts de projection ou de chute, etc.</p>\n<p>Les attaques physiques portées contre lui sont réduites d’autant de points de dégâts que son rang de Féérie, sauf si elles font intervenir de l’argent. Toutefois, projeter sur lui une grande quantité (1 m3 environ) d’un élément auquel il est vulnérable (l’eau pour les djinns du feu, la terre ou le sable pour les djinns de l’eau, le vent pour les djinns de sable, le feu pour les djinns de l’air) pourra contraindre un djinn légendaire à abandonner sa forme d’Élémentaire majeur.</p>","zoneeffet":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.0.18","coreVersion":"10.291","createdTime":1678214487456,"modifiedTime":1678303349575,"lastModifiedBy":"xGnwWyEbO2k89UsP"},"_id":"4v8Z2ThDSwwWb0DU","folder":null,"sort":0,"ownership":{"default":0,"xGnwWyEbO2k89UsP":3}}
|
||||
{"name":"Psychotopie","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"actif","masquetype":"masque","niveau":"normal","activation":"Féérie + Esprit et une transe de 5 minutes au moins, contre un SD variable selon la taille et les événements se déroulant dans le lieu (une chambre isolée depuis des années : SD10 ; un immeuble rempli d'habitants dans lequel il y a fréquemment du passage : SD 20).","istest":true,"feeriemasque":"feerie","zoneffet":"","testautre":"","carac":"esp","duree":"","cibles":"un seul lieu","effet":"apprend des informations marquantes sur un lieu","portee":"un lieu (pas plus grand qu’un bâtiment)","resistance":"aucune","resistanceautre":"","isvirulence":false,"virulence":"","description":"<p><strong>Type de Pouvoir : </strong>actif.</p>\n<p><strong>Activation : </strong>Féérie + Esprit et une transe de 5 minutes au moins, contre un SD variable selon la taille et les événements se déroulant dans le lieu (une chambre isolée depuis des années : SD10 ; un immeuble rempli d'habitants dans lequel il y a fréquemment du passage : SD 20).</p>\n<p><strong>Cibles :</strong> un seul lieu.</p>\n<p><strong>Effet :</strong> apprend des informations marquantes sur un lieu.</p>\n<p><strong>Zone d’effet : </strong>un lieu (pas plus grand qu’un bâtiment).</p>\n<p>La créature est capable, après avoir établi un contact mental avec un lieu par une transe prolongée, de récupérer des informations sur ce qui s’y est passé. En fonction de sa MR, elle aura accès à différents détails : paroles prononcées récemment ou qui ont marqué l’atmosphère, traits physiques généraux de protagonistes présents (odeur, poids, etc.). Les événements marquants (meurtre, incendie, etc.) imprègnent davantage un lieu et faciliteront le SD du test à la discrétion du Docte mais peuvent rester imperceptibles dans la masse d’informations si le lieu est vaste et fréquenté.</p>","zoneeffet":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.0.18","coreVersion":"10.291","createdTime":1678280900282,"modifiedTime":1678314472642,"lastModifiedBy":"3jSVOAZZNxArxD7h"},"_id":"672N9fk2mJahvJIL","folder":null,"sort":0,"ownership":{"default":0,"3jSVOAZZNxArxD7h":3}}
|
||||
{"name":"Doppelgänger universel","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"metamorphose","masquetype":"demasque","niveau":"legendaire","activation":"test de Masque + Féérie contre un SD de 10 + Prestance de la personne imitée modifiée par la précision de la source servant à l’imitation (connaissance personnelle profonde = bonus de + 3, connaissance personnelle superficielle = + 1, photographie = - 1, illustration fidèle = - 2).","istest":true,"feeriemasque":"Masque","zoneffet":"","testautre":"","carac":"agi","duree":" une scène.","cibles":"","effet":"prendre l’apparence de n’importe qui.","portee":"","resistance":"autre","resistanceautre":"percer à jour le protys légendaire nécessite un test de Sensibilité (Psychologie) + Perception en opposition au test de Féérie + Masque du protys.","isvirulence":false,"virulence":"","description":"<p><strong>Type de Pouvoir : </strong>démasqué ; actif puis métamorphose pour adopter l’identité imitée.</p>\n<p><strong>Activation : </strong>test de Masque + Féérie contre un SD de 10 + Prestance de la personne imitée modifiée par la précision de la source servant à l’imitation (connaissance personnelle profonde = bonus de + 3, connaissance personnelle superficielle = + 1, photographie = - 1, illustration fidèle = - 2).</p>\n<p><strong>Durée : </strong>une scène.</p>\n<p><strong>Effet : </strong>prendre l’apparence de n’importe qui.</p>\n<p><strong>Résistance : </strong>percer à jour le protys légendaire nécessite un test de Sensibilité (Psychologie) + Perception en opposition au test de Féérie + Masque du protys.</p>\n<p>Le protys légendaire est capable, pendant une scène, de prendre l’apparence (traits du visage, corpulence, etc.) de n’importe quel individu dont il aurait vu le visage en réalité ou en photographie, voire sur une illustration suffisamment fidèle. Il peut même imiter une fée avec ses capacités naturelles (ailes, crocs, pelage, etc.) au point de pouvoir s’en servir normalement (il pourra ainsi voler, utiliser une queue préhensile, etc.). Il n’aura en revanche pas accès aux Pouvoirs de la fée imitée.</p>","zoneeffet":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.0.21","coreVersion":"10.291","createdTime":1678354656026,"modifiedTime":1678356879899,"lastModifiedBy":"3jSVOAZZNxArxD7h"},"_id":"67ECitVegs2SFn2g","folder":null,"sort":0,"ownership":{"default":0,"3jSVOAZZNxArxD7h":3}}
|
||||
{"name":"Souffle enflammé","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"actif","masquetype":"masque","niveau":"normal","activation":" test de Féérie + Agilité ou Précision.","istest":false,"feeriemasque":"feerie","zoneffet":"","testautre":"","carac":"pre","duree":"","cibles":"une seule.","effet":"souffle de feu de dégâts = 2 + MR","portee":"Féérie mètres.","resistance":"autre","resistanceautre":"Esquive","isvirulence":false,"virulence":"","description":"<p><strong>Type de Pouvoir : </strong>actif.</p>\n<p><strong>Activation : </strong>test de Féérie + Agilité ou Précision.</p>\n<p><strong>Cibles : </strong>une seule.</p>\n<p><strong>Effet : </strong>souffle de feu de dégâts = 2 + MR.</p>\n<p><strong>Portée : </strong>Féérie mètres.</p>\n<p><strong>Résistance : </strong>Esquive.</p>\n<p>La créature souffle un jet de feu capables d’enflammer les matériaux combustibles (papier, tissus, bois) et faire des dégâts sur une cible. Cette dernière peut être durablement enflammée si les dégâts subis sont de 8 ou plus (en cumulant les attaques). La cible subira alors 1 point de dégât par tour jusqu’à ce que les flammes soient éteintes par la cible ou un allié. En as de réussite critique du Souffle enflammé, la cible peut perdre, en plus de points de Vie, un point de Prestance permanent à moins d’être soignée immédiatement.</p>","zoneeffet":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.0.18","coreVersion":"10.291","createdTime":1678293330850,"modifiedTime":1678314472644,"lastModifiedBy":"3jSVOAZZNxArxD7h"},"_id":"68wj1CJt4oipIedV","folder":null,"sort":0,"ownership":{"default":0,"3jSVOAZZNxArxD7h":3}}
|
||||
{"name":"Souffle enflammé","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"actif","masquetype":"masque","niveau":"normal","activation":" test de Féérie + Agilité ou Précision.","istest":true,"feeriemasque":"feerie","zoneffet":"","testautre":"","carac":"agi","duree":"","cibles":"une seule.","effet":"souffle de feu de dégâts = 2 + MR","portee":"Féérie mètres.","resistance":"autre","resistanceautre":"Esquive","isvirulence":false,"virulence":"","description":"<p><strong>Type de Pouvoir : </strong>actif.</p>\n<p><strong>Activation : </strong>test de Féérie + Agilité ou Précision.</p>\n<p><strong>Cibles : </strong>une seule.</p>\n<p><strong>Effet : </strong>souffle de feu de dégâts = 2 + MR.</p>\n<p><strong>Portée : </strong>Féérie mètres.</p>\n<p><strong>Résistance : </strong>Esquive.</p>\n<p>La créature souffle un jet de feu capables d’enflammer les matériaux combustibles (papier, tissus, bois) et faire des dégâts sur une cible. Cette dernière peut être durablement enflammée si les dégâts subis sont de 8 ou plus (en cumulant les attaques). La cible subira alors 1 point de dégât par tour jusqu’à ce que les flammes soient éteintes par la cible ou un allié. En as de réussite critique du Souffle enflammé, la cible peut perdre, en plus de points de Vie, un point de Prestance permanent à moins d’être soignée immédiatement.</p>","zoneeffet":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.1.3","coreVersion":"10.291","createdTime":1678293330850,"modifiedTime":1682875304779,"lastModifiedBy":"xGnwWyEbO2k89UsP"},"_id":"68wj1CJt4oipIedV","folder":null,"sort":0,"ownership":{"default":0,"3jSVOAZZNxArxD7h":3}}
|
||||
{"name":"Chute indolore","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"passif","masquetype":"masque","niveau":"normal","activation":"","istest":false,"feeriemasque":"feerie","zoneffet":"","testautre":"","carac":"pres","duree":"","cibles":"","effet":"la hauteur d’une chute est réduite de Féérie x 4 m pour le calcul de son SD.","portee":"","resistance":"aucune","resistanceautre":"Celle de la structure ou de l’objet (voir p. 204).","isvirulence":false,"virulence":"","description":"<p>La créature est capable d’affronter les pires chutes sans se faire mal. Lorsque ce Pouvoir est actif, on soustrait Féérie x 4 m à la hauteur de la chute pour le calcul de son SD.</p>\n<p><strong>Exemple</strong> : <em>si une créature a 4 en Féérie et chute de 20 m, c’est comme si elle ne chutait que de 4 m (elle ignore 4 x 4 = 16 m). Le SD de son test de Ressort + Agilité pour limiter les dégâts de la chute sera égal à 8 au lieu de 22 (voir le tableau des chutes, p. 190).</em></p>"},"effects":[],"flags":{"core":{"sourceId":"Item.745Qz4iEGB7RnBPk"}},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.0.18","coreVersion":"10.291","createdTime":1678214487456,"modifiedTime":1678303349644,"lastModifiedBy":"xGnwWyEbO2k89UsP"},"_id":"6v3s1I0blnPJHipG","folder":null,"sort":0,"ownership":{"default":0,"xGnwWyEbO2k89UsP":3}}
|
||||
{"name":"Charme","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"actif","masquetype":"masque","niveau":"normal","activation":"test de Féérie + Prestance.","istest":true,"feeriemasque":"feerie","zoneffet":"","testautre":"","carac":"pres","duree":"Féérie + MR jours.","cibles":" une cible.","effet":"la cible tombe amoureuse.","portee":"conversation.","resistance":"psychiquepassive","resistanceautre":"Celle de la structure ou de l’objet (voir p. 204).","isvirulence":false,"virulence":"","description":"<p>La créature est capable, au cours d’une conversation, de faire tomber sa cible follement amoureuse d’elle si elle ne Résiste pas. La cible, une fois éprise de la créature, aura du mal à lui refuser quelque chose mais ne fera rien qui puisse directement nuire à ses jours et ira rarement contre son code moral.</p>\n<p>Pour la pousser à une telle extrémité, la créature devra obtenir une réussite critique ou réussir un test de Rhétorique ou Séduction de SD 15 minimum (au jugement du Docte) bénéficiant d’un bonus égal à la MR du Pouvoir.</p>"},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.0.18","coreVersion":"10.291","createdTime":1678214487456,"modifiedTime":1678303349644,"lastModifiedBy":"xGnwWyEbO2k89UsP"},"_id":"745Qz4iEGB7RnBPk","folder":null,"sort":0,"ownership":{"default":0,"xGnwWyEbO2k89UsP":3}}
|
||||
{"name":"Sujet qui fâche","type":"pouvoir","img":"systems/fvtt-les-heritiers/assets/icons/power.webp","system":{"pouvoirtype":"actif","masquetype":"masque","niveau":"normal","activation":"test de Féérie + Esprit.","istest":true,"feeriemasque":"feerie","zoneffet":"","testautre":"","carac":"esp","duree":"","cibles":" une cible","effet":"fait deviner ce qui fâche quelqu’un ; fait perdre automatiquement un point de Sang-froid quand ce sujet est abordé et pousse à la colère.","portee":" à vue","resistance":"autre","resistanceautre":"psychique pour ne pas être percé à jour puis Fortitude + Sang-froid pour garder le contrôle contre un SD difficile (13 ou plus) fixé par le Docte.","isvirulence":false,"virulence":"","description":"<p><strong>Type de Pouvoir :</strong> actif.</p>\n<p><strong>Activation : </strong>test de Féérie + Esprit.</p>\n<p><strong>Cibles : </strong>une cible.</p>\n<p><strong>Effet :</strong> fait deviner ce qui fâche quelqu’un ; fait perdre automatiquement un point de Sang-froid quand ce sujet est abordé et pousse à la colère.</p>\n<p><strong>Portée :</strong> à vue.</p>\n<p><strong>Résistance : </strong>psychique pour ne pas être percé à jour puis Fortitude + Sang-froid pour garder le contrôle contre un SD difficile (13 ou plus) fixé par le Docte.</p>\n<p>Lorsqu’elle active ce Pouvoir, la créature peut, en observant son interlocuteur (il peut avoir un bonus d’après des éléments qu’il connaît), trouver instinctivement le sujet qui va le fâcher et, selon son caractère, le mettre en colère ou le faire fuir en rougissant. Ce peut être un complexe, une histoire louche, une phobie… Toutefois, elle n’est pas obligée d’en faire usage : le Docte doit juste lui communiquer le sujet susceptible de froisser la personne en question.<br>Si la victime Résiste, la créature n’est pas sûre du « sujet qui fâche ». En cas de succès du Pouvoir, si la créature se sert du Sujet qui fâche, la cible perd automatiquement un point de Sang-froid (effet non cumulable) et doit réussir à se maîtriser pour ne pas montrer sa colère ou sa gêne. Toutefois, la victime ne peut que maîtriser ses réactions apparentes (et bouillir intérieurement).</p>","zoneeffet":""},"effects":[],"flags":{},"_stats":{"systemId":"fvtt-les-heritiers","systemVersion":"10.0.18","coreVersion":"10.291","createdTime":1678313273572,"modifiedTime":1678314472645,"lastModifiedBy":"3jSVOAZZNxArxD7h"},"_id":"7BsyUzwv31oxldYQ","folder":null,"sort":0,"ownership":{"default":0,"3jSVOAZZNxArxD7h":3}}
|
||||
|
0
packs/pouvoirs/000178.log
Normal file
0
packs/pouvoirs/000178.log
Normal file
BIN
packs/pouvoirs/000180.ldb
Normal file
BIN
packs/pouvoirs/000180.ldb
Normal file
Binary file not shown.
1
packs/pouvoirs/CURRENT
Normal file
1
packs/pouvoirs/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000176
|
0
packs/pouvoirs/LOCK
Normal file
0
packs/pouvoirs/LOCK
Normal file
15
packs/pouvoirs/LOG
Normal file
15
packs/pouvoirs/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.599663 7f4163fff6c0 Recovering log #174
|
||||
2025/05/02-08:12:38.610256 7f4163fff6c0 Delete type=3 #172
|
||||
2025/05/02-08:12:38.610386 7f4163fff6c0 Delete type=0 #174
|
||||
2025/05/02-08:32:33.560393 7f4162bff6c0 Level-0 table #179: started
|
||||
2025/05/02-08:32:33.568946 7f4162bff6c0 Level-0 table #179: 279479 bytes OK
|
||||
2025/05/02-08:32:33.575435 7f4162bff6c0 Delete type=0 #177
|
||||
2025/05/02-08:32:33.575893 7f4162bff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.614470 7f4162bff6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at '!items!zON0h5SjFyANjPnA' @ 540 : 1
|
||||
2025/05/02-08:32:33.614491 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.623438 7f4162bff6c0 Generated table #180@1: 135 keys, 279479 bytes
|
||||
2025/05/02-08:32:33.623477 7f4162bff6c0 Compacted 1@1 + 1@2 files => 279479 bytes
|
||||
2025/05/02-08:32:33.629748 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.629951 7f4162bff6c0 Delete type=2 #139
|
||||
2025/05/02-08:32:33.630303 7f4162bff6c0 Delete type=2 #179
|
||||
2025/05/02-08:32:33.630622 7f4162bff6c0 Manual compaction at level-1 from '!items!zON0h5SjFyANjPnA' @ 540 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
8
packs/pouvoirs/LOG.old
Normal file
8
packs/pouvoirs/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.446368 7f1d037fe6c0 Recovering log #170
|
||||
2024/11/17-22:48:43.456501 7f1d037fe6c0 Delete type=3 #168
|
||||
2024/11/17-22:48:43.456578 7f1d037fe6c0 Delete type=0 #170
|
||||
2024/11/17-22:50:28.255715 7f1d027ff6c0 Level-0 table #175: started
|
||||
2024/11/17-22:50:28.255743 7f1d027ff6c0 Level-0 table #175: 0 bytes OK
|
||||
2024/11/17-22:50:28.262546 7f1d027ff6c0 Delete type=0 #173
|
||||
2024/11/17-22:50:28.274749 7f1d027ff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.274785 7f1d027ff6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
|
BIN
packs/pouvoirs/MANIFEST-000176
Normal file
BIN
packs/pouvoirs/MANIFEST-000176
Normal file
Binary file not shown.
0
packs/profils/000176.log
Normal file
0
packs/profils/000176.log
Normal file
1
packs/profils/CURRENT
Normal file
1
packs/profils/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000174
|
0
packs/profils/LOCK
Normal file
0
packs/profils/LOCK
Normal file
7
packs/profils/LOG
Normal file
7
packs/profils/LOG
Normal file
@ -0,0 +1,7 @@
|
||||
2025/05/02-08:12:38.642095 7f4168bf96c0 Recovering log #172
|
||||
2025/05/02-08:12:38.652987 7f4168bf96c0 Delete type=3 #170
|
||||
2025/05/02-08:12:38.653107 7f4168bf96c0 Delete type=0 #172
|
||||
2025/05/02-08:32:33.630766 7f4162bff6c0 Level-0 table #177: started
|
||||
2025/05/02-08:32:33.630831 7f4162bff6c0 Level-0 table #177: 0 bytes OK
|
||||
2025/05/02-08:32:33.637591 7f4162bff6c0 Delete type=0 #175
|
||||
2025/05/02-08:32:33.669383 7f4162bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
7
packs/profils/LOG.old
Normal file
7
packs/profils/LOG.old
Normal file
@ -0,0 +1,7 @@
|
||||
2024/11/17-22:48:43.473498 7f1d093fa6c0 Recovering log #168
|
||||
2024/11/17-22:48:43.483301 7f1d093fa6c0 Delete type=3 #166
|
||||
2024/11/17-22:48:43.483362 7f1d093fa6c0 Delete type=0 #168
|
||||
2024/11/17-22:50:28.281429 7f1d027ff6c0 Level-0 table #173: started
|
||||
2024/11/17-22:50:28.281470 7f1d027ff6c0 Level-0 table #173: 0 bytes OK
|
||||
2024/11/17-22:50:28.288046 7f1d027ff6c0 Delete type=0 #171
|
||||
2024/11/17-22:50:28.300645 7f1d027ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
BIN
packs/profils/MANIFEST-000174
Normal file
BIN
packs/profils/MANIFEST-000174
Normal file
Binary file not shown.
0
packs/scenes/000146.log
Normal file
0
packs/scenes/000146.log
Normal file
BIN
packs/scenes/000148.ldb
Normal file
BIN
packs/scenes/000148.ldb
Normal file
Binary file not shown.
1
packs/scenes/CURRENT
Normal file
1
packs/scenes/CURRENT
Normal file
@ -0,0 +1 @@
|
||||
MANIFEST-000144
|
0
packs/scenes/LOCK
Normal file
0
packs/scenes/LOCK
Normal file
15
packs/scenes/LOG
Normal file
15
packs/scenes/LOG
Normal file
@ -0,0 +1,15 @@
|
||||
2025/05/02-08:12:38.657367 7f41637fe6c0 Recovering log #142
|
||||
2025/05/02-08:12:38.668877 7f41637fe6c0 Delete type=3 #140
|
||||
2025/05/02-08:12:38.668996 7f41637fe6c0 Delete type=0 #142
|
||||
2025/05/02-08:32:33.658042 7f4162bff6c0 Level-0 table #147: started
|
||||
2025/05/02-08:32:33.662480 7f4162bff6c0 Level-0 table #147: 4682 bytes OK
|
||||
2025/05/02-08:32:33.669142 7f4162bff6c0 Delete type=0 #145
|
||||
2025/05/02-08:32:33.669454 7f4162bff6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
|
||||
2025/05/02-08:32:33.669512 7f4162bff6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at '!scenes!ypDutqjqZcr7lx6I' @ 16 : 1
|
||||
2025/05/02-08:32:33.669532 7f4162bff6c0 Compacting 1@1 + 1@2 files
|
||||
2025/05/02-08:32:33.673201 7f4162bff6c0 Generated table #148@1: 4 keys, 2992 bytes
|
||||
2025/05/02-08:32:33.673241 7f4162bff6c0 Compacted 1@1 + 1@2 files => 2992 bytes
|
||||
2025/05/02-08:32:33.681539 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
||||
2025/05/02-08:32:33.681688 7f4162bff6c0 Delete type=2 #87
|
||||
2025/05/02-08:32:33.681917 7f4162bff6c0 Delete type=2 #147
|
||||
2025/05/02-08:32:33.707107 7f4162bff6c0 Manual compaction at level-1 from '!scenes!ypDutqjqZcr7lx6I' @ 16 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
|
8
packs/scenes/LOG.old
Normal file
8
packs/scenes/LOG.old
Normal file
@ -0,0 +1,8 @@
|
||||
2024/11/17-22:48:43.485905 7f1d08bf96c0 Recovering log #138
|
||||
2024/11/17-22:48:43.496531 7f1d08bf96c0 Delete type=3 #136
|
||||
2024/11/17-22:48:43.496608 7f1d08bf96c0 Delete type=0 #138
|
||||
2024/11/17-22:50:28.294362 7f1d027ff6c0 Level-0 table #143: started
|
||||
2024/11/17-22:50:28.294392 7f1d027ff6c0 Level-0 table #143: 0 bytes OK
|
||||
2024/11/17-22:50:28.300492 7f1d027ff6c0 Delete type=0 #141
|
||||
2024/11/17-22:50:28.300663 7f1d027ff6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
|
||||
2024/11/17-22:50:28.300690 7f1d027ff6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
|
BIN
packs/scenes/MANIFEST-000144
Normal file
BIN
packs/scenes/MANIFEST-000144
Normal file
Binary file not shown.
@ -12,7 +12,7 @@
|
||||
font-family: Garamond;
|
||||
src: url('../assets/fonts/Garamond.woff') format("woff");
|
||||
}
|
||||
|
||||
|
||||
:root {
|
||||
/* =================== 1. ACTOR SHEET FONT STYLES =========== */
|
||||
--window-header-font-family: GismondaFG;
|
||||
@ -39,7 +39,7 @@
|
||||
--actor-label-font-weight: 700;
|
||||
--actor-label-color: #464331c4;
|
||||
|
||||
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
|
||||
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
|
||||
--debug-background-color-red: #ff000054;
|
||||
--debug-background-color-blue: #1d00ff54;
|
||||
--debug-background-color-green: #54ff0054;
|
||||
@ -482,15 +482,15 @@ table {border: 1px solid #7a7971;}
|
||||
line-height: 1.5rem;
|
||||
border-top: 0 none;
|
||||
border-bottom: 0 none;
|
||||
/*background-color:#2e5561;*/
|
||||
color: #cbdaa3;
|
||||
background-image: url("../assets/ui/bandeau_01.webp");
|
||||
}
|
||||
|
||||
/* 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 {
|
||||
@ -500,7 +500,6 @@ nav.sheet-tabs .item:after {
|
||||
right: 0;
|
||||
height: 2rem;
|
||||
width: 1px;
|
||||
/*border-right: 1px dashed rgba(52, 52, 52, 0.25);*/
|
||||
}
|
||||
|
||||
.sheet .tab[data-tab] {
|
||||
@ -573,6 +572,7 @@ ul, li {
|
||||
|
||||
.specialisation-label {
|
||||
font-size: 0.8rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.carac-label,
|
||||
@ -707,10 +707,10 @@ ul, li {
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
.blessures-title {
|
||||
.blessures-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
.alchimie-title {
|
||||
.alchimie-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
.blessure-data {
|
||||
@ -792,7 +792,7 @@ ul, li {
|
||||
|
||||
/* ======================================== */
|
||||
.tokenhudext {
|
||||
display: flex;
|
||||
display: flex;
|
||||
flex: 0 !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
@ -869,7 +869,7 @@ ul, li {
|
||||
.sidebar-tab .directory-list .entity {
|
||||
border-top: 1px dashed rgba(0,0,0,0.25);
|
||||
border-bottom: 0 none;
|
||||
padding: 0.25rem 0;
|
||||
padding: 0.25rem 0;
|
||||
}
|
||||
|
||||
.sidebar-tab .directory-list .entity:hover {
|
||||
@ -883,10 +883,10 @@ ul, li {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to {
|
||||
.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.chat-actor-name {
|
||||
@ -1023,8 +1023,6 @@ ul, li {
|
||||
}
|
||||
|
||||
#sidebar #sidebar-tabs i{
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
display: inline-block;
|
||||
background-position:center;
|
||||
background-size:cover;
|
||||
@ -1032,23 +1030,6 @@ ul, li {
|
||||
|
||||
}
|
||||
|
||||
/*#sidebar #sidebar-tabs i.fa-comments:before, #sidebar #sidebar-tabs i.fa-fist-raised:before, #sidebar #sidebar-tabs i.fa-users:before, #sidebar #sidebar-tabs i.fa-map:before, #sidebar #sidebar-tabs i.fa-suitcase:before, #sidebar #sidebar-tabs i.fa-book-open:before, #sidebar #sidebar-tabs i.fa-th-list:before, #sidebar #sidebar-tabs i.fa-music:before, #sidebar #sidebar-tabs i.fa-atlas:before, #sidebar #sidebar-tabs i.fa-cogs:before {content: "";}
|
||||
#sidebar #sidebar-tabs i.fa-comments {background: url("img/ui/icon_sidebar_chat.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-fist-raised {background: url("img/ui/icon_sidebar_fight.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-users {background: url("img/ui/icon_sidebar_actor.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-map {background: url("img/ui/icon_sidebar_scene.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-suitcase {background: url("img/ui/icon_sidebar_item.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-book-open {background: url("img/ui/icon_sidebar_journal.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-th-list {background: url("img/ui/icon_sidebar_rolltable.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-music {background: url("img/ui/icon_sidebar_music.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-atlas {background: url("img/ui/icon_sidebar_compendium.svg") no-repeat;}
|
||||
#sidebar #sidebar-tabs i.fa-cogs {background: url("img/ui/icon_sidebar_settings.svg") no-repeat;}
|
||||
|
||||
#combat #combat-controls {
|
||||
box-shadow: inset 0 0 2rem rgba(0,0,0,0.5);
|
||||
}
|
||||
*/
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
/* Control, Tool, hotbar & navigation */
|
||||
|
||||
@ -1085,7 +1066,7 @@ ul, li {
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#hotbar .bar-controls {
|
||||
#hotbar .bar-controls {
|
||||
background: rgba(30, 25, 20, 1);
|
||||
border: 1px solid rgba(72, 46, 28, 1);
|
||||
}
|
||||
@ -1145,7 +1126,7 @@ ul, li {
|
||||
top: 1px;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
|
||||
|
||||
/* Fade in tooltip */
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
@ -1154,7 +1135,7 @@ ul, li {
|
||||
|
||||
.tooltip .ttt-fatigue{
|
||||
width: 360px;
|
||||
|
||||
|
||||
background: rgba(30, 25, 20, 0.9);
|
||||
border-image: url(img/ui/bg_control.jpg) 21 repeat;
|
||||
border-image-slice: 6 6 6 6 fill;
|
||||
@ -1217,7 +1198,17 @@ ul, li {
|
||||
top:1px;
|
||||
}
|
||||
|
||||
h4.entry-name.document-name {
|
||||
color: #f3eeee;
|
||||
}
|
||||
.compendium h4.entry-name.document-name {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.fxmaster {
|
||||
background: #443e37E0;
|
||||
background-color: #443e37E0;
|
||||
}
|
||||
.button-sheet-roll {
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, #41545a 5%, #2e5561 100%);
|
||||
@ -1241,6 +1232,18 @@ ul, li {
|
||||
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||
background-color: rgb(56, 33, 33);
|
||||
}
|
||||
.roll-tricherie-2 {
|
||||
margin: 2px 2px 2px 2px;
|
||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||
background: linear-gradient(to bottom, #41545a 5%, #2e5561 100%);
|
||||
background-color: #7d5d3b00;
|
||||
border-radius: 4px;
|
||||
border: 1px ridge #846109;
|
||||
padding: 1px 1px 0px 1px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0px 1px 0px #4d3534;
|
||||
color: beige;
|
||||
}
|
||||
.button-sheet-roll:active {
|
||||
position:relative;
|
||||
top:1px;
|
||||
@ -1317,7 +1320,7 @@ ul, li {
|
||||
.drop-ability-power,
|
||||
.drop-ability-spec,
|
||||
.drop-spec-power,
|
||||
.drop-abilities,
|
||||
.drop-abilities,
|
||||
.drop-optionnal-abilities,
|
||||
.drop-specialperk1,
|
||||
.drop-perk2,
|
||||
@ -1390,7 +1393,7 @@ ul, li {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.dice-cell {
|
||||
.dice-cell {
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
width: 60px;
|
||||
@ -1424,6 +1427,12 @@ ul, li {
|
||||
max-width: 4rem;
|
||||
min-width: 4rem;
|
||||
}
|
||||
.item-field-label-short-num {
|
||||
padding-top: 6px;
|
||||
flex-grow:1;
|
||||
max-width: 2rem;
|
||||
min-width: 2rem;
|
||||
}
|
||||
.item-field-label-medium {
|
||||
padding-top: 6px;
|
||||
flex-grow:1;
|
||||
@ -1460,7 +1469,7 @@ ul, li {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.item-filler {
|
||||
flex-grow: 6;
|
||||
flex-grow: 6;
|
||||
flex-shrink: 7;
|
||||
}
|
||||
.item-controls-fixed {
|
||||
|
145
system.json
145
system.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "fvtt-les-heritiers",
|
||||
"description": "Les Héritiers pour FoundryVTT",
|
||||
"version": "10.1.1",
|
||||
"version": "13.0.0",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Uberwald/LeRatierBretonnien",
|
||||
@ -15,11 +15,13 @@
|
||||
"esmodules": [
|
||||
"modules/heritiers-main.js"
|
||||
],
|
||||
"gridDistance": 5,
|
||||
"gridUnits": "m",
|
||||
"grid": {
|
||||
"distance": 5,
|
||||
"units": "m"
|
||||
},
|
||||
"license": "LICENSE.txt",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/raw/branch/master/system.json",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-10.1.1.zip",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-13.0.0.zip",
|
||||
"languages": [
|
||||
{
|
||||
"lang": "fr",
|
||||
@ -28,87 +30,163 @@
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"packFolders": [
|
||||
{
|
||||
"name": "Les Héritiers",
|
||||
"sorting": "m",
|
||||
"color": "#00435c",
|
||||
"folders": [
|
||||
{
|
||||
"name": "Création de Personnage",
|
||||
"sorting": "a",
|
||||
"color": "#00435c",
|
||||
"packs": [
|
||||
"competences",
|
||||
"atouts-feeriques",
|
||||
"avantages",
|
||||
"capacites",
|
||||
"competences",
|
||||
"desavantages",
|
||||
"pouvoirs",
|
||||
"profils",
|
||||
"archetypes-fees"
|
||||
],
|
||||
"folders": []
|
||||
},
|
||||
{
|
||||
"name": "Equipement",
|
||||
"sorting": "a",
|
||||
"color": "#00435c",
|
||||
"packs": [
|
||||
"armes-et-protection"
|
||||
],
|
||||
"folders": []
|
||||
}
|
||||
],
|
||||
"packs":
|
||||
["scenes"]
|
||||
}
|
||||
],
|
||||
"packs": [
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Compétences",
|
||||
"name": "competences",
|
||||
"path": "packs/competences.db",
|
||||
"path": "packs/competences",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Avantages",
|
||||
"name": "avantages",
|
||||
"path": "packs/avantages.db",
|
||||
"path": "packs/avantages",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Désavantages",
|
||||
"name": "desavantages",
|
||||
"path": "packs/desavantages.db",
|
||||
"path": "packs/desavantages",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Capacités Naturelles",
|
||||
"name": "capacites",
|
||||
"path": "packs/capacites.db",
|
||||
"path": "packs/capacites",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Atouts Féériques",
|
||||
"name": "atouts-feeriques",
|
||||
"path": "packs/atouts-feeriques.db",
|
||||
"path": "packs/atouts-feeriques",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Fées",
|
||||
"name": "archetypes-fees",
|
||||
"path": "packs/archetypes-fees.db",
|
||||
"path": "packs/archetypes-fees",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Pouvoirs",
|
||||
"name": "pouvoirs",
|
||||
"path": "packs/pouvoirs.db",
|
||||
"path": "packs/pouvoirs",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Armes et Protections",
|
||||
"name": "armes-et-protection",
|
||||
"path": "packs/armes-et-protection.db",
|
||||
"path": "packs/armes-et-protection",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Item",
|
||||
"label": "Profils",
|
||||
"name": "profils",
|
||||
"path": "packs/profils.db",
|
||||
"path": "packs/profils",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Scene",
|
||||
"label": "Scènes",
|
||||
"name": "scenes",
|
||||
"path": "packs/scenes",
|
||||
"system": "fvtt-les-heritiers",
|
||||
"flags": {},
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
}
|
||||
],
|
||||
"primaryTokenAttribute": "sante.vigueur",
|
||||
@ -121,8 +199,7 @@
|
||||
"url": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers",
|
||||
"background": "systems/fvtt-les-heritiers/assets/ui/wallpaper_foundry2.webp",
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "10",
|
||||
"maximum": "10"
|
||||
"minimum": "13",
|
||||
"verified": "13"
|
||||
}
|
||||
}
|
@ -37,7 +37,8 @@
|
||||
"notes": "",
|
||||
"statut": "",
|
||||
"playernotes":"",
|
||||
"gmnotes": ""
|
||||
"gmnotes": "",
|
||||
"magie": false
|
||||
}
|
||||
},
|
||||
"core": {
|
||||
@ -100,7 +101,7 @@
|
||||
"pres": {
|
||||
"label": "Prestance",
|
||||
"labelnorm": "prestance",
|
||||
"abbrev": "pre",
|
||||
"abbrev": "pres",
|
||||
"kind": "mental",
|
||||
"value": 1,
|
||||
"rang": 0,
|
||||
@ -142,7 +143,8 @@
|
||||
},
|
||||
"pv": {
|
||||
"value": 0,
|
||||
"max": 0
|
||||
"max": 0,
|
||||
"mod": 0
|
||||
},
|
||||
"competences": {
|
||||
"aventurier": {
|
||||
@ -182,6 +184,12 @@
|
||||
"pp": 0
|
||||
}
|
||||
},
|
||||
"magie": {
|
||||
"pointsame": {
|
||||
"value": 0,
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"experience": {
|
||||
"value": 0,
|
||||
"pourtricher": 0
|
||||
@ -254,19 +262,20 @@
|
||||
}
|
||||
},
|
||||
"types": [
|
||||
"fee",
|
||||
"avantage",
|
||||
"desavantage",
|
||||
"capacitenaturelle",
|
||||
"pouvoir",
|
||||
"atoutfeerique",
|
||||
"competence",
|
||||
"arme",
|
||||
"protection",
|
||||
"equipement",
|
||||
"accessoire",
|
||||
"arme",
|
||||
"atoutfeerique",
|
||||
"avantage",
|
||||
"capacitenaturelle",
|
||||
"competence",
|
||||
"contact",
|
||||
"profil"
|
||||
"desavantage",
|
||||
"equipement",
|
||||
"fee",
|
||||
"pouvoir",
|
||||
"profil",
|
||||
"protection",
|
||||
"sort"
|
||||
],
|
||||
"profil": {
|
||||
"profiltype": "majeur",
|
||||
@ -322,6 +331,7 @@
|
||||
"portee": "",
|
||||
"resistance": "",
|
||||
"resistanceautre":"",
|
||||
"pointsusagecourant": -1,
|
||||
"isvirulence": false,
|
||||
"virulence":"",
|
||||
"description": ""
|
||||
@ -335,6 +345,7 @@
|
||||
"niveau": 0,
|
||||
"predilection": false,
|
||||
"specialites": [],
|
||||
"ismagie": false,
|
||||
"description": ""
|
||||
},
|
||||
"equipement": {
|
||||
@ -343,6 +354,19 @@
|
||||
"basequip"
|
||||
]
|
||||
},
|
||||
"sort": {
|
||||
"niveau": "novice",
|
||||
"competence": "Druidisme",
|
||||
"carac": "esp",
|
||||
"duree": "",
|
||||
"portee": "",
|
||||
"concentration": "",
|
||||
"critique": "",
|
||||
"ingredients": "",
|
||||
"resistance": "",
|
||||
"coutactivation": "",
|
||||
"description": ""
|
||||
},
|
||||
"arme": {
|
||||
"categorie": "",
|
||||
"armetype": "",
|
||||
|
@ -48,15 +48,11 @@
|
||||
<input type="text" class="item-field-label-short" name="system.pv.value" value="{{system.pv.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.pv.max" value="{{system.pv.max}}" data-dtype="Number" />
|
||||
<label class="item-field-label-short">Malus</label>
|
||||
<input type="text" class="item-field-label-short" value="{{pvMalus}}" data-dtype="Number" disabled />
|
||||
<input type="text" class="item-field-label-short" value="{{pvMalus.value}}" data-dtype="Number" disabled />
|
||||
<span> </span>
|
||||
|
||||
<select class="item-field-label-medium" type="text" name="system.statutmasque" value="{{system.statutmasque}}" data-dtype="string">
|
||||
{{#select system.statutmasque}}
|
||||
{{#each config.statutMasque as |categ cKey|}}
|
||||
<option value="{{cKey}}">{{categ}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.statutMasque selected=system.statutmasque}}
|
||||
</select>
|
||||
|
||||
<span> </span>
|
||||
@ -100,7 +96,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
@ -117,22 +113,82 @@
|
||||
<span class="item-field-label-long2 roll-style"><a class="roll-competence item-field-label-short"
|
||||
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||
|
||||
<select class="item-field-label-short edit-item-data" type="text"
|
||||
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
|
||||
{{#select skill.system.niveau}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-list-niveau.html}}
|
||||
{{/select}}
|
||||
<select class="item-field-label-short edit-item-data" type="text"
|
||||
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
|
||||
{{selectOptions @root.config.listNiveau selected=skill.system.niveau}}
|
||||
</select>
|
||||
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<li class="item flexrow " >
|
||||
<h2>Magie</h3>
|
||||
</li>
|
||||
|
||||
<div class="flexrow">
|
||||
<ul>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-medium roll-style"><a class="item-field-label-short"
|
||||
data-rang-key="feerie">Point d'Ame</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.magie.pointsame.value"
|
||||
value="{{system.magie.pointsame.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.magie.pointsame.max"
|
||||
value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if issGM}} {{else}} disabled {{/if}} />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{{#each magieList as |magie idx|}}
|
||||
<li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence">
|
||||
<h2 class="flexrow"><label class="items-title-text "><a class="roll-competence item-field-label-short"
|
||||
data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</h2>
|
||||
</li>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header item-field-label-long2-img">
|
||||
<h3><label class="items-title-text">Nom du sort</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
<label class="short-label">Niveau</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="sort" title="Ajouter un sort"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each sorts as |sort key|}}
|
||||
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||
<img class="item-name-img" src="{{sort.img}}" />
|
||||
<span class="item-field-label-long2 roll-style"><a class="roll-sort">{{sort.name}}</a></span>
|
||||
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -221,10 +277,10 @@
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-equip" title="Worn">{{#if arme.system.equipped}}<i
|
||||
<a class="item-control item-equip" title="Equipé">{{#if arme.system.equipped}}<i
|
||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -242,7 +298,7 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
|
||||
<a class="item-control item-add" data-type="protection" title="Ajouter une protection"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
@ -255,8 +311,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -275,8 +331,8 @@
|
||||
<span class="item-field-label-long2">{{fee.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
@ -287,10 +343,12 @@
|
||||
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short" data-rang-key="feerie">Féerie</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.rang.feerie.value" value="{{system.rang.feerie.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.rang.feerie.max" value="{{system.rang.feerie.max}}" data-dtype="Number" />
|
||||
<span class="item-field-label-long"></span>
|
||||
<span class="item-field-label-medium"></span>
|
||||
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short" data-rang-key="masque">Masque</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.rang.masque.value" value="{{system.rang.masque.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.rang.masque.max" value="{{system.rang.masque.max}}" data-dtype="Number" />
|
||||
<span class="item-field-label-medium"></span>
|
||||
<label class="item-field-label-long roll-style"><a class="dialog-recup-usage item-field-label-long">Récup. P. d'Usage</a></label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -305,6 +363,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="avantage" title="Ajouter un avantage"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each avantages as |avantage key|}}
|
||||
@ -313,8 +373,8 @@
|
||||
<span class="item-field-label-long2">{{avantage.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -329,6 +389,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="desavantage" title="Ajouter un Désavantage"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each desavantages as |desavantage key|}}
|
||||
@ -337,8 +399,8 @@
|
||||
<span class="item-field-label-long2">{{desavantage.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -353,6 +415,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="atoutfeerique" title="Ajouter un Atout féerique"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each atouts as |atout key|}}
|
||||
@ -361,8 +425,8 @@
|
||||
<span class="item-field-label-long2">{{atout.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -384,33 +448,34 @@
|
||||
<span class="item-field-label-medium">
|
||||
<label class="short-label">Niveau</label>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
<label class="short-label">Usage</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="pouvoir" title="Ajouter un pouvoir"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each pouvoirs as |pouvoir key|}}
|
||||
<li class="item flexrow " data-item-id="{{pouvoir._id}}" data-item-type="pouvoir">
|
||||
<img class="item-name-img" src="{{pouvoir.img}}" />
|
||||
{{#if pouvoir.system.istest}}
|
||||
<span class="item-field-label-long2 roll-style"><a class="roll-pouvoir">{{pouvoir.name}}</a></span>
|
||||
{{else}}
|
||||
<span class="item-field-label-long2">{{pouvoir.name}}</span>
|
||||
{{/if}}
|
||||
<span class="item-field-label-medium">{{upperFirst pouvoir.system.masquetype}}</span>
|
||||
<span class="item-field-label-medium">{{upperFirst pouvoir.system.pouvoirtype}}</span>
|
||||
<span class="item-field-label-medium">{{upperFirst pouvoir.system.niveau}}</span>
|
||||
<span class="item-field-label-medium">{{pouvoir.system.pointsusagecourant}}/{{pouvoir.maxUsage}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
@ -419,6 +484,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="capacitenaturelle" title="Ajouter une Capacité naturelle"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each capacites as |capa key|}}
|
||||
@ -427,8 +494,8 @@
|
||||
<span class="item-field-label-long2">{{capa.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -452,8 +519,8 @@
|
||||
<span class="item-field-label-long2">{{equip.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
|
@ -14,7 +14,8 @@
|
||||
{{#each system.caracteristiques as |carac key|}}
|
||||
{{#if (eq kind "physical")}}
|
||||
<li class="item flexrow ">
|
||||
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-key="{{key}}">{{carac.label}}</a></h4>
|
||||
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac"
|
||||
data-key="{{key}}">{{carac.label}}</a></h4>
|
||||
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" />
|
||||
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||
@ -30,7 +31,8 @@
|
||||
{{#each system.caracteristiques as |carac key|}}
|
||||
{{#if (eq kind "mental")}}
|
||||
<li class="item flexrow ">
|
||||
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" data-key="{{key}}">{{carac.label}}</a></h4>
|
||||
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac"
|
||||
data-key="{{key}}">{{carac.label}}</a></h4>
|
||||
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" />
|
||||
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||
@ -41,28 +43,31 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<label class="item-field-label-short">PV</label>
|
||||
<input type="text" class="item-field-label-short" name="system.pv.value" value="{{system.pv.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.pv.max" value="{{system.pv.max}}" data-dtype="Number" />
|
||||
<label class="item-field-label-short">Malus</label>
|
||||
<input type="text" class="item-field-label-short" value="{{pvMalus}}" data-dtype="Number" disabled />
|
||||
<span> </span>
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<label class="item-field-label-short">PV</label>
|
||||
<input type="text" class="item-field-label-short" name="system.pv.value" value="{{system.pv.value}}"
|
||||
data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.pv.max" value="{{system.pv.max}}" disabled
|
||||
data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.pv.mod" value="{{system.pv.mod}}"
|
||||
data-dtype="Number" />
|
||||
<label class="item-field-label-short">Malus</label>
|
||||
<input type="text" class="item-field-label-short" value="{{pvMalus.value}}" data-dtype="Number" disabled />
|
||||
<span> </span>
|
||||
|
||||
<select class="item-field-label-medium" type="text" name="system.statutmasque" value="{{system.statutmasque}}" data-dtype="string">
|
||||
{{#select system.statutmasque}}
|
||||
{{#each config.statutMasque as |categ cKey|}}
|
||||
<option value="{{cKey}}">{{categ}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
||||
<span> </span>
|
||||
<label class="item-field-label-short">Tricherie</label>
|
||||
<input type="text" class="item-field-label-short" name="system.rang.tricherie.value" value="{{system.rang.tricherie.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.rang.tricherie.max" value="{{system.rang.tricherie.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
<select class="item-field-label-medium" type="text" name="system.statutmasque"
|
||||
value="{{system.statutmasque}}" data-dtype="string">
|
||||
{{selectOptions config.statutMasque selected=system.statutmasque}}
|
||||
</select>
|
||||
|
||||
<span> </span>
|
||||
<label class="item-field-label-short">Tricherie</label>
|
||||
<input type="text" class="item-field-label-short-num" name="system.rang.tricherie.value"
|
||||
value="{{system.rang.tricherie.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short-num" name="system.rang.tricherie.max"
|
||||
value="{{system.rang.tricherie.max}}" data-dtype="Number" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -72,6 +77,9 @@
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="competences">Compétences</a>
|
||||
<a class="item" data-tab="fee">Fée</a>
|
||||
{{#if system.biodata.magie}}
|
||||
<a class="item" data-tab="magie">Magie</a>
|
||||
{{/if}}
|
||||
<a class="item" data-tab="combat">Combat</a>
|
||||
<a class="item" data-tab="equipement">Equipement</a>
|
||||
<a class="item" data-tab="contact">Contacts</a>
|
||||
@ -91,13 +99,15 @@
|
||||
|
||||
<div>
|
||||
{{#each utileSkillsPhysical as |skillDef keyProfil|}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.html skillDef=skillDef keyProfil=keyProfil}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.html skillDef=skillDef keyProfil=keyProfil
|
||||
config=config}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{#each utileSkillsMental as |skillDef keyProfil|}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.html skillDef=skillDef keyProfil=keyProfil}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-utile-skills.html skillDef=skillDef keyProfil=keyProfil
|
||||
config=config}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
@ -113,22 +123,24 @@
|
||||
<label class="short-label">Niveau</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="competence" title="Ajouter une compétence futile"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each futileSkills as |skill key|}}
|
||||
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
||||
<span class="item-field-label-long2 roll-style"><a class="roll-competence item-field-label-short"
|
||||
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||
|
||||
<select class="item-field-label-short edit-item-data" type="text"
|
||||
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
|
||||
{{#select skill.system.niveau}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-list-niveau.html}}
|
||||
{{/select}}
|
||||
<select class="item-field-label-short edit-item-data" type="text" data-item-field="niveau"
|
||||
value="{{skill.system.niveau}}" data-dtype="Number">
|
||||
{{selectOptions @root.config.listNiveau selected=skill.system.niveau}}
|
||||
</select>
|
||||
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -149,32 +161,41 @@
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<label class="item-field-label-medium"><strong>Esquive</strong></label>
|
||||
<label class="item-field-label-medium">Masquée</label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.esquive.masquee" value="{{system.combat.esquive.masquee}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.esquive.masquee"
|
||||
value="{{system.combat.esquive.masquee}}" data-dtype="Number" />
|
||||
<label class="item-field-label-medium">Démasquée</label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.esquive.demasquee" value="{{system.combat.esquive.demasquee}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.esquive.demasquee"
|
||||
value="{{system.combat.esquive.demasquee}}" data-dtype="Number" />
|
||||
<label class="item-field-label-short"> </label>
|
||||
<label class="item-field-label-medium"><strong>Parade</strong></label>
|
||||
<label class="item-field-label-medium">Masquée</label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.parade.masquee" value="{{system.combat.parade.masquee}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.parade.masquee"
|
||||
value="{{system.combat.parade.masquee}}" data-dtype="Number" />
|
||||
<label class="item-field-label-medium">Démasquée</label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.parade.demasquee" value="{{system.combat.parade.demasquee}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.parade.demasquee"
|
||||
value="{{system.combat.parade.demasquee}}" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<label class="item-field-label-long">Rés. physique</label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.resistancephysique.value" value="{{system.combat.resistancephysique.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.resistancephysique.value"
|
||||
value="{{system.combat.resistancephysique.value}}" data-dtype="Number" />
|
||||
<label class="item-field-label-short"> </label>
|
||||
<label class="item-field-label-long">Rés. psychique</label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.resistancepsychique.value" value="{{system.combat.resistancepsychique.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.resistancepsychique.value"
|
||||
value="{{system.combat.resistancepsychique.value}}" data-dtype="Number" />
|
||||
<label class="item-field-label-short"> </label>
|
||||
<label class="item-field-label-medium">Protection : </label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.protection.value" value="{{system.combat.protection.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.protection.value"
|
||||
value="{{system.combat.protection.value}}" data-dtype="Number" />
|
||||
</li>
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<label class="item-field-label-long">Effets secondaires</label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.effetssecondaires" value="{{system.combat.effetssecondaires}}" data-dtype="String" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.effetssecondaires"
|
||||
value="{{system.combat.effetssecondaires}}" data-dtype="String" />
|
||||
<label class="item-field-label-short"> </label>
|
||||
<label class="item-field-label-long">Dissimulation : </label>
|
||||
<input type="text" class="item-field-label-short" name="system.combat.dissimulation.value" value="{{system.combat.dissimulation.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.combat.dissimulation.value"
|
||||
value="{{system.combat.dissimulation.value}}" data-dtype="Number" />
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -214,22 +235,23 @@
|
||||
<span class="item-field-label-short">
|
||||
<button class="roll-assomer-arme button-sheet-roll">Assomer</button>
|
||||
</span>
|
||||
|
||||
|
||||
{{#if arme.system.isMelee}}
|
||||
<span class="item-field-label-short">
|
||||
<button class="roll-attaque-charge-arme button-sheet-roll">Charger</button>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<button class="roll-attaque-brutale-arme button-sheet-roll button-sheet-roll-long1">Attaque brutale</button>
|
||||
<button class="roll-attaque-brutale-arme button-sheet-roll button-sheet-roll-long1">Attaque
|
||||
brutale</button>
|
||||
</span>
|
||||
{{/if}}
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-equip" title="Worn">{{#if arme.system.equipped}}<i
|
||||
<a class="item-control item-equip" title="Equipé">{{#if arme.system.equipped}}<i
|
||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -247,7 +269,7 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
|
||||
<a class="item-control item-add" data-type="protection" title="Ajouter une protection"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
@ -260,8 +282,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -273,15 +295,15 @@
|
||||
|
||||
{{!-- Fee Tab --}}
|
||||
<div class="tab fee" data-group="primary" data-tab="fee">
|
||||
|
||||
|
||||
<div class="flexrow">
|
||||
<li class="item flexrow " data-item-id="{{fee._id}}" data-item-type="avantage">
|
||||
<img class="item-name-img" src="{{fee.img}}" />
|
||||
<span class="item-field-label-long2">{{fee.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
@ -289,13 +311,22 @@
|
||||
<div class="flexrow">
|
||||
<ul>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short" data-rang-key="feerie">Féerie</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.rang.feerie.value" value="{{system.rang.feerie.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.rang.feerie.max" value="{{system.rang.feerie.max}}" data-dtype="Number" />
|
||||
<span class="item-field-label-long"></span>
|
||||
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short" data-rang-key="masque">Masque</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.rang.masque.value" value="{{system.rang.masque.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.rang.masque.max" value="{{system.rang.masque.max}}" data-dtype="Number" />
|
||||
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short"
|
||||
data-rang-key="feerie">Féerie</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.rang.feerie.value"
|
||||
value="{{system.rang.feerie.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.rang.feerie.max"
|
||||
value="{{system.rang.feerie.max}}" data-dtype="Number" />
|
||||
<span class="item-field-label-medium"></span>
|
||||
<label class="item-field-label-medium roll-style"><a class="roll-rang item-field-label-short"
|
||||
data-rang-key="masque">Masque</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.rang.masque.value"
|
||||
value="{{system.rang.masque.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.rang.masque.max"
|
||||
value="{{system.rang.masque.max}}" data-dtype="Number" />
|
||||
<span class="item-field-label-medium"></span>
|
||||
<label class="item-field-label-long roll-style"><a class="dialog-recup-usage item-field-label-long">Récup.
|
||||
P. d'Usage</a></label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -310,6 +341,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="avantage" title="Ajouter un avantage"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each avantages as |avantage key|}}
|
||||
@ -318,8 +351,8 @@
|
||||
<span class="item-field-label-long2">{{avantage.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -334,6 +367,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="desavantage" title="Ajouter un désavantage"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each desavantages as |desavantage key|}}
|
||||
@ -342,8 +377,8 @@
|
||||
<span class="item-field-label-long2">{{desavantage.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -358,6 +393,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="atoutfeerique" title="Ajouter un atout féerique"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each atouts as |atout key|}}
|
||||
@ -366,8 +403,8 @@
|
||||
<span class="item-field-label-long2">{{atout.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -389,26 +426,28 @@
|
||||
<span class="item-field-label-medium">
|
||||
<label class="short-label">Niveau</label>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
<label class="short-label">Usage</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="pouvoir" title="Ajouter un pouvoir"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each pouvoirs as |pouvoir key|}}
|
||||
<li class="item flexrow " data-item-id="{{pouvoir._id}}" data-item-type="pouvoir">
|
||||
<img class="item-name-img" src="{{pouvoir.img}}" />
|
||||
{{#if pouvoir.system.istest}}
|
||||
<span class="item-field-label-long2 roll-style"><a class="roll-pouvoir">{{pouvoir.name}}</a></span>
|
||||
{{else}}
|
||||
<span class="item-field-label-long2">{{pouvoir.name}}</span>
|
||||
{{/if}}
|
||||
<span class="item-field-label-medium">{{upperFirst pouvoir.system.masquetype}}</span>
|
||||
<span class="item-field-label-medium">{{upperFirst pouvoir.system.pouvoirtype}}</span>
|
||||
<span class="item-field-label-medium">{{upperFirst pouvoir.system.niveau}}</span>
|
||||
|
||||
<span class="item-field-label-medium">{{pouvoir.system.pointsusagecourant}}/{{pouvoir.maxUsage}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -424,6 +463,8 @@
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="capacitenaturelle" title="Ajouter une capacité naturelle"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each capacites as |capa key|}}
|
||||
@ -432,8 +473,8 @@
|
||||
<span class="item-field-label-long2">{{capa.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -445,9 +486,71 @@
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- Magie Tab --}}
|
||||
<div class="tab magie" data-group="primary" data-tab="magie">
|
||||
|
||||
<div class="flexrow">
|
||||
<ul>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-medium roll-style"><a class="item-field-label-short"
|
||||
data-rang-key="feerie">Point d'Ame</a></label>
|
||||
<input type="text" class="item-field-label-short" name="system.magie.pointsame.value"
|
||||
value="{{system.magie.pointsame.value}}" data-dtype="Number" />
|
||||
<input type="text" class="item-field-label-short" name="system.magie.pointsame.max"
|
||||
value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if issGM}} {{else}} disabled {{/if}} />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{{#each magieList as |magie idx|}}
|
||||
<li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence">
|
||||
<h2 class="flexrow"><label class="items-title-text "><a class="roll-competence item-field-label-short"
|
||||
data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</h2>
|
||||
</li>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header item-field-label-long2-img">
|
||||
<h3><label class="items-title-text">Nom du sort</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-medium">
|
||||
<label class="short-label">Niveau</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="sort" title="Ajouter un sort"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each sorts as |sort key|}}
|
||||
<li class="item flexrow " data-item-id="{{sort._id}}" data-item-type="sort">
|
||||
<img class="item-name-img" src="{{sort.img}}" />
|
||||
<span class="item-field-label-long2 roll-style"><a class="roll-sort">{{sort.name}}</a></span>
|
||||
<span class="item-field-label-medium">{{upperFirst sort.system.niveau}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{!-- Equipement Tab --}}
|
||||
<div class="tab equipement" data-group="primary" data-tab="equipement">
|
||||
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
@ -455,8 +558,9 @@
|
||||
<h3><label class="items-title-text">Equipements</label></h3>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="equipement" title="Créer un équipement"><i class="fas fa-plus"></i></a>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="equipement" title="Créer un équipement"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each equipements as |equip key|}}
|
||||
@ -465,8 +569,8 @@
|
||||
<span class="item-field-label-long2">{{equip.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -484,8 +588,9 @@
|
||||
<h3><label class="items-title-text">Contacts, Allies et Ennemis</label></h3>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="contact" title="Créer un contact"><i class="fas fa-plus"></i></a>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="contact" title="Créer un contact"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
@ -498,8 +603,9 @@
|
||||
<h3><label class="items-title-text">{{contactList.label}}</label></h3>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="contact" title="Créer un contact"><i class="fas fa-plus"></i></a>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="contact" title="Créer un contact"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each contactList.list as |contact key|}}
|
||||
@ -508,8 +614,8 @@
|
||||
<span class="item-field-label-long2">{{contact.name}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -542,8 +648,8 @@
|
||||
<span class="item-field-label-medium">{{upperFirst profil.system.profiltype}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
@ -553,28 +659,37 @@
|
||||
<div class="flexrow">
|
||||
<ul>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Nom humain</label> <input type="text" class="" name="system.biodata.nomhumain" value="{{system.biodata.nomhumain}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Nom humain</label> <input type="text" class=""
|
||||
name="system.biodata.nomhumain" value="{{system.biodata.nomhumain}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Activités</label> <input type="text" class="" name="system.biodata.activites" value="{{system.biodata.activites}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Activités</label> <input type="text" class=""
|
||||
name="system.biodata.activites" value="{{system.biodata.activites}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Apparence masquée</label> <input type="text" class="" name="system.biodata.apparencemasquee" value="{{system.biodata.apparencemasquee}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Apparence masquée</label> <input type="text" class=""
|
||||
name="system.biodata.apparencemasquee" value="{{system.biodata.apparencemasquee}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Apparence démasquée</label> <input type="text" class="" name="system.biodata.apparencedemasquee" value="{{system.biodata.apparencedemasquee}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Apparence démasquée</label> <input type="text" class=""
|
||||
name="system.biodata.apparencedemasquee" value="{{system.biodata.apparencedemasquee}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Titre et Famille</label> <input type="text" class="" name="system.biodata.titrefamille" value="{{system.biodata.titrefamille}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Titre et Famille</label> <input type="text" class=""
|
||||
name="system.biodata.titrefamille" value="{{system.biodata.titrefamille}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Factions féériques</label> <input type="text" class="" name="system.biodata.factionfeerique" value="{{system.biodata.factionfeerique}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Factions féériques</label> <input type="text" class=""
|
||||
name="system.biodata.factionfeerique" value="{{system.biodata.factionfeerique}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Traits de caractères dominants</label> <input type="text" class="" name="system.biodata.traitscaracteres" value="{{system.biodata.traitscaracteres}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Traits de caractères dominants</label> <input type="text" class=""
|
||||
name="system.biodata.traitscaracteres" value="{{system.biodata.traitscaracteres}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="item-field-label-long2">Langues</label> <input type="text" class="" name="system.biodata.langues" value="{{system.biodata.langues}}" data-dtype="String" />
|
||||
<label class="item-field-label-long2">Langues</label> <input type="text" class=""
|
||||
name="system.biodata.langues" value="{{system.biodata.langues}}" data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -597,6 +712,13 @@
|
||||
<input type="text" class="" name="system.biodata.age" value="{{system.biodata.age}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
{{#if isGM}}
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Fiche de Magie ?</label>
|
||||
<input type="checkbox" class="item-field-label-short edit-item-data" name="system.biodata.magie" {{checked
|
||||
system.biodata.magie}} />
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
@ -608,14 +730,19 @@
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="generic-label">Taille Démasquée</label>
|
||||
<input type="text" class="" name="system.biodata.tailledemasquee" value="{{system.biodata.tailledemasquee}}"
|
||||
data-dtype="String" />
|
||||
<input type="text" class="" name="system.biodata.tailledemasquee"
|
||||
value="{{system.biodata.tailledemasquee}}" data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Type de taille</label>
|
||||
<input type="text" class="" name="system.experience.typetaille" value="{{system.experience.typetaille}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label">Points d'héritage</label>
|
||||
<input type="text" class="" name="system.rang.heritage.value" value="{{system.rang.heritage.value}}"
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
@ -643,7 +770,7 @@
|
||||
data-dtype="String" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -18,13 +18,13 @@
|
||||
|
||||
<div>
|
||||
<ul>
|
||||
<li>Assomer {{defenderName}} en état de : {{etatAssommer}}</li>
|
||||
|
||||
<li>Assomer {{defenderName}} en état de : {{etatAssommer}}</li>
|
||||
|
||||
{{#if isSuccess}}
|
||||
<li>Marge : {{marge}}</li>
|
||||
<li>{{defenderName}} est assomé pour {{dureeAssommer}} minutes !</li>
|
||||
<li>Marge : {{marge}}</li>
|
||||
<li>{{defenderName}} est assomé pour {{dureeAssommer}} minutes !</li>
|
||||
{{else}}
|
||||
<li>{{defenderName}} n'a pas été assomé et est conscient la tentative !</li>
|
||||
<li>{{defenderName}} n'a pas été assomé et est conscient la tentative !</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
@ -18,25 +18,26 @@
|
||||
|
||||
<div>
|
||||
<ul>
|
||||
<li>Défense de {{defenderName}} : {{defenderMode}} ({{defenderValue}})</li>
|
||||
|
||||
{{#if isSuccess}}
|
||||
<li>Marge : {{marge}}</li>
|
||||
<li>Degats de l'arme : {{degatsArme}}</li>
|
||||
|
||||
{{#if (eq attaqueCible "membre")}}
|
||||
<li><strong>Cible un membre : La cible a -2 de malus sur ces actions avec ce membre (mouvement 2 si jambes)</strong></li>
|
||||
{{/if}}
|
||||
{{#if (eq attaqueCible "main")}}
|
||||
<li><strong>Cible une main : La cible ne peut plus utiliser sa main</strong></li>
|
||||
{{/if}}
|
||||
<li>Défense de {{defenderName}} : {{defenderMode}} ({{defenderValue}})</li>
|
||||
|
||||
{{#if isCriticalSuccess}}
|
||||
<Li>Critique : Aubaine ou +2 aux dégats ci-dessus</li>
|
||||
{{/if}}
|
||||
{{#if isSuccess}}
|
||||
<li>Marge : {{marge}}</li>
|
||||
<li>Degats de l'arme : {{degatsArme}}</li>
|
||||
|
||||
{{#if (eq attaqueCible "membre")}}
|
||||
<li><strong>Cible un membre : La cible a -2 de malus sur ces actions avec ce membre (mouvement 2 si jambes)</strong>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if (eq attaqueCible "main")}}
|
||||
<li><strong>Cible une main : La cible ne peut plus utiliser sa main</strong></li>
|
||||
{{/if}}
|
||||
|
||||
{{#if isCriticalSuccess}}
|
||||
<Li>Critique : Aubaine ou +2 aux dégats ci-dessus</li>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<li>Echec face à la {{defenderMode}} !</li>
|
||||
<li>Echec face à la {{defenderMode}} !</li>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
@ -26,28 +26,51 @@
|
||||
|
||||
{{#if competence}}
|
||||
<li>Compétence : {{competence.name}} ({{competence.system.niveau}})</li>
|
||||
{{#if useSpecialite}}
|
||||
<li>Bonus de spécialité +1</li>
|
||||
{{/if}}
|
||||
{{#if useSpecialite}}
|
||||
<li>Bonus de spécialité +1</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if arme}}
|
||||
<li>Attaque avec : {{arme.name}}</li>
|
||||
{{#if (eq mode "assommer")}}
|
||||
<li>Attaque pour assommer</li>
|
||||
{{/if}}
|
||||
{{#if (eq mode "assommer")}}
|
||||
<li>Attaque pour assommer</li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#if pouvoir}}
|
||||
<li>Pouvoir : {{pouvoir.name}}</li>
|
||||
<li>Effet : {{pouvoir.system.effet}}</li>
|
||||
<li>Points d'usage consommés : {{pouvoirPointsUsage}}</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if sort}}
|
||||
<li>Sort : {{sort.name}}</li>
|
||||
<li>Cout en Points d'âmes : {{sortPointsAme}}</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if forcedValue}}
|
||||
<li>Vous dépense 2 points de Tricherie et utilisé une face adjacente du dé !</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if noRoll}}
|
||||
{{else}}
|
||||
<li>Formule : {{diceFormula}}</li>
|
||||
<li>Résultat du dé : {{diceResult}} </li>
|
||||
<li>Résultat du dé : {{diceResult}} </li>
|
||||
|
||||
{{#if adjacentFaces}}
|
||||
<li>Faces Adjacentes :
|
||||
{{#each adjacentFaces as |value key|}}
|
||||
<a class="roll-tricherie-2" data-dice-value="{{value}}">{{value}}</a>
|
||||
{{/each}}
|
||||
</li>
|
||||
{{/if}}
|
||||
|
||||
<li>Total : {{finalResult}} {{#if (gt sdValue "-1")}}(Marge : {{marge}}){{/if}}</li>
|
||||
|
||||
|
||||
{{#if (gt sdValue "-1")}}
|
||||
<li>Seuil de difficulté : {{sdValue}}</li>
|
||||
{{#if isSuccess}}
|
||||
<li class="chat-success">Succès...
|
||||
</li>
|
||||
@ -69,7 +92,7 @@
|
||||
{{#if isCriticalFailure}}
|
||||
<li class="chat-failure">Echec Critique !!!</li>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
</div>
|
@ -1,356 +0,0 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
|
||||
{{!-- Sheet Header --}}
|
||||
<header class="sheet-header">
|
||||
<div class="header-fields background-sheet-header">
|
||||
<div class="flexrow">
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<div class="flexcol">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
<div class="flexrow">
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
|
||||
<li class="item flexrow ">
|
||||
<h4 class="item-name-label competence-name">Ressources</h4>
|
||||
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||
name="system.ressources.value" value="{{system.ressources.value}}" data-dtype="Number" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="principal">Technique</a>
|
||||
<a class="item" data-tab="competences">Compétences</a>
|
||||
<a class="item" data-tab="talents">Talents</a>
|
||||
<a class="item" data-tab="armes">Armes</a>
|
||||
<a class="item" data-tab="biodata">Bio&Notes</a>
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
|
||||
{{!-- Main Tab --}}
|
||||
<div class="tab principal" data-group="primary" data-tab="principal">
|
||||
|
||||
<div class="grid grid-2col">
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
{{#each system.attributs as |attr key|}}
|
||||
<li class="item flexrow " data-attr-key="{{key}}">
|
||||
<img class="item-name-img" src="systems/fvtt-les-heritiers/assets/icons/{{attr.labelnorm}}.webp">
|
||||
<span class="item-name-label competence-name item-field-label-medium"><a
|
||||
class="roll-attribut">{{attr.label}}</a></span>
|
||||
<select class="status-small-label color-class-common edit-item-data competence-niveau" type="text"
|
||||
name="system.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="Number">
|
||||
{{#select attr.value}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-list-niveau.html}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
{{/each}}
|
||||
<li class="item flexrow">
|
||||
<img class="item-name-img" src="systems/fvtt-les-heritiers/assets/icons/vitesse.webp">
|
||||
<span class="item-name-label competence-name item-field-label-medium">Vitesse</span>
|
||||
<input type="text" class="padd-right numeric-input item-field-label-short" name="system.vitesse.value"
|
||||
value="{{system.vitesse.value}}" data-dtype="Number" />
|
||||
</li>
|
||||
</ul>
|
||||
<h4 class="item-name-label competence-name">Santé</h4>
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<label class="label-name item-field-label-short">Vigueur</label>
|
||||
<label class="label-name item-field-label-short">{{system.sante.vigueur}}</label>
|
||||
</li>
|
||||
<li class="item flexrow">
|
||||
<label class="label-name item-field-label-short">Etat</label>
|
||||
<select class="label-name item-field-label-medium" type="text" name="system.sante.etat" value="{{system.sante.etat}}" data-dtype="Number">
|
||||
{{#select system.sante.etat}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-sante-etat.html}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="item-name-label competence-name">Combat</h4>
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<button class="chat-card-button roll-initiative">Initiative</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<h4 class="item-name-label competence-name">Adversité</h4>
|
||||
<ul class="item-list alternate-list">
|
||||
{{#each system.adversite as |adv key|}}
|
||||
<li class="item flexrow" data-adversite="{{key}}">
|
||||
<a class="adversite-modify plus-minus-button" data-adversite-value="-1">-</a>
|
||||
<div class="icon-adversite-container">
|
||||
<img class="icon-adversite" src="systems/fvtt-les-heritiers/assets/icons/gemme_{{key}}.webp">
|
||||
<div class="adversite-text">{{adv}}</div>
|
||||
</div>
|
||||
<a class="adversite-modify plus-minus-button" data-adversite-value="1">+</a>
|
||||
<div class=""> </div>
|
||||
<div class=""> </div>
|
||||
<div class=""> </div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- Competence Tab --}}
|
||||
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Compétences</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Niveau</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
</li>
|
||||
{{#each skills as |skill key|}}
|
||||
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
||||
<img class="item-name-img" src="{{skill.img}}" />
|
||||
<span class="item-name-label competence-name"><a class="roll-competence item-field-label-short"
|
||||
data-attr-key="tochoose">{{skill.name}}</a></span>
|
||||
<select class="status-small-label color-class-common edit-item-data competence-niveau" type="text"
|
||||
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
|
||||
{{#select skill.system.niveau}}
|
||||
{{> systems/fvtt-les-heritiers/templates/partial-list-niveau.html}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
||||
{{#if (ne skill.system.attribut1 "none")}}
|
||||
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.system.attribut1}}">{{upper
|
||||
skill.system.attribut1}} : {{skill.system.attribut1total}}</button>
|
||||
{{/if}}
|
||||
{{#if (ne skill.system.attribut2 "none")}}
|
||||
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.system.attribut2}}">{{upper
|
||||
skill.system.attribut2}} : {{skill.system.attribut2total}}</button>
|
||||
{{/if}}
|
||||
{{#if (ne skill.system.attribut3 "none")}}
|
||||
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.system.attribut3}}">{{upper
|
||||
skill.system.attribut3}} : {{skill.system.attribut3total}}</button>
|
||||
{{/if}}
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- Talents Tab --}}
|
||||
<div class="tab talents" data-group="primary" data-tab="talents">
|
||||
|
||||
<div class="flexrow">
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Talents</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Résumé</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
</li>
|
||||
{{#each talents as |talent key|}}
|
||||
<li class="item flexrow " data-item-id="{{talent._id}}" data-item-type="competence">
|
||||
<img class="item-name-img" src="{{talent.img}}" />
|
||||
<span class="item-name-label competence-name">{{talent.name}}</span>
|
||||
<span class="item-name-label item-field-label-long2">{{talent.system.resumebonus}}</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Talents de Cellule</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Résumé</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
</li>
|
||||
{{#each talentsCell as |talent key|}}
|
||||
<li class="item flexrow " data-item-id="{{talent._id}}" data-item-type="competence">
|
||||
<img class="item-name-img" src="{{talent.img}}" />
|
||||
<span class="item-name-label competence-name">{{talent.name}}</span>
|
||||
<span class="item-name-label item-field-label-long2">{{talent.system.resumebonus}}</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- Equipement Tab --}}
|
||||
<div class="tab armes" data-group="primary" data-tab="armes">
|
||||
|
||||
<div class="flexcol">
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Armes</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Attaque</label>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Défense</label>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Dégats</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each armes as |arme key|}}
|
||||
<li class="item flexrow " data-item-id="{{arme._id}}" data-item-type="arme">
|
||||
<img class="item-name-img" src="{{arme.img}}" />
|
||||
<span class="item-name-label competence-name">{{arme.name}}</span>
|
||||
|
||||
<span class="item-field-label-short">
|
||||
{{#if arme.system.equipped}}
|
||||
<button class="roll-arme-offensif button-sheet-roll">{{arme.system.totalOffensif}}</button>
|
||||
{{else}}
|
||||
<button disabled class="roll-arme-offensif button-sheet-roll">{{arme.system.totalOffensif}}</button>
|
||||
{{/if}}
|
||||
</span>
|
||||
|
||||
{{#if arme.system.isdefense}}
|
||||
<span class="item-field-label-short arme-defensif item-field-label-short"><label
|
||||
class="arme-defensif item-field-label-short defense-sheet">{{arme.system.totalDefensif}}</label></span>
|
||||
{{else}}
|
||||
<span class="item-field-label-short arme-defensif item-field-label-short"><label
|
||||
class="arme-defensif item-field-label-short defense-sheet">N/A</label></span>
|
||||
{{/if}}
|
||||
|
||||
<span class="item-field-label-short">
|
||||
{{#if arme.system.equipped}}
|
||||
<button class="roll-arme-degats button-sheet-roll">{{arme.system.totalDegats}}</button>
|
||||
{{else}}
|
||||
<button disabled class="roll-arme-degats button-sheet-roll">{{arme.system.totalDegats}}</button>
|
||||
{{/if}}
|
||||
</span>
|
||||
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-equip" title="Worn">{{#if arme.system.equipped}}<i
|
||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="sheet-box color-bg-archetype">
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="item flexrow list-item items-title-bg">
|
||||
<span class="item-name-label-header">
|
||||
<h3><label class="items-title-text">Protections</label></h3>
|
||||
</span>
|
||||
<span class="item-field-label-short">
|
||||
<label class="short-label">Protection</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
|
||||
class="fas fa-plus"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#each protections as |protection key|}}
|
||||
<li class="item flexrow " data-item-id="{{protection._id}}" data-item-type="protection">
|
||||
<img class="item-name-img" src="{{protection.img}}" />
|
||||
<span class="item-name-label competence-name">{{protection.name}}</span>
|
||||
<span class="item-field-label-short arme-defensif"><label
|
||||
class="arme-defensif">{{protection.system.protection}}</label>
|
||||
</span>
|
||||
<div class="item-filler"> </div>
|
||||
<div class="item-controls item-controls-fixed">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{{!-- Biography Tab --}}
|
||||
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
||||
|
||||
<span>
|
||||
<h3>Description</h3>
|
||||
</span>
|
||||
<div class="medium-editor item-text-long-line">
|
||||
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
<span>
|
||||
<h3>Habitat</h3>
|
||||
</span>
|
||||
<div class="medium-editor item-text-long-line">
|
||||
{{editor habitat target="system.biodata.habitat" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
@ -16,11 +16,7 @@
|
||||
<label class="item-field-label-long">Catégorie : </label>
|
||||
<select class="item-field-label-long" type="text" name="system.categorie"
|
||||
value="{{system.categorie}}" data-dtype="string">
|
||||
{{#select system.categorie}}
|
||||
{{#each config.categorieArme as |categ key|}}
|
||||
<option value="{{key}}">{{categ}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.categorieArme selected=system.categorie}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
@ -28,11 +24,7 @@
|
||||
<label class="item-field-label-long">Type : </label>
|
||||
<select class="item-field-label-long" type="text" name="system.armetype"
|
||||
value="{{system.armetype}}" data-dtype="string">
|
||||
{{#select system.armetype}}
|
||||
{{#each config.typeArme as |type key|}}
|
||||
<option value="{{key}}">{{type}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.typeArme selected=system.armetype}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
@ -74,22 +66,14 @@
|
||||
<label class="generic-label item-field-label-long">Légalité : </label>
|
||||
<select class="item-field-label-long" type="text" name="system.legalite"
|
||||
value="{{system.legalite}}" data-dtype="string">
|
||||
{{#select system.legalite}}
|
||||
{{#each config.armeLegalite as |legal key|}}
|
||||
<option value="{{key}}">{{legal}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.armeLegalite selected=system.legalite}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
<label class="generic-label item-field-label-long">Dissimulation : </label>
|
||||
<select class="item-field-label-long" type="text" name="system.dissimulation"
|
||||
value="{{system.dissimulation}}" data-dtype="string">
|
||||
{{#select system.dissimulation}}
|
||||
{{#each config.armeDissimulation as |diss key|}}
|
||||
<option value="{{key}}">{{diss}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.armeDissimulation selected=system.dissimulation}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow item">
|
||||
|
@ -11,9 +11,7 @@
|
||||
|
||||
<div class="tab details" data-group="primary" data-tab="details">
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
|
||||
|
||||
<ul class="item-list alternate-list">
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -16,11 +16,7 @@
|
||||
<label class="generic-label item-field-label-long2">Type </label>
|
||||
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||
name="system.pouvoirtype" value="{{system.pouvoirtype}}" data-dtype="string">
|
||||
{{#select system.pouvoirtype}}
|
||||
{{#each config.typePouvoir as |categ cKey|}}
|
||||
<option value="{{cKey}}">{{categ}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.typePouvoir selected=system.pouvoirtype}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
@ -52,11 +48,7 @@
|
||||
<label class="generic-label item-field-label-long2">Résistance</label>
|
||||
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||
name="system.resistance" value="{{system.resistance}}" data-dtype="string">
|
||||
{{#select system.resistance}}
|
||||
{{#each config.resistancePouvoir as |categ cKey|}}
|
||||
<option value="{{cKey}}">{{categ}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.resistancePouvoir selected=system.resistance}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
|
@ -16,11 +16,7 @@
|
||||
<label class="generic-label item-field-label-long2">Catégorie </label>
|
||||
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||
name="system.categorie" value="{{system.categorie}}" data-dtype="string">
|
||||
{{#select system.categorie}}
|
||||
{{#each config.competenceCategorie as |categ cKey|}}
|
||||
<option value="{{cKey}}">{{categ}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.competenceCategorie selected=system.categorie}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
@ -28,11 +24,7 @@
|
||||
<label class="generic-label item-field-label-long2">Profil </label>
|
||||
<select class="status-small-label color-class-common item-field-label-long" type="text"
|
||||
name="system.profil" value="{{system.profil}}" data-dtype="string">
|
||||
{{#select system.profil}}
|
||||
{{#each config.competenceProfil as |profil pKey|}}
|
||||
<option value="{{pKey}}">{{profil}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
{{selectOptions config.competenceProfil selected=system.profil labelAttr="name"}}
|
||||
</select>
|
||||
</li>
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user