Compare commits

...

12 Commits

86 changed files with 534 additions and 164 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

View File

@@ -1,30 +1,23 @@
{
"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": "e",
"pouvoir": "Pouvoir",
"profil": "Profil",
"protection": "Protection"
}
}
}

View File

@@ -77,19 +77,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) {
@@ -180,7 +203,10 @@ export class HeritiersActorSheet extends ActorSheet {
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 })

View File

@@ -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))
}
}
@@ -135,8 +135,18 @@ 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 = duplicate(item)
itemObj.maxUsage = this.getPouvoirUsageMax(item)
pouvoirs.push(itemObj)
}
}
HeritiersUtility.sortArrayObjectsByName(pouvoirs)
return pouvoirs
}
/* -------------------------------------------- */
getSkills() {
let comp = []
@@ -152,7 +162,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)
}
@@ -278,7 +288,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
}
@@ -339,7 +349,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
}
@@ -501,7 +511,7 @@ export class HeritiersActor extends Actor {
incDecTricherie(value) {
let tricherie = this.system.rang.tricherie
tricherie.value += value
if ( tricherie.value < 0 || tricherie.value > tricherie.max) {
if (tricherie.value < 0 || tricherie.value > tricherie.max) {
ui.notifications.warn("Pas assez de points de Tricherie !")
return false
}
@@ -512,9 +522,9 @@ export class HeritiersActor extends Actor {
}
/* -------------------------------------------- */
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 {
@@ -538,6 +548,7 @@ export class HeritiersActor extends Actor {
rollData.useTricherie = false
rollData.useSpecialite = false
rollData.useHeritage = false
rollData.pouvoirPointsUsage = 1
rollData.rulesMalus.push(this.getPvMalus())
if (compId) {
@@ -547,7 +558,7 @@ export class HeritiersActor extends Actor {
}
if (compName) {
rollData.competence = duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
if (rollData.competence && rollData.competence.name) {
if (rollData.competence?.name) {
this.prepareUtileSkill(rollData.competence)
rollData.actionImg = rollData.competence?.img
} else {
@@ -595,7 +606,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)
@@ -619,7 +629,7 @@ export class HeritiersActor extends Actor {
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"
}
@@ -629,7 +639,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)
@@ -651,7 +661,7 @@ export class HeritiersActor extends Actor {
rollData.arme = 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)
}
@@ -673,7 +683,7 @@ export class HeritiersActor extends Actor {
rollDialog.render(true)
}
}
/* -------------------------------------------- */
async rollAssomerArme(armeId) {
let arme = this.items.get(armeId)
@@ -704,6 +714,7 @@ export class HeritiersActor extends Actor {
rollData.carac = duplicate(this.system.caracteristiques[pouvoir.system.carac])
rollData.caracKey = pouvoir.system.carac
}
rollData.pouvoirMaxUsage = this.getPouvoirUsageMax(pouvoir)
rollData.pouvoir = duplicate(pouvoir)
rollData.mode = "pouvoir"
let rollDialog = await HeritiersRollDialog.create(this, rollData)
@@ -711,4 +722,41 @@ export class HeritiersActor extends Actor {
}
}
/* -------------------------------------------- */
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)
}
}
}

View File

@@ -61,11 +61,20 @@ export class HeritiersItemSheet extends ItemSheet {
limited: this.object.limited,
options: this.options,
owner: this.document.isOwner,
config: game.system.lesheritiers.config,
config: game.system.lesheritiers.config,
isArmeMelee: HeritiersUtility.isArmeMelee(this.object),
description: await TextEditor.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
}
}
//this.options.editable = !(this.object.origin == "embeddedItem");

View File

@@ -79,31 +79,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 */
/* -------------------------------------------- */
@@ -119,15 +105,16 @@ Hooks.once("ready", function () {
user: game.user._id
});
}
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
console.log("ClassCounter loaded", moduleCounter)
moduleCounter.ClassCounter.registerUsageCount()
}).catch(err=>
console.log("No stats available, giving up.")
)
welcomeMessage();
importDefaultScene();
registerUsageCount(game.system.id)
welcomeMessage()
// CSS patch for v9
if (game.version) {
let sidebar = document.getElementById("sidebar");
sidebar.style.width = "min-content";
}
});
/* -------------------------------------------- */
@@ -137,7 +124,7 @@ 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;
}
}

