Compare commits

...

13 Commits

76 changed files with 325 additions and 104 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.history/

View File

@@ -1,8 +1,8 @@
# Système Foundry pour Hawkmoon (French RPG, Titam France/Sombres Projets)
# Système Foundry pour Les Héritiers (French RPG, Titam France/Sombres Projets)
## EN
Unofficial system for Hawkmoon (French version from Titam France).
Unofficial system for Les Heritiers (from Titam France).
This system has been approved by Département des Sombres Projets ( http://www.titam-france.fr/ ), thanks !
@@ -10,7 +10,7 @@ Books are mandatory to play and are available at : http://www.titam-france.fr
## FR
Système non-officiel pour le JDR Hawkmoon (Titam France/Sombres Projets).
Système non-officiel pour le JDR Les Héritiers (Titam France/Sombres Projets).
Ce système a été autorisé par le Département des Sombres Projets ( http://www.titam-france.fr/ ), merci à eux !
@@ -18,7 +18,7 @@ Les livres du jeu sont nécessaires pour jouer, et sont disponibles ici : http:/
# Credits
Hawkmoon, le jeu de rôle du Troisième Millénaire, is a property of Titam France/Sombres Projets.
Les Héritiers, is a property of Titam France/Sombres Projets.
# Developmement
@@ -26,4 +26,4 @@ LeRatierBretonnien
# Tests, icones et saisie des données
Prêtre, Blondin, Zechrub/Chris, Kyllian, Lightbringer
Prêtre, Carter

View File

@@ -55,6 +55,7 @@ export class HeritiersActorSheet extends ActorSheet {
desavantages: duplicate(this.actor.getDesavantages()),
profils: 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}),

View File

@@ -304,12 +304,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 }
@@ -501,9 +501,14 @@ 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) {

View File

@@ -120,14 +120,9 @@ Hooks.once("ready", function () {
});
}
registerUsageCount('fvtt-les-heritiers')
registerUsageCount(game.system.id)
welcomeMessage()
// CSS patch for v9
if (game.version) {
let sidebar = document.getElementById("sidebar");
sidebar.style.width = "min-content";
}
});
/* -------------------------------------------- */

View File

