Compare commits
19 Commits
fvtt-waste
...
main
Author | SHA1 | Date | |
---|---|---|---|
fdf28c4978 | |||
e0eac58bc9 | |||
b463323fbe | |||
bddf772c99 | |||
a716a3b3d1 | |||
5814ef41df | |||
c0fcbe278f | |||
94f7ef8f90 | |||
19409dd547 | |||
217df7ee10 | |||
9990545568 | |||
d2da332411 | |||
028e8bddac | |||
5c889a5153 | |||
68689add33 | |||
4ed2bcd2ee | |||
0edf336d28 | |||
046cdf4fb2 | |||
cc0faec25e |
12
README.md
12
README.md
@ -1,11 +1,14 @@
|
|||||||
# Système Foundry pour Wasteland (French RPG, Titam France/Sombres Projets)
|
|
||||||
|
Système Foundry pour Wasteland (French RPG, Titam France/Sombres Projets)
|
||||||
|
|
||||||
## EN
|
## EN
|
||||||
|
|
||||||
Unofficial system for Wasteland (French version from Titam France).
|
Unofficial system for Wasteland (French RPG from Titam France).
|
||||||
|
|
||||||
Books are mandatory to play and are available at : http://www.titam-france.fr
|
Books are mandatory to play and are available at : http://www.titam-france.fr
|
||||||
|
|
||||||
|
``
|
||||||
|
|
||||||
## FR
|
## FR
|
||||||
|
|
||||||
Système non-officiel pour le JDR Wasteland (Titam France).
|
Système non-officiel pour le JDR Wasteland (Titam France).
|
||||||
@ -16,8 +19,9 @@ Les livres du jeu sont nécessaires pour jouer, et sont disponibles ici : http:/
|
|||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
|
|
||||||
Wasteland, le jeu de rôle de Sword & Sorcery, is a property of Titam France/Sombres Projets.
|
Wasteland is a property of Titam France/Sombres Projets.
|
||||||
|
|
||||||
# Developmement
|
# Developmement
|
||||||
|
|
||||||
LeRatierBretonnien
|
Code, CSS and automations : LeRatierBretonnien
|
||||||
|
Compendiums : Pretre, LeRatierBretonnien
|
||||||
|
BIN
assets/icons/don.webp
Normal file
BIN
assets/icons/don.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
BIN
assets/icons/hubris.webp
Normal file
BIN
assets/icons/hubris.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
8
changelog.md
Normal file
8
changelog.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# 12.0.1
|
||||||
|
|
||||||
|
- Fix v12 version
|
||||||
|
|
||||||
|
# 11.0.22
|
||||||
|
|
||||||
|
- Version initiale
|
||||||
|
-
|
45
lang/fr.json
45
lang/fr.json
@ -1,24 +1,25 @@
|
|||||||
{
|
{
|
||||||
"ACTOR": {
|
"TYPES": {
|
||||||
"TypePersonnage": "Personnage",
|
"Item": {
|
||||||
"TypePNJ": "PNJ"
|
"arme": "Arme",
|
||||||
},
|
"competence": "Compétence",
|
||||||
|
"protection": "Protection",
|
||||||
"ITEM": {
|
"monnaie": "Monnaie",
|
||||||
"TypeArme": "Arme",
|
"equipement": "Equipement",
|
||||||
"TypeCompetence": "Compétence",
|
"capacite": "Capacité",
|
||||||
"TypeProtection": "Protection",
|
"origine": "Origine",
|
||||||
"TypeMonnaie": "Monnaie",
|
"heritage": "Héritage",
|
||||||
"TypeEquipement": "Equipement",
|
"metier": "Métier",
|
||||||
"TypeCapacite": "Capacité",
|
"bouclier": "Bouclier",
|
||||||
"TypeOrigine": "Origine",
|
"pouvoir": "Pouvoir",
|
||||||
"TypeHeritage": "Héritage",
|
"artifex": "Artifex",
|
||||||
"TypeMetier": "Métier",
|
"mutation": "Mutation",
|
||||||
"TypeBouclier": "Bouclier",
|
"charme": "Charme",
|
||||||
"TypePouvoir": "Pouvoir",
|
"peuple": "Peuple"
|
||||||
"TypeArtifex": "Artifex",
|
},
|
||||||
"TypeMutation": "Mutation",
|
"Actor": {
|
||||||
"TypeCharme": "Charme",
|
"personnage": "Personnage",
|
||||||
"TypePeuple": "Peuple"
|
"pnj": "PNJ"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -12,7 +12,7 @@ export class WastelandActorSheet extends ActorSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
|
|
||||||
return mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
classes: ["fvtt-wasteland", "sheet", "actor"],
|
classes: ["fvtt-wasteland", "sheet", "actor"],
|
||||||
template: "systems/fvtt-wasteland/templates/actor-sheet.html",
|
template: "systems/fvtt-wasteland/templates/actor-sheet.html",
|
||||||
width: 640,
|
width: 640,
|
||||||
@ -25,7 +25,7 @@ export class WastelandActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
const objectData = duplicate(this.object)
|
const objectData = foundry.utils.duplicate(this.object)
|
||||||
let actorData = objectData
|
let actorData = objectData
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
@ -40,23 +40,32 @@ export class WastelandActorSheet extends ActorSheet {
|
|||||||
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
skills: this.actor.getSkills(),
|
skills: this.actor.getSkills(),
|
||||||
armes: duplicate(this.actor.getWeapons()),
|
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
||||||
protections: duplicate(this.actor.getArmors()),
|
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
||||||
pouvoirs:duplicate(this.actor.getPouvoirs()),
|
pouvoirs:foundry.utils.duplicate(this.actor.getPouvoirs()),
|
||||||
tours:duplicate(this.actor.getTours()),
|
dons: foundry.utils.duplicate(this.actor.getDons()),
|
||||||
charmes:duplicate(this.actor.getCharmes()),
|
hubrises: foundry.utils.duplicate(this.actor.getHubris()),
|
||||||
origine: duplicate(this.actor.getOrigine() || {}),
|
tours:foundry.utils.duplicate(this.actor.getTours()),
|
||||||
heritage: duplicate(this.actor.getHeritage() || {}),
|
artifex: foundry.utils.duplicate(this.actor.getArtifex()),
|
||||||
metier: duplicate(this.actor.getMetier() || {}),
|
charmes:foundry.utils.duplicate(this.actor.getCharmes()),
|
||||||
|
peuple: foundry.utils.duplicate(this.actor.getPeuple() || {}),
|
||||||
|
origine: foundry.utils.duplicate(this.actor.getOrigine() || {}),
|
||||||
|
heritage: foundry.utils.duplicate(this.actor.getHeritage() || {}),
|
||||||
|
metier: foundry.utils.duplicate(this.actor.getMetier() || {}),
|
||||||
combat: this.actor.getCombatValues(),
|
combat: this.actor.getCombatValues(),
|
||||||
config: duplicate(game.system.wasteland.config),
|
config: foundry.utils.duplicate(game.system.wasteland.config),
|
||||||
equipements: duplicate(this.actor.getEquipments()),
|
capacites: foundry.utils.duplicate(this.actor.getCapacites()),
|
||||||
monnaies: duplicate(this.actor.getMonnaies()),
|
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
||||||
|
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
||||||
|
mutations: foundry.utils.duplicate(this.actor.getMutations()),
|
||||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||||
|
comportement: await TextEditor.enrichHTML(this.object.system.biodata.comportement, {async: true}),
|
||||||
|
habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
isGM: game.user.isGM
|
isGM: game.user.isGM,
|
||||||
|
config: game.system.wasteland.config
|
||||||
}
|
}
|
||||||
this.formData = formData;
|
this.formData = formData;
|
||||||
|
|
||||||
|
@ -37,11 +37,12 @@ export class WastelandActor extends Actor {
|
|||||||
return actor;
|
return actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const skills = await WastelandUtility.loadCompendium("fvtt-wasteland.skills")
|
||||||
if (data.type == 'personnage') {
|
if (data.type == 'personnage') {
|
||||||
const skills = await WastelandUtility.loadCompendium("fvtt-wasteland.skills")
|
|
||||||
data.items = skills.map(i => i.toObject())
|
data.items = skills.map(i => i.toObject())
|
||||||
}
|
}
|
||||||
if (data.type == 'pnj') {
|
if (data.type == 'creature') {
|
||||||
|
data.items = skills.filter(i=>i.name.toLowerCase().includes("mêlée")).map(i => i.toObject())
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.create(data, options);
|
return super.create(data, options);
|
||||||
@ -49,10 +50,10 @@ export class WastelandActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareArme(arme) {
|
prepareArme(arme) {
|
||||||
arme = duplicate(arme)
|
arme = foundry.utils.duplicate(arme)
|
||||||
let combat = this.getCombatValues()
|
let combat = this.getCombatValues()
|
||||||
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
||||||
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||||
arme.system.attrKey = "pui"
|
arme.system.attrKey = "pui"
|
||||||
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
|
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
|
||||||
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
||||||
@ -61,7 +62,7 @@ export class WastelandActor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
|
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
|
||||||
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
|
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
|
||||||
arme.system.attrKey = "adr"
|
arme.system.attrKey = "adr"
|
||||||
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
|
||||||
arme.system.totalDegats = arme.system.degats
|
arme.system.totalDegats = arme.system.degats
|
||||||
@ -73,9 +74,9 @@ export class WastelandActor extends Actor {
|
|||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareBouclier(bouclier) {
|
prepareBouclier(bouclier) {
|
||||||
bouclier = duplicate(bouclier)
|
bouclier = foundry.utils.duplicate(bouclier)
|
||||||
let combat = this.getCombatValues()
|
let combat = this.getCombatValues()
|
||||||
bouclier.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
bouclier.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
|
||||||
bouclier.system.attrKey = "pui"
|
bouclier.system.attrKey = "pui"
|
||||||
bouclier.system.totalDegats = bouclier.system.degats + "+" + combat.bonusDegatsTotal
|
bouclier.system.totalDegats = bouclier.system.degats + "+" + combat.bonusDegatsTotal
|
||||||
bouclier.system.totalOffensif = this.system.attributs.pui.value + bouclier.system.competence.system.niveau
|
bouclier.system.totalOffensif = this.system.attributs.pui.value + bouclier.system.competence.system.niveau
|
||||||
@ -116,18 +117,36 @@ export class WastelandActor extends Actor {
|
|||||||
WastelandUtility.sortArrayObjectsByName(items)
|
WastelandUtility.sortArrayObjectsByName(items)
|
||||||
return items
|
return items
|
||||||
}
|
}
|
||||||
|
getArtifex() {
|
||||||
|
return this.getItemSorted(["artifex"])
|
||||||
|
}
|
||||||
|
getCapacites() {
|
||||||
|
return this.getItemSorted(["capacite"])
|
||||||
|
}
|
||||||
getPouvoirs() {
|
getPouvoirs() {
|
||||||
return this.getItemSorted(["pouvoir"])
|
return this.getItemSorted(["pouvoir"])
|
||||||
}
|
}
|
||||||
|
getDons() {
|
||||||
|
return this.getItemSorted(["don"])
|
||||||
|
}
|
||||||
|
getHubris() {
|
||||||
|
return this.getItemSorted(["hubris"])
|
||||||
|
}
|
||||||
getEquipments() {
|
getEquipments() {
|
||||||
return this.getItemSorted(["equipement"])
|
return this.getItemSorted(["equipement"])
|
||||||
}
|
}
|
||||||
getMonnaies() {
|
getMonnaies() {
|
||||||
return this.getItemSorted(["monnaie"])
|
return this.getItemSorted(["monnaie"])
|
||||||
}
|
}
|
||||||
|
getMutations() {
|
||||||
|
return this.getItemSorted(["mutation"])
|
||||||
|
}
|
||||||
getArmors() {
|
getArmors() {
|
||||||
return this.getItemSorted(["protection"])
|
return this.getItemSorted(["protection"])
|
||||||
}
|
}
|
||||||
|
getPeuple() {
|
||||||
|
return this.items.find(item => item.type == "peuple")
|
||||||
|
}
|
||||||
getOrigine() {
|
getOrigine() {
|
||||||
return this.items.find(item => item.type == "origine")
|
return this.items.find(item => item.type == "origine")
|
||||||
}
|
}
|
||||||
@ -141,7 +160,7 @@ export class WastelandActor extends Actor {
|
|||||||
getSkills() {
|
getSkills() {
|
||||||
let comp = []
|
let comp = []
|
||||||
for (let item of this.items) {
|
for (let item of this.items) {
|
||||||
item = duplicate(item)
|
item = foundry.utils.duplicate(item)
|
||||||
if (item.type == "competence") {
|
if (item.type == "competence") {
|
||||||
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0)
|
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0)
|
||||||
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
|
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
|
||||||
@ -203,7 +222,7 @@ export class WastelandActor extends Actor {
|
|||||||
if (this.system.sante.base != newSante) {
|
if (this.system.sante.base != newSante) {
|
||||||
this.update({ 'system.sante.base': newSante })
|
this.update({ 'system.sante.base': newSante })
|
||||||
}
|
}
|
||||||
let newPsyche = (this.system.attributs.cla.value + this.system.attributs.tre.value) * this.system.biodata.psychemultiplier + 5
|
let newPsyche = ((this.system.attributs.cla.value + this.system.attributs.tre.value) * 2) + 5
|
||||||
if (this.system.psyche.fullmax != newPsyche) {
|
if (this.system.psyche.fullmax != newPsyche) {
|
||||||
this.update({ 'system.psyche.fullmax': newPsyche })
|
this.update({ 'system.psyche.fullmax': newPsyche })
|
||||||
}
|
}
|
||||||
@ -219,7 +238,7 @@ export class WastelandActor extends Actor {
|
|||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
incDecSante(value) {
|
incDecSante(value) {
|
||||||
let sante = duplicate(this.system.sante)
|
let sante = foundry.utils.duplicate(this.system.sante)
|
||||||
sante.letaux += value
|
sante.letaux += value
|
||||||
this.update({ 'system.sante': sante })
|
this.update({ 'system.sante': sante })
|
||||||
}
|
}
|
||||||
@ -227,7 +246,7 @@ export class WastelandActor extends Actor {
|
|||||||
getItemById(id) {
|
getItemById(id) {
|
||||||
let item = this.items.find(item => item.id == id);
|
let item = this.items.find(item => item.id == id);
|
||||||
if (item) {
|
if (item) {
|
||||||
item = duplicate(item)
|
item = foundry.utils.duplicate(item)
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@ -282,7 +301,7 @@ export class WastelandActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
subPointsPsyche(value) {
|
subPointsPsyche(value) {
|
||||||
let psyche = duplicate(this.system.psyche)
|
let psyche = foundry.utils.duplicate(this.system.psyche)
|
||||||
psyche.currentmax -= value
|
psyche.currentmax -= value
|
||||||
this.update( {'system.psyche': psyche})
|
this.update( {'system.psyche': psyche})
|
||||||
}
|
}
|
||||||
@ -321,13 +340,13 @@ export class WastelandActor extends Actor {
|
|||||||
getSubActors() {
|
getSubActors() {
|
||||||
let subActors = [];
|
let subActors = [];
|
||||||
for (let id of this.system.subactors) {
|
for (let id of this.system.subactors) {
|
||||||
subActors.push(duplicate(game.actors.get(id)));
|
subActors.push(foundry.utils.duplicate(game.actors.get(id)));
|
||||||
}
|
}
|
||||||
return subActors;
|
return subActors;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async addSubActor(subActorId) {
|
async addSubActor(subActorId) {
|
||||||
let subActors = duplicate(this.system.subactors);
|
let subActors = foundry.utils.duplicate(this.system.subactors);
|
||||||
subActors.push(subActorId);
|
subActors.push(subActorId);
|
||||||
await this.update({ 'system.subactors': subActors });
|
await this.update({ 'system.subactors': subActors });
|
||||||
}
|
}
|
||||||
@ -358,7 +377,7 @@ export class WastelandActor extends Actor {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async setPredilectionUsed(compId, predIdx) {
|
async setPredilectionUsed(compId, predIdx) {
|
||||||
let comp = this.items.get(compId)
|
let comp = this.items.get(compId)
|
||||||
let pred = duplicate(comp.system.predilections)
|
let pred = foundry.utils.duplicate(comp.system.predilections)
|
||||||
pred[predIdx].used = true
|
pred[predIdx].used = true
|
||||||
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
|
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
|
||||||
}
|
}
|
||||||
@ -381,7 +400,7 @@ export class WastelandActor extends Actor {
|
|||||||
}
|
}
|
||||||
if ( arme.system.totalDefensif > maxDef) {
|
if ( arme.system.totalDefensif > maxDef) {
|
||||||
maxDef = arme.system.totalDefensif
|
maxDef = arme.system.totalDefensif
|
||||||
bestArme = duplicate(arme)
|
bestArme = foundry.utils.duplicate(arme)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return bestArme
|
return bestArme
|
||||||
@ -398,68 +417,66 @@ export class WastelandActor extends Actor {
|
|||||||
rollData.canEclatDoubleD20 = true // Always true in Wastelan
|
rollData.canEclatDoubleD20 = true // Always true in Wastelan
|
||||||
rollData.doubleD20 = false
|
rollData.doubleD20 = false
|
||||||
rollData.attributs = WastelandUtility.getAttributs()
|
rollData.attributs = WastelandUtility.getAttributs()
|
||||||
rollData.config = duplicate(game.system.wasteland.config)
|
rollData.config = foundry.utils.duplicate(game.system.wasteland.config)
|
||||||
|
|
||||||
if (attrKey) {
|
if (attrKey) {
|
||||||
rollData.attrKey = attrKey
|
rollData.attrKey = attrKey
|
||||||
if (attrKey != "tochoose") {
|
if (attrKey != "tochoose") {
|
||||||
rollData.actionImg = "systems/fvtt-wasteland/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
|
rollData.actionImg = "systems/fvtt-wasteland/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
|
||||||
rollData.attr = duplicate(this.system.attributs[attrKey])
|
rollData.attr = foundry.utils.duplicate(this.system.attributs[attrKey])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (compId) {
|
if (compId) {
|
||||||
rollData.competence = duplicate(this.items.get(compId) || {})
|
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
|
||||||
rollData.actionImg = rollData.competence?.img
|
rollData.actionImg = rollData.competence?.img
|
||||||
}
|
}
|
||||||
if (compName) {
|
if (compName) {
|
||||||
rollData.competence = duplicate(this.items.find( item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
rollData.competence = foundry.utils.duplicate(this.items.find( item => item.name.toLowerCase() == compName.toLowerCase()) || {})
|
||||||
rollData.actionImg = rollData.competence?.img
|
rollData.actionImg = rollData.competence?.img
|
||||||
}
|
}
|
||||||
return rollData
|
return rollData
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollAttribut(attrKey) {
|
async launchRoll(rollData) {
|
||||||
let rollData = this.getCommonRollData(attrKey)
|
console.log("RollData", rollData)
|
||||||
let rollDialog = await WastelandRollDialog.create(this, rollData)
|
let rollDialog = await WastelandRollDialog.create(this, rollData)
|
||||||
rollDialog.render(true)
|
rollDialog.render(true)
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rollAttribut(attrKey) {
|
||||||
|
let rollData = this.getCommonRollData(attrKey)
|
||||||
|
this.launchRoll(rollData)
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollCompetence(attrKey, compId) {
|
rollCompetence(attrKey, compId) {
|
||||||
let rollData = this.getCommonRollData(attrKey, compId)
|
let rollData = this.getCommonRollData(attrKey, compId)
|
||||||
console.log("RollDatra", rollData)
|
console.log("RollDatra", rollData)
|
||||||
let rollDialog = await WastelandRollDialog.create(this, rollData)
|
this.launchRoll(rollData)
|
||||||
rollDialog.render(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollCharme(charmeId) {
|
async rollCharme(charmeId) {
|
||||||
let rollData = this.getCommonRollData("cla")
|
let rollData = this.getCommonRollData("cla")
|
||||||
rollData.charme = duplicate(this.items.get(charmeId) || {})
|
rollData.charme = foundry.utils.duplicate(this.items.get(charmeId) || {})
|
||||||
rollData.charmeDice = "1d4"
|
rollData.charmeDice = "1d4"
|
||||||
console.log("RollDatra", rollData)
|
this.launchRoll(rollData)
|
||||||
let rollDialog = await WastelandRollDialog.create(this, rollData)
|
|
||||||
rollDialog.render(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollPouvoir(pouvoirId) {
|
async rollPouvoir(pouvoirId) {
|
||||||
let comp = this.items.find(comp => comp.type == "competence" && comp.name.toLowerCase() == "savoir : runes")
|
let pouvoir = foundry.utils.duplicate(this.items.get(pouvoirId) || {})
|
||||||
if ( !comp) {
|
if (pouvoir?.system) {
|
||||||
ui.notifications.warn("La compétence Savoirs : Runes n'a pas été trouvée, abandon.")
|
let rollData = this.getCommonRollData(pouvoir.system.attribut, undefined, pouvoir.system.competence)
|
||||||
return
|
if (!rollData.competence) {
|
||||||
|
ui.notifications.error("Le pouvoir " + pouvoir.name + " n'a pas de compétence associée. Editez le pouvoir avec la compétence associée.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
rollData.pouvoir = pouvoir
|
||||||
|
rollData.difficulte = pouvoir.system.seuil
|
||||||
|
this.launchRoll(rollData)
|
||||||
}
|
}
|
||||||
let rollData = this.getCommonRollData("cla", undefined, "Savoir : Runes")
|
}
|
||||||
rollData.rune = duplicate(this.items.get(runeId) || {})
|
|
||||||
rollData.difficulte = rollData.rune?.system?.seuil || 0
|
|
||||||
rollData.runemode = "prononcer"
|
|
||||||
rollData.runeame = 1
|
|
||||||
console.log("runeData", rollData)
|
|
||||||
let rollDialog = await WastelandRollDialog.create(this, rollData)
|
|
||||||
rollDialog.render(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollArmeOffensif(armeId) {
|
async rollArmeOffensif(armeId) {
|
||||||
let arme = this.items.get(armeId)
|
let arme = this.items.get(armeId)
|
||||||
@ -471,9 +488,7 @@ export class WastelandActor extends Actor {
|
|||||||
}
|
}
|
||||||
let rollData = this.getCommonRollData(arme.system.attrKey, arme.system.competence._id)
|
let rollData = this.getCommonRollData(arme.system.attrKey, arme.system.competence._id)
|
||||||
rollData.arme = arme
|
rollData.arme = arme
|
||||||
console.log("ARME!", rollData)
|
this.launchRoll(rollData)
|
||||||
let rollDialog = await WastelandRollDialog.create(this, rollData)
|
|
||||||
rollDialog.render(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -485,7 +500,7 @@ export class WastelandActor extends Actor {
|
|||||||
if (arme.type == "bouclier") {
|
if (arme.type == "bouclier") {
|
||||||
arme = this.prepareBouclier(arme)
|
arme = this.prepareBouclier(arme)
|
||||||
}
|
}
|
||||||
let roll = new Roll(arme.system.totalDegats).roll({ async: false })
|
let roll = await new Roll(arme.system.totalDegats).roll()
|
||||||
await WastelandUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
|
await WastelandUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
|
||||||
let rollData = {
|
let rollData = {
|
||||||
arme: arme,
|
arme: arme,
|
||||||
|
@ -10,7 +10,7 @@ export class WastelandCombat extends Combat {
|
|||||||
const c = this.combatants.get(ids[cId]);
|
const c = this.combatants.get(ids[cId]);
|
||||||
let id = c._id || c.id;
|
let id = c._id || c.id;
|
||||||
let initBonus = c.actor ? c.actor.getInitiativeScore() : 0
|
let initBonus = c.actor ? c.actor.getInitiativeScore() : 0
|
||||||
let roll = new Roll("1d10 + "+initBonus).roll({ async: false})
|
let roll = await new Roll("1d10 + "+initBonus).roll()
|
||||||
await WastelandUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
|
await WastelandUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
|
||||||
//console.log("Init bonus", initBonus, roll.total)
|
//console.log("Init bonus", initBonus, roll.total)
|
||||||
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: roll.total } ]);
|
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: roll.total } ]);
|
||||||
|
@ -6,7 +6,17 @@ export const WASTELAND_CONFIG = {
|
|||||||
"echo": "Chemin des Échos",
|
"echo": "Chemin des Échos",
|
||||||
"reflet": "Chemin des Reflets",
|
"reflet": "Chemin des Reflets",
|
||||||
"ame": "Chemin des Âmes",
|
"ame": "Chemin des Âmes",
|
||||||
"mort": "Chemin des Morts"
|
"mort": "Chemin des Morts",
|
||||||
|
"vie": "Chemin de Vie",
|
||||||
|
"guerre": "Chemin des guerres",
|
||||||
|
"horizon": "Chemin vers l'horizon",
|
||||||
|
"voleurinvisible": "Chemin du Voleur invisible",
|
||||||
|
"nuit": "Chemin des Nuits",
|
||||||
|
"oiseaux": "Chemin des Oiseaux"
|
||||||
|
},
|
||||||
|
hubrisType: {
|
||||||
|
"mental": "Mental",
|
||||||
|
"physique": "Physique",
|
||||||
},
|
},
|
||||||
charmetype: {
|
charmetype: {
|
||||||
tour: "Tour",
|
tour: "Tour",
|
||||||
@ -20,4 +30,28 @@ export const WASTELAND_CONFIG = {
|
|||||||
"1d12": "1d12",
|
"1d12": "1d12",
|
||||||
"1d20": "1d20",
|
"1d20": "1d20",
|
||||||
},
|
},
|
||||||
|
artifexType: {
|
||||||
|
"vapeur": "Vapeur",
|
||||||
|
"mecanique": "Mécanique",
|
||||||
|
"chimie": "Chimie",
|
||||||
|
"electricite": "Électricité",
|
||||||
|
"chimerie": "Chimérie",
|
||||||
|
},
|
||||||
|
typeArmeOptions: {
|
||||||
|
contact: "Arme de contact",
|
||||||
|
contactjet: "Arme de contact et de Jet",
|
||||||
|
jet: "Arme de Jet",
|
||||||
|
tir: "Arme de Tir",
|
||||||
|
special: "Spécial (capacité/don)"
|
||||||
|
},
|
||||||
|
difficulteOptions: {
|
||||||
|
"0": "Aucune/Inconnue",
|
||||||
|
"5": "Facile (5)",
|
||||||
|
"10": "Moyenne (10)",
|
||||||
|
"15": "Ardue (15)",
|
||||||
|
"20": "Hasardeuse (20)",
|
||||||
|
"25": "Insensée (25)",
|
||||||
|
"30": "Pure Folie (30)"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
26
modules/wasteland-creature-sheet.js
Normal file
26
modules/wasteland-creature-sheet.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* Extend the basic ActorSheet with some very simple modifications
|
||||||
|
* @extends {ActorSheet}
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { WastelandUtility } from "./wasteland-utility.js";
|
||||||
|
import { WastelandActorSheet } from "./wasteland-actor-sheet.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
export class WastelandCreatureSheet extends WastelandActorSheet {
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static get defaultOptions() {
|
||||||
|
|
||||||
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
|
classes: ["fvtt-wasteland", "sheet", "creature"],
|
||||||
|
template: "systems/fvtt-wasteland/templates/creature-sheet.html",
|
||||||
|
width: 640,
|
||||||
|
height: 720,
|
||||||
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||||
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
|
editScore: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -9,7 +9,7 @@ export class WastelandItemSheet extends ItemSheet {
|
|||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
|
|
||||||
return mergeObject(super.defaultOptions, {
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
classes: ["fvtt-wasteland", "sheet", "item"],
|
classes: ["fvtt-wasteland", "sheet", "item"],
|
||||||
template: "systems/fvtt-wasteland/templates/item-sheet.html",
|
template: "systems/fvtt-wasteland/templates/item-sheet.html",
|
||||||
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
dragDrop: [{ dragSelector: null, dropSelector: null }],
|
||||||
@ -48,7 +48,7 @@ export class WastelandItemSheet extends ItemSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
const objectData = duplicate(this.object)
|
const objectData = foundry.utils.duplicate(this.object)
|
||||||
let itemData = objectData
|
let itemData = objectData
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
@ -59,7 +59,7 @@ export class WastelandItemSheet extends ItemSheet {
|
|||||||
editable: this.isEditable,
|
editable: this.isEditable,
|
||||||
cssClass: this.isEditable ? "editable" : "locked",
|
cssClass: this.isEditable ? "editable" : "locked",
|
||||||
attributs: WastelandUtility.getAttributs(),
|
attributs: WastelandUtility.getAttributs(),
|
||||||
config: duplicate(game.system.wasteland.config),
|
config: foundry.utils.duplicate(game.system.wasteland.config),
|
||||||
data: itemData.system,
|
data: itemData.system,
|
||||||
system: itemData.system,
|
system: itemData.system,
|
||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
@ -87,7 +87,7 @@ export class WastelandItemSheet extends ItemSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
postItem() {
|
postItem() {
|
||||||
let chatData = duplicate(WastelandUtility.data(this.item));
|
let chatData = foundry.utils.duplicate(WastelandUtility.data(this.item));
|
||||||
if (this.actor) {
|
if (this.actor) {
|
||||||
chatData.actor = { id: this.actor.id };
|
chatData.actor = { id: this.actor.id };
|
||||||
}
|
}
|
||||||
@ -130,26 +130,26 @@ export class WastelandItemSheet extends ItemSheet {
|
|||||||
html.find('.edit-prediction').change(ev => {
|
html.find('.edit-prediction').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred[index].name = ev.currentTarget.value
|
pred[index].name = ev.currentTarget.value
|
||||||
this.object.update( { 'data.predilections': pred })
|
this.object.update( { 'data.predilections': pred })
|
||||||
})
|
})
|
||||||
html.find('.delete-prediction').click(ev => {
|
html.find('.delete-prediction').click(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred.splice(index,1)
|
pred.splice(index,1)
|
||||||
this.object.update( { 'data.predilections': pred })
|
this.object.update( { 'data.predilections': pred })
|
||||||
})
|
})
|
||||||
html.find('.use-prediction').change(ev => {
|
html.find('.use-prediction').change(ev => {
|
||||||
const li = $(ev.currentTarget).parents(".prediction-item")
|
const li = $(ev.currentTarget).parents(".prediction-item")
|
||||||
let index = li.data("prediction-index")
|
let index = li.data("prediction-index")
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred[index].used = ev.currentTarget.checked
|
pred[index].used = ev.currentTarget.checked
|
||||||
this.object.update( { 'data.predilections': pred })
|
this.object.update( { 'data.predilections': pred })
|
||||||
})
|
})
|
||||||
html.find('#add-predilection').click(ev => {
|
html.find('#add-predilection').click(ev => {
|
||||||
let pred = duplicate(this.object.system.predilections)
|
let pred = foundry.utils.duplicate(this.object.system.predilections)
|
||||||
pred.push( { name: "Nouvelle prédilection", used: false })
|
pred.push( { name: "Nouvelle prédilection", used: false })
|
||||||
this.object.update( { 'data.predilections': pred })
|
this.object.update( { 'data.predilections': pred })
|
||||||
})
|
})
|
||||||
|
@ -16,6 +16,9 @@ export const defaultItemImg = {
|
|||||||
artifex: "systems/fvtt-wasteland/assets/icons/artifact.webp",
|
artifex: "systems/fvtt-wasteland/assets/icons/artifact.webp",
|
||||||
heritage: "systems/fvtt-wasteland/assets/icons/legacy.webp",
|
heritage: "systems/fvtt-wasteland/assets/icons/legacy.webp",
|
||||||
charme: "systems/fvtt-wasteland/assets/icons/charm.webp",
|
charme: "systems/fvtt-wasteland/assets/icons/charm.webp",
|
||||||
|
peuple: "systems/fvtt-wasteland/assets/icons/people.webp",
|
||||||
|
don: "systems/fvtt-wasteland/assets/icons/don.webp",
|
||||||
|
hubris: "systems/fvtt-wasteland/assets/icons/hubris.webp",
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
import { WastelandActor } from "./wasteland-actor.js";
|
import { WastelandActor } from "./wasteland-actor.js";
|
||||||
import { WastelandItemSheet } from "./wasteland-item-sheet.js";
|
import { WastelandItemSheet } from "./wasteland-item-sheet.js";
|
||||||
import { WastelandActorSheet } from "./wasteland-actor-sheet.js";
|
import { WastelandActorSheet } from "./wasteland-actor-sheet.js";
|
||||||
//import { WastelandNPCSheet } from "./wasteland-npc-sheet.js";
|
import { WastelandCreatureSheet } from "./wasteland-creature-sheet.js";
|
||||||
import { WastelandUtility } from "./wasteland-utility.js";
|
import { WastelandUtility } from "./wasteland-utility.js";
|
||||||
import { WastelandCombat } from "./wasteland-combat.js";
|
import { WastelandCombat } from "./wasteland-combat.js";
|
||||||
import { WastelandItem } from "./wasteland-item.js";
|
import { WastelandItem } from "./wasteland-item.js";
|
||||||
@ -28,7 +28,7 @@ Hooks.once("init", async function () {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// preload handlebars templates
|
// preload handlebars templates
|
||||||
WastelandUtility.preloadHandlebarsTemplates();
|
WastelandUtility.preloadHandlebarsTemplates();
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Set an initiative formula for the system
|
// Set an initiative formula for the system
|
||||||
CONFIG.Combat.initiative = {
|
CONFIG.Combat.initiative = {
|
||||||
@ -54,13 +54,13 @@ Hooks.once("init", async function () {
|
|||||||
// Register sheet application classes
|
// Register sheet application classes
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
Actors.unregisterSheet("core", ActorSheet);
|
||||||
Actors.registerSheet("fvtt-wasteland", WastelandActorSheet, { types: ["personnage"], makeDefault: true })
|
Actors.registerSheet("fvtt-wasteland", WastelandActorSheet, { types: ["personnage"], makeDefault: true })
|
||||||
//Actors.registerSheet("fvtt-wasteland", WastelandNPCSheet, { types: ["npc"], makeDefault: false });
|
Actors.registerSheet("fvtt-wasteland", WastelandCreatureSheet, { types: ["creature"], makeDefault: false });
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
Items.registerSheet("fvtt-wasteland", WastelandItemSheet, { makeDefault: true })
|
Items.registerSheet("fvtt-wasteland", WastelandItemSheet, { makeDefault: true })
|
||||||
|
|
||||||
WastelandUtility.init();
|
WastelandUtility.init();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -69,36 +69,22 @@ function welcomeMessage() {
|
|||||||
user: game.user.id,
|
user: game.user.id,
|
||||||
whisper: [game.user.id],
|
whisper: [game.user.id],
|
||||||
content: `<div id="welcome-message-Wasteland"><span class="rdd-roll-part">
|
content: `<div id="welcome-message-Wasteland"><span class="rdd-roll-part">
|
||||||
<strong>Bienvenue dans les Jeunes Royaumes de Wasteland !</strong>
|
<strong>Bienvenue dans les Wasteland !</strong>
|
||||||
<p>Les livres de Wasteland sont nécessaires pour jouer : https://www.titam-france.fr</p>
|
<p>Les livres de Wasteland sont nécessaires pour jouer : https://www.titam-france.fr</p>
|
||||||
<p>Wasteland est jeu de rôle publié par Titam France/Sombres projets, tout les droits leur appartiennent.</p>
|
<p>Wasteland est jeu de rôle publié par Titam France/Sombres projets, tout les droits leur appartiennent.</p>
|
||||||
<p>Système développé par LeRatierBretonnien, support sur le <a href="https://discord.gg/pPSDNJk">Discord FR de Foundry</a>.</p>
|
<p>Système développé par LeRatierBretonnien, avec le support de Prêtre. Plus d'infos et aides sur le <a href="https://discord.gg/pPSDNJk">Discord FR de Foundry</a>.</p>
|
||||||
` });
|
` });
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
// 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 == "" ) {
|
async function importDefaultScene() {
|
||||||
worldKey = randomID(32)
|
let exists = game.scenes.find(j => j.name == "Accueil");
|
||||||
game.settings.set(registerKey, "world-key", worldKey )
|
if (!exists) {
|
||||||
}
|
const scenes = await WastelandUtility.loadCompendium("fvtt-wasteland.scenes")
|
||||||
// Simple API counter
|
let newDocuments = scenes.filter(i => i.name == "Accueil");
|
||||||
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}"`
|
await game.scenes.documentClass.create(newDocuments);
|
||||||
//$.ajaxSetup({
|
game.scenes.find(i => i.name == "Accueil").activate();
|
||||||
//headers: { 'Access-Control-Allow-Origin': '*' }
|
|
||||||
//})
|
|
||||||
$.ajax(regURL)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,6 +94,7 @@ function registerUsageCount( registerKey ) {
|
|||||||
Hooks.once("ready", function () {
|
Hooks.once("ready", function () {
|
||||||
|
|
||||||
WastelandUtility.ready();
|
WastelandUtility.ready();
|
||||||
|
|
||||||
// User warning
|
// User warning
|
||||||
if (!game.user.isGM && game.user.character == undefined) {
|
if (!game.user.isGM && game.user.character == undefined) {
|
||||||
ui.notifications.info("Attention ! Aucun personnage n'est relié au joueur !");
|
ui.notifications.info("Attention ! Aucun personnage n'est relié au joueur !");
|
||||||
@ -116,9 +103,24 @@ Hooks.once("ready", function () {
|
|||||||
user: game.user._id
|
user: game.user._id
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (!game.user.isGM && game.user.character && !game.user.character.prototypeToken.actorLink) {
|
||||||
registerUsageCount('fvtt-wasteland')
|
ui.notifications.info("Le token de du joueur n'est pas connecté à l'acteur !");
|
||||||
|
ChatMessage.create({
|
||||||
|
content: "<b>ATTENTION</b> Le token du joueur " + game.user.name + " n'est pas connecté à l'acteur !",
|
||||||
|
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();
|
welcomeMessage();
|
||||||
|
|
||||||
|
importDefaultScene();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -4,16 +4,16 @@ import { WastelandCommands } from "./wasteland-commands.js";
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const __contrecouptCharme = {
|
const __contrecouptCharme = {
|
||||||
1 : {name: "Effet chromatique", description: "" },
|
1 : {name: "Effet chromatique", description: "le corps du kobold prend des teintes aussi étranges que voyantes. L'effet s’estompe progressivement et 24 heures plus tard, le kobold retrouve ses couleurs d’origine." },
|
||||||
3 : {name: "Enivrement Kobold", description: "" },
|
3 : {name: "Enivrement Kobold", description: "très excité par son premier tour, le kobold doit immédiatement faire un autre tour, pour lequel il emploiera un dé plus gros." },
|
||||||
5 : {name: "Mutisme superstitieux", description: "" },
|
5 : {name: "Mutisme superstitieux", description: "le kobold ne doit plus parler» pendant les prochaines 24 heures. S'il le fait malgré tout, les effets de son tour s’arrêtent." },
|
||||||
7 : {name: "Agité!", description: "" },
|
7 : {name: "Agité!", description: "le kobold ne tient plus en place. Il ne peut se reposer pendant les prochaines 12 heures. Dès. que 12 heures se sont écoulées, il s'effondre comme une masse et dort 12 heures d'affilée d’un sommeil enchanté dont rien ne pourra le réveiller." },
|
||||||
9 : {name: "Somnolence", description: "" },
|
9 : {name: "Somnolence", description: "le kobold devient somnolent. Il n’arrive pas à se concentrer même sur une tâche simple, bäille sans arrêt, traîne les pieds et n’agit plus que de mauvaise grâce. Cela dure jusqu’à ce qu'il ait dormi au moins 12 heures." },
|
||||||
11 : {name: "Manie incontrôlable", description: "" },
|
11 : {name: "Manie incontrôlable", description: "le kobold est pris d’une manie incontrôlable. Dès qu'il voit un chapeau rouge, il doit suivre son porteur. Il ne mangera que si son voisin de gauche mange aussi, etc. Cela dure pendant une jour- née puis l’effet s’inverse pendant une heure : il ne suivra jamais un chapeau rouge, ne mangera jamais si son voi- sin de gauche mange, etc. Le contrecoup prend alors fin." },
|
||||||
13 : {name: "Malédiction des Ternes", description: "" },
|
13 : {name: "Malédiction des Ternes", description: "le kobold perd cette qualité mystérieuse qui fait que les kobolds sont des kobolds et devient tout. Terne. Il perd 1d20 point(s) de Bonne Aventure (s’il doit en perdre plus qu'il n’en a, il tombe simplement à 0). Ces points perdus pourront cependant être regagnés normalement." },
|
||||||
15 : {name: "La petite Mort", description: "" },
|
15 : {name: "La petite Mort", description: "le kobold s'endort pour 1420 heures. Rien ni personne ne pourra le tirer de ce sommeil enchanté avant que ce contrecoup ne prenne fin." },
|
||||||
17 : {name: "Angoisse cauchemardesque", description: "" },
|
17 : {name: "Angoisse cauchemardesque", description: "le kobold a une brève vision de pure horreur. Il perd 1420 points de Psyché {s'il doit en perdre plus qu'il n’en a, il tombe à 0)." },
|
||||||
19 : {name: "Anémie Kobold", description: "" }
|
19 : {name: "Anémie Kobold", description: "le kobold se met à saigner du nez, des oreilles et même d’autres endroits. Il perd 1420 point(s) de Santé." }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -28,9 +28,6 @@ export class WastelandUtility {
|
|||||||
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
||||||
WastelandUtility.pushInitiativeOptions(html, options);
|
WastelandUtility.pushInitiativeOptions(html, options);
|
||||||
})
|
})
|
||||||
Hooks.on("dropCanvasData", (canvas, data) => {
|
|
||||||
WastelandUtility.dropItemOnToken(canvas, data)
|
|
||||||
});
|
|
||||||
|
|
||||||
this.rollDataStore = {}
|
this.rollDataStore = {}
|
||||||
this.defenderStore = {}
|
this.defenderStore = {}
|
||||||
@ -114,6 +111,28 @@ export class WastelandUtility {
|
|||||||
static async ready() {
|
static async ready() {
|
||||||
const skills = await WastelandUtility.loadCompendium("fvtt-wasteland.skills")
|
const skills = await WastelandUtility.loadCompendium("fvtt-wasteland.skills")
|
||||||
this.skills = skills.map(i => i.toObject())
|
this.skills = skills.map(i => i.toObject())
|
||||||
|
|
||||||
|
game.system.wasteland.config.listeNiveauSkill = WastelandUtility.createDirectOptionList(0, 10)
|
||||||
|
game.system.wasteland.config.listeNiveauCreature = WastelandUtility.createDirectOptionList(0, 35)
|
||||||
|
game.system.wasteland.config.modificateurOptions = WastelandUtility.createArrayOptionList(-15, 15)
|
||||||
|
game.system.wasteland.config.pointsAmeOptions = WastelandUtility.createDirectOptionList(0, 20)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static createDirectOptionList(min, max) {
|
||||||
|
let options = {};
|
||||||
|
for (let i = min; i <= max; i++) {
|
||||||
|
options[`${i}`] = `${i}`;
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
static createArrayOptionList(min, max) {
|
||||||
|
let options = [];
|
||||||
|
for (let i = min; i <= max; i++) {
|
||||||
|
options.push({key:`${i}`, label:`${i}`});
|
||||||
|
}
|
||||||
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -142,7 +161,7 @@ export class WastelandUtility {
|
|||||||
let rollData = message.getFlag("world", "wasteland-roll")
|
let rollData = message.getFlag("world", "wasteland-roll")
|
||||||
let actor = WastelandUtility.getActorFromRollData(rollData)
|
let actor = WastelandUtility.getActorFromRollData(rollData)
|
||||||
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
|
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
|
||||||
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
|
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
|
||||||
await WastelandUtility.rollWasteland(rollData)
|
await WastelandUtility.rollWasteland(rollData)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -152,8 +171,7 @@ export class WastelandUtility {
|
|||||||
|
|
||||||
const templatePaths = [
|
const templatePaths = [
|
||||||
'systems/fvtt-wasteland/templates/editor-notes-gm.html',
|
'systems/fvtt-wasteland/templates/editor-notes-gm.html',
|
||||||
'systems/fvtt-wasteland/templates/partial-item-description.html',
|
'systems/fvtt-wasteland/templates/partial-item-description.html'
|
||||||
'systems/fvtt-wasteland/templates/partial-list-niveau.html'
|
|
||||||
]
|
]
|
||||||
return loadTemplates(templatePaths);
|
return loadTemplates(templatePaths);
|
||||||
}
|
}
|
||||||
@ -187,15 +205,6 @@ export class WastelandUtility {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static createDirectOptionList(min, max) {
|
|
||||||
let options = {};
|
|
||||||
for (let i = min; i <= max; i++) {
|
|
||||||
options[`${i}`] = `${i}`;
|
|
||||||
}
|
|
||||||
return options;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static buildListOptions(min, max) {
|
static buildListOptions(min, max) {
|
||||||
let options = ""
|
let options = ""
|
||||||
@ -220,7 +229,7 @@ export class WastelandUtility {
|
|||||||
|
|
||||||
let id = rollData.rollId;
|
let id = rollData.rollId;
|
||||||
let oldRollData = this.rollDataStore[id] || {};
|
let oldRollData = this.rollDataStore[id] || {};
|
||||||
let newRollData = mergeObject(oldRollData, rollData);
|
let newRollData = foundry.utils.mergeObject(oldRollData, rollData);
|
||||||
this.rollDataStore[id] = newRollData;
|
this.rollDataStore[id] = newRollData;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -292,10 +301,10 @@ export class WastelandUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static computeResult(rollData, actor) {
|
static async computeResult(rollData, actor) {
|
||||||
if (rollData.charme) {
|
if (rollData.charme) {
|
||||||
let resultIndex = false
|
let resultIndex = false
|
||||||
let resTab = duplicate(rollData.charme.system.resultats)
|
let resTab = foundry.utils.duplicate(rollData.charme.system.resultats)
|
||||||
for(let id in resTab) {
|
for(let id in resTab) {
|
||||||
let res = resTab[id]
|
let res = resTab[id]
|
||||||
if (!resultIndex && rollData.finalResult >= res.value) {
|
if (!resultIndex && rollData.finalResult >= res.value) {
|
||||||
@ -305,7 +314,7 @@ export class WastelandUtility {
|
|||||||
if (resultIndex) {
|
if (resultIndex) {
|
||||||
rollData.charmeDuree = rollData.charme.system.resultats[resultIndex].description
|
rollData.charmeDuree = rollData.charme.system.resultats[resultIndex].description
|
||||||
}
|
}
|
||||||
let effectRoll = new Roll(rollData.charmeDice).roll({ async: false })
|
let effectRoll = await new Roll(rollData.charmeDice).roll()
|
||||||
if (rollData.charme.system.charmetype == "tour") {
|
if (rollData.charme.system.charmetype == "tour") {
|
||||||
rollData.contrecoupResult = effectRoll.total
|
rollData.contrecoupResult = effectRoll.total
|
||||||
if (rollData.contrecoupResult % 2 == 1) {
|
if (rollData.contrecoupResult % 2 == 1) {
|
||||||
@ -349,7 +358,7 @@ export class WastelandUtility {
|
|||||||
}
|
}
|
||||||
if (!rollData.attr) {
|
if (!rollData.attr) {
|
||||||
rollData.actionImg = "systems/fvtt-wasteland/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
rollData.actionImg = "systems/fvtt-wasteland/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
|
||||||
rollData.attr = duplicate(actor.system.attributs[rollData.attrKey])
|
rollData.attr = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rollData.charme) {
|
if (rollData.charme) {
|
||||||
@ -366,7 +375,7 @@ export class WastelandUtility {
|
|||||||
|
|
||||||
//console.log("BEFORE COMP", rollData)
|
//console.log("BEFORE COMP", rollData)
|
||||||
if (rollData.competence) {
|
if (rollData.competence) {
|
||||||
rollData.predilections = duplicate(rollData.competence.system.predilections.filter(pred => !pred.used) || [])
|
rollData.predilections = foundry.utils.duplicate(rollData.competence.system.predilections.filter(pred => !pred.used) || [])
|
||||||
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
|
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
|
||||||
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
|
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
|
||||||
} else {
|
} else {
|
||||||
@ -376,14 +385,14 @@ export class WastelandUtility {
|
|||||||
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
|
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
|
||||||
}
|
}
|
||||||
|
|
||||||
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
|
let myRoll = await new Roll(rollData.diceFormula).roll()
|
||||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
rollData.roll = duplicate(myRoll)
|
rollData.roll = foundry.utils.duplicate(myRoll)
|
||||||
rollData.diceResult = myRoll.terms[0].results[0].result
|
rollData.diceResult = myRoll.terms[0].results[0].result
|
||||||
console.log(">>>> ", myRoll)
|
console.log(">>>> ", myRoll)
|
||||||
|
|
||||||
rollData.finalResult = myRoll.total
|
rollData.finalResult = myRoll.total
|
||||||
this.computeResult(rollData, actor)
|
await this.computeResult(rollData, actor)
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-wasteland/templates/chat-generic-result.html`, rollData)
|
content: await renderTemplate(`systems/fvtt-wasteland/templates/chat-generic-result.html`, rollData)
|
||||||
@ -395,13 +404,13 @@ export class WastelandUtility {
|
|||||||
static async bonusRollWasteland(rollData) {
|
static async bonusRollWasteland(rollData) {
|
||||||
rollData.bonusFormula = rollData.addedBonus
|
rollData.bonusFormula = rollData.addedBonus
|
||||||
|
|
||||||
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
|
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
||||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
||||||
rollData.bonusRoll = duplicate(bonusRoll)
|
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
||||||
|
|
||||||
rollData.finalResult += rollData.bonusRoll.total
|
rollData.finalResult += rollData.bonusRoll.total
|
||||||
|
|
||||||
this.computeResult(rollData)
|
await this.computeResult(rollData)
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-wasteland/templates/chat-generic-result.html`, rollData)
|
content: await renderTemplate(`systems/fvtt-wasteland/templates/chat-generic-result.html`, rollData)
|
||||||
@ -431,7 +440,7 @@ export class WastelandUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static blindMessageToGM(chatOptions) {
|
static blindMessageToGM(chatOptions) {
|
||||||
let chatGM = duplicate(chatOptions);
|
let chatGM = foundry.utils.duplicate(chatOptions);
|
||||||
chatGM.whisper = this.getUsers(user => user.isGM);
|
chatGM.whisper = this.getUsers(user => user.isGM);
|
||||||
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
||||||
console.log("blindMessageToGM", chatGM);
|
console.log("blindMessageToGM", chatGM);
|
||||||
@ -493,7 +502,7 @@ export class WastelandUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getBasicRollData() {
|
static getBasicRollData() {
|
||||||
let rollData = {
|
let rollData = {
|
||||||
rollId: randomID(16),
|
rollId: foundry.utils.randomID(16),
|
||||||
rollMode: game.settings.get("core", "rollMode"),
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
modificateursOptions: this.getModificateurOptions(),
|
modificateursOptions: this.getModificateurOptions(),
|
||||||
pointAmeOptions: this.getPointAmeOptions(),
|
pointAmeOptions: this.getPointAmeOptions(),
|
||||||
|
Binary file not shown.
BIN
packs/armes/000170.ldb
Normal file
BIN
packs/armes/000170.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000038
|
MANIFEST-000199
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-22:11:25.434763 7fef57fff6c0 Recovering log #36
|
2024/10/23-20:49:34.562318 7fee7b4006c0 Recovering log #197
|
||||||
2023/11/29-22:11:25.445038 7fef57fff6c0 Delete type=3 #34
|
2024/10/23-20:49:34.572510 7fee7b4006c0 Delete type=3 #195
|
||||||
2023/11/29-22:11:25.445125 7fef57fff6c0 Delete type=0 #36
|
2024/10/23-20:49:34.572580 7fee7b4006c0 Delete type=0 #197
|
||||||
2023/11/29-22:14:16.953175 7fef56ffd6c0 Level-0 table #41: started
|
2024/10/23-20:50:51.301785 7fee796006c0 Level-0 table #202: started
|
||||||
2023/11/29-22:14:16.953201 7fef56ffd6c0 Level-0 table #41: 0 bytes OK
|
2024/10/23-20:50:51.301810 7fee796006c0 Level-0 table #202: 0 bytes OK
|
||||||
2023/11/29-22:14:16.991886 7fef56ffd6c0 Delete type=0 #39
|
2024/10/23-20:50:51.308254 7fee796006c0 Delete type=0 #200
|
||||||
2023/11/29-22:14:17.106517 7fef56ffd6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.321194 7fee796006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:14:17.106560 7fef56ffd6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.321237 7fee796006c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-20:50:20.610722 7ff1ecbfe6c0 Recovering log #32
|
2024/06/08-21:15:33.864288 7fadb8c006c0 Recovering log #193
|
||||||
2023/11/29-20:50:20.620538 7ff1ecbfe6c0 Delete type=3 #30
|
2024/06/08-21:15:33.874053 7fadb8c006c0 Delete type=3 #191
|
||||||
2023/11/29-20:50:20.620594 7ff1ecbfe6c0 Delete type=0 #32
|
2024/06/08-21:15:33.874106 7fadb8c006c0 Delete type=0 #193
|
||||||
2023/11/29-22:03:29.595804 7fef56ffd6c0 Level-0 table #37: started
|
2024/06/08-21:15:57.231395 7fadb1a006c0 Level-0 table #198: started
|
||||||
2023/11/29-22:03:29.595831 7fef56ffd6c0 Level-0 table #37: 0 bytes OK
|
2024/06/08-21:15:57.231418 7fadb1a006c0 Level-0 table #198: 0 bytes OK
|
||||||
2023/11/29-22:03:29.601970 7fef56ffd6c0 Delete type=0 #35
|
2024/06/08-21:15:57.238165 7fadb1a006c0 Delete type=0 #196
|
||||||
2023/11/29-22:03:29.602116 7fef56ffd6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.238384 7fadb1a006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:03:29.602150 7fef56ffd6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.238414 7fadb1a006c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/armes/MANIFEST-000199
Normal file
BIN
packs/armes/MANIFEST-000199
Normal file
Binary file not shown.
BIN
packs/artifex/000031.ldb
Normal file
BIN
packs/artifex/000031.ldb
Normal file
Binary file not shown.
1
packs/artifex/CURRENT
Normal file
1
packs/artifex/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000060
|
8
packs/artifex/LOG
Normal file
8
packs/artifex/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/10/23-20:49:34.600131 7fee80e006c0 Recovering log #58
|
||||||
|
2024/10/23-20:49:34.610075 7fee80e006c0 Delete type=3 #56
|
||||||
|
2024/10/23-20:49:34.610136 7fee80e006c0 Delete type=0 #58
|
||||||
|
2024/10/23-20:50:51.295734 7fee796006c0 Level-0 table #63: started
|
||||||
|
2024/10/23-20:50:51.295761 7fee796006c0 Level-0 table #63: 0 bytes OK
|
||||||
|
2024/10/23-20:50:51.301677 7fee796006c0 Delete type=0 #61
|
||||||
|
2024/10/23-20:50:51.321172 7fee796006c0 Manual compaction at level-0 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)
|
||||||
|
2024/10/23-20:50:51.321229 7fee796006c0 Manual compaction at level-1 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)
|
8
packs/artifex/LOG.old
Normal file
8
packs/artifex/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/06/08-21:15:33.902106 7fadb2a006c0 Recovering log #54
|
||||||
|
2024/06/08-21:15:33.912559 7fadb2a006c0 Delete type=3 #52
|
||||||
|
2024/06/08-21:15:33.912651 7fadb2a006c0 Delete type=0 #54
|
||||||
|
2024/06/08-21:15:57.217278 7fadb1a006c0 Level-0 table #59: started
|
||||||
|
2024/06/08-21:15:57.217331 7fadb1a006c0 Level-0 table #59: 0 bytes OK
|
||||||
|
2024/06/08-21:15:57.224892 7fadb1a006c0 Delete type=0 #57
|
||||||
|
2024/06/08-21:15:57.238359 7fadb1a006c0 Manual compaction at level-0 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)
|
||||||
|
2024/06/08-21:15:57.238399 7fadb1a006c0 Manual compaction at level-1 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)
|
BIN
packs/artifex/MANIFEST-000060
Normal file
BIN
packs/artifex/MANIFEST-000060
Normal file
Binary file not shown.
BIN
packs/bestiaire/000043.ldb
Normal file
BIN
packs/bestiaire/000043.ldb
Normal file
Binary file not shown.
1
packs/bestiaire/CURRENT
Normal file
1
packs/bestiaire/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000072
|
8
packs/bestiaire/LOG
Normal file
8
packs/bestiaire/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/10/23-20:49:34.456483 7fee7b4006c0 Recovering log #70
|
||||||
|
2024/10/23-20:49:34.466636 7fee7b4006c0 Delete type=3 #68
|
||||||
|
2024/10/23-20:49:34.466698 7fee7b4006c0 Delete type=0 #70
|
||||||
|
2024/10/23-20:50:51.249627 7fee796006c0 Level-0 table #75: started
|
||||||
|
2024/10/23-20:50:51.249668 7fee796006c0 Level-0 table #75: 0 bytes OK
|
||||||
|
2024/10/23-20:50:51.255757 7fee796006c0 Delete type=0 #73
|
||||||
|
2024/10/23-20:50:51.269192 7fee796006c0 Manual compaction at level-0 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)
|
||||||
|
2024/10/23-20:50:51.269229 7fee796006c0 Manual compaction at level-1 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)
|
8
packs/bestiaire/LOG.old
Normal file
8
packs/bestiaire/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/06/08-21:15:33.757474 7fadb8c006c0 Recovering log #66
|
||||||
|
2024/06/08-21:15:33.767507 7fadb8c006c0 Delete type=3 #64
|
||||||
|
2024/06/08-21:15:33.767557 7fadb8c006c0 Delete type=0 #66
|
||||||
|
2024/06/08-21:15:57.168619 7fadb1a006c0 Level-0 table #71: started
|
||||||
|
2024/06/08-21:15:57.168658 7fadb1a006c0 Level-0 table #71: 0 bytes OK
|
||||||
|
2024/06/08-21:15:57.176105 7fadb1a006c0 Delete type=0 #69
|
||||||
|
2024/06/08-21:15:57.182883 7fadb1a006c0 Manual compaction at level-0 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)
|
||||||
|
2024/06/08-21:15:57.182910 7fadb1a006c0 Manual compaction at level-1 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)
|
BIN
packs/bestiaire/MANIFEST-000072
Normal file
BIN
packs/bestiaire/MANIFEST-000072
Normal file
Binary file not shown.
BIN
packs/capacreature/000031.ldb
Normal file
BIN
packs/capacreature/000031.ldb
Normal file
Binary file not shown.
1
packs/capacreature/CURRENT
Normal file
1
packs/capacreature/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000060
|
8
packs/capacreature/LOG
Normal file
8
packs/capacreature/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/10/23-20:49:34.612874 7fee7b4006c0 Recovering log #58
|
||||||
|
2024/10/23-20:49:34.622528 7fee7b4006c0 Delete type=3 #56
|
||||||
|
2024/10/23-20:49:34.622591 7fee7b4006c0 Delete type=0 #58
|
||||||
|
2024/10/23-20:50:51.321403 7fee796006c0 Level-0 table #63: started
|
||||||
|
2024/10/23-20:50:51.321447 7fee796006c0 Level-0 table #63: 0 bytes OK
|
||||||
|
2024/10/23-20:50:51.327468 7fee796006c0 Delete type=0 #61
|
||||||
|
2024/10/23-20:50:51.348060 7fee796006c0 Manual compaction at level-0 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)
|
||||||
|
2024/10/23-20:50:51.348136 7fee796006c0 Manual compaction at level-1 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)
|
8
packs/capacreature/LOG.old
Normal file
8
packs/capacreature/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/06/08-21:15:33.915184 7fadb8c006c0 Recovering log #54
|
||||||
|
2024/06/08-21:15:33.925245 7fadb8c006c0 Delete type=3 #52
|
||||||
|
2024/06/08-21:15:33.925299 7fadb8c006c0 Delete type=0 #54
|
||||||
|
2024/06/08-21:15:57.258825 7fadb1a006c0 Level-0 table #59: started
|
||||||
|
2024/06/08-21:15:57.258884 7fadb1a006c0 Level-0 table #59: 0 bytes OK
|
||||||
|
2024/06/08-21:15:57.265178 7fadb1a006c0 Delete type=0 #57
|
||||||
|
2024/06/08-21:15:57.265355 7fadb1a006c0 Manual compaction at level-0 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)
|
||||||
|
2024/06/08-21:15:57.265376 7fadb1a006c0 Manual compaction at level-1 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)
|
BIN
packs/capacreature/MANIFEST-000060
Normal file
BIN
packs/capacreature/MANIFEST-000060
Normal file
Binary file not shown.
@ -1,30 +0,0 @@
|
|||||||
{"name":"Protection du Sorcier","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu est protégé contre les attaques des créatures nées ou invoquées par la sorcellerie (un type d’Élémentaire, les Démons, les Automata…). La protection dont il bénéficie dépend du nombre de points d’Âme sacrifiés.</p>","allegeance":"chaos","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d’Âme pour 1 point de protection. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour 2 points de protection. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un 3 points de protection. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.WUPne9oDFTcdLtW9"}},"_id":"5dGXNiL3WN4cAk7X"}
|
|
||||||
{"name":"Conscience extraplanaire","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu a conscience du tissu de la réalité. Il peut percevoir les passages et les portails menant vers d’autres plans dans une zone de 10 mètres par point d’Aspect chaotique grâce à un simple test de Clairvoyance + Perception / 15. S’il ignore l’existence de ce passage et qu’il passe devant, le MJ peut faire un test de Clairvoyance + Perception / 25 pour l’Élu derrière son écran.</p>","allegeance":"chaos","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<p>1 point d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.1nIGWsNtx1NKxjPn"}},"_id":"5v0Y35LzqfAd0KnX"}
|
|
||||||
{"name":"Santé renforcée (Loi)","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Les points de Santé de l’Élu sont recalculés en ajoutant à [(Puissance + Trempe) x 2]+ 5 le nombre de points d’Âme sacrifiés. Ce Don ne peut être pris qu’une seule fois même si l’Élu conclut plusieurs Pactes.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d’Âme par point de Santé supplémentaire, pour un maximum égal à l’Aspect du personnage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.4ow7N6kdAWXbTApf"}},"_id":"6IS4zstVwJxG2lwy"}
|
|
||||||
{"name":"Repos de l’Âme","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu récupère deux fois plus vite ses points d’Âme, soit 2 par heure et 4 en cas de repos.</p>","allegeance":"chaos","prerequis":"6 ou plus en Présence.","sacrifice":"<p>3 points d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.KXciI0xwd6gSOLcZ"}},"_id":"8WLUjxBJtd33mZFp"}
|
|
||||||
{"name":"Trait chaotique","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu gagne un trait du Chaos qu’il tire au hasard dans le tableau de la page 185 avec un d20. Il peut prendre ce Don trois fois. S’il tire un trait qu’il possède déjà, il doit relancer le d20. Ces traits sont permanents et définitifs, à moins que les Seigneurs du Chaos n’en décident autrement, notamment si l’Élu les dissimule trop à leur goût alors qu’il n’y est pas absolument contraint par des impératifs de survie immédiats.</p>","allegeance":"chaos","prerequis":"aucun","sacrifice":"<p>2 points d’Âme par Trait chaotique. L’Élu ne peut en avoir plus que sa Marge.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.BKzeOjGA13wQgO0S"}},"_id":"BuZM5BnSaPIGEiEq"}
|
|
||||||
{"name":"Guérison","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu régénère rapidement. Chaque jour de repos, il regagne un nombre de points de Santé égal à sa Trempe /2 + son Aspect.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>3 point d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.yvY0G3PffZWEl92R"}},"_id":"Eme2iVAF670LCeIH"}
|
|
||||||
{"name":"Aide Élémentaire","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Ce Don permet d’appeler un Élémentaire à son secours une fois par scénario. La Puissance de l’Élémentaire est fi xée lors de l’octroi du Don. La nature de l’Élémentaire correspond à celle du Seigneur Élémentaire avec lequel le Pacte a été passé. Ce Don ne peut être pris qu’une fois par Seigneur Élémentaire vénéré.</p>","allegeance":"elementaires","prerequis":"","sacrifice":"<ul>\n<li>1 point d’Âme pour un Élémentaire mineur disposant de 5 points d’Âme. Accès réservé aux Novices et aux Adeptes.</li>\n<li>3 points d’Âme pour un Élémentaire médian disposant de 10 points d’Âme. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>5 points d’Âme pour un Élémentaire majeur disposant de 15 points d’Âme. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Wo42z8L33wLerUM8"}},"_id":"JAkSopwrh4QmKrPY"}
|
|
||||||
{"name":"Augmentation du modificateur de dégâts","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Les dégâts causés par l’Élu bénéficient d’un bonus pour <em>un type d’armes donné</em>. Le bonus dépend du nombre de points d’Âme sacrifiés.</p>","allegeance":"loi","prerequis":"6 ou plus en Puissance.","sacrifice":"<ul>\n<li>1 point d’Âme pour un bonus de + 1. Accès réservé aux Novices et aux Adeptes.</li>\n<li>3 points d’Âme pour un bonus de + 2. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>5 points d’Âme pour un bonus de + 3. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.bqdkbOf7EsdsCRqu"}},"_id":"K4H2VC0jTCy7pYj7"}
|
|
||||||
{"name":"L’exemple du Juste","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu est un exemple rayonnant pour ses camarades. Une fois par scénario, si l’Élu adresse pendant un tour de jeu une prière à une divinité de la Loi, lui et ses camarades (une dizaine tout au plus) seront bénis et recevront jusqu’à la fin de la scène un bonus à toutes leurs actions.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d’Âme pour un bonus de + 1. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour un bonus de + 2. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un bonus de + 3. Accès réservé aux Champions. </li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.C5ofSFNXoXZFo8ak"}},"_id":"KlfScJjqvlPtkcdZ"}
|
|
||||||
{"name":"Abstinence","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu peut survivre en se privant d’un élément vital (nourriture, eau, sommeil, mais pas air) pendant un certain temps. La durée de ce pouvoir dépend du nombre de points d’Âme sacrifiés.</p>","allegeance":"tous","prerequis":"6 ou plus en Trempe","sacrifice":"<ul>\n<li>2 points d’Âme pour un jour. Accès réservé aux Novices et aux Adeptes.</li>\n<li>6 points d’Âme pour une semaine. Accès réservé aux Che\u0002valiers et aux Hérauts.</li>\n<li>10 points d’Âme pour un mois. Accès réservé aux Cham\u0002pions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Q4Sy7vOGgU7Zgi9p"}},"_id":"OJKMNtFsuVgkV3gh"}
|
|
||||||
{"name":"Rupture Chaotique","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Lorsque l’Élu manie un certain type d’armes, il peut ajouter un bonus à son initiative ou bénéficier d’un bonus aux dégâts lors d’un combat, une fois par séance de jeu.</p>","allegeance":"chaos","prerequis":"6 ou plus en Puissance.","sacrifice":"<ul>\n<li>1 point d’Âme pour un bonus de + 1 aux dégâts ou + 5 en initiative. Accès réservé aux Novices et aux Adeptes.</li>\n<li>3 points d’Âme pour un bonus de + 2 aux dégâts ou + 7 en initiative. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>5 points d’Âme pour un bonus de + 3 aux dégâts ou + 10 en initiative. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.gMI6F4qY5Fi6okZ7"}},"_id":"Q1xDyjQy59lr5wAG"}
|
|
||||||
{"name":"Sens du Pur","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu a immédiatement conscience de la présence passée ou actuelle du Chaos (sortilège à l’œuvre, puissant serviteur…). Le personnage est très sensible aux émanations chaotiques, elles lui soulèvent le cœur. La distance de détection peut aug\u0002menter en sacrifiant davantage de points d’Âme</p>","allegeance":"loi","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>1 point d’Âme pour détecter les ennemis dans un rayon de 10 mètres. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour détecter les ennemis dans un rayon de 100 mètres. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour détecter les ennemis dans un rayon de 1000 mètres. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.tp2435vHrj63GeAK"}},"_id":"RYgdBIikcBfN8xAp"}
|
|
||||||
{"name":"Gardien des Millions de Sphères","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu a conscience du tissu de la réalité. Il peut sceller, par de longues prières psalmodiées, les passages et les portails donnant sur d’autres plans du Multivers. Cette action lui coûte le sacrifice d’un point d’Éclat. Tant que sa concentration reste tournée vers ce passage, le portail demeure scellé, comme si Donblas lui-même le gardait. Mais dès que le personnage s’endort, la porte, bien que fermée, n’est plus scellée. Certains plans très importants possèdent plusieurs passages menant vers les Jeunes Royaumes.</p>","allegeance":"loi","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<p>5 points d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.tm1fjaETqhMAldqJ"}},"_id":"TKCaHLHccYw7JvFy"}
|
|
||||||
{"name":"Vivacité","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Lors d’un test de Capacité Offensive, l’Élu voit la marge nécessaire à l’obtention d’une réussite héroïque diminuer de 1 (9 ou plus), de 2 (8 ou plus) ou de 3 (7 ou plus). </p>","allegeance":"tous","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>3 points d’Âme pour diminuer la marge de 1 (réussite héroïque sur 9 ou plus). Accès réservé aux Novices et aux Adeptes.</li>\n<li>5 points d’Âme pour diminuer la marge de 2 (réussite héroïque sur 8 ou plus). Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>7 points d’Âme pour diminuer la marge de 3 (réussite héroïque sur 7 ou plus). Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.GlhqSASDW0XdR243"}},"_id":"XaJAo8otOXmgtjzA"}
|
|
||||||
{"name":"Augmentation de compétence (Chaos)","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Ce Don permet d’augmenter une compétence importante pour la voie spirituelle choisie. Le bonus octroyé dépend du nombre de points d’Âme sacrifi és. Ce Don peut être choisi plusieurs fois, mais il ne peut s’appliquer qu’une fois par compétence. </p>","allegeance":"chaos","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<ul>\n<li>1 point d’Âme pour un + 1 à une compétence. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour un + 2 à une compétence. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un + 3 à une compétence. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.75OYBq5iGgdXVQcA"}},"_id":"aP4vSk6WOL4wXyyb"}
|
|
||||||
{"name":"Dur à cuire","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu résiste aux effets liés à la fatigue et à la maladie. Le béné\u0002fi ciaire de ce Don a droit à un bonus de + 1 lors de ses tests de Trempe pour résister à la fatigue et à la maladie. Ce bonus peut augmenter en sacrifi ant davantage de points d’Âme.</p>","allegeance":"tous","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d’Âme pour un bonus de + 2. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour un bonus de + 3. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un bonus de + 4. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.jNeLj9DyylUj7LAl"}},"_id":"gK3glTgKTKRw9ref"}
|
|
||||||
{"name":"Animal apprivoisé","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Le croyant se voit confier un animal normal (c’est-à-dire non surnaturel). L’animal apprivoisé est un membre standard de son espèce et obéit à des ordres simples, mais sans jamais aller contre sa nature. Le coût de ce Don dépend de la Puissance de la créature qui est fixée lors de son octroi. Si 1 point d’Âme supplémentaire est investi, la créature peut communiquer télé\u0002pathiquement avec son maître (et uniquement avec lui).</p>","allegeance":"betes","prerequis":"6 ou plus en Présence.","sacrifice":"<ul>\n<li>1 point d’Âme pour une créature d’une Puissance de 0 à 4. Accès réservé aux Novices et aux Adeptes.</li>\n<li>3 points d’Âme pour une créature d’une Puissance de 5 à 7. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>5 points d’Âme pour une créature d’une Puissance de 8 à 10. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.qDUei4wRjpRYi9Ps"}},"_id":"gN7DtvMJPASpPpQl"}
|
|
||||||
{"name":"Protection du Mage","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu est protégé contre les attaques des créatures engendrées ou invoquées par la Sorcellerie (les Élémentaires, les Démons, les Automata…). La protection dont il bénéficie dépend du nombre de points d’Âme sacrifiés.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d’Âme pour 1 point de protection. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour 2 points de protection. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un 3 points de protection. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.NVIG52HOiWGm6JcW"}},"_id":"j7iTQOFdiJUviTC9"}
|
|
||||||
{"name":"Sang-Froid","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu peut supporter n’importe quel type de souffrance psy\u0002chique. Il ne subit pas les pénalités dues à l’état Déstabilisé (– 2) et Choqué (– 5). Il est immunisé à la torture mentale.</p>","allegeance":"chaos","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.KvdQLDhSpfAd2Iig"}},"_id":"lWXxInM05EiBu6uX"}
|
|
||||||
{"name":"Dur à cuire (Chaos)","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu résiste aux effets liés à la fatigue et à la maladie. Le bénéfi ciaire de ce Don a droit à un bonus de + 1 lors de ses tests de Trempe pour résister à la fatigue et à la maladie. Ce bonus peut augmenter en sacrifi ant davantage de points d’Âme.</p>","allegeance":"chaos","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d’Âme pour un bonus de + 1. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour un bonus de + 2. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un bonus de + 3.Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.E0kyJQ5gqCEcm0Aj"}},"_id":"oAKqbsLVd8cX4tjN"}
|
|
||||||
{"name":"Augmentation de compétence","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Ce Don permet d’augmenter une compétence relative à la voie spirituelle choisie. Le bonus octroyé dépend du nombre de points d’Âme sacrifi és. Ce Don peut être choisi plusieurs fois, mais il ne peut s’appliquer qu’une fois par compétence. </p>","allegeance":"tous","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<ul>\n<li>1 point d’Âme pour un + 1 à une compétence. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour un + 2 à une compétence. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un + 3 à une compétence. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.djDFklKJaW1oVTds"}},"_id":"pPNKneH7scfaEmGq"}
|
|
||||||
{"name":"Augmentation de compétence (Loi)","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Ce Don permet d’augmenter une compétence importante pour la voie spirituelle choisie. Le bonus octroyé dépend du nombre de points d’Âme sacrifiés. Ce Don peut être choisi plusieurs fois mais il ne peut s’appliquer qu’une fois par compétence.</p>","allegeance":"loi","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<ul>\n<li>1 point d’Âme pour un + 1 à une compétence. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour un + 2 à une compétence. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour un + 3 à une compétence. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.gNL9lD7hofK32H7D"}},"_id":"qhOE8OTe5hNNgDtt"}
|
|
||||||
{"name":"Santé renforcée","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Les points de Santé de l’Élu sont recalculés en ajoutant à [(Puissance + Trempe) x 2]+ 5 le nombre de points d’Âme sacrifiés. Ce Don ne peut être pris qu’une seule fois même si l’Élu conclut plusieurs Pactes.</p>","allegeance":"tous","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d’Âme par point de Santé supplémentaire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.dJnYsDcETkidd2s5"}},"_id":"sLgGn6zhkDdbpQlH"}
|
|
||||||
{"name":"Rectitude","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu peut supporter n’importe quel type de souffrance. Il ne subit pas les pénalités dues à l’état Blessé (-2) et Gravement Blessé (-5). Il est immunisé contre la torture.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.HpoTP9idEKi1NQGL"}},"_id":"t7Ez0rzqYOf48GfY"}
|
|
||||||
{"name":"La voie du milieu","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Lors d’un combat, l’Élu ne subit plus les effets d’une réussite héroïque contre lui lors des tests de Capacité offensive. Il n’en profite plus non plus. À un haut niveau, il ne peut plus être affecté par les échecs dramatiques.</p>","allegeance":"loi","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>3 points d’Âme pour ne plus être affecté par les réussite héroïques.</li>\n<li>7 points d’Âme pour ne plus être affecté ni par les réus\u0002sites héroïques ni par les échecs dramatiques. Accès réser\u0002vé aux Champions</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.rOXDZ2020snvhtR2"}},"_id":"taXCPXiPEuOIKaUO"}
|
|
||||||
{"name":"Perfection","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’un des attributs de l’Élu est augmenté, grâce à la bienveil\u0002lance de la divinité. Il ne peut dépasser le maximum imposé par l’espèce. Ce Don peut être choisi plusieurs fois, mais il ne peut s’appliquer qu’une fois par attribut.</p>","allegeance":"tous","prerequis":"6 ou plus dans l’attribut modifié.","sacrifice":"<ul>\n<li>3 points d’Âme pour un bonus de + 1. Accès réservé aux Novices et aux Adeptes.</li>\n<li>6 points d’Âme pour un bonus de + 2. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>9 points d’Âme pour un bonus de + 3. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.nSlFw6q7TCqxZ6tH"}},"_id":"vZBNRTeGGU5hsXtT"}
|
|
||||||
{"name":"Sixième sens","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu sait où se trouvent des ennemis dont il a conscience et qui cherchent à lui nuire directement dans un rayon de 10 mètres. Attention, cette détection ne fonctionnera pas pour deviner que quelqu’un est simplement hostile à l’Élu ou le hait viscéralement. Il s’agit d’un pouvoir de localisation et de vigilance. La distance de détection peut augmenter en sacrifiant davantage de points d’Âme.</p>","allegeance":"chaos","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>1 point d’Âme pour détecter les ennemis dans un rayon de 10 mètres. Accès réservé aux Novices et aux Adeptes.</li>\n<li>2 points d’Âme pour détecter les ennemis dans un rayon de 100 mètres. Accès réservé aux Chevaliers et aux Hérauts.</li>\n<li>3 points d’Âme pour détecter les ennemis dans un rayon de 1000 mètres. Accès réservé aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.6CIPAVjSVsOqZBYc"}},"_id":"wsbGuOoFjHO6aQEm"}
|
|
||||||
{"name":"Endurance","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu peut supporter n’importe quel type de souffrance. Il ne subit pas les pénalités dues à l’état Blessé (-2) et Gravement Blessé (-5). Il est immunisé à la torture si elle est infl igée à partir d’un des éléments tutélaires du personnage.</p>","allegeance":"elementaires","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>3 points d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.on94N7pylXJ8gtdF"}},"_id":"yJ6K9dYrdNxr5uWj"}
|
|
||||||
{"name":"Le pilier de la Loi","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>Une fois par scénario, l’Élu peut résister à une menace ou agres\u0002sion, physique ou mentale, sans jeter les dés. Il est toutefois néces\u0002saire que l’Élu ait conscience du danger. L’Élu pourra par exemple résister à la terreur provoquée par une créature du Chaos parti\u0002culièrement abominable ou légendaire, mais ne pourra pas éviter d’être assommé par un habile voleur de Bakshaan qu’il n’avait pas vu. Cette résistance peut même être « extraordinaire » si l’Aspect de l’Élu est très haut.</p>\n<p>S’il est un Adepte ou un Novice, l’Élu peut résister à l’ivresse lors d’une nuit de beuverie chez un Prince-Marchand de Bakshaan.</p>\n<p>S’il est un Chevalier ou un Héraut, l’Élu peut résister à un coup surpuissant (celui-ci est annulé) ou à l’apparition gla\u0002çante d’un Démon. S’il est un Champion, il peut par exemple soutenir l’arche d’un temple qui s’écroule pendant quelques précieuses secondes afi n de laisser le temps à ses camarades de se mettre à l’abri (songez à Maciste, à Samson, ou tout simplement à Conan). Bref, n’hésitez pas à faire dans l’extraordinaire, mais ne bas\u0002culez pas dans le grosbillisme sans limite (ou alors ne nous le dites pas). Il revient au MJ de doser avec justesse ce Don.</p>","allegeance":"loi","prerequis":"7 ou plus en Trempe","sacrifice":"<p>3 points d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.yZ84qzrGeIDfZXr1"}},"_id":"zef3VQat06Ronc5W"}
|
|
||||||
{"name":"Œil exercé","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L’Élu reçoit de la divinité qu’il vénère l’équivalent d’une Prédilection dans la Capacité spéciale Œil du sorcier (voir p. 199). Une fois par séance, il peut donc relancer le test de Clairvoyance + Perception.</p>","allegeance":"chaos","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<p>2 points d’Âme.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.9Xrm1cfrCmkRtOBc"}},"_id":"zzz9JrtWjELdoAfK"}
|
|
@ -1,55 +0,0 @@
|
|||||||
{"name":"Chapeau fatigué","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":0,"prix":2},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.D26fUtZxrzcTR07B"}},"_id":"1cZd2hlTV9tykDED"}
|
|
||||||
{"name":"Bœuf","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.whAhz9pO1NUt8Pjm"}},"_id":"3pvWKiyXhc9mmg70"}
|
|
||||||
{"name":"Manteau","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":4},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.FZztAyGbF2cL9wyc"}},"_id":"40P9lOUYI16gEGZS"}
|
|
||||||
{"name":"Poney","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":30},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.VKZrNcrCm9Ju7ayv"}},"_id":"7MdI99vLmaytPNKE"}
|
|
||||||
{"name":"Tenue complète d’homme fortuné","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>(pantalons de coton, chemise de drap fi n, pourpoint de velours, chapeau, bottes montantes ou chaussures à boucles)</p>","rarete":7,"prix":6},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.dw6wLsNmwmEW79ei"}},"_id":"82fzHPjxUkGMCVUX"}
|
|
||||||
{"name":"Laboratoire d’Alchimiste","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Permet de mettre au point les objets les plus complexes (difficulté de 25 et au-delà)</p>","rarete":10,"prix":2000},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.eq0FJtwQd2jHbdvv"}},"_id":"8GK1Hn6le3JlsT6T"}
|
|
||||||
{"name":"Vieille carne","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Modificateur de Monte -2</p>","rarete":2,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.iikcWs26aEjtXDKo"}},"_id":"8NPElVs0cYrGbmXO"}
|
|
||||||
{"name":"Nuit d’auberge à l’étable","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":3,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.uo464pRDCNIPsUvW"}},"_id":"9dEaZklkBs1GgdD7"}
|
|
||||||
{"name":"Coursier","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Modificateur de Monte +2</p>","rarete":7,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.t4PPYVE2B6B9tUy1"}},"_id":"AZDTSEUo52dnf37U"}
|
|
||||||
{"name":"Papier, plume et encre","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":6,"prix":20},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.545S2qajtz6DSzzq"}},"_id":"Bg8jNqGusEdHxV00"}
|
|
||||||
{"name":"Chariot couvert ou bâché","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":3,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.GRhCO7lW7NaHThqU"}},"_id":"FlK49ZIVnceUTy1P"}
|
|
||||||
{"name":"Tenue complète bourgeoise","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p> (chausses, chemise, pourpoint, chapeau, bottes)</p>","rarete":6,"prix":30},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.XZSiLPhbhlj1Wil1"}},"_id":"HdlqqXJ393Pf3GxA"}
|
|
||||||
{"name":"Nuit d’auberge dans une chambre particulière","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":5,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.xtlOL4VOsTDvyUvR"}},"_id":"LnKDtuhsacvcet7B"}
|
|
||||||
{"name":"Louer une petite maison de ville pour un mois","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Se paie généralement d’avance…</p>","rarete":0,"prix":40},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Tfu7ywqXoXzXgP6H"}},"_id":"NZ28hyteLgOxlXC7"}
|
|
||||||
{"name":"Repas de fête","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":5,"prix":4},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.gTCljExvFFpG7K1s"}},"_id":"OyRix5REF10GPbSp"}
|
|
||||||
{"name":"Cheval d’attelage","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":4,"prix":80},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.KDfgGmQ4tUj765MN"}},"_id":"QHPoow1iDYEdExgs"}
|
|
||||||
{"name":"Repas chaud","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":0,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.ErKXhChAfgugKU1a"}},"_id":"QojR7XS4mGjbMq5w"}
|
|
||||||
{"name":"Charrette","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.4HRLU67Ipd1PFqUV"}},"_id":"RXMBJNKXfy3S3yck"}
|
|
||||||
{"name":"Onguent de soin","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>10 tours de jeu sont nécessaires pour l’appliquer. Permet de récupérer [[/roll 1D4]] points de Santé après (10 – Trempe) heures</p>","rarete":5,"prix":20},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.RdqMNJzemUcCYO1H"}},"_id":"RyNJqjQvDbMixok0"}
|
|
||||||
{"name":"Barge","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":5,"prix":300},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.l7tiShWweGQ8fzDp"}},"_id":"TyeTRm4FxLeRNDTU"}
|
|
||||||
{"name":"Pommade à frotter pour faire circuler le sang","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Protège des effets du froid (+ 5 aux tests de Trempe)</p>","rarete":4,"prix":2},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.BbzFc96y1QHi0Old"}},"_id":"VPkZxH3bkTR8WqXQ"}
|
|
||||||
{"name":"Cape","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":2},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.HZkgEeG4apx4I4Tn"}},"_id":"WL0809BYVR9JxaMM"}
|
|
||||||
{"name":"Poudre blanche","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>(à inhaler pour se sentir en forme)</p>\n<p>S’inhale le temps d’une action (à inhaler pour se sentir en forme) simple. Permet de récupérer immédiatement [[/roll 1D4]] cases de Santé (dégâts non létaux). À chaque inhalation, lancez un [[/roll 1d20]]. Sur un 1 ou un 11, celui qui vient de priser la poudre s’eff ondre et reste inconscient durant (10 – Trempe) heures.</p>\n<p> </p>","rarete":7,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.axOu6tHgHC7kYnG3"}},"_id":"WntSrr0j00DLntZV"}
|
|
||||||
{"name":"Lanterne","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.OKydo5obAtmOVNup"}},"_id":"Wo0tplt93X9wemlV"}
|
|
||||||
{"name":"Chien dressé","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5jFTzXfwTgkVvjv7"}},"_id":"Wus5fIYO731eLG0i"}
|
|
||||||
{"name":"Pain de route (rations pour une semaine)","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":0,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.18Hb7BDncVyHgyeM"}},"_id":"X4nIqFrjWy0hCVbZ"}
|
|
||||||
{"name":"Matériel de survie","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>(sac, gourde, couverture, tente)</p>","rarete":2,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.wv6tWbuJjnZ7jiXH"}},"_id":"e8ZbG2WQCzJTRzBK"}
|
|
||||||
{"name":"Herbes à infuser contre les fièvres légères","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.iL0fjlODZ4JnNpwN"}},"_id":"eH4V6AlAZNEuwlrw"}
|
|
||||||
{"name":"Barque à rames, canoë","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":60},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.HKxNf2i5EEu5wAN5"}},"_id":"eXP5rck0IJK4Az8c"}
|
|
||||||
{"name":"Petit atelier et son outillage","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Permet de fabriquer les objets les plus simples (jusqu’à une difficulté de 20)</p>","rarete":8,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.TD0bN2tEIG8VqnbD"}},"_id":"fc2fReiW3mV6jekF"}
|
|
||||||
{"name":"Antipoison","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Confère un bonus de + 5 au test de Soins pour arrêter les pertes de points de Santé. Note : tous les poisons n’ont pas d’antipoison connu.</p>","rarete":7,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.7NDLIEeS4WVyXDqo"}},"_id":"fkleifA7qbOzRZCy"}
|
|
||||||
{"name":"Fonderie","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":10,"prix":10000},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Y14CMXm2avlCnqPC"}},"_id":"frS3jj7bs0l9zMGi"}
|
|
||||||
{"name":"Roulotte","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":5,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.X5GxbvOMqQ8aHh49"}},"_id":"g5rDtYzyQ4IxUWXu"}
|
|
||||||
{"name":"Forge","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":4,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.cma6u26NRsZL1awt"}},"_id":"gJStREuVAaaBuwXR"}
|
|
||||||
{"name":"Miroir et peigne","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.IzlENy0Oxg82cke0"}},"_id":"hRlPFzsoUjbu3Noj"}
|
|
||||||
{"name":"Tenue complète citadine","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>(chausses et chemise de coton, chapeau, chaussures)</p>","rarete":3,"prix":7},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.1ldZnq4lDPHOeVba"}},"_id":"hTLeVLn5yUd2etoS"}
|
|
||||||
{"name":"Nuit d’auberge dans la salle commune","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":3,"prix":3},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.D7HcsRBK8uH6NBi4"}},"_id":"hc4w2PBpYLMQKsXS"}
|
|
||||||
{"name":"Matériel de cuisine","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":0,"prix":2},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.lJafSILU0LtNMONn"}},"_id":"i8BBr1WjfphuLTLI"}
|
|
||||||
{"name":"Chapeau à la mode","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":6,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.lmlWH96vjfTMN2OO"}},"_id":"kkNZoJdG86Dqci2b"}
|
|
||||||
{"name":"Herbes à mâcher les lendemains de beuverie","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.STMfa8tVupqJPllD"}},"_id":"muCWd5AKL21AbTg8"}
|
|
||||||
{"name":"Tenue complète paysanne","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>(chausses et chemise de jute, grand foulard, sandales)</p>","rarete":0,"prix":4},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.4WIrBhrpn4AlSnh3"}},"_id":"nJKLD6BqEHbBHmOY"}
|
|
||||||
{"name":"Selle et fontes","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":20},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.J1HAwhIBjgkBZ3FH"}},"_id":"oIZv9KxLVQUOfi5d"}
|
|
||||||
{"name":"Destrier","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":8,"prix":800},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.MF74kXfkiwLOwWNS"}},"_id":"oIob9qCttaQw7Aea"}
|
|
||||||
{"name":"Vêtements rapiécés, nippes","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":0,"prix":2},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.rPYf2u8b3qizxxFk"}},"_id":"sLZgByw2rA2PvQms"}
|
|
||||||
{"name":"Petit voilier","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":6,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.tuAI18GrGFkqVHpQ"}},"_id":"tAFXmBLUXcSUKZRL"}
|
|
||||||
{"name":"Matériel hivernal","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>(piolets, raquettes, manteau et graisses)</p>","rarete":4,"prix":20},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.LpdplcMj4j7dWnZU"}},"_id":"tRSk0np2smLpdixK"}
|
|
||||||
{"name":"Herbes parfumées contre les mauvaises odeurs","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.y6G9LprDaOAoVn9v"}},"_id":"tXYzLGS6SFolD8k4"}
|
|
||||||
{"name":"Barque de pêcheur avec voile","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":3,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.ZXEq8059S3YlFhN0"}},"_id":"vUFnyal2islmmpZF"}
|
|
||||||
{"name":"Torche","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p> (lot de 3)</p>","rarete":1,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.aVBCMdM69vwfrSMW"}},"_id":"vahvt9QGYjnRlY4p"}
|
|
||||||
{"name":"Verre de vin ou de bière","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":0,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5yA9UC3kExUx6CqN"}},"_id":"vmSrygoMxy6G87EO"}
|
|
||||||
{"name":"Matériel d’escalade","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>(marteau, cordes, pitons)</p>","rarete":3,"prix":8},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.TXj9b73MGGI6L9Av"}},"_id":"vtpjGFTYO7fiKXwE"}
|
|
||||||
{"name":"Longue-vue","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.n1UQvGJ8Zq6dGuEY"}},"_id":"wHU6MvZuBMmN9xfG"}
|
|
||||||
{"name":"Dose de poison violent","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Voir le chapitre « Le Combat et la santé » pour connaître les eff ets des principaux poisons</p>","rarete":6,"prix":3},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.EuGLW5D5SIP58uaa"}},"_id":"wQ8cgwazhlIF6WG7"}
|
|
||||||
{"name":"Louer une grange pour un mois","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Se paie généralement d’avance...</p>","rarete":0,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.8utWpkdD1FvHSYfv"}},"_id":"xy356PaIZisHJdUR"}
|
|
||||||
{"name":"Grande écharpe","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"","rarete":2,"prix":2},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.j5Hei6F2XN5nrh7t"}},"_id":"y47dBO3Mf5Pn7tOd"}
|
|
Binary file not shown.
BIN
packs/equipement/000124.ldb
Normal file
BIN
packs/equipement/000124.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000098
|
MANIFEST-000153
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-22:11:25.461453 7ff1ecbfe6c0 Recovering log #96
|
2024/10/23-20:49:34.587051 7fee7aa006c0 Recovering log #151
|
||||||
2023/11/29-22:11:25.472590 7ff1ecbfe6c0 Delete type=3 #94
|
2024/10/23-20:49:34.597931 7fee7aa006c0 Delete type=3 #149
|
||||||
2023/11/29-22:11:25.472658 7ff1ecbfe6c0 Delete type=0 #96
|
2024/10/23-20:49:34.598050 7fee7aa006c0 Delete type=0 #151
|
||||||
2023/11/29-22:14:17.029859 7fef56ffd6c0 Level-0 table #101: started
|
2024/10/23-20:50:51.314989 7fee796006c0 Level-0 table #156: started
|
||||||
2023/11/29-22:14:17.029891 7fef56ffd6c0 Level-0 table #101: 0 bytes OK
|
2024/10/23-20:50:51.315013 7fee796006c0 Level-0 table #156: 0 bytes OK
|
||||||
2023/11/29-22:14:17.067628 7fef56ffd6c0 Delete type=0 #99
|
2024/10/23-20:50:51.320996 7fee796006c0 Delete type=0 #154
|
||||||
2023/11/29-22:14:17.106540 7fef56ffd6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.321220 7fee796006c0 Manual compaction at level-0 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:14:17.106574 7fef56ffd6c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.321258 7fee796006c0 Manual compaction at level-1 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-20:50:20.635956 7ff1ed3ff6c0 Recovering log #92
|
2024/06/08-21:15:33.889173 7fadb34006c0 Recovering log #147
|
||||||
2023/11/29-20:50:20.646539 7ff1ed3ff6c0 Delete type=3 #90
|
2024/06/08-21:15:33.898942 7fadb34006c0 Delete type=3 #145
|
||||||
2023/11/29-20:50:20.646595 7ff1ed3ff6c0 Delete type=0 #92
|
2024/06/08-21:15:33.899016 7fadb34006c0 Delete type=0 #147
|
||||||
2023/11/29-22:03:29.622718 7fef56ffd6c0 Level-0 table #97: started
|
2024/06/08-21:15:57.225037 7fadb1a006c0 Level-0 table #152: started
|
||||||
2023/11/29-22:03:29.622756 7fef56ffd6c0 Level-0 table #97: 0 bytes OK
|
2024/06/08-21:15:57.225064 7fadb1a006c0 Level-0 table #152: 0 bytes OK
|
||||||
2023/11/29-22:03:29.630708 7fef56ffd6c0 Delete type=0 #95
|
2024/06/08-21:15:57.231253 7fadb1a006c0 Delete type=0 #150
|
||||||
2023/11/29-22:03:29.630884 7fef56ffd6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.238374 7fadb1a006c0 Manual compaction at level-0 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:03:29.630919 7fef56ffd6c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.238407 7fadb1a006c0 Manual compaction at level-1 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/equipement/MANIFEST-000153
Normal file
BIN
packs/equipement/MANIFEST-000153
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/heritages/000194.ldb
Normal file
BIN
packs/heritages/000194.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000062
|
MANIFEST-000223
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-22:11:25.395108 7fef577fe6c0 Recovering log #60
|
2024/10/23-20:49:34.523199 7fee7be006c0 Recovering log #221
|
||||||
2023/11/29-22:11:25.405396 7fef577fe6c0 Delete type=3 #58
|
2024/10/23-20:49:34.533799 7fee7be006c0 Delete type=3 #219
|
||||||
2023/11/29-22:11:25.405484 7fef577fe6c0 Delete type=0 #60
|
2024/10/23-20:49:34.533861 7fee7be006c0 Delete type=0 #221
|
||||||
2023/11/29-22:14:16.809567 7fef56ffd6c0 Level-0 table #65: started
|
2024/10/23-20:50:51.282007 7fee796006c0 Level-0 table #226: started
|
||||||
2023/11/29-22:14:16.809597 7fef56ffd6c0 Level-0 table #65: 0 bytes OK
|
2024/10/23-20:50:51.282061 7fee796006c0 Level-0 table #226: 0 bytes OK
|
||||||
2023/11/29-22:14:16.843768 7fef56ffd6c0 Delete type=0 #63
|
2024/10/23-20:50:51.289193 7fee796006c0 Delete type=0 #224
|
||||||
2023/11/29-22:14:16.952987 7fef56ffd6c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.295521 7fee796006c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:14:16.953032 7fef56ffd6c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.295559 7fee796006c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-20:50:20.569702 7fef577fe6c0 Recovering log #56
|
2024/06/08-21:15:33.824184 7fadb3e006c0 Recovering log #217
|
||||||
2023/11/29-20:50:20.579868 7fef577fe6c0 Delete type=3 #54
|
2024/06/08-21:15:33.834055 7fadb3e006c0 Delete type=3 #215
|
||||||
2023/11/29-20:50:20.579933 7fef577fe6c0 Delete type=0 #56
|
2024/06/08-21:15:33.834168 7fadb3e006c0 Delete type=0 #217
|
||||||
2023/11/29-22:03:29.569369 7fef56ffd6c0 Level-0 table #61: started
|
2024/06/08-21:15:57.197219 7fadb1a006c0 Level-0 table #222: started
|
||||||
2023/11/29-22:03:29.569409 7fef56ffd6c0 Level-0 table #61: 0 bytes OK
|
2024/06/08-21:15:57.197247 7fadb1a006c0 Level-0 table #222: 0 bytes OK
|
||||||
2023/11/29-22:03:29.577270 7fef56ffd6c0 Delete type=0 #59
|
2024/06/08-21:15:57.203355 7fadb1a006c0 Delete type=0 #220
|
||||||
2023/11/29-22:03:29.595791 7fef56ffd6c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.210523 7fadb1a006c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:03:29.602105 7fef56ffd6c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.210550 7fadb1a006c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/heritages/MANIFEST-000223
Normal file
BIN
packs/heritages/MANIFEST-000223
Normal file
Binary file not shown.
BIN
packs/heros/000031.ldb
Normal file
BIN
packs/heros/000031.ldb
Normal file
Binary file not shown.
1
packs/heros/CURRENT
Normal file
1
packs/heros/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000060
|
8
packs/heros/LOG
Normal file
8
packs/heros/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/10/23-20:49:34.469507 7fee7be006c0 Recovering log #58
|
||||||
|
2024/10/23-20:49:34.479705 7fee7be006c0 Delete type=3 #56
|
||||||
|
2024/10/23-20:49:34.479763 7fee7be006c0 Delete type=0 #58
|
||||||
|
2024/10/23-20:50:51.243493 7fee796006c0 Level-0 table #63: started
|
||||||
|
2024/10/23-20:50:51.243541 7fee796006c0 Level-0 table #63: 0 bytes OK
|
||||||
|
2024/10/23-20:50:51.249500 7fee796006c0 Delete type=0 #61
|
||||||
|
2024/10/23-20:50:51.269174 7fee796006c0 Manual compaction at level-0 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)
|
||||||
|
2024/10/23-20:50:51.269221 7fee796006c0 Manual compaction at level-1 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)
|
8
packs/heros/LOG.old
Normal file
8
packs/heros/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/06/08-21:15:33.770037 7fadb3e006c0 Recovering log #54
|
||||||
|
2024/06/08-21:15:33.780289 7fadb3e006c0 Delete type=3 #52
|
||||||
|
2024/06/08-21:15:33.780386 7fadb3e006c0 Delete type=0 #54
|
||||||
|
2024/06/08-21:15:57.176369 7fadb1a006c0 Level-0 table #59: started
|
||||||
|
2024/06/08-21:15:57.176423 7fadb1a006c0 Level-0 table #59: 0 bytes OK
|
||||||
|
2024/06/08-21:15:57.182706 7fadb1a006c0 Delete type=0 #57
|
||||||
|
2024/06/08-21:15:57.182892 7fadb1a006c0 Manual compaction at level-0 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)
|
||||||
|
2024/06/08-21:15:57.182916 7fadb1a006c0 Manual compaction at level-1 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)
|
BIN
packs/heros/MANIFEST-000060
Normal file
BIN
packs/heros/MANIFEST-000060
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/metiers/000194.ldb
Normal file
BIN
packs/metiers/000194.ldb
Normal file
Binary file not shown.
@ -1 +1 @@
|
|||||||
MANIFEST-000062
|
MANIFEST-000223
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-22:11:25.407678 7ff1ecbfe6c0 Recovering log #60
|
2024/10/23-20:49:34.536519 7fee7aa006c0 Recovering log #221
|
||||||
2023/11/29-22:11:25.418261 7ff1ecbfe6c0 Delete type=3 #58
|
2024/10/23-20:49:34.547316 7fee7aa006c0 Delete type=3 #219
|
||||||
2023/11/29-22:11:25.418378 7ff1ecbfe6c0 Delete type=0 #60
|
2024/10/23-20:49:34.547376 7fee7aa006c0 Delete type=0 #221
|
||||||
2023/11/29-22:14:16.923054 7fef56ffd6c0 Level-0 table #65: started
|
2024/10/23-20:50:51.269364 7fee796006c0 Level-0 table #226: started
|
||||||
2023/11/29-22:14:16.923087 7fef56ffd6c0 Level-0 table #65: 0 bytes OK
|
2024/10/23-20:50:51.269409 7fee796006c0 Level-0 table #226: 0 bytes OK
|
||||||
2023/11/29-22:14:16.952832 7fef56ffd6c0 Delete type=0 #63
|
2024/10/23-20:50:51.275419 7fee796006c0 Delete type=0 #224
|
||||||
2023/11/29-22:14:16.953024 7fef56ffd6c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.295491 7fee796006c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:14:16.953057 7fef56ffd6c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.295542 7fee796006c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-20:50:20.582005 7ff1ed3ff6c0 Recovering log #56
|
2024/06/08-21:15:33.837825 7fadb34006c0 Recovering log #217
|
||||||
2023/11/29-20:50:20.593394 7ff1ed3ff6c0 Delete type=3 #54
|
2024/06/08-21:15:33.847890 7fadb34006c0 Delete type=3 #215
|
||||||
2023/11/29-20:50:20.593446 7ff1ed3ff6c0 Delete type=0 #56
|
2024/06/08-21:15:33.847931 7fadb34006c0 Delete type=0 #217
|
||||||
2023/11/29-22:03:29.577397 7fef56ffd6c0 Level-0 table #61: started
|
2024/06/08-21:15:57.183049 7fadb1a006c0 Level-0 table #222: started
|
||||||
2023/11/29-22:03:29.577421 7fef56ffd6c0 Level-0 table #61: 0 bytes OK
|
2024/06/08-21:15:57.183100 7fadb1a006c0 Level-0 table #222: 0 bytes OK
|
||||||
2023/11/29-22:03:29.583760 7fef56ffd6c0 Delete type=0 #59
|
2024/06/08-21:15:57.189698 7fadb1a006c0 Delete type=0 #220
|
||||||
2023/11/29-22:03:29.602081 7fef56ffd6c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.210501 7fadb1a006c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:03:29.602123 7fef56ffd6c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.210537 7fadb1a006c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/metiers/MANIFEST-000223
Normal file
BIN
packs/metiers/MANIFEST-000223
Normal file
Binary file not shown.
BIN
packs/mutations/000031.ldb
Normal file
BIN
packs/mutations/000031.ldb
Normal file
Binary file not shown.
0
packs/mutations/000062.log
Normal file
0
packs/mutations/000062.log
Normal file
1
packs/mutations/CURRENT
Normal file
1
packs/mutations/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000060
|
0
packs/mutations/LOCK
Normal file
0
packs/mutations/LOCK
Normal file
8
packs/mutations/LOG
Normal file
8
packs/mutations/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/10/23-20:49:34.625857 7fee7be006c0 Recovering log #58
|
||||||
|
2024/10/23-20:49:34.636635 7fee7be006c0 Delete type=3 #56
|
||||||
|
2024/10/23-20:49:34.636701 7fee7be006c0 Delete type=0 #58
|
||||||
|
2024/10/23-20:50:51.335363 7fee796006c0 Level-0 table #63: started
|
||||||
|
2024/10/23-20:50:51.335391 7fee796006c0 Level-0 table #63: 0 bytes OK
|
||||||
|
2024/10/23-20:50:51.341396 7fee796006c0 Delete type=0 #61
|
||||||
|
2024/10/23-20:50:51.348101 7fee796006c0 Manual compaction at level-0 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)
|
||||||
|
2024/10/23-20:50:51.348170 7fee796006c0 Manual compaction at level-1 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)
|
8
packs/mutations/LOG.old
Normal file
8
packs/mutations/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/06/08-21:15:33.928707 7fadb3e006c0 Recovering log #54
|
||||||
|
2024/06/08-21:15:33.938338 7fadb3e006c0 Delete type=3 #52
|
||||||
|
2024/06/08-21:15:33.938420 7fadb3e006c0 Delete type=0 #54
|
||||||
|
2024/06/08-21:15:57.251732 7fadb1a006c0 Level-0 table #59: started
|
||||||
|
2024/06/08-21:15:57.251755 7fadb1a006c0 Level-0 table #59: 0 bytes OK
|
||||||
|
2024/06/08-21:15:57.258558 7fadb1a006c0 Delete type=0 #57
|
||||||
|
2024/06/08-21:15:57.265348 7fadb1a006c0 Manual compaction at level-0 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)
|
||||||
|
2024/06/08-21:15:57.265369 7fadb1a006c0 Manual compaction at level-1 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)
|
BIN
packs/mutations/MANIFEST-000060
Normal file
BIN
packs/mutations/MANIFEST-000060
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/origines/000195.ldb
Normal file
BIN
packs/origines/000195.ldb
Normal file
Binary file not shown.
0
packs/origines/000226.log
Normal file
0
packs/origines/000226.log
Normal file
@ -1 +1 @@
|
|||||||
MANIFEST-000063
|
MANIFEST-000224
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-22:11:25.381917 7fef57fff6c0 Recovering log #61
|
2024/10/23-20:49:34.510625 7fee7b4006c0 Recovering log #222
|
||||||
2023/11/29-22:11:25.392824 7fef57fff6c0 Delete type=3 #59
|
2024/10/23-20:49:34.520968 7fee7b4006c0 Delete type=3 #220
|
||||||
2023/11/29-22:11:25.392930 7fef57fff6c0 Delete type=0 #61
|
2024/10/23-20:49:34.521080 7fee7b4006c0 Delete type=0 #222
|
||||||
2023/11/29-22:14:16.844154 7fef56ffd6c0 Level-0 table #66: started
|
2024/10/23-20:50:51.275532 7fee796006c0 Level-0 table #227: started
|
||||||
2023/11/29-22:14:16.844182 7fef56ffd6c0 Level-0 table #66: 0 bytes OK
|
2024/10/23-20:50:51.275563 7fee796006c0 Level-0 table #227: 0 bytes OK
|
||||||
2023/11/29-22:14:16.881638 7fef56ffd6c0 Delete type=0 #64
|
2024/10/23-20:50:51.281775 7fee796006c0 Delete type=0 #225
|
||||||
2023/11/29-22:14:16.953004 7fef56ffd6c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.295508 7fee796006c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:14:16.953040 7fef56ffd6c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
2024/10/23-20:50:51.295550 7fee796006c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
2023/11/29-20:50:20.557438 7ff1ecbfe6c0 Recovering log #57
|
2024/06/08-21:15:33.811271 7fadb8c006c0 Recovering log #218
|
||||||
2023/11/29-20:50:20.567859 7ff1ecbfe6c0 Delete type=3 #55
|
2024/06/08-21:15:33.821947 7fadb8c006c0 Delete type=3 #216
|
||||||
2023/11/29-20:50:20.567928 7ff1ecbfe6c0 Delete type=0 #57
|
2024/06/08-21:15:33.822019 7fadb8c006c0 Delete type=0 #218
|
||||||
2023/11/29-22:03:29.552686 7fef56ffd6c0 Level-0 table #62: started
|
2024/06/08-21:15:57.189930 7fadb1a006c0 Level-0 table #223: started
|
||||||
2023/11/29-22:03:29.552886 7fef56ffd6c0 Level-0 table #62: 0 bytes OK
|
2024/06/08-21:15:57.189969 7fadb1a006c0 Level-0 table #223: 0 bytes OK
|
||||||
2023/11/29-22:03:29.559417 7fef56ffd6c0 Delete type=0 #60
|
2024/06/08-21:15:57.197078 7fadb1a006c0 Delete type=0 #221
|
||||||
2023/11/29-22:03:29.559640 7fef56ffd6c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.210512 7fadb1a006c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
||||||
2023/11/29-22:03:29.569352 7fef56ffd6c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
2024/06/08-21:15:57.210543 7fadb1a006c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
|
||||||
|
Binary file not shown.
BIN
packs/origines/MANIFEST-000224
Normal file
BIN
packs/origines/MANIFEST-000224
Normal file
Binary file not shown.
BIN
packs/peuples/000031.ldb
Normal file
BIN
packs/peuples/000031.ldb
Normal file
Binary file not shown.
0
packs/peuples/000062.log
Normal file
0
packs/peuples/000062.log
Normal file
1
packs/peuples/CURRENT
Normal file
1
packs/peuples/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000060
|
0
packs/peuples/LOCK
Normal file
0
packs/peuples/LOCK
Normal file
8
packs/peuples/LOG
Normal file
8
packs/peuples/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/10/23-20:49:34.639062 7fee7aa006c0 Recovering log #58
|
||||||
|
2024/10/23-20:49:34.649580 7fee7aa006c0 Delete type=3 #56
|
||||||
|
2024/10/23-20:49:34.649699 7fee7aa006c0 Delete type=0 #58
|
||||||
|
2024/10/23-20:50:51.327659 7fee796006c0 Level-0 table #63: started
|
||||||
|
2024/10/23-20:50:51.327700 7fee796006c0 Level-0 table #63: 0 bytes OK
|
||||||
|
2024/10/23-20:50:51.335218 7fee796006c0 Delete type=0 #61
|
||||||
|
2024/10/23-20:50:51.348083 7fee796006c0 Manual compaction at level-0 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)
|
||||||
|
2024/10/23-20:50:51.348127 7fee796006c0 Manual compaction at level-1 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)
|
8
packs/peuples/LOG.old
Normal file
8
packs/peuples/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2024/06/08-21:15:33.941056 7fadb34006c0 Recovering log #54
|
||||||
|
2024/06/08-21:15:33.951636 7fadb34006c0 Delete type=3 #52
|
||||||
|
2024/06/08-21:15:33.951677 7fadb34006c0 Delete type=0 #54
|
||||||
|
2024/06/08-21:15:57.245014 7fadb1a006c0 Level-0 table #59: started
|
||||||
|
2024/06/08-21:15:57.245045 7fadb1a006c0 Level-0 table #59: 0 bytes OK
|
||||||
|
2024/06/08-21:15:57.251599 7fadb1a006c0 Delete type=0 #57
|
||||||
|
2024/06/08-21:15:57.265338 7fadb1a006c0 Manual compaction at level-0 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)
|
||||||
|
2024/06/08-21:15:57.265383 7fadb1a006c0 Manual compaction at level-1 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)
|
BIN
packs/peuples/MANIFEST-000060
Normal file
BIN
packs/peuples/MANIFEST-000060
Normal file
Binary file not shown.
BIN
packs/pouvoirs/000112.ldb
Normal file
BIN
packs/pouvoirs/000112.ldb
Normal file
Binary file not shown.
0
packs/pouvoirs/000143.log
Normal file
0
packs/pouvoirs/000143.log
Normal file
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user