View File

@@ -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.competence?.system.niveau > 0) {
enableD10 = true
}
if (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: {
@@ -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
})

View File

@@ -270,7 +270,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);
}
@@ -435,6 +434,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
}
}
}
@@ -468,6 +471,11 @@ export class HeritiersUtility {
let actor = this.getActorFromRollData(rollData)
if ( rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
return
}
//rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
rollData.carac = duplicate(actor.system.caracteristiques[rollData.caracKey])
@@ -486,7 +494,7 @@ 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) {
@@ -530,7 +538,7 @@ export class HeritiersUtility {
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = myRoll
rollData.roll = duplicate(myRoll)
console.log(">>>> ", myRoll)
this.computeResult(actor, rollData)
this.computeMarge(rollData, rollData.sdValue) // Calcul de la marge si seuil présent
@@ -539,6 +547,11 @@ export class HeritiersUtility {
actor.setFlag("world", "last-initiative", rollData.finalResult)
}
// Gestion pouvoir et points d'usage
if (rollData.mode == "pouvoir") {
actor.incDecPointsUsage(rollData.pouvoir._id, -rollData.pouvoirPointsUsage)
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
}, rollData)
@@ -571,7 +584,7 @@ export class HeritiersUtility {
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = bonusRoll
rollData.bonusRoll = duplicate(bonusRoll)
rollData.finalResult += rollData.bonusRoll.total
@@ -590,7 +603,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) {

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
MANIFEST-000054

View File

View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.121804 7f2efb8006c0 Recovering log #52
2024/03/31-17:51:10.132699 7f2efb8006c0 Delete type=3 #50
2024/03/31-17:51:10.132828 7f2efb8006c0 Delete type=0 #52
2024/03/31-17:52:39.333208 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.333263 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.340471 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.340751 7f2efae006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.340782 7f2efae006c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.571733 7fed73e006c0 Recovering log #48
2024/03/23-10:48:02.582541 7fed73e006c0 Delete type=3 #46
2024/03/23-10:48:02.582617 7fed73e006c0 Delete type=0 #48
2024/03/23-11:37:00.840004 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.840024 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.846784 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.846952 7fed720006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.846980 7fed720006c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
MANIFEST-000054

View File

View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.159099 7f2efb8006c0 Recovering log #52
2024/03/31-17:51:10.171301 7f2efb8006c0 Delete type=3 #50
2024/03/31-17:51:10.171460 7f2efb8006c0 Delete type=0 #52
2024/03/31-17:52:39.340903 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.340946 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.348787 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.370825 7f2efae006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.370890 7f2efae006c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.597243 7fed73e006c0 Recovering log #48
2024/03/23-10:48:02.607708 7fed73e006c0 Delete type=3 #46
2024/03/23-10:48:02.607775 7fed73e006c0 Delete type=0 #48
2024/03/23-11:37:00.827007 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.827057 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.833771 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.846910 7fed720006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.846959 7fed720006c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
MANIFEST-000054

View File

View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.103648 7f2efcc006c0 Recovering log #52
2024/03/31-17:51:10.116316 7f2efcc006c0 Delete type=3 #50
2024/03/31-17:51:10.116475 7f2efcc006c0 Delete type=0 #52
2024/03/31-17:52:39.317590 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.317634 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.332888 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.340690 7f2efae006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.340767 7f2efae006c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.559259 7fed734006c0 Recovering log #48
2024/03/23-10:48:02.569488 7fed734006c0 Delete type=3 #46
2024/03/23-10:48:02.569553 7fed734006c0 Delete type=0 #48
2024/03/23-11:37:00.820791 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.820819 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.826839 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.846901 7fed720006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.846946 7fed720006c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/avantages/000005.ldb Normal file

Binary file not shown.

View File

1
packs/avantages/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000054

0
packs/avantages/LOCK Normal file
View File

8
packs/avantages/LOG Normal file
View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.054712 7f2efb8006c0 Recovering log #52
2024/03/31-17:51:10.065463 7f2efb8006c0 Delete type=3 #50
2024/03/31-17:51:10.065576 7f2efb8006c0 Delete type=0 #52
2024/03/31-17:52:39.281908 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.281951 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.289468 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.289750 7f2efae006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.303742 7f2efae006c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)

8
packs/avantages/LOG.old Normal file
View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.521231 7fed73e006c0 Recovering log #48
2024/03/23-10:48:02.532005 7fed73e006c0 Delete type=3 #46
2024/03/23-10:48:02.532101 7fed73e006c0 Delete type=0 #48
2024/03/23-11:37:00.801358 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.801380 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.807396 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.820567 7fed720006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.820617 7fed720006c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/capacites/000005.ldb Normal file

Binary file not shown.

View File

1
packs/capacites/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000054

0
packs/capacites/LOCK Normal file
View File

8
packs/capacites/LOG Normal file
View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.086922 7f2efb8006c0 Recovering log #52
2024/03/31-17:51:10.097896 7f2efb8006c0 Delete type=3 #50
2024/03/31-17:51:10.098016 7f2efb8006c0 Delete type=0 #52
2024/03/31-17:52:39.310551 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.310589 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.317387 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.333187 7f2efae006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.340732 7f2efae006c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)