@@ -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 {
@@ -65,6 +104,14 @@ export class HeritiersUtility {
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
this.skills = skills.map(i => i.toObject())
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
})
}
/* -------------------------------------------- */
@@ -96,7 +143,18 @@ export class HeritiersUtility {
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
HeritiersUtility.rollHeritiers(rollData)
})
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)
@@ -212,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);
}
@@ -290,11 +347,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 +377,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 +390,16 @@ export class HeritiersUtility {
rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already
}
}
if ( !rollData.forcedValue) {
rollData.adjacentFaces = 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 +414,7 @@ export class HeritiersUtility {
}
if (rollData.mode == "attaquecharge") {
rollData.degatsArme += 3
}
}
}
if (rollData.attaqueCible == "membre") {
rollData.degatsArme -= 2
@@ -396,7 +457,7 @@ 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)
}, rollData, "selfroll")
@@ -409,10 +470,14 @@ export class HeritiersUtility {
//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.useTricherie || rollData.useHeritage) {
rollData.diceFormula = "{1d8, 1d10, 1d12}"
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
@@ -424,7 +489,7 @@ export class HeritiersUtility {
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 +503,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,13 +515,13 @@ 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`
}
}
@@ -464,7 +529,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
@@ -478,9 +543,9 @@ export class HeritiersUtility {
}, 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 +557,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)
}
}
@@ -505,7 +570,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
@@ -617,7 +682,7 @@ export class HeritiersUtility {
bonusMalusContext: 0,
attaqueCible: "none",
config: game.system.lesheritiers.config,
rulesMalus : []
rulesMalus: []
}
return rollData
}

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
MANIFEST-000006

View File

View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:11.050257 7f33237fe6c0 Recovering log #4
2023/12/19-22:06:11.104534 7f33237fe6c0 Delete type=3 #2
2023/12/19-22:06:11.104875 7f33237fe6c0 Delete type=0 #4
2023/12/19-22:13:00.316854 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:13:00.316923 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:13:00.490508 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.624324 7f33223ff6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.624395 7f33223ff6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.654905 7f3323fff6c0 Delete type=3 #1
2023/12/19-21:34:54.787106 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.792294 7f33223ff6c0 Level-0 table #5: 75294 bytes OK
2023/12/19-21:34:54.798740 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.828243 7f33223ff6c0 Manual compaction at level-0 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-000006

View File

View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:11.176247 7f3322ffd6c0 Recovering log #4
2023/12/19-22:06:11.233115 7f3322ffd6c0 Delete type=3 #2
2023/12/19-22:06:11.233244 7f3322ffd6c0 Delete type=0 #4
2023/12/19-22:13:00.722674 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:13:00.722715 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:13:00.805532 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.882637 7f33223ff6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.882686 7f33223ff6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.795275 7f3323fff6c0 Delete type=3 #1
2023/12/19-21:34:54.816711 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.820965 7f33223ff6c0 Level-0 table #5: 16828 bytes OK
2023/12/19-21:34:54.828050 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.835440 7f33223ff6c0 Manual compaction at level-0 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-000006

View File

View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:10.985018 7f35b8bfa6c0 Recovering log #4
2023/12/19-22:06:11.046339 7f35b8bfa6c0 Delete type=3 #2
2023/12/19-22:06:11.046469 7f35b8bfa6c0 Delete type=0 #4
2023/12/19-22:13:00.177944 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:13:00.177984 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:13:00.316506 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.624302 7f33223ff6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.624379 7f33223ff6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.601487 7f3322ffd6c0 Delete type=3 #1
2023/12/19-21:34:54.774727 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.779620 7f33223ff6c0 Level-0 table #5: 59886 bytes OK
2023/12/19-21:34:54.786884 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.816678 7f33223ff6c0 Manual compaction at level-0 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-000006

0
packs/avantages/LOCK Normal file
View File

8
packs/avantages/LOG Normal file
View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:10.801923 7f33237fe6c0 Recovering log #4
2023/12/19-22:06:10.856851 7f33237fe6c0 Delete type=3 #2
2023/12/19-22:06:10.857020 7f33237fe6c0 Delete type=0 #4
2023/12/19-22:12:59.901335 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:12:59.901390 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:12:59.991239 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.082181 7f33223ff6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.082266 7f33223ff6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)

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

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.469210 7f3323fff6c0 Delete type=3 #1
2023/12/19-21:34:54.739813 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.744244 7f33223ff6c0 Level-0 table #5: 26203 bytes OK
2023/12/19-21:34:54.751692 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.774674 7f33223ff6c0 Manual compaction at level-0 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-000006

0
packs/capacites/LOCK Normal file
View File

8
packs/capacites/LOG Normal file
View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:10.924713 7f3322ffd6c0 Recovering log #4
2023/12/19-22:06:10.981248 7f3322ffd6c0 Delete type=3 #2
2023/12/19-22:06:10.981375 7f3322ffd6c0 Delete type=0 #4
2023/12/19-22:13:00.082384 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:13:00.082423 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:13:00.177773 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.624275 7f33223ff6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.624363 7f33223ff6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)

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

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.559042 7f3323fff6c0 Delete type=3 #1
2023/12/19-21:34:54.762976 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.766856 7f33223ff6c0 Level-0 table #5: 23734 bytes OK
2023/12/19-21:34:54.774441 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.787085 7f33223ff6c0 Manual compaction at level-0 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-000006

0
packs/competences/LOCK Normal file
View File

8
packs/competences/LOG Normal file
View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:10.732271 7f35b8bfa6c0 Recovering log #4
2023/12/19-22:06:10.794092 7f35b8bfa6c0 Delete type=3 #2
2023/12/19-22:06:10.794226 7f35b8bfa6c0 Delete type=0 #4
2023/12/19-22:12:59.792407 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:12:59.792457 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:12:59.901092 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:12:59.991554 7f33223ff6c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.082216 7f33223ff6c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.424090 7f3322ffd6c0 Delete type=3 #1
2023/12/19-21:34:54.711352 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.715753 7f33223ff6c0 Level-0 table #5: 26885 bytes OK
2023/12/19-21:34:54.722148 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.729274 7f33223ff6c0 Manual compaction at level-0 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-000006

0
packs/desavantages/LOCK Normal file
View File

8
packs/desavantages/LOG Normal file
View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:10.861912 7f3323fff6c0 Recovering log #4
2023/12/19-22:06:10.921564 7f3323fff6c0 Delete type=3 #2
2023/12/19-22:06:10.921726 7f3323fff6c0 Delete type=0 #4
2023/12/19-22:12:59.991583 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:12:59.991648 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:13:00.082009 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.082231 7f33223ff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.082278 7f33223ff6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.513826 7f3322ffd6c0 Delete type=3 #1
2023/12/19-21:34:54.752015 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.756291 7f33223ff6c0 Level-0 table #5: 31112 bytes OK
2023/12/19-21:34:54.762759 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.774705 7f33223ff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -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 dusage au lieu dun, ainsi qu1 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 dopposition de Mêlée ou Ressort + Force pour se dégager.","isvirulence":false,"virulence":"","description":"<p>Le djinn se transforme en &eacute;l&eacute;mentaire majeur de tr&egrave;s grande taille (environ 2,5 m&egrave;tres de haut et d&rsquo;envergure), avec d&rsquo;importants pouvoirs de contr&ocirc;le de son &eacute;l&eacute;ment de pr&eacute;dilection : tornade de sable ou d&rsquo;eau, contr&ocirc;le du feu, temp&ecirc;te, etc. Ce contr&ocirc;le &eacute;l&eacute;mentaire est de forme relativement libre selon la vraisemblance et ce qu&rsquo;autorise le Docte et sa puissance est comparable au Pouvoir profond du ph&eacute;nix Contr&ocirc;le du feu (voir p. 264). Il utilise ses longs bras (1,5 m) pour porter des attaques &eacute;l&eacute;mentaires avec des effets critiques li&eacute;s : le feu enflamme les v&ecirc;tements, l&rsquo;eau et le sable &eacute;tourdissent, l&rsquo;air ajoute des d&eacute;g&acirc;ts de projection ou de chute, etc.</p>\n<p>Les attaques physiques port&eacute;es contre lui sont r&eacute;duites d&rsquo;autant de points de d&eacute;g&acirc;ts que son rang de F&eacute;&eacute;rie, sauf si elles font intervenir de l&rsquo;argent. Toutefois, projeter sur lui une grande quantit&eacute; (1 m3 environ) d&rsquo;un &eacute;l&eacute;ment auquel il est vuln&eacute;rable (l&rsquo;eau pour les djinns du feu, la terre ou le sable pour les djinns de l&rsquo;eau, le vent pour les djinns de sable, le feu pour les djinns de l&rsquo;air) pourra contraindre un djinn l&eacute;gendaire &agrave; abandonner sa forme d&rsquo;&Eacute;l&eacute;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 quun bâtiment)","resistance":"aucune","resistanceautre":"","isvirulence":false,"virulence":"","description":"<p><strong>Type de Pouvoir : </strong>actif.</p>\n<p><strong>Activation : </strong>F&eacute;&eacute;rie + Esprit et une transe de 5 minutes au moins, contre un SD variable selon la taille et les &eacute;v&eacute;nements se d&eacute;roulant dans le lieu (une chambre isol&eacute;e depuis des ann&eacute;es : SD10 ; un immeuble rempli d'habitants dans lequel il y a fr&eacute;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&rsquo;effet : </strong>un lieu (pas plus grand qu&rsquo;un b&acirc;timent).</p>\n<p>La cr&eacute;ature est capable, apr&egrave;s avoir &eacute;tabli un contact mental avec un lieu par une transe prolong&eacute;e, de r&eacute;cup&eacute;rer des informations sur ce qui s&rsquo;y est pass&eacute;. En fonction de sa MR, elle aura acc&egrave;s &agrave; diff&eacute;rents d&eacute;tails : paroles prononc&eacute;es r&eacute;cemment ou qui ont marqu&eacute; l&rsquo;atmosph&egrave;re, traits physiques g&eacute;n&eacute;raux de protagonistes pr&eacute;sents (odeur, poids, etc.). Les &eacute;v&eacute;nements marquants (meurtre, incendie, etc.) impr&egrave;gnent davantage un lieu et faciliteront le SD du test &agrave; la discr&eacute;tion du Docte mais peuvent rester imperceptibles dans la masse d&rsquo;informations si le lieu est vaste et fr&eacute;quent&eacute;.</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 à limitation (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 lapparence de nimporte 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&eacute;masqu&eacute; ; actif puis m&eacute;tamorphose pour adopter l&rsquo;identit&eacute; imit&eacute;e.</p>\n<p><strong>Activation : </strong>test de Masque + F&eacute;&eacute;rie contre un SD de 10 + Prestance de la personne imit&eacute;e modifi&eacute;e par la pr&eacute;cision de la source servant &agrave; l&rsquo;imitation (connaissance personnelle profonde = bonus de + 3, connaissance personnelle superficielle = + 1, photographie = - 1, illustration fid&egrave;le = - 2).</p>\n<p><strong>Dur&eacute;e : </strong>une sc&egrave;ne.</p>\n<p><strong>Effet : </strong>prendre l&rsquo;apparence de n&rsquo;importe qui.</p>\n<p><strong>R&eacute;sistance : </strong>percer &agrave; jour le protys l&eacute;gendaire n&eacute;cessite un test de Sensibilit&eacute; (Psychologie) + Perception en opposition au test de F&eacute;&eacute;rie + Masque du protys.</p>\n<p>Le protys l&eacute;gendaire est capable, pendant une sc&egrave;ne, de prendre l&rsquo;apparence (traits du visage, corpulence, etc.) de n&rsquo;importe quel individu dont il aurait vu le visage en r&eacute;alit&eacute; ou en photographie, voire sur une illustration suffisamment fid&egrave;le. Il peut m&ecirc;me imiter une f&eacute;e avec ses capacit&eacute;s naturelles (ailes, crocs, pelage, etc.) au point de pouvoir s&rsquo;en servir normalement (il pourra ainsi voler, utiliser une queue pr&eacute;hensile, etc.). Il n&rsquo;aura en revanche pas acc&egrave;s aux Pouvoirs de la f&eacute;e imit&eacute;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&eacute;&eacute;rie + Agilit&eacute; ou Pr&eacute;cision.</p>\n<p><strong>Cibles : </strong>une seule.</p>\n<p><strong>Effet : </strong>souffle de feu de d&eacute;g&acirc;ts = 2 + MR.</p>\n<p><strong>Port&eacute;e : </strong>F&eacute;&eacute;rie m&egrave;tres.</p>\n<p><strong>R&eacute;sistance : </strong>Esquive.</p>\n<p>La cr&eacute;ature souffle un jet de feu capables d&rsquo;enflammer les mat&eacute;riaux combustibles (papier, tissus, bois) et faire des d&eacute;g&acirc;ts sur une cible. Cette derni&egrave;re peut &ecirc;tre durablement enflamm&eacute;e si les d&eacute;g&acirc;ts subis sont de 8 ou plus (en cumulant les attaques). La cible subira alors 1 point de d&eacute;g&acirc;t par tour jusqu&rsquo;&agrave; ce que les flammes soient &eacute;teintes par la cible ou un alli&eacute;. En&nbsp; as de r&eacute;ussite critique du Souffle enflamm&eacute;, la cible peut perdre, en plus de points de Vie, un point de Prestance permanent &agrave; moins d&rsquo;&ecirc;tre soign&eacute;e imm&eacute;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&eacute;&eacute;rie + Agilit&eacute; ou Pr&eacute;cision.</p>\n<p><strong>Cibles : </strong>une seule.</p>\n<p><strong>Effet : </strong>souffle de feu de d&eacute;g&acirc;ts = 2 + MR.</p>\n<p><strong>Port&eacute;e : </strong>F&eacute;&eacute;rie m&egrave;tres.</p>\n<p><strong>R&eacute;sistance : </strong>Esquive.</p>\n<p>La cr&eacute;ature souffle un jet de feu capables d&rsquo;enflammer les mat&eacute;riaux combustibles (papier, tissus, bois) et faire des d&eacute;g&acirc;ts sur une cible. Cette derni&egrave;re peut &ecirc;tre durablement enflamm&eacute;e si les d&eacute;g&acirc;ts subis sont de 8 ou plus (en cumulant les attaques). La cible subira alors 1 point de d&eacute;g&acirc;t par tour jusqu&rsquo;&agrave; ce que les flammes soient &eacute;teintes par la cible ou un alli&eacute;. En&nbsp; as de r&eacute;ussite critique du Souffle enflamm&eacute;, la cible peut perdre, en plus de points de Vie, un point de Prestance permanent &agrave; moins d&rsquo;&ecirc;tre soign&eacute;e imm&eacute;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 dune 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 lobjet (voir p. 204).","isvirulence":false,"virulence":"","description":"<p>La cr&eacute;ature est capable d&rsquo;affronter les pires chutes sans se faire mal. Lorsque ce Pouvoir est actif, on soustrait F&eacute;&eacute;rie x 4 m &agrave; la hauteur de la chute pour le calcul de son SD.</p>\n<p><strong>Exemple</strong> : <em>si une cr&eacute;ature a 4 en F&eacute;&eacute;rie et chute de 20 m, c&rsquo;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&eacute; pour limiter les d&eacute;g&acirc;ts de la chute sera &eacute;gal &agrave; 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 lobjet (voir p. 204).","isvirulence":false,"virulence":"","description":"<p>La cr&eacute;ature est capable, au cours d&rsquo;une conversation, de faire tomber sa cible follement amoureuse d&rsquo;elle si elle ne R&eacute;siste pas. La cible, une fois &eacute;prise de la cr&eacute;ature, aura du mal &agrave; lui refuser quelque chose mais ne fera rien qui puisse directement nuire &agrave; ses jours et ira rarement contre son code moral.</p>\n<p>Pour la pousser &agrave; une telle extr&eacute;mit&eacute;, la cr&eacute;ature devra obtenir une r&eacute;ussite critique ou r&eacute;ussir un test de Rh&eacute;torique ou S&eacute;duction de SD 15 minimum (au jugement du Docte) b&eacute;n&eacute;ficiant d&rsquo;un bonus &eacute;gal &agrave; 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 quelquun ; 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&eacute;&eacute;rie + Esprit.</p>\n<p><strong>Cibles : </strong>une cible.</p>\n<p><strong>Effet :</strong> fait deviner ce qui f&acirc;che quelqu&rsquo;un ; fait perdre automatiquement un point de Sang-froid quand ce sujet est abord&eacute; et pousse &agrave; la col&egrave;re.</p>\n<p><strong>Port&eacute;e :</strong> &agrave; vue.</p>\n<p><strong>R&eacute;sistance : </strong>psychique pour ne pas &ecirc;tre perc&eacute; &agrave; jour puis Fortitude + Sang-froid pour garder le contr&ocirc;le contre un SD difficile (13 ou plus) fix&eacute; par le Docte.</p>\n<p>Lorsqu&rsquo;elle active ce Pouvoir, la cr&eacute;ature peut, en observant son interlocuteur (il peut avoir un bonus d&rsquo;apr&egrave;s des &eacute;l&eacute;ments qu&rsquo;il conna&icirc;t), trouver instinctivement le sujet qui va le f&acirc;cher et, selon son caract&egrave;re, le mettre en col&egrave;re ou le faire fuir en rougissant. Ce peut &ecirc;tre un complexe, une histoire louche, une phobie&hellip; Toutefois, elle n&rsquo;est pas oblig&eacute;e d&rsquo;en faire usage : le Docte doit juste lui communiquer le sujet susceptible de froisser la personne en question.<br>Si la victime R&eacute;siste, la cr&eacute;ature n&rsquo;est pas s&ucirc;re du &laquo; sujet qui f&acirc;che &raquo;. En cas de succ&egrave;s du Pouvoir, si la cr&eacute;ature se sert du Sujet qui f&acirc;che, la cible perd automatiquement un point de Sang-froid (effet non cumulable) et doit r&eacute;ussir &agrave; se ma&icirc;triser pour ne pas montrer sa col&egrave;re ou sa g&ecirc;ne. Toutefois, la victime ne peut que ma&icirc;triser ses r&eacute;actions apparentes (et bouillir int&eacute;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}}

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-000006

0
packs/pouvoirs/LOCK Normal file
View File

8
packs/pouvoirs/LOG Normal file
View File

@@ -0,0 +1,8 @@
2023/12/19-22:06:11.108663 7f3323fff6c0 Recovering log #4
2023/12/19-22:06:11.171177 7f3323fff6c0 Delete type=3 #2
2023/12/19-22:06:11.171278 7f3323fff6c0 Delete type=0 #4
2023/12/19-22:13:00.490784 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:13:00.490836 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:13:00.624081 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.624346 7f33223ff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2023/12/19-22:13:00.624413 7f33223ff6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

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

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.700301 7f3322ffd6c0 Delete type=3 #1
2023/12/19-21:34:54.798956 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.809620 7f33223ff6c0 Level-0 table #5: 273133 bytes OK
2023/12/19-21:34:54.816368 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.828262 7f33223ff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

Binary file not shown.

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

1
packs/profils/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000006

0
packs/profils/LOCK Normal file
View File

7
packs/profils/LOG Normal file
View File

@@ -0,0 +1,7 @@
2023/12/19-22:06:11.236708 7f35b8bfa6c0 Recovering log #4
2023/12/19-22:06:11.292347 7f35b8bfa6c0 Delete type=3 #2
2023/12/19-22:06:11.292463 7f35b8bfa6c0 Delete type=0 #4
2023/12/19-22:13:00.624571 7f33223ff6c0 Level-0 table #9: started
2023/12/19-22:13:00.624648 7f33223ff6c0 Level-0 table #9: 0 bytes OK
2023/12/19-22:13:00.722512 7f33223ff6c0 Delete type=0 #7
2023/12/19-22:13:00.882608 7f33223ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

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

@@ -0,0 +1,5 @@
2023/12/19-21:28:12.843064 7f3322ffd6c0 Delete type=3 #1
2023/12/19-21:34:54.828277 7f33223ff6c0 Level-0 table #5: started
2023/12/19-21:34:54.828314 7f33223ff6c0 Level-0 table #5: 0 bytes OK
2023/12/19-21:34:54.835165 7f33223ff6c0 Delete type=0 #3
2023/12/19-21:34:54.842202 7f33223ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 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%);
@@ -1241,6 +1233,17 @@ 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;
}
.button-sheet-roll:active {
position:relative;
top:1px;

View File

@@ -1,7 +1,7 @@
{
"id": "fvtt-les-heritiers",
"description": "Les Héritiers pour FoundryVTT",
"version": "10.1.0",
"version": "11.0.5",
"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.0.zip",
"download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-11.0.5.zip",
"languages": [
{
"lang": "fr",
@@ -122,7 +122,7 @@
"background": "systems/fvtt-les-heritiers/assets/ui/wallpaper_foundry2.webp",
"compatibility": {
"minimum": "10",
"verified": "10",
"maximum": "10"
"verified": "11",
"maximum": "11"
}
}

View File

@@ -48,7 +48,7 @@
<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>&nbsp;&nbsp;</span>
<select class="item-field-label-medium" type="text" name="system.statutmasque" value="{{system.statutmasque}}" data-dtype="string">

View File

@@ -47,7 +47,7 @@
<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>&nbsp;&nbsp;</span>
<select class="item-field-label-medium" type="text" name="system.statutmasque" value="{{system.statutmasque}}" data-dtype="string">
@@ -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>
@@ -616,6 +616,10 @@
<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>
@@ -632,8 +636,18 @@
<input type="text" class="" name="system.biodata.poidsdemasquee" value="{{system.biodata.poidsdemasquee}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">XP</label>
<input type="text" class="" name="system.experience.value" value="{{system.experience.value}}"
data-dtype="String" />
</li>
<li class="item flexrow">
<label class="generic-label">XP pour tricher</label>
<input type="text" class="" name="system.experience.pourtricher" value="{{system.experience.pourtricher}}"
data-dtype="String" />
</li>
</ul>
</div>
</div>
</div>
</div>

View File

@@ -43,10 +43,24 @@
<li>Effet : {{pouvoir.system.effet}}</li>
{{/if}}
{{#if forcedValue}}
<li>Vous dépense 2 points de Tricherie et utilisé une face adjacente du dé !</li>
{{/if}}
<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")}}
{{#if isSuccess}}
<li class="chat-success">Succès...

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}}