8
packs/capacites/LOG.old Normal file
View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.547542 7fed73e006c0 Recovering log #48
2024/03/23-10:48:02.557329 7fed73e006c0 Delete type=3 #46
2024/03/23-10:48:02.557386 7fed73e006c0 Delete type=0 #48
2024/03/23-11:37:00.807508 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.807530 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.813725 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.820593 7fed720006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.820630 7fed720006c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
MANIFEST-000054

0
packs/competences/LOCK Normal file
View File

8
packs/competences/LOG Normal file
View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.039717 7f2efcc006c0 Recovering log #52
2024/03/31-17:51:10.050432 7f2efcc006c0 Delete type=3 #50
2024/03/31-17:51:10.050525 7f2efcc006c0 Delete type=0 #52
2024/03/31-17:52:39.274978 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.275040 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.281732 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.289726 7f2efae006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.289784 7f2efae006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.509092 7fed734006c0 Recovering log #48
2024/03/23-10:48:02.519097 7fed734006c0 Delete type=3 #46
2024/03/23-10:48:02.519155 7fed734006c0 Delete type=0 #48
2024/03/23-11:37:00.794140 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.794164 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.801230 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.807497 7fed720006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.820584 7fed720006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
MANIFEST-000054

0
packs/desavantages/LOCK Normal file
View File

8
packs/desavantages/LOG Normal file
View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.069929 7f2efcc006c0 Recovering log #52
2024/03/31-17:51:10.081848 7f2efcc006c0 Delete type=3 #50
2024/03/31-17:51:10.082018 7f2efcc006c0 Delete type=0 #52
2024/03/31-17:52:39.303782 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.303846 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.310366 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.333155 7f2efae006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.340713 7f2efae006c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.534354 7fed734006c0 Recovering log #48
2024/03/23-10:48:02.545488 7fed734006c0 Delete type=3 #46
2024/03/23-10:48:02.545545 7fed734006c0 Delete type=0 #48
2024/03/23-11:37:00.813815 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.813835 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.820461 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.820601 7fed720006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.820624 7fed720006c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/pouvoirs/000005.ldb Normal file

Binary file not shown.

View File

1
packs/pouvoirs/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000054

0
packs/pouvoirs/LOCK Normal file
View File

8
packs/pouvoirs/LOG Normal file
View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.140897 7f2efcc006c0 Recovering log #52
2024/03/31-17:51:10.152190 7f2efcc006c0 Delete type=3 #50
2024/03/31-17:51:10.152332 7f2efcc006c0 Delete type=0 #52
2024/03/31-17:52:39.348979 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.349027 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.355963 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.370848 7f2efae006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.370917 7f2efae006c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

8
packs/pouvoirs/LOG.old Normal file
View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.584567 7fed734006c0 Recovering log #48
2024/03/23-10:48:02.594353 7fed734006c0 Delete type=3 #46
2024/03/23-10:48:02.594417 7fed734006c0 Delete type=0 #48
2024/03/23-11:37:00.833866 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.833890 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.839913 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.846918 7fed720006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.846966 7fed720006c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

Binary file not shown.

0
packs/profils/000056.log Normal file
View File

1
packs/profils/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000054

0
packs/profils/LOCK Normal file
View File

7
packs/profils/LOG Normal file
View File

@@ -0,0 +1,7 @@
2024/03/31-17:51:10.175407 7f2efcc006c0 Recovering log #52
2024/03/31-17:51:10.186143 7f2efcc006c0 Delete type=3 #50
2024/03/31-17:51:10.186253 7f2efcc006c0 Delete type=0 #52
2024/03/31-17:52:39.356138 7f2efae006c0 Level-0 table #57: started
2024/03/31-17:52:39.356175 7f2efae006c0 Level-0 table #57: 0 bytes OK
2024/03/31-17:52:39.363013 7f2efae006c0 Delete type=0 #55
2024/03/31-17:52:39.370863 7f2efae006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

7
packs/profils/LOG.old Normal file
View File

@@ -0,0 +1,7 @@
2024/03/23-10:48:02.609984 7fed734006c0 Recovering log #48
2024/03/23-10:48:02.619777 7fed734006c0 Delete type=3 #46
2024/03/23-10:48:02.619840 7fed734006c0 Delete type=0 #48
2024/03/23-11:37:00.847087 7fed720006c0 Level-0 table #53: started
2024/03/23-11:37:00.847153 7fed720006c0 Level-0 table #53: 0 bytes OK
2024/03/23-11:37:00.853979 7fed720006c0 Delete type=0 #51
2024/03/23-11:37:00.867118 7fed720006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/scenes/000005.ldb Normal file

Binary file not shown.

0
packs/scenes/000024.log Normal file
View File

1
packs/scenes/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000022

0
packs/scenes/LOCK Normal file
View File

8
packs/scenes/LOG Normal file
View File

@@ -0,0 +1,8 @@
2024/03/31-17:51:10.189493 7f2efb8006c0 Recovering log #20
2024/03/31-17:51:10.200793 7f2efb8006c0 Delete type=3 #18
2024/03/31-17:51:10.200888 7f2efb8006c0 Delete type=0 #20
2024/03/31-17:52:39.363237 7f2efae006c0 Level-0 table #25: started
2024/03/31-17:52:39.363276 7f2efae006c0 Level-0 table #25: 0 bytes OK
2024/03/31-17:52:39.370640 7f2efae006c0 Delete type=0 #23
2024/03/31-17:52:39.370876 7f2efae006c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2024/03/31-17:52:39.370904 7f2efae006c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)

8
packs/scenes/LOG.old Normal file
View File

@@ -0,0 +1,8 @@
2024/03/23-10:48:02.622403 7fed73e006c0 Recovering log #16
2024/03/23-10:48:02.632700 7fed73e006c0 Delete type=3 #14
2024/03/23-10:48:02.632756 7fed73e006c0 Delete type=0 #16
2024/03/23-11:37:00.854073 7fed720006c0 Level-0 table #21: started
2024/03/23-11:37:00.854095 7fed720006c0 Level-0 table #21: 0 bytes OK
2024/03/23-11:37:00.860110 7fed720006c0 Delete type=0 #19
2024/03/23-11:37:00.867128 7fed720006c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2024/03/23-11:37:00.867164 7fed720006c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -573,6 +573,7 @@ ul, li {
.specialisation-label {
font-size: 0.8rem;
font-style: italic;
}
.carac-label,
@@ -1023,8 +1024,6 @@ ul, li {
}
#sidebar #sidebar-tabs i{
width: 25px;
height: 25px;
display: inline-block;
background-position:center;
background-size:cover;
@@ -1032,23 +1031,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 */
@@ -1217,7 +1199,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%);

View File

@@ -1,7 +1,7 @@
{
"id": "fvtt-les-heritiers",
"description": "Les Héritiers pour FoundryVTT",
"version": "10.1.5",
"version": "11.0.10",
"authors": [
{
"name": "Uberwald/LeRatierBretonnien",
@@ -19,7 +19,7 @@
"gridUnits": "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.5.zip",
"download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-11.0.10.zip",
"languages": [
{
"lang": "fr",
@@ -28,87 +28,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",
@@ -122,6 +198,6 @@
"background": "systems/fvtt-les-heritiers/assets/ui/wallpaper_foundry2.webp",
"compatibility": {
"minimum": "10",
"verified": "10"
"verified": "11"
}
}

View File

@@ -254,19 +254,19 @@
}
},
"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"
],
"profil": {
"profiltype": "majeur",
@@ -322,6 +322,7 @@
"portee": "",
"resistance": "",
"resistanceautre":"",
"pointsusagecourant": -1,
"isvirulence": false,
"virulence":"",
"description": ""

View File

@@ -122,7 +122,7 @@
<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}}
{{> systems/fvtt-les-heritiers/templates/partial-list-niveau.html}}
{{/select}}
</select>
@@ -247,7 +247,7 @@
</span>
<div class="item-filler">&nbsp;</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>
@@ -292,10 +292,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>
@@ -310,6 +312,8 @@
</span>
<div class="item-filler">&nbsp;</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|}}
@@ -334,6 +338,8 @@
</span>
<div class="item-filler">&nbsp;</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|}}
@@ -358,6 +364,8 @@
</span>
<div class="item-filler">&nbsp;</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|}}
@@ -389,8 +397,13 @@
<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">&nbsp;</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|}}
@@ -404,6 +417,7 @@
<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">&nbsp;</div>
<div class="item-controls item-controls-fixed">
@@ -424,6 +438,8 @@
</span>
<div class="item-filler">&nbsp;</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|}}
@@ -618,7 +634,7 @@
</li>
<li class="flexrow item">
<label class="generic-label">Points d'héritage</label>
<input type="text" class="" value="{{heritage}}" disabled data-dtype="String" />
<input type="text" class="" name="system.rang.heritage.value" value="{{system.rang.heritage.value}}" data-dtype="String" />
</li>
</ul>

View File

@@ -41,6 +41,7 @@
{{#if pouvoir}}
<li>Pouvoir : {{pouvoir.name}}</li>
<li>Effet : {{pouvoir.system.effet}}</li>
<li>Points d'usage consommés : {{pouvoirPointsUsage}}</li>
{{/if}}
{{#if forcedValue}}

View File

@@ -30,7 +30,7 @@
name="system.profil" value="{{system.profil}}" data-dtype="string">
{{#select system.profil}}
{{#each config.competenceProfil as |profil pKey|}}
<option value="{{pKey}}">{{profil}}</option>
<option value="{{pKey}}">{{profil.name}}</option>
{{/each}}
{{/select}}
</select>

View File

@@ -94,6 +94,21 @@
{{/if}}
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Points d'usage max/jour </label>
{{#if (eq usageMax -1)}}
<label class="generic-label item-field-label-short">Inconnu</label>
{{else}}
<label class="generic-label item-field-label-short">{{usageMax}}</label>
{{/if}}
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Points d'usage restants </label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.pointsusagecourant" value="{{system.pointsusagecourant}}" data-dtype="Number" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Cibles </label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-long3"

View File

@@ -40,9 +40,7 @@
</div>
</li>
{{#if (count skill.specList)}}
<li class="item flexrow" data-item-id="{{skill._id}}" data-item-type="competence">
<span class="specialisarion-margin item-field-label-long2">{{skill.specList}}</span>
</li>
<span class="specialisarion-margin specialisation-label item-field-label-long2">{{skill.specList}}</span>
{{/if}}
{{/each}}

View File

@@ -64,7 +64,18 @@
<span class="small-label roll-dialog-label">{{pouvoirBase.value}}</span>
</div>
{{/if}}
{{/if}}
<div class="flexrow">
<span class="roll-dialog-label">Points d'usage consommés : </span>
<select class="status-small-label color-class-common" id="pouvoirPointsUsage" type="Number" name="pouvoirPointsUsage" value="pouvoirPointsUsage" data-dtype="Number" >
{{#select pouvoirPointsUsage}}
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
{{/select}}
</select>
</div>
{{/if}}
{{#each rulesMalus as |malus key|}}
<div class="flexrow">