Compare commits

...

59 Commits

Author SHA1 Message Date
LeRatierBretonnien 580a2ccaba Corrections suite a migration Foundry v12 2024-05-01 09:46:37 +02:00
LeRatierBretonnien 699dba5511 Compatibilité v11/v12 2024-04-26 11:45:58 +02:00
LeRatierBretonnien aac552102a Add new automations 2024-04-05 22:33:36 +02:00
LeRatierBretonnien 4762dc33ac PNJ & Creatures 2024-03-03 08:20:30 +01:00
LeRatierBretonnien 0a030460e4 PNJ & Creatures 2024-03-02 23:58:27 +01:00
LeRatierBretonnien ed2dc58680 Enhance stats 2024-02-08 12:51:30 +01:00
LeRatierBretonnien 9c20f277ea Gestion plus fine ame+sante 2023-12-29 18:36:37 +01:00
LeRatierBretonnien 2a8617d781 Automatisations de combats, WIP 2023-12-24 12:38:02 +01:00
LeRatierBretonnien 91ad26730a Automatisations de combats, WIP 2023-12-22 09:30:26 +01:00
LeRatierBretonnien e1816b3dd7 CSS+Predilection+Niveau de competence 2023-12-21 19:21:06 +01:00
LeRatierBretonnien c48401a199 CSS+Predilection+Niveau de competence 2023-12-21 15:41:17 +01:00
LeRatierBretonnien f487908ecd Affichage des specialisations 2023-12-19 22:16:15 +01:00
LeRatierBretonnien e9dc31ada1 Affichage des specialisations 2023-12-19 21:46:13 +01:00
LeRatierBretonnien e504427dbb v10/v11 compatibility 2023-05-25 07:43:46 +02:00
LeRatierBretonnien 6aa63f9a98 Better chat result + hide some compendiums 2023-05-09 21:18:44 +02:00
LeRatierBretonnien 861aa19637 Update releas 2023-03-14 20:41:31 +01:00
LeRatierBretonnien ddb3f9dee1 Various fixes 2023-03-14 18:40:44 +01:00
LeRatierBretonnien da074d6ea1 Various fixes 2023-03-14 09:15:08 +01:00
LeRatierBretonnien 1c0c722bd0 Various fixes 2023-03-14 09:14:59 +01:00
LeRatierBretonnien fef42b7093 Various fixes 2023-03-14 09:14:28 +01:00
sladecraven a63ec19362 Better use of tokens/actors 2022-11-30 12:22:40 +01:00
sladecraven a26af23c9c Try to update movement 2022-10-05 21:05:35 +02:00
sladecraven 983bc6a2ed Revision armes/boucliers 2022-10-01 08:47:01 +02:00
sladecraven da6d6584c4 Minor fixes 2022-09-28 20:36:54 +02:00
sladecraven f08ec8eaff Enable links in editor 2022-09-27 21:27:38 +02:00
sladecraven c34bfbf229 Enhance welcome message 2022-09-26 16:39:36 +02:00
sladecraven e7de42cf16 Mourblade : add initiative 2022-09-26 14:23:37 +02:00
sladecraven 0f2348fec6 Mourblade : add initiative 2022-09-26 14:01:58 +02:00
sladecraven 98ccd8fde1 Mourblade : add initiative 2022-09-26 13:39:19 +02:00
sladecraven fcec785f00 Mourblade : add initiative 2022-09-26 13:34:07 +02:00
sladecraven 734945d68e v10 first release 2022-09-20 09:09:08 +02:00
sladecraven 33916c9ec2 v10 first release 2022-09-20 09:07:26 +02:00
sladecraven dda8fee616 v10 first release 2022-09-20 08:59:21 +02:00
sladecraven 1730a8d390 v10 first release 2022-09-20 08:57:40 +02:00
sladecraven 4a0a57870c v10 dev WIP 2022-09-20 08:01:23 +02:00
sladecraven 8d43ae6b6e Support des runes 2022-06-26 18:52:31 +02:00
sladecraven 3f91a161ab Ajout images Pretre 2022-06-26 16:51:43 +02:00
sladecraven 1e72eaec04 Ajout images Pretre 2022-06-26 16:50:51 +02:00
sladecraven 09cdd1923a Ajout images Pretre 2022-06-26 16:49:28 +02:00
sladecraven fce03107b5 Ajout images Pretre 2022-06-26 16:48:44 +02:00
sladecraven 43183d60ea Ajout images Pretre 2022-06-26 16:48:08 +02:00
sladecraven 55cb3ca806 Increase realeas 2022-06-10 13:20:35 +02:00
sladecraven e7ed5bd02c Use new icons 2022-06-08 20:44:43 +02:00
sladecraven cb74799b42 Sante et autrs 2022-06-06 22:34:18 +02:00
sladecraven b985da2eca Sante et autrs 2022-06-06 22:33:54 +02:00
sladecraven f23bdca66d Sante et autrs 2022-06-06 22:33:46 +02:00
sladecraven d7387ac062 Sante et autrs 2022-06-06 18:51:16 +02:00
sladecraven fb6463aba5 Sante et autrs 2022-06-06 18:49:39 +02:00
sladecraven 665feac605 Gestion des predilections et rework dons 2022-06-05 23:27:38 +02:00
sladecraven cd1ecf1d96 Gestion/assistance aventure/eclat 2022-06-05 18:49:38 +02:00
sladecraven ea0de0e8cd Gestion/assistance aventure/eclat 2022-06-05 16:35:25 +02:00
sladecraven c7a1133334 Gestion/assistance aventure/eclat 2022-06-05 15:54:17 +02:00
sladecraven 8a4efaad9a Add competence roll 2022-06-04 21:22:51 +02:00
sladecraven 7654401f37 Add competence roll 2022-06-04 21:06:33 +02:00
sladecraven 2ee6c285ea Add competence roll 2022-06-04 21:06:01 +02:00
sladecraven eda51dec7f Ajout fenetre de roll + gestion de base des rolls 2022-06-03 08:15:39 +02:00
sladecraven cca4383c33 Enhance interface 2022-06-01 22:40:32 +02:00
sladecraven dca9dab577 Enhance interface 2022-06-01 22:37:33 +02:00
sladecraven 960f380306 Load fonts&icons 2022-06-01 17:15:53 +02:00
199 changed files with 4606 additions and 1199 deletions

1
.gitignore vendored Normal file
View File

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

View File

@ -1,4 +1,23 @@
# fvtt-mournblade
# Système Foundry pour Mournblade (French RPG, Titam France/Sombres Projets)
FoundryVTT system for Mournblade from Sombres Projets
## EN
Unofficial system for Mournblade (French version from Titam France).
Books are mandatory to play and are available at : http://www.titam-france.fr
## FR
Système non-officiel pour le JDR Mournblade (Titam France).
Ce système a été autorisé par Le Département des Sombres Projets, merci à eux !
Les livres du jeu sont nécessaires pour jouer, et sont disponibles ici : http://www.titam-france.fr
# Credits
Mournblade, le jeu de rôle de Sword & Sorcery, is a property of Titam France/Sombres Projets.
# Developmement
LeRatierBretonnien

BIN
assets/fonts/CentaurMT.otf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/icons/adresse.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
assets/icons/arme.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
assets/icons/capacite.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
assets/icons/don.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
assets/icons/eclat.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
assets/icons/heritage.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/icons/monnaie.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
assets/icons/origine.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/icons/pacte.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
assets/icons/presence.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
assets/icons/puissance.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/icons/rune.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
assets/icons/tendance.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/icons/trempe.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 11 KiB

28
lang/fr.json Normal file
View File

@ -0,0 +1,28 @@
{
"TYPES": {
"Actor": {
"personnage": "Personnage",
"creature": "Créature"
},
"Item": {
"arme": "Arme",
"competence": "Compétence",
"protection": "Protection",
"pacte": "Pacte",
"traitchaotique": "Trait Chaotique",
"monnaie": "Monnaie",
"don": "Don",
"tendance": "Tendance",
"rune": "Rune",
"equipement": "Equipement",
"capacite": "Capacité",
"origine": "Origine",
"heritage": "Héritage",
"metier": "Métier",
"runeeffect": "Effet de Rune",
"bouclier": "Bouclier",
"modifier": "Modificateur",
"traitespece": "Trait d'Espèce"
}
}
}

View File

@ -12,7 +12,7 @@ export class MournbladeActorSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-mournblade", "sheet", "actor"],
template: "systems/fvtt-mournblade/templates/actor-sheet.html",
width: 640,
@ -25,9 +25,8 @@ export class MournbladeActorSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = MournbladeUtility.data(this.object);
let actorData = duplicate(MournbladeUtility.templateData(this.object));
const objectData = foundry.utils.duplicate(this.object)
let actorData = objectData
let formData = {
title: this.title,
@ -37,12 +36,34 @@ export class MournbladeActorSheet extends ActorSheet {
name: objectData.name,
editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked",
data: actorData,
data: actorData.system,
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited,
weapons: duplicate(this.actor.getWeapons()),
armors: duplicate(this.actor.getArmors()),
//equipments: duplicate(this.actor.getEquipments()),
skills: this.actor.getSkills(),
armes: foundry.utils.duplicate(this.actor.getWeapons()),
protections: foundry.utils.duplicate(this.actor.getArmors()),
dons: foundry.utils.duplicate(this.actor.getDons()),
pactes: foundry.utils.duplicate(this.actor.getPactes()),
alignement: this.actor.getAlignement(),
aspect: this.actor.getAspect(),
marge: this.actor.getMarge(),
tendances:foundry.utils.duplicate(this.actor.getTendances()),
runes:foundry.utils.duplicate(this.actor.getRunes()),
traitsChaotiques:foundry.utils.duplicate(this.actor.getTraitsChaotiques()),
traitsEspeces: foundry.utils.duplicate(this.actor.getTraitsEspeces()),
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(),
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
modifiers: foundry.utils.duplicate(this.actor.getModifiers()),
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
runeEffects: foundry.utils.duplicate(this.actor.getRuneEffects()),
config: game.system.mournblade.config,
protectionTotal: this.actor.getProtectionTotal(),
santeMalus: this.actor.getStatusMalus(),
ameMalus: this.actor.getAmeMalus(),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
@ -63,81 +84,28 @@ export class MournbladeActorSheet extends ActorSheet {
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
if (e.keyCode === 13) return false;
});
// Update Inventory Item
html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
const item = this.actor.items.get( itemId );
item.sheet.render(true);
});
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
const item = this.actor.items.get( itemId )
item.sheet.render(true)
})
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
MournbladeUtility.confirmDelete(this, li);
});
html.find('.spec-group-activate').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.specPowerActivate( itemId)
});
html.find('.spec-group-deactivate').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.specPowerDeactivate( itemId)
});
html.find('.equip-activate').click(ev => {
})
html.find('.edit-item-data').change(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
this.actor.equipActivate( itemId)
});
html.find('.equip-deactivate').click(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
this.actor.equipDeactivate( itemId)
});
html.find('.effect-used').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.perkEffectUsed( itemId)
});
html.find('.perk-status').change(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.updatePerkStatus( itemId, ev.currentTarget.value)
});
html.find('.power-cost-spent').change(ev => {
const li = $(ev.currentTarget).parents(".item");
let itemId = li.data("item-id");
this.actor.updatePowerSpentCost( itemId, ev.currentTarget.value)
});
html.find('.perk-used').change(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
let index = Number($(ev.currentTarget).data("use-index") )
this.actor.updatePerkUsed( itemId, index, ev.currentTarget.checked )
});
html.find('.subactor-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let actorId = li.data("actor-id");
let actor = game.actors.get( actorId );
actor.sheet.render(true);
});
html.find('.subactor-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
let actorId = li.data("actor-id");
this.actor.delSubActor(actorId);
});
let itemId = li.data("item-id")
let itemType = li.data("item-type")
let itemField = $(ev.currentTarget).data("item-field")
let dataType = $(ev.currentTarget).data("dtype")
let value = ev.currentTarget.value
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
})
html.find('.quantity-minus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecQuantity( li.data("item-id"), -1 );
@ -147,109 +115,76 @@ export class MournbladeActorSheet extends ActorSheet {
this.actor.incDecQuantity( li.data("item-id"), +1 );
} );
html.find('.unarmed-attack').click((event) => {
this.actor.rollUnarmedAttack();
});
html.find('.generic-pool-roll').click((event) => {
this.openGenericRoll()
} );
html.find('.attack-melee').click((event) => {
this.actor.rollPool( 'com');
});
html.find('.attack-ranged').click((event) => {
this.actor.rollPool( 'agi');
});
html.find('.defense-roll').click((event) => {
this.actor.rollPool( 'def', true);
});
html.find('.damage-melee').click((event) => {
this.actor.rollPool( 'str');
});
html.find('.damage-ranged').click((event) => {
this.actor.rollPool( 'per');
});
html.find('.damage-resistance').click((event) => {
this.actor.rollPool( 'phy');
});
html.find('.roll-stat').click((event) => {
const statId = $(event.currentTarget).data("stat-key");
this.actor.rollStat(statId);
});
html.find('.roll-mr').click((event) => {
this.actor.rollMR();
});
html.find('.roll-attribut').click((event) => {
const li = $(event.currentTarget).parents(".item")
let attrKey = li.data("attr-key")
this.actor.rollAttribut(attrKey)
})
html.find('.roll-competence').click((event) => {
const li = $(event.currentTarget).parents(".item")
let attrKey = $(event.currentTarget).data("attr-key")
let compId = li.data("item-id")
this.actor.rollCompetence(attrKey, compId)
})
html.find('.roll-rune').click((event) => {
const li = $(event.currentTarget).parents(".item")
let runeId = li.data("item-id")
this.actor.rollRune(runeId)
})
html.find('.roll-arme-offensif').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
this.actor.rollArmeOffensif(armeId)
})
html.find('.roll-assomer').click((event) => {
this.actor.rollAssomer()
})
html.find('.roll-fuir').click((event) => {
this.actor.rollFuir()
})
html.find('.roll-immobiliser').click((event) => {
this.actor.rollImmobiliser()
})
html.find('.roll-arme-special').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
this.actor.rollArmeSpecial(armeId)
})
html.find('.roll-spec').click((event) => {
const li = $(event.currentTarget).parents(".item");
const specId = li.data("item-id");
this.actor.rollSpec(specId);
});
html.find('.power-roll').click((event) => {
const li = $(event.currentTarget).parents(".item");
const powerId = li.data("item-id");
this.actor.rollPower(powerId);
});
html.find('.weapon-roll').click((event) => {
const li = $(event.currentTarget).parents(".item");
const weaponId = li.data("item-id");
this.actor.rollWeapon(weaponId);
});
html.find('.armor-roll').click((event) => {
const li = $(event.currentTarget).parents(".item");
const armorId = li.data("item-id");
this.actor.rollArmor(armorId);
});
html.find('.weapon-damage-roll').click((event) => {
const li = $(event.currentTarget).parents(".item");
const weaponId = li.data("item-id");
this.actor.rollWeapon(weaponId, true);
});
html.find('.weapon-damage').click((event) => {
const li = $(event.currentTarget).parents(".item");
const weapon = this.actor.getOwnedItem(li.data("item-id"));
this.actor.rollDamage(weapon, 'damage');
});
html.find('.roll-arme-degats').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
this.actor.rollArmeDegats(armeId)
})
html.find('.quantity-modify').click(event => {
const li = $(event.currentTarget).parents(".item")
const value = Number($(event.currentTarget).data("quantite-value"))
this.actor.incDecQuantity( li.data("item-id"), value );
})
html.find('.item-add').click((event) => {
const itemType = $(event.currentTarget).data("type")
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
})
html.find('.sante-modify').click((event) => {
const santeType = $(event.currentTarget).data("type")
const value = $(event.currentTarget).data("value")
this.actor.incDecSante(santeType, value, false)
})
html.find('.ame-modify').click((event) => {
const value = $(event.currentTarget).data("value")
this.actor.incDecAme(value)
})
html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore;
this.render(true);
});
html.find('.item-link a').click((event) => {
const itemId = $(event.currentTarget).data("item-id");
const item = this.actor.getOwnedItem(itemId);
item.sheet.render(true);
});
html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") );
this.render(true);
});
html.find('.power-activate').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.activatePower( li.data("item-id") );
this.render(true);
});
html.find('.change-worstfear').change(ev => {
this.actor.manageWorstFear( ev.currentTarget.checked )
});
html.find('.change-desires').change(ev => {
this.actor.manageDesires( ev.currentTarget.checked )
});
html.find('.update-field').change(ev => {
const fieldName = $(ev.currentTarget).data("field-name");
let value = Number(ev.currentTarget.value);
this.actor.update( { [`${fieldName}`]: value } );
});
html.find('.perk-active').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.activatePerk( li.data("item-id") );
this.render(true);
});
}
@ -264,11 +199,11 @@ export class MournbladeActorSheet extends ActorSheet {
}
/* -------------------------------------------- */
async _onDropItem(event, dragData) {
/*async _onDropItem(event, dragData) {
let item = await MournbladeUtility.searchItem( dragData)
this.actor.preprocessItem( event, item, true )
super._onDropItem(event, dragData)
}
}*/
/* -------------------------------------------- */
/** @override */

View File

@ -3,6 +3,9 @@ import { MournbladeUtility } from "./mournblade-utility.js";
import { MournbladeRollDialog } from "./mournblade-roll-dialog.js";
/* -------------------------------------------- */
const __degatsBonus = [-2, -2, -1, -1, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 8, 8, 9, 9, 10, 10]
const __vitesseBonus = [-2, -2, -1, -1, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8]
/* -------------------------------------------- */
/**
* Extend the base Actor entity by defining a custom roll data structure which is ideal for the Simple system.
@ -28,30 +31,228 @@ export class MournbladeActor extends Actor {
if (data instanceof Array) {
return super.create(data, options);
}
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
// If the created actor has items (only applicable to foundry.utils.duplicated actors) bypass the new actor creation logic
if (data.items) {
let actor = super.create(data, options);
return actor;
}
if (data.type == 'character') {
if (data.type == 'personnage') {
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
data.items = skills.map(i => i.toObject());
data.items = skills.map(i => i.toObject())
}
if (data.type == 'npc') {
if (data.type == 'creature') {
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills-creatures")
data.items = skills.map(i => i.toObject())
data.items.push({ name: "Arme naturelle 1", type: 'arme', img: "systems/fvtt-mournblade/assets/icons/arme.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0" } })
data.items.push({ name: "Arme naturelle 2", type: 'arme', img: "systems/fvtt-mournblade/assets/icons/arme.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0" } })
}
return super.create(data, options);
}
/* -------------------------------------------- */
getWeapons() {
return this.data.items.filter(item => item.type == "arme" )
setModifier(name, type, value) {
this.createEmbeddedDocuments("Item", [{ type: "modifier", name: name, system: { modifiertype: type, value: value } }])
ui.notifications.info("Le modificateur " + name + " a été ajouté à " + this.name + ".")
}
/* -------------------------------------------- */
prepareArme(arme) {
arme = foundry.utils.duplicate(arme)
let combat = this.getCombatValues()
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
arme.system.isMelee = true
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.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + combat.attaqueModifier
if (arme.system.isdefense) {
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef
}
}
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
arme.system.isDistance = true
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.system.attrKey = "adr"
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + combat.attaqueModifier
arme.system.totalDegats = arme.system.degats
if (arme.system.isdefense) {
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.bonusmaniementdef
}
}
return arme
}
/* -------------------------------------------- */
getArmors() {
return this.data.items.filter(item => item.type == "protection" )
prepareBouclier(bouclier) {
bouclier = foundry.utils.duplicate(bouclier)
let combat = this.getCombatValues()
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.totalDegats = bouclier.system.degats + "+" + combat.bonusDegatsTotal
bouclier.system.totalOffensif = this.system.attributs.pui.value + bouclier.system.competence.system.niveau
bouclier.system.isdefense = true
bouclier.system.bonusmaniementoff = 0
bouclier.system.totalDefensif = combat.defenseTotal + bouclier.system.competence.system.niveau + bouclier.system.bonusdefense
return bouclier
}
/* -------------------------------------------- */
getWeapons() {
let armes = []
for (let arme of this.items) {
if (arme.type == "arme") {
armes.push(this.prepareArme(arme))
}
if (arme.type == "bouclier") {
armes.push(this.prepareBouclier(arme))
}
}
MournbladeUtility.sortArrayObjectsByName(armes)
return armes
}
/* -------------------------------------------- */
getModifiersForRoll() {
let modifiers = []
for (let mod of this.items) {
if (mod.type == "modifier" && mod.system.modifiertype == "roll") {
let modObj = mod.toObject()
modObj.system.apply = true
modifiers.push(modObj)
}
}
MournbladeUtility.sortArrayObjectsByName(modifiers)
return modifiers
}
/* -------------------------------------------- */
getItemSorted(types) {
let items = this.items.filter(item => types.includes(item.type)) || []
MournbladeUtility.sortArrayObjectsByName(items)
return items
}
getDons() {
return this.getItemSorted(["don"])
}
getPactes() {
return this.getItemSorted(["pacte"])
}
getTendances() {
return this.getItemSorted(["tendance"])
}
getRunes() {
return this.getItemSorted(["rune"])
}
getEquipments() {
return this.getItemSorted(["equipement"])
}
getModifiers() {
return this.getItemSorted(["modifier"])
}
getTraitsChaotiques() {
return this.getItemSorted(["traitchaotique"])
}
getTraitsEspeces() {
return this.getItemSorted(["traitespece"])
}
getMonnaies() {
return this.getItemSorted(["monnaie"])
}
getArmors() {
return this.getItemSorted(["protection"])
}
getRuneEffects() {
return this.getItemSorted(["runeeffect"])
}
getOrigine() {
return this.items.find(item => item.type == "origine")
}
getMetier() {
return this.items.find(item => item.type == "metier")
}
getHeritage() {
return this.items.find(item => item.type == "heritage")
}
/* -------------------------------------------- */
getSkills() {
let comp = []
for (let item of this.items) {
item = foundry.utils.duplicate(item)
if (item.type == "competence") {
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.attribut3total = item.system.niveau + (this.system.attributs[item.system.attribut3]?.value || 0)
if (item.system.niveau == 0) {
item.system.attribut1total -= 3
item.system.attribut2total -= 3
item.system.attribut3total -= 3
}
item.system.attribut1label = this.system.attributs[item.system.attribut1]?.label || ""
item.system.attribut2label = this.system.attributs[item.system.attribut2]?.label || ""
item.system.attribut3label = this.system.attributs[item.system.attribut3]?.label || ""
comp.push(item)
}
}
MournbladeUtility.sortArrayObjectsByName(comp)
return comp
}
/* -------------------------------------------- */
getProtectionTotal() {
let protection = 0
for (let item of this.items) {
if (item.type == "protection" && item.system.equipped) {
protection += item.system.protection
}
}
return protection
}
/* -------------------------------------------- */
getAspect() {
return (this.system.balance.loi > this.system.balance.chaos) ? this.system.balance.loi : this.system.balance.chaos
}
getMarge() {
return Math.abs(this.system.balance.loi - this.system.balance.chaos)
}
getAlignement() {
return (this.system.balance.loi > this.system.balance.chaos) ? "loyal" : "chaotique"
}
/* -------------------------------------------- */
getDefenseBase() {
return this.system.attributs.tre.value + 5
}
/* -------------------------------------------- */
getVitesseBase() {
return 5 + __vitesseBonus[this.system.attributs.adr.value]
}
/* -------------------------------------------- */
getCombatValues() {
let defenserModifier = 0
this.items.filter(item => item.type == "modifier" && item.system.modifiertype == "defense").map(e => defenserModifier += e.system.value)
let attaqueModifier = 0
this.items.filter(item => item.type == "modifier" && item.system.modifiertype == "attaque").map(e => attaqueModifier += e.system.value)
let combat = {
defenserModifier,
attaqueModifier,
initBase: this.system.attributs.adr.value,
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
bonusDegats: this.getBonusDegats(),
bonusDegatsTotal: this.getBonusDegats() + this.system.combat.bonusdegats,
vitesseBase: this.getVitesseBase(),
vitesseTotal: this.getVitesseBase() + this.system.combat.vitessebonus,
defenseBase: this.getDefenseBase(),
defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus + defenserModifier
}
return combat
}
/* -------------------------------------------- */
prepareBaseData() {
}
@ -64,10 +265,18 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
prepareDerivedData() {
if (this.type == 'character') {
if (this.type == 'personnage') {
let newSante = this.system.sante.bonus + (this.system.attributs.pui.value + this.system.attributs.tre.value) * 2 + 5
if (this.system.sante.base != newSante) {
this.update({ 'system.sante.base': newSante })
}
let newAme = (this.system.attributs.cla.value + this.system.attributs.tre.value) * this.system.biodata.amemultiplier + 5
if (this.system.ame.fullmax != newAme) {
this.update({ 'system.ame.fullmax': newAme })
}
}
super.prepareDerivedData();
super.prepareDerivedData()
}
/* -------------------------------------------- */
@ -76,29 +285,153 @@ export class MournbladeActor extends Actor {
super._preUpdate(changed, options, user);
}
/* -------------------------------------------- */
getActivePerks() {
let perks = this.data.items.filter(item => item.type == 'perk' && item.data.data.active);
return perks;
}
/* -------------------------------------------- */
getItemById(id) {
let item = this.data.items.find(item => item.id == id);
let item = this.items.find(item => item.id == id);
if (item) {
item = duplicate(item)
item = foundry.utils.duplicate(item)
}
return item;
}
/* -------------------------------------------- */
async equipItem(itemId) {
let item = this.data.items.find(item => item.id == itemId);
if (item && item.data.data) {
let update = { _id: item.id, "data.equipped": !item.data.data.equipped };
let item = this.items.find(item => item.id == itemId)
if (item?.system) {
let update = { _id: item.id, "system.equipped": !item.system.equipped }
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
}
}
/* -------------------------------------------- */
getStatusMalus() {
if (this.system.biodata.ignoresantemalus) {
return 0
}
let malusL = 0
let malusNL = 0
if (this.system.sante.base - this.system.sante.letaux < 10) {
malusL = -2
}
if (this.system.sante.base - this.system.sante.letaux < 5) {
malusL = -5
}
if (this.system.sante.base - this.system.sante.nonletaux < 10) {
malusNL = -2
}
if (this.system.sante.base - this.system.sante.nonletaux < 5) {
malusNL = -5
}
return Math.min(malusL, malusNL)
}
/* -------------------------------------------- */
getAmeMalus() {
if (this.system.biodata.ignoreamemalus) {
return 0
}
let malusA = 0
if (this.system.ame.currentmax - this.system.ame.value < 10) {
malusA = -2
}
if (this.system.ame.currentmax - this.system.ame.value < 5) {
malusA = -5
}
return malusA
}
/* -------------------------------------------- */
editItemField(itemId, itemType, itemField, dataType, value) {
let item = this.items.find(item => item.id == itemId)
if (item) {
console.log("Item ", item, itemField, dataType, value)
if (dataType.toLowerCase() == "number") {
value = Number(value)
} else {
value = String(value)
}
let update = { _id: item.id, [`system.${itemField}`]: value };
this.updateEmbeddedDocuments("Item", [update])
}
}
/* -------------------------------------------- */
incDecSante(type, value, applyArmure = true) {
value = Number(value)
if (value && applyArmure) {
let protection = this.getProtectionTotal()
value -= protection
value = Math.max(0, Number(value))
}
if (value) {
let newSante = foundry.utils.duplicate(this.system.sante)
newSante[type] += Number(value)
newSante[type] = Math.max(0, newSante[type])
if (newSante[type] > this.system.sante.base) {
value -= this.system.sante.base - newSante[type]
newSante[type] = this.system.sante.base
} else {
value = 0
}
newSante[type] = Math.min(newSante[type], newSante.base)
if (value && type == "nonletaux") {
newSante["letaux"] += value
}
this.update({ 'system.sante': newSante })
}
}
/* -------------------------------------------- */
incDecAme(value) {
value = Number(value)
if (value) {
let newAme = foundry.utils.duplicate(this.system.ame)
newAme.value += Number(value)
newAme.value = Math.max(0, newAme.value)
newAme.value = Math.min(newAme.value, newAme.currentmax)
this.update({ 'system.ame': newAme })
}
}
/* -------------------------------------------- */
getBonneAventure() {
return this.system.bonneaventure.actuelle
}
/* -------------------------------------------- */
changeBonneAventure(value) {
let newBA = this.system.bonneaventure.actuelle
newBA += value
this.update({ 'system.bonneaventure.actuelle': newBA })
}
/* -------------------------------------------- */
getEclat() {
return this.system.eclat.value
}
/* -------------------------------------------- */
changeEclat(value) {
let newE = this.system.eclat.value
newE += value
this.update({ 'system.eclat.value': newE })
}
/* -------------------------------------------- */
canEclatDoubleD20() {
return (this.getAlignement() == "loyal" && this.system.eclat.value > 0)
}
/* -------------------------------------------- */
subPointsAme(runeMode, value) {
let ame = foundry.utils.duplicate(this.system.ame)
if (runeMode == "prononcer") {
ame.value += value
} else {
ame.currentmax -= value
}
this.update({ 'system.ame': ame })
}
/* -------------------------------------------- */
compareName(a, b) {
if (a.name < b.name) {
@ -112,14 +445,22 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
getAttribute(attrKey) {
return this.data.data.attributes[attrKey];
return this.system.attributes[attrKey]
}
/* -------------------------------------------- */
getBonusDegats() {
if (this.type == "creature") {
return 0
}
return __degatsBonus[this.system.attributs.pui.value]
}
/* -------------------------------------------- */
async equipGear(equipmentId) {
let item = this.data.items.find(item => item.id == equipmentId);
if (item && item.data.data) {
let update = { _id: item.id, "data.equipped": !item.data.data.equipped };
let item = this.items.find(item => item.id == equipmentId);
if (item && item.system.data) {
let update = { _id: item.id, "system.equipped": !item.system.equipped };
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
}
}
@ -127,71 +468,270 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
getSubActors() {
let subActors = [];
for (let id of this.data.data.subactors) {
subActors.push(duplicate(game.actors.get(id)));
for (let id of this.system.subactors) {
subActors.push(foundry.utils.duplicate(game.actors.get(id)));
}
return subActors;
}
/* -------------------------------------------- */
async addSubActor(subActorId) {
let subActors = duplicate(this.data.data.subactors);
let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId);
await this.update({ 'data.subactors': subActors });
await this.update({ 'system.subactors': subActors });
}
/* -------------------------------------------- */
async delSubActor(subActorId) {
let newArray = [];
for (let id of this.data.data.subactors) {
for (let id of this.system.subactors) {
if (id != subActorId) {
newArray.push(id);
}
}
await this.update({ 'data.subactors': newArray });
await this.update({ 'system.subactors': newArray });
}
/* -------------------------------------------- */
async incDecQuantity(objetId, incDec = 0) {
let objetQ = this.data.items.get(objetId)
let objetQ = this.items.get(objetId)
if (objetQ) {
let newQ = objetQ.data.data.quantity + incDec;
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.quantity': newQ }]); // pdates one EmbeddedEntity
let newQ = objetQ.system.quantite + incDec;
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.quantite': newQ }]); // pdates one EmbeddedEntity
}
}
/* -------------------------------------------- */
getCompetence(compId) {
return this.items.get(compId)
}
/* -------------------------------------------- */
async setPredilectionUsed(compId, predIdx) {
let comp = this.items.get(compId)
let pred = foundry.utils.duplicate(comp.system.predilections)
pred[predIdx].used = true
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
}
/* -------------------------------------------- */
getInitiativeScore() {
return Number(this.system.attributs.adr.value) + Number(this.system.combat.initbonus)
}
/* -------------------------------------------- */
getBestDefenseValue() {
let defenseList = this.items.filter(item => (item.type == "arme" || item.type == "bouclier") && item.system.equipped)
let maxDef = 0
let bestArme
for (let arme of defenseList) {
if (arme.type == "arme" && arme.system.isdefense) {
arme = this.prepareArme(arme)
}
if (arme.type == "bouclier") {
arme = this.prepareBouclier(arme)
}
if (arme.system.totalDefensif > maxDef) {
maxDef = arme.system.totalDefensif
bestArme = foundry.utils.duplicate(arme)
}
}
return bestArme
}
/* -------------------------------------------- */
depenseRessources(arme) {
if (arme.system.nbressources && Number(arme.system.nbressources) > 0) {
if (this.type == "creature") {
let ressources = foundry.utils.duplicate(this.system.ressources)
if (Number(ressources.value) >= Number(arme.system.nbressources)) {
ressources.value -= arme.system.nbressources
this.update({ 'system.ressources': ressources })
ChatMessage.create({
content: "L'utilisation de la capacité/arme a dépensé " + arme.system.nbressources + " ressources.",
whisper: game.user._id,
user: game.user._id
});
} else {
ui.notifications.warn("Points de ressources insuffisants.")
}
} else {
ui.notifications.warn("Les ressources ne sont pas disponibles pour les personnages.")
}
}
}
/* -------------------------------------------- */
getCommonRollData(statKey = undefined, useShield = false) {
getCommonRollData(attrKey = undefined, compId = undefined, compName = undefined) {
let rollData = MournbladeUtility.getBasicRollData()
rollData.alias = this.name
rollData.actorImg = this.img
rollData.actorId = this.id
rollData.tokenId = this.token?.id
rollData.img = this.img
rollData.activePerks = duplicate(this.getActivePerks())
if (statKey) {
rollData.statKey = statKey
rollData.stat = this.getStat(statKey)
rollData.statDicesLevel = rollData.stat.value
rollData.statMod = rollData.stat.mod
rollData.specList = this.getRelevantSpec(statKey)
rollData.selectedSpec = "0"
rollData.canEclatDoubleD20 = this.canEclatDoubleD20()
rollData.doubleD20 = false
rollData.attributs = MournbladeUtility.getAttributs()
rollData.selectDifficulte = true
rollData.malusSante = this.getStatusMalus() + this.system.sante.malusmanuel
rollData.malusAme = this.getAmeMalus()
rollData.modifiers = this.getModifiersForRoll()
rollData.desavantages = {}
rollData.isMonte = this.system.combat.monte
if (rollData.isMonte) {
rollData.config.attaques["chargecavalerie"] = "Charge de cavalerie"
}
this.addEffects(rollData)
this.addArmorsShields(rollData, statKey, useShield)
this.addWeapons(rollData, statKey, useShield)
this.addEquipments(rollData, statKey)
if (attrKey) {
rollData.attrKey = attrKey
if (attrKey != "tochoose") {
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
rollData.attr = foundry.utils.duplicate(this.system.attributs[attrKey])
}
}
if (compId) {
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
rollData.actionImg = rollData.competence?.img
}
if (compName) {
rollData.competence = foundry.utils.duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
rollData.actionImg = rollData.competence?.img
}
return rollData
}
/* -------------------------------------------- */
async startRoll(rollData) {
this.syncRoll(rollData);
//console.log("ROLL DATA", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData);
console.log(rollDialog);
rollDialog.render(true);
async rollAttribut(attrKey) {
let rollData = this.getCommonRollData(attrKey)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollCompetence(attrKey, compId) {
let rollData = this.getCommonRollData(attrKey, compId)
console.log("RollDatra", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollRune(runeId) {
let comp = this.items.find(comp => comp.type == "competence" && comp.name.toLowerCase() == "savoir : runes")
if (!comp) {
ui.notifications.warn("La compétence Savoirs : Runes n'a pas été trouvée, abandon.")
return
}
let rollData = this.getCommonRollData("cla", undefined, "Savoir : Runes")
rollData.rune = foundry.utils.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 MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollArmeOffensif(armeId) {
let arme = this.items.get(armeId)
if (arme.type == "arme") {
arme = this.prepareArme(arme)
}
if (arme.type == "bouclier") {
arme = this.prepareBouclier(arme)
}
let rollData = this.getCommonRollData(arme.system.attrKey, arme.system.competence._id)
rollData.arme = arme
rollData.typeAttaque = "assaut"
rollData.typeCouvert = "aucun"
rollData.hasDesavantageBonus = true
rollData.visee = false
rollData.ciblecourt = false
rollData.cibleconsciente = false
// Do not display difficulte if defense weapon or distance
if (rollData.armeDefense || rollData.arme.system.isDistance) {
rollData.selectDifficulte = false
rollData.difficulte = (rollData.arme.system.isDistance) ? 0 : rollData.difficulte
}
console.log("ARME!", rollData)
this.depenseRessources(arme)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollAssomer() {
let rollData = this.getCommonRollData("adr", undefined, "Filouterie")
rollData.typeAttaque = "assomer"
rollData.typeCouvert = "aucun"
rollData.hasDesavantageBonus = true
if (rollData.defender) {
rollData.selectDifficulte = false
rollData.difficulte = rollData.defender.system.attributs.tre.value * 2
}
console.log("Assomer!", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollFuir() {
let rollData = this.getCommonRollData("adr", undefined, "Mouvements")
rollData.typeAttaque = "fuir"
rollData.typeCouvert = "aucun"
rollData.hasDesavantageBonus = true
if (rollData.defender) {
rollData.selectDifficulte = false
let comp = rollData.defender.items.find(it => it.type == "competence" && it.name.toLowerCase() == "mouvements")
rollData.difficulte = rollData.defender.system.attributs.adr.value + ((comp) ? comp.system.niveau : rollData.defender.system.attributs.adr.value)
}
console.log("Fuir!", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollImmobiliser() {
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
rollData.typeAttaque = "immobiliser"
rollData.typeCouvert = "aucun"
rollData.hasDesavantageBonus = true
if (rollData.defender) {
rollData.selectDifficulte = false
rollData.difficulte = rollData.defenderCombatValues.defenseTotal
}
console.log("Immobiliser!", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollArmeSpecial(armeId) {
let arme = this.items.get(armeId)
if (arme) {
MournbladeUtility.createChatWithRollMode("GM", {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-display-description.html`, arme)
}, arme)
this.depenseRessources(arme)
}
}
/* -------------------------------------------- */
async rollArmeDegats(armeId) {
let arme = this.items.get(armeId)
if (arme.type == "arme") {
arme = this.prepareArme(arme)
}
if (arme.type == "bouclier") {
arme = this.prepareBouclier(arme)
}
rollData.degatsFormula = arme.system.totalDegats
let roll = new Roll(arme.system.totalDegats).roll({ async: false })
await MournbladeUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
let rollData = {
arme: arme,
finalResult: roll.total,
alias: this.name,
actorImg: this.img,
actorId: this.id,
actionImg: arme.img,
}
MournbladeUtility.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-degats-result.html`, rollData)
})
}
}

View File

@ -9,8 +9,11 @@ export class MournbladeCombat extends Combat {
for (let cId = 0; cId < ids.length; cId++) {
const c = this.combatants.get(ids[cId]);
let id = c._id || c.id;
let initBonus = c.actor ? c.actor.getInitiativeScore( this.id, id ) : -1;
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initBonus } ]);
let initBonus = c.actor ? c.actor.getInitiativeScore() : 0
let roll = new Roll("1d10 + "+initBonus).roll({ async: false})
await MournbladeUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
//console.log("Init bonus", initBonus, roll.total)
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: roll.total } ]);
}
return this;

View File

@ -0,0 +1,71 @@
export const MOURNBLADE_CONFIG = {
attaques: {
assaut: "Assaut",
precise: "Attaque Précise",
feinte: "Feinte",
coupbas: "Coup Bas",
charger: "Charger",
contenir: "Contenir l'adversaire",
desarmer: "Désarmer"
},
couverts: {
aucun: { name: "Aucun", value: 0 },
rondache: { name: "Rondache ou léger (-2)", value: -2 },
pavois: { name: "Pavois ou à moitié (-5)", value: -5 },
complet: { name: "Quasi complet (-10)", value: -10 },
},
modifierTypes: {
aucun: { name: "Aucun", value: 0 },
roll: { name: "Jet", value: 0 },
degats: { name: "Dégats", value: 0 },
defense: { name: "Capacité défensive", value: 0 },
attaque: { name: "Capacité offensive", value: 0 },
},
listeNiveau: {
},
listeNiveauCreature: {
},
listePortees: {
"10": "Moins que courte (10)",
"15": "Courte et + (15)",
"20": "Moyenne et + (20)",
"25": "Longue et + (25)"
},
modificateurOptions: {},
pointsAmeOptions: {},
difficulteOptions: {
"0": "Aucune/Inconnue",
"5": "Facile (5)",
"10": "Moyenne (10)",
"15": "Ardue (15)",
"20": "Hasardeuse (20)",
"25": "Insensée (25)",
"30": "Pure Folie (30)"
},
attributs: {
adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe"
},
lancementRuneOptions: {
prononcer: "Prononcer la rune",
inscrire: "Inscrire la rune"
},
effetRuneOptions: {
prononcee: "Prononcée",
inscrite: "Inscrite"
},
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)"
},
allegeanceOptions: {
tous: "Tous",
chaos: "Chaos",
loi: "Loi",
betes: "Seigneurs des Bêtes",
elementaires: "Seigneurs Elementaires"
},
};

View File

@ -0,0 +1,25 @@
/**
* Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet}
*/
import { MournbladeActorSheet } from "./mournblade-actor-sheet.js";
import { MournbladeUtility } from "./mournblade-utility.js";
/* -------------------------------------------- */
export class MournbladeCreatureSheet extends MournbladeActorSheet {
/** @override */
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-mournblade", "sheet", "actor"],
template: "systems/fvtt-mournblade/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
})
}
}

View File

@ -9,7 +9,7 @@ export class MournbladeItemSheet extends ItemSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-mournblade", "sheet", "item"],
template: "systems/fvtt-mournblade/templates/item-sheet.html",
dragDrop: [{ dragSelector: null, dropSelector: null }],
@ -48,9 +48,8 @@ export class MournbladeItemSheet extends ItemSheet {
/* -------------------------------------------- */
async getData() {
const objectData = MournbladeUtility.data(this.object);
let itemData = foundry.utils.deepClone(MournbladeUtility.templateData(this.object));
const objectData = foundry.utils.duplicate(this.object)
let itemData = objectData
let formData = {
title: this.title,
id: this.id,
@ -60,15 +59,20 @@ export class MournbladeItemSheet extends ItemSheet {
editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked",
attributs: MournbladeUtility.getAttributs(),
data: itemData,
data: itemData.system,
limited: this.object.limited,
options: this.options,
owner: this.document.isOwner,
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
config: game.system.mournblade.config,
mr: (this.object.type == 'specialisation'),
isGM: game.user.isGM
}
this.options.editable = !(this.object.data.origin == "embeddedItem");
if ( objectData.type == "don") {
formData.sacrifice = await TextEditor.enrichHTML(this.object.system.sacrifice, {async: true})
}
//this.options.editable = !(this.object.origin == "embeddedItem");
console.log("ITEM DATA", formData, this);
return formData;
}
@ -87,7 +91,7 @@ export class MournbladeItemSheet extends ItemSheet {
/* -------------------------------------------- */
postItem() {
let chatData = duplicate(MournbladeUtility.data(this.item));
let chatData = foundry.utils.duplicate(MournbladeUtility.data(this.item));
if (this.actor) {
chatData.actor = { id: this.actor.id };
}
@ -119,26 +123,40 @@ export class MournbladeItemSheet extends ItemSheet {
// Update Inventory Item
html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item");
const item = this.object.options.actor.getOwnedItem(li.data("item-id"));
const li = $(ev.currentTarget).parents(".item")
const item = this.object.options.actor.getOwnedItem(li.data("item-id"))
item.sheet.render(true);
});
html.find('.delete-spec').click(ev => {
this.object.update({ "data.specialisation": [{ name: 'None' }] });
});
html.find('.delete-subitem').click(ev => {
this.deleteSubitem(ev);
});
html.find('.stat-choice-flag').click(ev => {
let idx = $(ev.currentTarget).data("stat-idx");
let array = duplicate(this.object.data.data.statincreasechoice);
array[Number(idx)].flag = !array[Number(idx)].flag;
this.object.update({ "data.statincreasechoice": array });
});
})
html.find('.edit-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred[index].name = ev.currentTarget.value
this.object.update( { 'system.predilections': pred })
})
html.find('.delete-prediction').click(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred.splice(index,1)
this.object.update( { 'system.predilections': pred })
})
html.find('.use-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred[index].used = ev.currentTarget.checked
this.object.update( { 'system.predilections': pred })
})
html.find('#add-predilection').click(ev => {
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred.push( { name: "Nouvelle prédilection", id: randomID(), used: false })
this.object.update( { 'system.predilections': pred })
})
// Update Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
@ -146,14 +164,6 @@ export class MournbladeItemSheet extends ItemSheet {
let itemType = li.data("item-type");
});
html.find('.view-subitem').click(ev => {
this.viewSubitem(ev);
});
html.find('.view-spec').click(ev => {
this.manageSpec();
});
}
/* -------------------------------------------- */

View File

@ -1,6 +1,20 @@
import { MournbladeUtility } from "./mournblade-utility.js";
export const defaultItemImg = {
competence: "systems/fvtt-mournblade/assets/icons/competence.webp",
arme: "systems/fvtt-mournblade/assets/icons/arme.webp",
capacite: "systems/fvtt-mournblade/assets/icons/capacite.webp",
don: "systems/fvtt-mournblade/assets/icons/don.webp",
equipement: "systems/fvtt-mournblade/assets/icons/equipement.webp",
monnaie: "systems/fvtt-mournblade/assets/icons/monnaie.webp",
pacte: "systems/fvtt-mournblade/assets/icons/pacte.webp",
predilection: "systems/fvtt-mournblade/assets/icons/predilection.webp",
protection: "systems/fvtt-mournblade/assets/icons/protection.webp",
rune: "systems/fvtt-mournblade/assets/icons/rune.webp",
runeeffect: "systems/fvtt-mournblade/assets/icons/rune.webp",
tendance: "systems/fvtt-mournblade/assets/icons/tendance.webp",
traitchaotique: "systems/fvtt-mournblade/assets/icons/traitchaotique.webp",
traitespece: "systems/fvtt-mournblade/assets/icons/capacite.webp"
}
/**

View File

@ -11,10 +11,11 @@
import { MournbladeActor } from "./mournblade-actor.js";
import { MournbladeItemSheet } from "./mournblade-item-sheet.js";
import { MournbladeActorSheet } from "./mournblade-actor-sheet.js";
//import { MournbladeNPCSheet } from "./mournblade-npc-sheet.js";
import { MournbladeCreatureSheet } from "./mournblade-creature-sheet.js";
import { MournbladeUtility } from "./mournblade-utility.js";
import { MournbladeCombat } from "./mournblade-combat.js";
import { MournbladeItem } from "./mournblade-item.js";
import { MOURNBLADE_CONFIG } from "./mournblade-config.js";
/* -------------------------------------------- */
/* Foundry VTT Initialization */
@ -45,16 +46,18 @@ Hooks.once("init", async function () {
CONFIG.Combat.documentClass = MournbladeCombat
CONFIG.Actor.documentClass = MournbladeActor
CONFIG.Item.documentClass = MournbladeItem
game.system.mournblade = { }
game.system.mournblade = {
config : MOURNBLADE_CONFIG,
}
/* -------------------------------------------- */
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-mournblade", MournbladeActorSheet, { types: ["character"], makeDefault: true });
//Actors.registerSheet("fvtt-mournblade", MournbladeNPCSheet, { types: ["npc"], makeDefault: false });
Actors.registerSheet("fvtt-mournblade", MournbladeActorSheet, { types: ["personnage"], makeDefault: true })
Actors.registerSheet("fvtt-mournblade", MournbladeCreatureSheet, { types: ["creature"], makeDefault: true })
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-mournblade", MournbladeItemSheet, { makeDefault: true });
Items.registerSheet("fvtt-mournblade", MournbladeItemSheet, { makeDefault: true })
MournbladeUtility.init();
@ -66,10 +69,24 @@ function welcomeMessage() {
user: game.user.id,
whisper: [game.user.id],
content: `<div id="welcome-message-Mournblade"><span class="rdd-roll-part">
<strong>Welcome to Mournblade RPG.</strong>
<strong>Bienvenue dans les Jeunes Royaumes de Mournblade !</strong>
<p>Les livres de Mournblade sont nécessaires pour jouer : https://www.titam-france.fr</p>
<p>Mournblade 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>
` });
}
/* -------------------------------------------- */
async function importDefaultScene() {
let exists = game.scenes.find(j => j.name == "Accueil");
if (!exists) {
const scenes = await MournbladeUtility.loadCompendium("fvtt-mournblade.scenes")
let newDocuments = scenes.filter(i => i.name == "Accueil");
await game.scenes.documentClass.create(newDocuments);
game.scenes.find(i => i.name == "Accueil").activate();
}
}
/* -------------------------------------------- */
/* Foundry VTT Initialization */
/* -------------------------------------------- */
@ -78,19 +95,28 @@ Hooks.once("ready", function () {
MournbladeUtility.ready();
// User warning
if (!game.user.isGM && game.user.character == undefined) {
ui.notifications.info("Warning ! No character linked to your user !");
ui.notifications.info("Attention ! Aucun personnage n'est relié au joueur !");
ChatMessage.create({
content: "<b>WARNING</b> The player " + game.user.name + " is not linked to a character !",
content: "<b>ATTENTION</b> Le joueur " + game.user.name + " n'est relié à aucun personnage !",
user: game.user._id
});
}
// CSS patch for v9
if (game.version) {
let sidebar = document.getElementById("sidebar");
sidebar.style.width = "min-content";
if (!game.user.isGM && game.user.character && !game.user.character.prototypeToken.actorLink) {
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.")
)
importDefaultScene();
welcomeMessage();
});

View File

@ -5,7 +5,7 @@ export class MournbladeRollDialog extends Dialog {
/* -------------------------------------------- */
static async create(actor, rollData ) {
let options = { classes: ["MournbladeDialog"], width: 620, height: 380, 'z-index': 99999 };
let options = { classes: ["MournbladeDialog"], width: 340, height: 'fit-content', 'z-index': 99999 };
let html = await renderTemplate('systems/fvtt-mournblade/templates/roll-dialog-generic.html', rollData);
return new MournbladeRollDialog(actor, rollData, html, options );
@ -14,17 +14,22 @@ export class MournbladeRollDialog extends Dialog {
/* -------------------------------------------- */
constructor(actor, rollData, html, options, close = undefined) {
let conf = {
title: (rollData.mode == "skill") ? "Skill" : "Roll",
title: "Test de Capacité",
content: html,
buttons: {
roll: {
rolld10: {
icon: '<i class="fas fa-check"></i>',
label: "Roll !",
callback: () => { this.roll() }
label: "Lancer 1d10",
callback: () => { this.roll("1d10") }
},
rolld20: {
icon: '<i class="fas fa-check"></i>',
label: "Lancer 1d20",
callback: () => { this.roll("1d20") }
},
cancel: {
icon: '<i class="fas fa-times"></i>',
label: "Cancel",
label: "Annuler",
callback: () => { this.close() }
} },
close: close
@ -32,208 +37,84 @@ export class MournbladeRollDialog extends Dialog {
super(conf, options);
this.actor = actor;
this.rollData = rollData;
this.actor = actor
this.rollData = rollData
}
/* -------------------------------------------- */
roll () {
roll ( dice) {
this.rollData.mainDice = dice
MournbladeUtility.rollMournblade( this.rollData )
}
/* -------------------------------------------- */
manageEffects( effectIdx, toggled) {
let effect = this.rollData.effectsList[effectIdx]
if (effect) {
effect.applied = toggled
let level, genre, idVal
if (effect.type == 'hindrance' ) {
level = effect.value
genre = 'positive'
idVal = "#hindranceDicesLevel"
}
if (effect.type == 'effect' ) {
let effectData = effect.effect
level = effectData.data.effectlevel
genre = effectData.data.genre
effectData.data.isUsed = toggled
if (effectData.data.bonusdice) {
idVal = "#bonusDicesLevel"
}
if (effectData.data.reducedicevalue || effectData.data.statdice) {
idVal = "#statDicesLevel"
}
if (effectData.data.otherdice) {
idVal = "#otherDicesLevel"
}
if (effectData.data.hindrance) {
idVal = "#hindranceDicesLevel"
genre = 'positive' // Dynamic fix
}
}
// Now process the dice level update
let newLevel = Number($(idVal).val())
console.log("Ongoing", newLevel, toggled, idVal )
if (toggled) {
if ( genre == 'positive') {
newLevel += Number(level)
}else {
newLevel -= Number(level)
}
}else {
if ( genre == 'positive') {
newLevel -= Number(level)
}else {
newLevel += Number(level)
}
}
newLevel = (newLevel<0) ? 0 : newLevel
$(idVal).val(newLevel)
}
//console.log("Effect", effect, toggled)
this.rollData.statDicesLevel = Number($('#statDicesLevel').val())
this.rollData.specDicesLevel = Number($('#specDicesLevel').val())
this.rollData.bonusDicesLevel = Number($('#bonusDicesLevel').val())
this.rollData.hindranceDicesLevel = Number($('#hindranceDicesLevel').val())
this.rollData.otherDicesLevel = Number($('#otherDicesLevel').val())
}
/* -------------------------------------------- */
manageArmors( armorIdx, toggled) {
let armor = this.rollData.armorsList[armorIdx]
if (armor) {
armor.applied = toggled
if (armor.type == 'other' ) {
if (toggled) {
this.rollData.otherDicesLevel += Number(armor.value)
} else {
this.rollData.otherDicesLevel -= Number(armor.value)
this.rollData.otherDicesLevel = (this.rollData.otherDicesLevel<0) ? 0 : this.rollData.otherDicesLevel
}
$("#otherDicesLevel").val(this.rollData.otherDicesLevel)
}
}
console.log("Armor", armorIdx, toggled)
}
/* -------------------------------------------- */
manageWeapons( weaponIdx, toggled) {
let weapon = this.rollData.weaponsList[weaponIdx]
if (weapon) {
if (toggled) {
this.rollData.weaponName = weapon.weapon.name
} else {
this.rollData.weaponName = undefined
}
weapon.applied = toggled
if (weapon.type == 'damage' || weapon.type == 'enhanced' ) {
if (toggled) {
this.rollData.otherDicesLevel += Number(weapon.value)
} else {
this.rollData.weaponName = undefined
this.rollData.otherDicesLevel -= Number(weapon.value)
this.rollData.otherDicesLevel = (this.rollData.otherDicesLevel<0) ? 0 : this.rollData.otherDicesLevel
}
$("#otherDicesLevel").val(this.rollData.otherDicesLevel)
}
}
console.log("Weapon", weaponIdx, toggled, this.rollData.otherDicesLevel, weapon)
}
/* -------------------------------------------- */
manageEquip( equipIdx, toggled) {
let equip = this.rollData.equipmentsList[equipIdx]
if (equip) {
equip.applied = toggled
let idVal = "#otherDicesLevel" // Default
if (equip.equip.data.bonusdice) {
idVal = "#bonusDicesLevel"
}
if (equip.equip.data.statdice) {
idVal = "#statDicesLevel"
}
if (equip.equip.data.otherdice) {
idVal = "#otherDicesLevel"
}
let newLevel = Number($(idVal).val())
if (toggled) {
newLevel += Number(equip.value)
} else {
newLevel -= Number(equip.value)
}
newLevel = (newLevel <0) ? 0 : newLevel
$(idVal).val(newLevel)
// Then refresh
this.rollData.statDicesLevel = Number($('#statDicesLevel').val())
this.rollData.specDicesLevel = Number($('#specDicesLevel').val())
this.rollData.bonusDicesLevel = Number($('#bonusDicesLevel').val())
this.rollData.hindranceDicesLevel = Number($('#hindranceDicesLevel').val())
this.rollData.otherDicesLevel = Number($('#otherDicesLevel').val())
}
}
/* -------------------------------------------- */
activateListeners(html) {
super.activateListeners(html);
var dialog = this;
function onLoad() {
}
$(function () { onLoad(); });
html.find('.apply-modifier').change(async (event) => {
let modifierIdx = $(event.currentTarget).data("modifier-idx")
let modifier = this.rollData.modifiers[modifierIdx]
modifier.system.apply = event.currentTarget.checked
})
html.find('#modificateur').change(async (event) => {
this.rollData.modificateur = Number(event.currentTarget.value)
})
html.find('#typeAttaque').change(async (event) => {
this.rollData.typeAttaque = String(event.currentTarget.value)
})
html.find('#difficulte').change(async (event) => {
this.rollData.difficulte = Number(event.currentTarget.value)
})
html.find('#attrKey').change(async (event) => {
this.rollData.attrKey = String(event.currentTarget.value)
})
html.find('#runemode').change(async (event) => {
this.rollData.runemode = String(event.currentTarget.value)
})
html.find('#runeame').change(async (event) => {
this.rollData.runeame = Number(event.currentTarget.value)
})
html.find('#isMonte').change(async (event) => {
this.rollData.desavantages.isMonte = event.currentTarget.checked
})
html.find('#specList').change(async (event) => {
this.rollData.selectedSpec = event.currentTarget.value
let spec = this.rollData.specList.find(item => item._id == this.rollData.selectedSpec)
if ( spec) {
this.rollData.specDiceLevel = spec.data.level
this.rollData.specName = spec.name
$('#specDicesLevel').val(this.rollData.specDiceLevel)
} else {
this.rollData.specName = undefined
$('#specDicesLevel').val(0)
}
const content = await renderTemplate("systems/fvtt-Mournblade-rpg/templates/roll-dialog-generic.html", this.rollData)
this.data.content = content
this.render(true)
});
html.find('#statDicesLevel').change((event) => {
this.rollData.statDicesLevel = Number(event.currentTarget.value)
});
html.find('#specDicesLevel').change((event) => {
this.rollData.specDicesLevel = Number(event.currentTarget.value)
});
html.find('#bonusDicesLevel').change((event) => {
this.rollData.bonusDicesLevel = Number(event.currentTarget.value)
});
html.find('#hindranceDicesLevel').change((event) => {
this.rollData.hindranceDicesLevel = Number(event.currentTarget.value)
});
html.find('#otherDicesLevel').change((event) => {
this.rollData.otherDicesLevel = Number(event.currentTarget.value)
});
html.find('.effect-clicked').change((event) => {
let toggled = event.currentTarget.checked
let effectIdx = $(event.currentTarget).data("effect-idx")
this.manageEffects( effectIdx, toggled)
});
html.find('.armor-clicked').change((event) => {
let toggled = event.currentTarget.checked
let armorIdx = $(event.currentTarget).data("armor-idx")
this.manageArmors( armorIdx, toggled)
});
html.find('.weapon-clicked').change((event) => {
let toggled = event.currentTarget.checked
let weaponIdx = $(event.currentTarget).data("weapon-idx")
this.manageWeapons( weaponIdx, toggled)
});
html.find('.equip-clicked').change((event) => {
let toggled = event.currentTarget.checked
let equipIdx = $(event.currentTarget).data("equip-idx")
this.manageEquip( equipIdx, toggled)
});
html.find('#cibleausol').change(async (event) => {
this.rollData.desavantages.cibleausol = event.currentTarget.checked
})
html.find('#cibledesarmee').change(async (event) => {
this.rollData.desavantages.cibledesarmee = event.currentTarget.checked
})
html.find('#ciblerestreint').change(async (event) => {
this.rollData.desavantages.ciblerestreint = event.currentTarget.checked
})
html.find('#cibleimmobilisée').change(async (event) => {
this.rollData.desavantages.cibleimmobilisée = event.currentTarget.checked
})
html.find('#ciblesurplomb').change(async (event) => {
this.rollData.desavantages.ciblesurplomb = event.currentTarget.checked
})
html.find('#doubleD20').change(async (event) => {
this.rollData.doubleD20 = event.currentTarget.checked
})
html.find('#visee').change(async (event) => {
this.rollData.visee = event.currentTarget.checked
})
html.find('#cibleconsciente').change(async (event) => {
this.rollData.cibleconsciente = event.currentTarget.checked
})
html.find('#ciblecourt').change(async (event) => {
this.rollData.ciblecourt = event.currentTarget.checked
})
html.find('#typeCouvert').change(async (event) => {
this.rollData.typeCouvert = String(event.currentTarget.value)
})
}
}

View File

@ -8,10 +8,13 @@ export class MournbladeUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => MournbladeUtility.chatListeners(html));
Hooks.on('renderChatLog', (log, html, data) => MournbladeUtility.chatListeners(html))
Hooks.on("getChatLogEntryContext", (html, options) => MournbladeUtility.chatRollMenu(html, options))
Hooks.on('renderChatMessage', (message, html, data) => MournbladeUtility.chatMessageHandler(message, html, data))
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
MournbladeUtility.pushInitiativeOptions(html, options);
});
})
Hooks.on("dropCanvasData", (canvas, data) => {
MournbladeUtility.dropItemOnToken(canvas, data)
});
@ -22,26 +25,50 @@ export class MournbladeUtility {
Handlebars.registerHelper('count', function (list) {
return list.length;
});
})
Handlebars.registerHelper('includes', function (array, val) {
return array.includes(val);
});
})
Handlebars.registerHelper('upper', function (text) {
return text.toUpperCase();
});
})
Handlebars.registerHelper('lower', function (text) {
return text.toLowerCase()
})
Handlebars.registerHelper('upperFirst', function (text) {
if (typeof text !== 'string') return text
return text.charAt(0).toUpperCase() + text.slice(1)
});
})
Handlebars.registerHelper('notEmpty', function (list) {
return list.length > 0;
});
})
Handlebars.registerHelper('mul', function (a, b) {
return parseInt(a) * parseInt(b);
})
}
/* -------------------------------------------- */
static getActorFromRollData(rollData) {
let actor = game.actors.get(rollData.actorId)
if (rollData.tokenId) {
let token = canvas.tokens.placeables.find(t => t.id == rollData.tokenId)
if (token) {
actor = token.actor
}
}
return actor
}
/* -------------------------------------------- */
static sortArrayObjectsByName(myArray) {
myArray.sort((a, b) => {
return a.name.localeCompare(b.name);
})
}
/* -------------------------------------------- */
static getAttributs() {
return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe"}
return game.system.mournblade.config.attributs
}
/* -------------------------------------------- */
static pushInitiativeOptions(html, options) {
@ -56,6 +83,11 @@ export class MournbladeUtility {
static async ready() {
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
this.skills = skills.map(i => i.toObject())
game.system.mournblade.config.listeNiveauSkill = MournbladeUtility.createDirectOptionList(0, 10)
game.system.mournblade.config.listeNiveauCreature = MournbladeUtility.createDirectOptionList(0, 35)
game.system.mournblade.config.modificateurOptions = MournbladeUtility.createArrayOptionList(-15, 15)
game.system.mournblade.config.pointsAmeOptions = MournbladeUtility.createDirectOptionList(0, 20)
}
/* -------------------------------------------- */
@ -74,20 +106,68 @@ export class MournbladeUtility {
static getOptionsStatusList() {
return this.optionsStatusList;
}
/* -------------------------------------------- */
static getPredilection(comp, predIdx) {
let pred = foundry.utils.duplicate(comp.system.predilections)
return foundry.utils.duplicate(pred[predIdx] || { name: "Error!" })
}
/* -------------------------------------------- */
static async chatMessageHandler(message, html, data) {
const chatCard = html.find('.action-section')
if (chatCard.length > 0) {
// If the user is the message author or the actor owner, proceed
const actor = game.actors.get(data.message.speaker.actor)
// DEBUG : console.log("FOUND 1!!! ", actor, data.message)
if (actor?.isOwner || game.user.isGM) {
return
}
chatCard.hide()
}
}
/* -------------------------------------------- */
static async chatListeners(html) {
html.on("click", '.view-item-from-chat', event => {
game.system.Mournblade.creator.openItemView(event)
});
html.on("click", '.predilection-reroll', async event => {
let predIdx = $(event.currentTarget).data("predilection-index")
let messageId = MournbladeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
rollData.predilectionUsed = MournbladeUtility.getPredilection(rollData.competence, predIdx)
await MournbladeUtility.rollMournblade(rollData)
})
html.on("click", '.arme-roll-degats', async event => {
let messageId = MournbladeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "mournblade-roll")
MournbladeUtility.rollDegatsFromAttaque(rollData)
})
html.on("click", '.arme-apply-degats', async event => {
let messageId = MournbladeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "mournblade-roll")
if (game.user.isGM) {
MournbladeUtility.applyDegatsFromAttaque(rollData)
} else {
game.socket.emit("system.fvtt-mournblade", { name: "msg_apply_damage", data: { rolLData: rollData } })
}
})
}
/* -------------------------------------------- */
static async preloadHandlebarsTemplates() {
const templatePaths = [
'systems/fvtt-mournblade/templates/editor-notes-gm.html',
'systems/fvtt-mournblade/templates/partial-item-description.html'
'systems/fvtt-mournblade/templates/editor-notes-gm.html',
'systems/fvtt-mournblade/templates/partial-item-description.html'
]
return loadTemplates(templatePaths);
}
@ -108,7 +188,7 @@ export class MournbladeUtility {
}
static findChatMessage(current) {
return MournbladeUtility.findNodeMatching(current, it => it.classList.contains('chat-message') && it.attributes.getNamedItem('data-message-id'));
return MournbladeUtility.findNodeMatching(current, it => it.classList.contains('chat-message') && it.attributes.getNamedItem('data-message-id'))
}
static findNodeMatching(current, predicate) {
@ -121,19 +201,6 @@ export class MournbladeUtility {
return undefined;
}
/* -------------------------------------------- */
static templateData(it) {
return MournbladeUtility.data(it)?.data ?? {}
}
/* -------------------------------------------- */
static data(it) {
if (it instanceof Actor || it instanceof Item || it instanceof Combatant) {
return it.data;
}
return it;
}
/* -------------------------------------------- */
static createDirectOptionList(min, max) {
let options = {};
@ -142,12 +209,10 @@ export class MournbladeUtility {
}
return options;
}
/* -------------------------------------------- */
static buildListOptions(min, max) {
let options = ""
static createArrayOptionList(min, max) {
let options = [];
for (let i = min; i <= max; i++) {
options += `<option value="${i}">${i}</option>`
options.push({key:`${i}`, label:`${i}`});
}
return options;
}
@ -162,27 +227,6 @@ export class MournbladeUtility {
return undefined;
}
/* -------------------------------------------- */
static getDefenseState(actorId) {
return this.defenderStore[actorId];
}
/* -------------------------------------------- */
static updateRollData(rollData) {
let id = rollData.rollId;
let oldRollData = this.rollDataStore[id] || {};
let newRollData = mergeObject(oldRollData, rollData);
this.rollDataStore[id] = newRollData;
}
/* -------------------------------------------- */
static saveRollData(rollData) {
game.socket.emit("system.Mournblade-rpg", {
name: "msg_update_roll", data: rollData
}); // Notify all other clients of the roll
this.updateRollData(rollData);
}
/* -------------------------------------------- */
static getRollData(id) {
return this.rollDataStore[id];
@ -190,12 +234,10 @@ export class MournbladeUtility {
/* -------------------------------------------- */
static onSocketMesssage(msg) {
//console.log("SOCKET MESSAGE", msg.name, game.user.character.id, msg.data.defenderId);
if (msg.name == "msg_update_defense_state") {
this.updateDefenseState(msg.data.defenderId, msg.data.rollId);
}
if (msg.name == "msg_update_roll") {
this.updateRollData(msg.data);
if (msg.name == "msg_apply_damage") {
if (game.user.isGM) {
this.applyDegatsFromAttaque(msg.data.rollData);
}
}
}
@ -244,21 +286,302 @@ export class MournbladeUtility {
}
}
/* -------------------------------------------- */
static computeResult(rollData) {
if (rollData.mainDice == "1d20") {
let diceValue = rollData.roll.terms[0].results[0].result
diceValue *= (rollData.doubleD20) ? 2 : 1
//console.log("PAIR/IMP", diceValue)
if (diceValue % 2 == 1) {
//console.log("PAIR/IMP2", diceValue)
rollData.finalResult -= rollData.roll.terms[0].results[0].result // Substract value
if (diceValue == 1 || diceValue == 11) {
rollData.isDramatique = true
rollData.isSuccess = false
}
}
}
//console.log("Result : ", rollData)
if (rollData.difficulte > 0 && !rollData.isDramatique) {
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
rollData.isPureSuccess = (rollData.isSuccess && !rollData.isHeroique)
}
}
/* -------------------------------------------- */
static async rollMournblade(rollData) {
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-Mournblade-rpg/templates/chat-generic-result.html`, rollData)
});
let actor = MournbladeUtility.getActorFromRollData(rollData)
if (rollData.attrKey == "tochoose") { // No attr selected, force address
rollData.attrKey = "adr"
}
if (!rollData.attr) {
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
rollData.attr = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey])
}
rollData.diceFormula = rollData.mainDice
if (rollData.doubleD20) { // Multiply result !
rollData.diceFormula += "*2"
if (!rollData.isReroll) {
actor.changeEclat(-1)
}
}
//console.log("BEFORE COMP", rollData)
if (rollData.competence) {
rollData.predilections = foundry.utils.duplicate(rollData.competence.system.predilections)
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
} else {
rollData.diceFormula += `+${rollData.attr.value}*2+${rollData.modificateur}`
}
rollData.diceFormula += `+${rollData.malusSante}+${rollData.malusAme}`
if (rollData.arme?.type == "arme") {
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
}
// Apply modifiers
for (let modifier of rollData.modifiers) {
if (modifier.system.modifiertype == "roll" && modifier.system.apply) {
rollData.diceFormula += `+${modifier.system.value}`
}
}
// Apply desavantages
let desavantagesBonus = 0
for (let desavantage in rollData.desavantages) {
if (rollData.desavantages[desavantage]) {
desavantagesBonus += 5
}
}
desavantagesBonus = Math.min(15, desavantagesBonus)
rollData.diceFormula += `+${desavantagesBonus}`
// Monté ?
if (rollData.isMonte) {
rollData.diceFormula += "+5"
}
// Specific modifier for distance
if (rollData.arme?.system?.isDistance) {
if (rollData.visee) {
rollData.diceFormula += "+5"
}
if (rollData.cibleconsciente) {
rollData.diceFormula += `-${rollData.defender.system.attributs.adr.value}`
}
if (rollData.ciblecourt) {
if (rollData.difficulte <= 15) { // Portée courte ou moins
rollData.diceFormula += `-5`
} else {
rollData.diceFormula += `-10`
}
}
if (rollData.typeCouvert != "aucun") {
rollData.diceFormula += `+${rollData.config.couverts[rollData.typeCouvert].value}`
}
}
if (rollData.rune) {
rollData.runeduree = Math.ceil((rollData.runeame + 3) / 3)
if (rollData.runemode == "inscrire") {
rollData.runeduree *= 2
}
if (rollData.runemode == "prononcer") {
rollData.runeduree = 1
}
}
let myRoll = await new Roll(rollData.diceFormula).evaluate();
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = foundry.utils.duplicate(myRoll)
rollData.diceResult = myRoll.terms[0].results[0].result
console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total
this.computeResult(rollData)
// Application immédiate selon type de jet
if (rollData.rune) {
let subAme = rollData.runeame
if (rollData.isEchec && !rollData.isDramatique) {
subAme = Math.ceil((subAme + 1) / 2)
}
actor.subPointsAme(rollData.runemode, subAme)
}
if (rollData.typeAttaque == "assomer" && rollData.defenderTokenId && rollData.isPureSuccess) {
let defender = game.canvas.tokens.get(rollData?.defenderTokenId)?.actor
defender.setModifier("Assomer : Prochaine action", "roll", -5)
}
if (rollData.typeAttaque == "fuir" && rollData.difficulte > 0 && !rollData.isSuccess) {
actor.setModifier("Fuite échouée : -5 en défense ce round et suivant", "defense", -5)
}
if (rollData.typeAttaque == "immobiliser" && rollData.difficulte > 0 && rollData.isPureSuccess) {
actor.setModifier("Immobilisation en cours : -5 pour prochaine action", "roll", -5)
}
if (rollData.typeAttaque == "chargecavalerie") {
actor.setModifier("Charge de Cavalerie : -5 défense pour le tour", "defense", -5)
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData)
}, rollData)
}
/* -------------------------------------------- */
static async rollDegatsFromAttaque(rollData) {
let maximize = false
let degatsMessage = "Degats normaux"
if (rollData.arme?.system?.isMelee) {
rollData.degatsFormula = rollData.arme.system.totalDegats
if (rollData.isHeroique) { // Deux fois les dés de dégats
degatsMessage = "Dégats doublés"
}
if (rollData.typeAttaque == "assomer") {
rollData.degatsFormula = false
}
if (rollData.typeAttaque == "charger") {
rollData.degatsFormula += "+2"
}
if (rollData.typeAttaque == "chargecavalerie") {
rollData.degatsFormula += "+5"
}
if (rollData.typeAttaque == "precise") {
degatsMessage = "Degats normaux"
if (rollData.isHeroique) { // Degats max
maximize = true
degatsMessage = "Dégats maximaux, ignore l'armure du défenseur";
rollData.ignoreDefenseArmor = true
}
}
if (rollData.typeAttaque == "feinte") {
degatsMessage = "Pas de dégats, mais bonus pour prochaine attaque"
rollData.degatsFormula = false
rollData.nextBonus = 5
if (rollData.isHeroique) { // Bonus pour prochaine action
rollData.nextBonus = 10
rollData.nextBonusDegats = 10
}
}
if (rollData.typeAttaque == "coupbas") {
degatsMessage = "Pas de dégats, mais malus pour prochaine action complexe du défenseur"
rollData.degatsFormula = false
rollData.nextMalus = 5
if (rollData.isHeroique) { // Malus pour prochaine action
rollData.nextMalus = 15
}
}
if (rollData.typeAttaque == "contenir") {
degatsMessage = "Pas de dégats, mais l'adversaire ne peut pas vous attaquer pour le reste du tour"
rollData.degatsFormula = false
if (rollData.isHeroique) { // Malus pour prochaine action
degatsMessage = "Pas de dégats, mais tout les adversaires avec une défense inférieure ou égale à " + rollData.finalResult - 10 +
" ne peuvent pas vous attaquer pour le reste du tour"
}
}
if (rollData.typeAttaque == "desarmer") {
degatsMessage = "Pas de dégats, mais l'adversaire reçoit un malus de -5 pour sa prochaine action"
rollData.degatsFormula = false
if (rollData.isHeroique) { // Malus pour prochaine action
rollData.defenderDesarme = true
degatsMessage = "Pas de dégats, mais l'arme de votre adversaire est arrachée de ses mains"
}
}
} else { // Armes à distance
rollData.degatsFormula = rollData.arme.system.totalDegats
}
// Perform the roll, show the dice
rollData.finalResult = 0
rollData.degatsMessage = degatsMessage
if (rollData.degatsFormula) {
console.log("Degats formula", rollData.degatsFormula)
// Twice!maximize
if (rollData.isHeroique && !maximize) {
rollData.degatsFormula += "+" + rollData.degatsFormula
}
// Latest modifiers
for (let mod of rollData.modifiers) {
if (mod.system.modifiertype == "degats") {
rollData.degatsFormula += `+${mod.system.value}`
}
}
let degatsRoll = await new Roll(rollData.degatsFormula).evaluate({ maximize: maximize })
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
rollData.finalResult = degatsRoll.total
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-degats-result.html`, rollData)
}, rollData)
}
/* -------------------------------------------- */
static applyDegatsFromAttaque(rollData) {
let defender = game.canvas.tokens.get(rollData?.defenderTokenId)?.actor
if (defender && rollData.arme) {
let actor = MournbladeUtility.getActorFromRollData(rollData)
if (rollData.typeAttaque == "desarmer" && !rollData.isHeroique) {
defender.setModifier("Malus suite à désarmement", "roll", -5)
}
if (rollData.typeAttaque == "charger") {
actor.setModifier("Défense suite à charge", "roll", -5)
}
if (rollData.nextBonus) {
actor.setModifier("Prochaine attaque", "roll", rollData.nextBonus)
if (rollData.nextDegatsBonus) {
actor.setModifier("Prochaine attaque", "degats", rollData.nextDegatsBonus)
}
}
if (rollData.nextMalus) {
defender.setModifier("Prochaine action complexe", "roll", -rollData.nextMalus)
}
if (rollData.defenderDesarme) {
ui.notifications.info("L'arme de " + defender.name + " est arrachée de ses mains (à gérer manuellement)")
}
let degats = rollData.finalResult
let type = (rollData.arme.system.nonletaux) ? "nonletaux" : "letaux"
if (rollData.arme.system.ignorearmure) {
rollData.ignoreDefenseArmor = true
}
defender.incDecSante(type, +degats, rollData.ignoreDefenseArmor)
ui.notifications.info(defender.name + "a subi " + degats + " points de santé " + type + ".")
}
}
/* -------------------------------------------- */
static async bonusRollMournblade(rollData) {
rollData.bonusFormula = rollData.addedBonus
let bonusRoll = await new Roll(rollData.bonusFormula).evaluate()
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
rollData.finalResult += rollData.bonusRoll.total
this.computeResult(rollData)
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData)
}, rollData)
// And save the roll
this.saveRollData(rollData);
}
/* -------------------------------------------- */
static getUsers(filter) {
return game.users.filter(filter).map(user => user.data._id);
}
/* -------------------------------------------- */
static getWhisperRecipients(rollMode, name) {
switch (rollMode) {
@ -276,7 +599,7 @@ export class MournbladeUtility {
/* -------------------------------------------- */
static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions);
let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM);
@ -291,7 +614,7 @@ export class MournbladeUtility {
} else {
item = game.items.get(dataItem.id)
}
return item;
return item
}
/* -------------------------------------------- */
@ -312,7 +635,7 @@ export class MournbladeUtility {
}
/* -------------------------------------------- */
static createChatMessage(name, rollMode, chatOptions) {
static async createChatMessage(name, rollMode, chatOptions, rollData = undefined) {
switch (rollMode) {
case "blindroll": // GM only
if (!game.user.isGM) {
@ -330,14 +653,20 @@ export class MournbladeUtility {
break;
}
chatOptions.alias = chatOptions.alias || name;
ChatMessage.create(chatOptions);
chatOptions.speaker = ChatMessage.getSpeaker();
let msg = await ChatMessage.create(chatOptions)
console.log("=======>", rollData)
msg.setFlag("world", "mournblade-roll", rollData)
}
/* -------------------------------------------- */
static getBasicRollData() {
let rollData = {
rollId: randomID(16),
rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"),
difficulte: 0,
modificateur: 0,
config: foundry.utils.duplicate(game.system.mournblade.config),
}
MournbladeUtility.updateWithTarget(rollData)
return rollData
@ -345,31 +674,180 @@ export class MournbladeUtility {
/* -------------------------------------------- */
static updateWithTarget(rollData) {
let objectDefender
let target = MournbladeUtility.getTarget();
let target = MournbladeUtility.getTarget()
if (target) {
let defenderActor = game.actors.get(target.data.actorId)
objectDefender = MournbladeUtility.data(defenderActor)
objectDefender = mergeObject(objectDefender, target.data.actorData)
rollData.defender = objectDefender
rollData.attackerId = this.id
rollData.defenderId = objectDefender._id
rollData.defenderTokenId = target.id
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
rollData.defenderCombatValues = defender.getCombatValues()
rollData.defender = defender.toObject() // Simpler
rollData.defenderDefense = defender.getBestDefenseValue()
rollData.armeDefense = defender.getBestDefenseValue()
if (rollData.armeDefense) {
rollData.difficulte = rollData.armeDefense.system.totalDefensif
} else {
ui.notifications.warn("Aucune arme de défense équipée, difficulté manuelle à positionner.")
}
}
}
/* -------------------------------------------- */
static createChatWithRollMode(name, chatOptions) {
this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions);
static createChatWithRollMode(name, chatOptions, rollData = undefined) {
this.createChatMessage(name, game.settings.get("core", "rollMode"), chatOptions, rollData)
}
/* -------------------------------------------- */
static applyBonneAventureRoll(li, changed, addedBonus) {
let msgId = li.data("message-id")
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
actor.changeBonneAventure(changed)
rollData.isReroll = true
rollData.textBonus = "Bonus de Points d'Aventure"
if (addedBonus == "reroll") {
MournbladeUtility.rollMournblade(rollData)
} else {
rollData.addedBonus = addedBonus
MournbladeUtility.bonusRollMournblade(rollData)
}
}
}
/* -------------------------------------------- */
static applyEclatRoll(li, changed, addedBonus) {
let msgId = li.data("message-id")
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
actor.changeEclat(changed)
rollData.isReroll = true
rollData.textBonus = "Bonus d'Eclat"
rollData.addedBonus = addedBonus
MournbladeUtility.bonusRollMournblade(rollData)
}
}
/* -------------------------------------------- */
static chatRollMenu(html, options) {
let canApply = li => canvas.tokens.controlled.length && li.find(".mournblade-roll").length
let canApplyBALoyal = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "loyal")
}
let canApplyPELoyal = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "loyal")
}
let canApplyBAChaotique = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0 && actor.getAlignement() == "chaotique")
}
let canApplyBAChaotique3 = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 2 && actor.getAlignement() == "chaotique")
}
let canApplyPEChaotique = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0 && actor.getAlignement() == "chaotique")
}
let hasPredilection = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
if (rollData.competence) {
let nbPred = rollData.competence.data.predilections.filter(pred => !pred.used).length
return (!rollData.isReroll && rollData.competence && nbPred > 0)
}
return false
}
let canCompetenceDouble = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "mournblade-roll")
let actor = MournbladeUtility.getActorFromRollData(rollData)
if (rollData.competence) {
return rollData.competence.data.doublebonus
}
return false
}
options.push(
{
name: "Ajouer +3 (1 point de Bonne Aventure)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyBALoyal,
callback: li => MournbladeUtility.applyBonneAventureRoll(li, -1, "+3")
}
)
options.push(
{
name: "Ajouer +6 (1 point de Bonne Aventure)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyBALoyal && canCompetenceDouble,
callback: li => MournbladeUtility.applyBonneAventureRoll(li, -1, "+6")
}
)
options.push(
{
name: "Ajouer +1d6 (1 point de Bonne Aventure)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyBAChaotique,
callback: li => MournbladeUtility.applyBonneAventureRoll(li, -1, "+1d6")
}
)
options.push(
{
name: "Ajouer +2d6 (1 point de Bonne Aventure)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyBAChaotique && canCompetenceDouble,
callback: li => MournbladeUtility.applyBonneAventureRoll(li, -1, "+2d6")
}
)
options.push(
{
name: "Relancer le dé (3 points de Bonne Aventure)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyBAChaotique3,
callback: li => MournbladeUtility.applyBonneAventureRoll(li, -3, "reroll")
}
)
options.push(
{
name: "Ajouter +10 (1 Point d'Eclat)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyPELoyal,
callback: li => MournbladeUtility.applyEclatRoll(li, -1, "+10")
}
)
options.push(
{
name: "Ajouter +20 (1 Point d'Eclat)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyPELoyal && canCompetenceDouble,
callback: li => MournbladeUtility.applyEclatRoll(li, -1, "+20")
}
)
return options
}
/* -------------------------------------------- */
static async confirmDelete(actorSheet, li) {
let itemId = li.data("item-id");
let msgTxt = "<p>Are you sure to remove this Item ?";
let msgTxt = "<p>Voulez vous supprimer cet item ?";
let buttons = {
delete: {
icon: '<i class="fas fa-check"></i>',
label: "Yes, remove it",
label: "Oui !",
callback: () => {
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
li.slideUp(200, () => actorSheet.render(false));
@ -377,12 +855,12 @@ export class MournbladeUtility {
},
cancel: {
icon: '<i class="fas fa-times"></i>',
label: "Cancel"
label: "Non !"
}
}
msgTxt += "</p>";
let d = new Dialog({
title: "Confirm removal",
title: "Confirmer la suppression",
content: msgTxt,
buttons: buttons,
default: "cancel"

46
packs/armes.db Normal file
View File

@ -0,0 +1,46 @@
{"name":"Fouet","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.Qb1h25U88mTM4h72"}},"_id":"0swiE8k5zfUIqmXu","system":{"description":"","typearme":"contactjet","isdefense":false,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d4 + 1","nonletaux":true,"deuxmains":false,"courte":3,"moyenne":0,"longue":0,"tr":0,"rarete":4,"prix":40,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964292,"modifiedTime":1664573659387,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"2BSVJXr0FGZZJ9fh","name":"Hache des mers","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.mGYFgteaWBDo10Xb"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964293,"modifiedTime":1664573659388,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Ecu d'acier","type":"bouclier","img":"systems/fvtt-mournblade/assets/icons/protection.webp","system":{"description":"","bonusdefense":3,"degats":"1d8","nonletaux":"false","rarete":9,"prix":10,"equipped":false,"isdefense":null},"effects":[],"ownership":{"default":0,"1Hr6ON03ooIXzvIm":3},"flags":{"core":{"sourceId":"Item.Gn52Vfp6Vg4cnpd0"}},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572521380,"modifiedTime":1664573706183,"lastModifiedBy":"1Hr6ON03ooIXzvIm"},"folder":null,"sort":0,"_id":"2PmIgKP4wZLHGp0s"}
{"_id":"2qezkR1BdC0DcRIl","name":"Fléau darmes","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.PHQabMgfk1GNOjKo"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D10+1","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":70,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964293,"modifiedTime":1664573659387,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Arbalète","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.WYp8ojQN8HYJwUJc"}},"_id":"2zIdrBK88iuMbOF0","system":{"description":"","typearme":"tir","isdefense":null,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"2d6","nonletaux":null,"deuxmains":"","courte":25,"moyenne":50,"longue":75,"tr":3,"rarete":10,"prix":500,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964293,"modifiedTime":1664573659385,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"3Iv1oLpZcPEJVaI4","name":"Cimeterre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.RYxEg0gJfAlIZ4mw"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":1,"degats":"1d10","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Fronde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.TgVuNnytO9k2K0Xe"}},"_id":"4To8rLxv4efsoZK0","system":{"description":"","typearme":"tir","isdefense":false,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D4","nonletaux":false,"deuxmains":false,"courte":10,"moyenne":25,"longue":50,"tr":1,"rarete":2,"prix":1,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659388,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Pierre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.3YS9IfQddECnoagK"}},"_id":"4yKlK8MeSj5Zk8lM","system":{"description":"","typearme":"contactjet","isdefense":false,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D4","nonletaux":true,"deuxmains":false,"courte":3,"moyenne":6,"longue":15,"tr":1,"rarete":0,"prix":0,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659390,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"6e1JHoD1Jrz020R7","name":"Grand marteau","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.vjic4cPkJ0iMCIt5"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"2D6+2","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659388,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Arc de cavalerie","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.5EWrgNQjJMx1t2v1"}},"_id":"88UuW1bdpFuCmkqb","system":{"description":"","typearme":"tir","isdefense":null,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d6","nonletaux":null,"deuxmains":null,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":7,"prix":100,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659385,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"9Eo9mRbPPZHN98Cr","name":"Épée de maître","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.kX3MbDFu9uYZVNf2"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d8+ 2","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"9xPd4ITtyk3nmMoN","name":"Lance ilmioréenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.8ApbiVgkx79OHVp2"}},"system":{"description":"<p>La lance ilmior&eacute;enne est un solide b&acirc;ton de combat surmont&eacute; d&rsquo;une pointe sur lequel est fi x&eacute; quasi perpendiculairement un fer de hache plat et &eacute;troit. Un contrepoids fi x&eacute; &agrave; l&rsquo;autre extr&eacute;mit&eacute; sert &agrave; &eacute;quilibrer l&rsquo;arme qui peut &ecirc;tre mani&eacute;e &agrave; la fois comme une lance et comme une hache &agrave; deux mains, ce qui permet de maintenir ses ennemis &agrave; distance ou de leur porter des coups d&eacute;vastateurs. Ces lances furent invent&eacute;es &agrave; l&rsquo;&eacute;poque de la tribu d&rsquo;Ilm, quand les lances et &eacute;p&eacute;es &eacute;taient d&eacute;clar&eacute;es ill&eacute;gales par les gouverneurs melnibon&eacute;ens de la r&eacute;gion. Certaines &eacute;coles militaires ilmior&eacute;ennes enseignent toujours le Style Imar, qui m&ecirc;le en une seule et m&ecirc;me technique le combat &agrave; deux mains &agrave; la lance et le combat au b&acirc;ton.</p>","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":2,"degats":"1d8 + 2","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"CeC5lAKs7NdPF05l","name":"Masse lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.DPfXgFj3gpjJ3nbR"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d10 + 1","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":80,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"CqP80SQFQOefpGgd","name":"Gourdin","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.CBIfq9eRd2RmoI4H"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1D6","nonletaux":true,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":5,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964294,"modifiedTime":1664573659388,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"CupT9m8L909l4Fo5","name":"Rapière","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.XIStcClTnmLoSwyR"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":3,"bonusmaniementdef":1,"degats":"1d8+ 1","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964295,"modifiedTime":1664573659390,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Hachette / Hache de lancer","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.5NHbRanxXA5vUE3B"}},"_id":"DzkeP7jbruqW4nQH","system":{"description":"","typearme":"contactjet","isdefense":false,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d4 + 1","nonletaux":false,"deuxmains":false,"courte":5,"moyenne":10,"longue":15,"tr":1,"rarete":5,"prix":50,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964295,"modifiedTime":1664573659388,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"FDeRBkxXwoZIuL9B","name":"Lance légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.LIVeq22E9EanRS9L"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d8","nonletaux":false,"deuxmains":false,"courte":10,"moyenne":25,"longue":50,"tr":1,"rarete":5,"prix":5,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964295,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Arc de chasse","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.TrYZ9BxYukS1mbBX"}},"_id":"Hrm08cpgAMMV6Jpq","system":{"description":"","typearme":"tir","isdefense":false,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 - 1","nonletaux":false,"deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":8,"prix":250,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964295,"modifiedTime":1664573659385,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"Iw3j4oC6H8HJ9MFQ","name":"Coup de pied / poing / tête","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.nBPKHsYIM0HgMcBy"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","nonletaux":true,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964295,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"KY22L6Lx5WxgvyGD","name":"Lance lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.Kcl07bs7TOcne37W"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1d10","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964295,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Arc du Désert des Larmes","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.QmYjdRCAk3MnxKJg"}},"_id":"MDpFpqmXpIX5VV80","system":{"description":"<p>Cet arc composite fait de bois, d&rsquo;andouillers de cerf et/ou d&rsquo;os est un arc court et tr&egrave;s recourb&eacute; utilis&eacute; par les barbares du D&eacute;sert des Larmes pour la chasse. On peut &eacute;galement trouver ce type d&rsquo;arcs &agrave; Pikarayd et au Dorel.</p>","typearme":"tir","isdefense":null,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 1","nonletaux":null,"deuxmains":null,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":8,"prix":250,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964296,"modifiedTime":1664573659385,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"MP49mYF7FVuW9ALB","name":"Hache de bataille dite lormyrienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.Lpa6kesbzgKVtogn"}},"system":{"description":"<p>Cette double hache parfaitement &eacute;quilibr&eacute;e et proportionn&eacute;e est l&rsquo;arme favorite des chevaliers lormyriens. Il s&rsquo;agit de l&rsquo;arme id&eacute;ale pour trancher, d&eacute;couper les lances ennemies et fendre les cr&acirc;nes.</p>","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6 + 2","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964296,"modifiedTime":1664573659388,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"N5BbO2lGwzQnpvH0","name":"Couteau / Dague","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.5a9GKIvNgbbXBq3s"}},"system":{"description":"","typearme":"contactjet","isdefense":true,"bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","nonletaux":false,"deuxmains":false,"courte":3,"moyenne":6,"longue":15,"tr":1,"rarete":1,"prix":10,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964297,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"QwrZbFeJUQv2OBqI","name":"Pique filkharienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.dF9LxfA1crZBmT92"}},"system":{"description":"<p>Cette longue pique &agrave; grande lame de pr&egrave;s de trois m&egrave;tres de long est l&rsquo;arme de pr&eacute;dilection des piquiers de l&rsquo;arm&eacute;e de Filkhar. Tr&egrave;s effi cace pour lutter contre des cavaliers ou des ennemis en train de charger, elle l&rsquo;est beaucoup moins en combat rapproch&eacute;.</p>","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d8 + 2","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964297,"modifiedTime":1664573659390,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"SzgkzHvzma8NiMd5","name":"Masse légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.xrWRNZBrEzkUQzRG"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":5,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964297,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"U8CoqFhGuT3ZHeq1","name":"Sabre dabordage","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.aNUqO9OZT0GBszvv"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d8","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964297,"modifiedTime":1664573659390,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Javelot","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.Zwiz9E3TbeUP8qHH"}},"_id":"aELvOR7A9DIJKgBk","system":{"description":"","typearme":"jet","isdefense":false,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d6","nonletaux":false,"deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":5,"prix":30,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964297,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"aJBVfqQ3JQNyVL7c","name":"Fourche / Faux de paysan","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.K5Ayim6mPKZoCSCc"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D6","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":1,"prix":10,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964298,"modifiedTime":1664573659387,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Pavois","type":"bouclier","img":"systems/fvtt-mournblade/assets/icons/protection.webp","system":{"description":"<p>Le Pavois se plante dans le sol au d&eacute;but du combat et ne peut plus &ecirc;tre d&eacute;plac&eacute; jusqu'&agrave; son issue.</p>","bonusdefense":3,"degats":"0","nonletaux":"false","rarete":7,"prix":5,"equipped":false,"isdefense":"false"},"effects":[],"ownership":{"default":0,"1Hr6ON03ooIXzvIm":3},"flags":{"core":{"sourceId":"Item.E3A8EnGzQctvYndd"}},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572521380,"modifiedTime":1664573708981,"lastModifiedBy":"1Hr6ON03ooIXzvIm"},"folder":null,"sort":0,"_id":"b2VNhFBgbvlzaMw8"}
{"name":"Bouclier d'Infanterie","type":"bouclier","img":"systems/fvtt-mournblade/assets/icons/protection.webp","system":{"description":"","bonusdefense":2,"degats":"1d6","nonletaux":"false","rarete":5,"prix":2,"equipped":false},"effects":[],"ownership":{"default":0,"1Hr6ON03ooIXzvIm":3},"flags":{"core":{"sourceId":"Item.jeMLhLTJhTU6TJ58"}},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572521380,"modifiedTime":1664573703190,"lastModifiedBy":"1Hr6ON03ooIXzvIm"},"folder":null,"sort":0,"_id":"bqDEyPj9OlGnEJsr"}
{"_id":"c6l49ZmEBjUxfI3W","name":"Arme improvisée","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.E7gcmnNQK2t5OQjv"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d6","nonletaux":true,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964298,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Arc de guerre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.Tq6lUFPTkBN5cBwn"}},"_id":"cKf5z3fajUnxJh0r","system":{"description":"","typearme":"tir","isdefense":false,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d10 + 1","nonletaux":false,"deuxmains":false,"courte":30,"moyenne":50,"longue":100,"tr":1,"rarete":6,"prix":70,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964298,"modifiedTime":1664573659385,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Targe","type":"bouclier","img":"systems/fvtt-mournblade/assets/icons/protection.webp","system":{"description":"","bonusdefense":1,"degats":"1d4","nonletaux":"false","rarete":4,"prix":2,"equipped":false},"effects":[],"ownership":{"default":0,"1Hr6ON03ooIXzvIm":3},"flags":{"core":{"sourceId":"Item.9rJkBsRltxH08QT8"}},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572521380,"modifiedTime":1664573712553,"lastModifiedBy":"1Hr6ON03ooIXzvIm"},"folder":null,"sort":0,"_id":"cZorS8WAKNS0dN0T"}
{"_id":"fLHX6ut131CQI630","name":"Main gauche","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.BBii0qi1unvSRNO4"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":3,"degats":"1d4 + 1","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":10,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964298,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"freCCeiYGfWmUAQU","name":"Marteau de guerre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.6n2uSdYfRAsSqQnA"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d8 + 2","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":6,"prix":70,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964298,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"j5659PJlrHz56V1k","name":"Sabre de Pan Tang","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.l3ffzso7GyHMKguD"}},"system":{"description":"<p>Ce long sabre effi l&eacute; sert aux Cavaliers d&eacute;moniaques de Pan Tang pour couper les t&ecirc;tes depuis le dos de leurs monstrueuses montures reptiliennes &agrave; six pattes.</p>","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d10 + 2","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":120,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964299,"modifiedTime":1664573659390,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"lYtm5MwP96numskx","name":"Hallebarde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.ZTdyIoMzE9kqm4e6"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":2,"degats":"2d6","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964299,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"mQGT0vmDjoTZCW5u","name":"Lance melnibonéenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.KAl5qXHeYDoYRU6G"}},"system":{"description":"<p>La lance melnibon&eacute;enne, faite pour le combat &agrave; cheval ou &agrave; dos de dragon, ressemble &agrave; une lance ordinaire. Son fer est cependant plus fi n et plus &eacute;troit. Avant la chute d&rsquo;Imrryr, il est quasi impossible de se procurer de telles armes sur les march&eacute;s des Jeunes Royaumes. Elles peuvent &ecirc;tre mani&eacute;es &agrave; une main comme lors des joutes &agrave; cheval ou &agrave; deux mains au c&oelig;ur des m&ecirc;l&eacute;es.</p>","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"2d6+ 4","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":10,"prix":70,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964299,"modifiedTime":1664573659389,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"name":"Arc en os","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.Dy9dzVhXbNAVm3zn"}},"_id":"nzve5qucVN6FC5wn","system":{"description":"<p>Arc composite recourb&eacute; fait de bois, d&rsquo;os et d&rsquo;acier, l&rsquo;arc en os melnibon&eacute;en est une arme extraordinairement puissante entre les mains d&rsquo;un guerrier melnibon&eacute;en ou d&rsquo;un archer esclave du Glorieux Empire. On peut se le procurer dans les Jeunes Royaumes apr&egrave;s la chute d&rsquo;Imrryr.</p>","typearme":"tir","isdefense":false,"bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d8 + 1","nonletaux":false,"deuxmains":false,"courte":30,"moyenne":60,"longue":125,"tr":2,"rarete":10,"prix":500,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964299,"modifiedTime":1664573659385,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"sHj90bPcMaDlOw51","name":"Bâton ferré ou lesté","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.zoBHSbvJPnjbtPh6"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1D8","nonletaux":true,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":1,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964299,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"sju2r73hUHyGbHYg","name":"Épée courte / Glaive","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.Mxv5gMHRvRrsuhPA"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1D6+1","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":4,"prix":40,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964300,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"t2uQcWe7kirUOp3D","name":"Faucheur","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.OlmzE29fh9DFd8TF"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d4 + 1","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":100,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964300,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"uatjBTFCE5ZCqhAd","name":"Fléau lourd","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.vDDw0qqM1Kg7Pu6T"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d10+ 3","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964300,"modifiedTime":1664573659387,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"v7ymzlEALvsk0poA","name":"Hache","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.2MwgptY2kE4tgYBe"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":2,"prix":30,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964300,"modifiedTime":1664573659388,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"wWk0Wfer06Ttmouv","name":"Épée large","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.iuAizxCvnUxmsjrn"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d6+ 2","nonletaux":false,"deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":70,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964300,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}
{"_id":"wv5EiePmPTpqFutt","name":"Épée longue","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","effects":[],"folder":null,"sort":0,"flags":{"core":{"sourceId":"Item.yiYtZ0sCUpMihvzz"}},"system":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6 + 1","nonletaux":false,"deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250,"equipped":false},"ownership":{"default":0,"RiMAsQHaUMojde7N":3},"_stats":{"systemId":"fvtt-mournblade","systemVersion":"10.0.9","coreVersion":"10.286","createdTime":1664572964301,"modifiedTime":1664573659386,"lastModifiedBy":"1Hr6ON03ooIXzvIm"}}

BIN
packs/armes/000195.ldb Normal file

Binary file not shown.

0
packs/armes/000202.log Normal file
View File

1
packs/armes/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000200

0
packs/armes/LOCK Normal file
View File

8
packs/armes/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/05/01-09:35:36.267528 7f830f4006c0 Recovering log #198
2024/05/01-09:35:36.318214 7f830f4006c0 Delete type=3 #196
2024/05/01-09:35:36.318310 7f830f4006c0 Delete type=0 #198
2024/05/01-09:42:43.133457 7f830e0006c0 Level-0 table #203: started
2024/05/01-09:42:43.133499 7f830e0006c0 Level-0 table #203: 0 bytes OK
2024/05/01-09:42:43.141393 7f830e0006c0 Delete type=0 #201
2024/05/01-09:42:43.156019 7f830e0006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2024/05/01-09:42:43.156088 7f830e0006c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2024/04/25-23:18:20.595518 7f0832a006c0 Recovering log #193
2024/04/25-23:18:20.606674 7f0832a006c0 Delete type=3 #191
2024/04/25-23:18:20.606816 7f0832a006c0 Delete type=0 #193
2024/04/25-23:31:59.770416 7f08310006c0 Level-0 table #199: started
2024/04/25-23:31:59.770479 7f08310006c0 Level-0 table #199: 0 bytes OK
2024/04/25-23:31:59.807298 7f08310006c0 Delete type=0 #197
2024/04/25-23:31:59.807694 7f08310006c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2024/04/25-23:31:59.846668 7f08310006c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)

BIN
packs/armes/MANIFEST-000200 Normal file

Binary file not shown.

30
packs/dons.db Normal file
View File

@ -0,0 +1,30 @@
{"name":"Protection du Sorcier","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L&rsquo;&Eacute;lu est prot&eacute;g&eacute; contre les attaques des cr&eacute;atures n&eacute;es ou invoqu&eacute;es par la sorcellerie (un type d&rsquo;&Eacute;l&eacute;mentaire, les D&eacute;mons, les Automata&hellip;). La protection dont il b&eacute;n&eacute;ficie d&eacute;pend du nombre de points d&rsquo;&Acirc;me sacrifi&eacute;s.</p>","allegeance":"chaos","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour 1 point de protection. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour 2 points de protection. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un 3 points de protection. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu a conscience du tissu de la r&eacute;alit&eacute;. Il peut percevoir les passages et les portails menant vers d&rsquo;autres plans dans une zone de 10 m&egrave;tres par point d&rsquo;Aspect chaotique gr&acirc;ce &agrave; un simple test de Clairvoyance + Perception / 15. S&rsquo;il ignore l&rsquo;existence de ce passage et qu&rsquo;il passe devant, le MJ peut faire un test de Clairvoyance + Perception / 25 pour l&rsquo;&Eacute;lu derri&egrave;re son &eacute;cran.</p>","allegeance":"chaos","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<p>1 point d&rsquo;&Acirc;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&eacute; de l&rsquo;&Eacute;lu sont recalcul&eacute;s en ajoutant &agrave; [(Puissance + Trempe) x 2]+ 5 le nombre de points d&rsquo;&Acirc;me sacrifi&eacute;s. Ce Don ne peut &ecirc;tre pris qu&rsquo;une seule fois m&ecirc;me si l&rsquo;&Eacute;lu conclut plusieurs Pactes.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d&rsquo;&Acirc;me par point de Sant&eacute; suppl&eacute;mentaire, pour un maximum &eacute;gal &agrave; l&rsquo;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&rsquo;&Eacute;lu r&eacute;cup&egrave;re deux fois plus vite ses points d&rsquo;&Acirc;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&rsquo;&Acirc;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&rsquo;&Eacute;lu gagne un trait du Chaos qu&rsquo;il tire au hasard dans le tableau de la page 185 avec un d20. Il peut prendre ce Don trois fois. S&rsquo;il tire un trait qu&rsquo;il poss&egrave;de d&eacute;j&agrave;, il doit relancer le d20. Ces traits sont permanents et d&eacute;finitifs, &agrave; moins que les Seigneurs du Chaos n&rsquo;en d&eacute;cident autrement, notamment si l&rsquo;&Eacute;lu les dissimule trop &agrave; leur go&ucirc;t alors qu&rsquo;il n&rsquo;y est pas absolument contraint par des imp&eacute;ratifs de survie imm&eacute;diats.</p>","allegeance":"chaos","prerequis":"aucun","sacrifice":"<p>2 points d&rsquo;&Acirc;me par Trait chaotique. L&rsquo;&Eacute;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&rsquo;&Eacute;lu r&eacute;g&eacute;n&egrave;re rapidement. Chaque jour de repos, il regagne un nombre de points de Sant&eacute; &eacute;gal &agrave; sa Trempe /2 + son Aspect.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>3 point d&rsquo;&Acirc;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&rsquo;appeler un &Eacute;l&eacute;mentaire &agrave; son secours une fois par sc&eacute;nario. La Puissance de l&rsquo;&Eacute;l&eacute;mentaire est fi x&eacute;e lors de l&rsquo;octroi du Don. La nature de l&rsquo;&Eacute;l&eacute;mentaire correspond &agrave; celle du Seigneur &Eacute;l&eacute;mentaire avec lequel le Pacte a &eacute;t&eacute; pass&eacute;. Ce Don ne peut &ecirc;tre pris qu&rsquo;une fois par Seigneur &Eacute;l&eacute;mentaire v&eacute;n&eacute;r&eacute;.</p>","allegeance":"elementaires","prerequis":"","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un &Eacute;l&eacute;mentaire mineur disposant de 5 points d&rsquo;&Acirc;me. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>3 points d&rsquo;&Acirc;me pour un &Eacute;l&eacute;mentaire m&eacute;dian disposant de 10 points d&rsquo;&Acirc;me. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>5 points d&rsquo;&Acirc;me pour un &Eacute;l&eacute;mentaire majeur disposant de 15 points d&rsquo;&Acirc;me. Acc&egrave;s r&eacute;serv&eacute; 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&eacute;g&acirc;ts caus&eacute;s par l&rsquo;&Eacute;lu b&eacute;n&eacute;ficient d&rsquo;un bonus pour <em>un type d&rsquo;armes donn&eacute;</em>. Le bonus d&eacute;pend du nombre de points d&rsquo;&Acirc;me sacrifi&eacute;s.</p>","allegeance":"loi","prerequis":"6 ou plus en Puissance.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un bonus de + 1. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>3 points d&rsquo;&Acirc;me pour un bonus de + 2. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>5 points d&rsquo;&Acirc;me pour un bonus de + 3. Acc&egrave;s r&eacute;serv&eacute; aux Champions.</li>\n</ul>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.bqdkbOf7EsdsCRqu"}},"_id":"K4H2VC0jTCy7pYj7"}
{"name":"Lexemple du Juste","type":"don","img":"systems/fvtt-mournblade/assets/icons/don.webp","data":{"description":"<p>L&rsquo;&Eacute;lu est un exemple rayonnant pour ses camarades. Une fois par sc&eacute;nario, si l&rsquo;&Eacute;lu adresse pendant un tour de jeu une pri&egrave;re &agrave; une divinit&eacute; de la Loi, lui et ses camarades (une dizaine tout au plus) seront b&eacute;nis et recevront jusqu&rsquo;&agrave; la fin de la sc&egrave;ne un bonus &agrave; toutes leurs actions.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un bonus de + 1. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour un bonus de + 2. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un bonus de + 3. Acc&egrave;s r&eacute;serv&eacute; aux Champions.&nbsp;</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&rsquo;&Eacute;lu peut survivre en se privant d&rsquo;un &eacute;l&eacute;ment vital (nourriture, eau, sommeil, mais pas air) pendant un certain temps. La dur&eacute;e de ce pouvoir d&eacute;pend du nombre de points d&rsquo;&Acirc;me sacrifi&eacute;s.</p>","allegeance":"tous","prerequis":"6 ou plus en Trempe","sacrifice":"<ul>\n<li>2 points d&rsquo;&Acirc;me pour un jour. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>6 points d&rsquo;&Acirc;me pour une semaine. Acc&egrave;s r&eacute;serv&eacute; aux Che\u0002valiers et aux H&eacute;rauts.</li>\n<li>10 points d&rsquo;&Acirc;me pour un mois. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu manie un certain type d&rsquo;armes, il peut ajouter un bonus &agrave; son initiative ou b&eacute;n&eacute;ficier d&rsquo;un bonus aux d&eacute;g&acirc;ts lors d&rsquo;un combat, une fois par s&eacute;ance de jeu.</p>","allegeance":"chaos","prerequis":"6 ou plus en Puissance.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un bonus de + 1 aux d&eacute;g&acirc;ts ou + 5 en initiative. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>3 points d&rsquo;&Acirc;me pour un bonus de + 2 aux d&eacute;g&acirc;ts ou + 7 en initiative. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>5 points d&rsquo;&Acirc;me pour un bonus de + 3 aux d&eacute;g&acirc;ts ou + 10 en initiative. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu a imm&eacute;diatement conscience de la pr&eacute;sence pass&eacute;e ou actuelle du Chaos (sortil&egrave;ge &agrave; l&rsquo;&oelig;uvre, puissant serviteur&hellip;). Le personnage est tr&egrave;s sensible aux &eacute;manations chaotiques, elles lui soul&egrave;vent le c&oelig;ur. La distance de d&eacute;tection peut aug\u0002menter en sacrifiant davantage de points d&rsquo;&Acirc;me</p>","allegeance":"loi","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour d&eacute;tecter les ennemis dans un rayon de 10 m&egrave;tres. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour d&eacute;tecter les ennemis dans un rayon de 100 m&egrave;tres. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour d&eacute;tecter les ennemis dans un rayon de 1000 m&egrave;tres. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu a conscience du tissu de la r&eacute;alit&eacute;. Il peut sceller, par de longues pri&egrave;res psalmodi&eacute;es, les passages et les portails donnant sur d&rsquo;autres plans du Multivers. Cette action lui co&ucirc;te le sacrifice d&rsquo;un point d&rsquo;&Eacute;clat. Tant que sa concentration reste tourn&eacute;e vers ce passage, le portail demeure scell&eacute;, comme si Donblas lui-m&ecirc;me le gardait. Mais d&egrave;s que le personnage s&rsquo;endort, la porte, bien que ferm&eacute;e, n&rsquo;est plus scell&eacute;e. Certains plans tr&egrave;s importants poss&egrave;dent plusieurs passages menant vers les Jeunes Royaumes.</p>","allegeance":"loi","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<p>5 points d&rsquo;&Acirc;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&rsquo;un test de Capacit&eacute; Offensive, l&rsquo;&Eacute;lu voit la marge n&eacute;cessaire &agrave; l&rsquo;obtention d&rsquo;une r&eacute;ussite h&eacute;ro&iuml;que diminuer de 1 (9 ou plus), de 2 (8 ou plus) ou de 3 (7 ou plus).&nbsp;</p>","allegeance":"tous","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>3 points d&rsquo;&Acirc;me pour diminuer la marge de 1 (r&eacute;ussite h&eacute;ro&iuml;que sur 9 ou plus). Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>5 points d&rsquo;&Acirc;me pour diminuer la marge de 2 (r&eacute;ussite h&eacute;ro&iuml;que sur 8 ou plus). Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>7 points d&rsquo;&Acirc;me pour diminuer la marge de 3 (r&eacute;ussite h&eacute;ro&iuml;que sur 7 ou plus). Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;augmenter une comp&eacute;tence importante pour la voie spirituelle choisie. Le bonus octroy&eacute; d&eacute;pend du nombre de points d&rsquo;&Acirc;me sacrifi &eacute;s. Ce Don peut &ecirc;tre choisi plusieurs fois, mais il ne peut s&rsquo;appliquer qu&rsquo;une fois par comp&eacute;tence.&nbsp;</p>","allegeance":"chaos","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un + 1 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour un + 2 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un + 3 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu r&eacute;siste aux effets li&eacute;s &agrave; la fatigue et &agrave; la maladie. Le b&eacute;n&eacute;\u0002fi ciaire de ce Don a droit &agrave; un bonus de + 1 lors de ses tests de Trempe pour r&eacute;sister &agrave; la fatigue et &agrave; la maladie. Ce bonus peut augmenter en sacrifi ant davantage de points d&rsquo;&Acirc;me.</p>","allegeance":"tous","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un bonus de + 2. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour un bonus de + 3. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un bonus de + 4. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;est-&agrave;-dire non surnaturel). L&rsquo;animal apprivois&eacute; est un membre standard de son esp&egrave;ce et ob&eacute;it &agrave; des ordres simples, mais sans jamais aller contre sa nature. Le co&ucirc;t de ce Don d&eacute;pend de la Puissance de la cr&eacute;ature qui est fix&eacute;e lors de son octroi. Si 1 point d&rsquo;&Acirc;me suppl&eacute;mentaire est investi, la cr&eacute;ature peut communiquer t&eacute;l&eacute;\u0002pathiquement avec son ma&icirc;tre (et uniquement avec lui).</p>","allegeance":"betes","prerequis":"6 ou plus en Présence.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour une cr&eacute;ature d&rsquo;une Puissance de 0 &agrave; 4. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>3 points d&rsquo;&Acirc;me pour une cr&eacute;ature d&rsquo;une Puissance de 5 &agrave; 7. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>5 points d&rsquo;&Acirc;me pour une cr&eacute;ature d&rsquo;une Puissance de 8 &agrave; 10. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu est prot&eacute;g&eacute; contre les attaques des cr&eacute;atures engendr&eacute;es ou invoqu&eacute;es par la Sorcellerie (les &Eacute;l&eacute;mentaires, les D&eacute;mons, les Automata&hellip;). La protection dont il b&eacute;n&eacute;ficie d&eacute;pend du nombre de points d&rsquo;&Acirc;me sacrifi&eacute;s.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour 1 point de protection. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour 2 points de protection. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un 3 points de protection. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu peut supporter n&rsquo;importe quel type de souffrance psy\u0002chique. Il ne subit pas les p&eacute;nalit&eacute;s dues &agrave; l&rsquo;&eacute;tat D&eacute;stabilis&eacute; (&ndash; 2) et Choqu&eacute; (&ndash; 5). Il est immunis&eacute; &agrave; la torture mentale.</p>","allegeance":"chaos","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d&rsquo;&Acirc;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&rsquo;&Eacute;lu r&eacute;siste aux effets li&eacute;s &agrave; la fatigue et &agrave; la maladie. Le b&eacute;n&eacute;fi ciaire de ce Don a droit &agrave; un bonus de + 1 lors de ses tests de Trempe pour r&eacute;sister &agrave; la fatigue et &agrave; la maladie. Ce bonus peut augmenter en sacrifi ant davantage de points d&rsquo;&Acirc;me.</p>","allegeance":"chaos","prerequis":"6 ou plus en Trempe.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un bonus de + 1. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour un bonus de + 2. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un bonus de + 3.Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;augmenter une comp&eacute;tence relative &agrave; la voie spirituelle choisie. Le bonus octroy&eacute; d&eacute;pend du nombre de points d&rsquo;&Acirc;me sacrifi &eacute;s. Ce Don peut &ecirc;tre choisi plusieurs fois, mais il ne peut s&rsquo;appliquer qu&rsquo;une fois par comp&eacute;tence.&nbsp;</p>","allegeance":"tous","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un + 1 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour un + 2 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un + 3 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;augmenter une comp&eacute;tence importante pour la voie spirituelle choisie. Le bonus octroy&eacute; d&eacute;pend du nombre de points d&rsquo;&Acirc;me sacrifi&eacute;s. Ce Don peut &ecirc;tre choisi plusieurs fois mais il ne peut s&rsquo;appliquer qu&rsquo;une fois par comp&eacute;tence.</p>","allegeance":"loi","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour un + 1 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour un + 2 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour un + 3 &agrave; une comp&eacute;tence. Acc&egrave;s r&eacute;serv&eacute; 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&eacute; de l&rsquo;&Eacute;lu sont recalcul&eacute;s en ajoutant &agrave; [(Puissance + Trempe) x 2]+ 5 le nombre de points d&rsquo;&Acirc;me sacrifi&eacute;s. Ce Don ne peut &ecirc;tre pris qu&rsquo;une seule fois m&ecirc;me si l&rsquo;&Eacute;lu conclut plusieurs Pactes.</p>","allegeance":"tous","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d&rsquo;&Acirc;me par point de Sant&eacute; suppl&eacute;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&rsquo;&Eacute;lu peut supporter n&rsquo;importe quel type de souffrance. Il ne subit pas les p&eacute;nalit&eacute;s dues &agrave; l&rsquo;&eacute;tat Bless&eacute; (-2) et Gravement Bless&eacute; (-5). Il est immunis&eacute; contre la torture.</p>","allegeance":"loi","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>1 point d&rsquo;&Acirc;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&rsquo;un combat, l&rsquo;&Eacute;lu ne subit plus les effets d&rsquo;une r&eacute;ussite h&eacute;ro&iuml;que contre lui lors des tests de Capacit&eacute; offensive. Il n&rsquo;en profite plus non plus. &Agrave; un haut niveau, il ne peut plus &ecirc;tre affect&eacute; par les &eacute;checs dramatiques.</p>","allegeance":"loi","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>3 points d&rsquo;&Acirc;me pour ne plus &ecirc;tre affect&eacute; par les r&eacute;ussite h&eacute;ro&iuml;ques.</li>\n<li>7 points d&rsquo;&Acirc;me pour ne plus &ecirc;tre affect&eacute; ni par les r&eacute;us\u0002sites h&eacute;ro&iuml;ques ni par les &eacute;checs dramatiques. Acc&egrave;s r&eacute;ser\u0002v&eacute; 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&rsquo;un des attributs de l&rsquo;&Eacute;lu est augment&eacute;, gr&acirc;ce &agrave; la bienveil\u0002lance de la divinit&eacute;. Il ne peut d&eacute;passer le maximum impos&eacute; par l&rsquo;esp&egrave;ce. Ce Don peut &ecirc;tre choisi plusieurs fois, mais il ne peut s&rsquo;appliquer qu&rsquo;une fois par attribut.</p>","allegeance":"tous","prerequis":"6 ou plus dans lattribut modifié.","sacrifice":"<ul>\n<li>3 points d&rsquo;&Acirc;me pour un bonus de + 1. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>6 points d&rsquo;&Acirc;me pour un bonus de + 2. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>9 points d&rsquo;&Acirc;me pour un bonus de + 3. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu sait o&ugrave; se trouvent des ennemis dont il a conscience et qui cherchent &agrave; lui nuire directement dans un rayon de 10 m&egrave;tres. Attention, cette d&eacute;tection ne fonctionnera pas pour deviner que quelqu&rsquo;un est simplement hostile &agrave; l&rsquo;&Eacute;lu ou le hait visc&eacute;ralement. Il s&rsquo;agit d&rsquo;un pouvoir de localisation et de vigilance. La distance de d&eacute;tection peut augmenter en sacrifiant davantage de points d&rsquo;&Acirc;me.</p>","allegeance":"chaos","prerequis":"6 ou plus en Adresse ou Clairvoyance.","sacrifice":"<ul>\n<li>1 point d&rsquo;&Acirc;me pour d&eacute;tecter les ennemis dans un rayon de 10 m&egrave;tres. Acc&egrave;s r&eacute;serv&eacute; aux Novices et aux Adeptes.</li>\n<li>2 points d&rsquo;&Acirc;me pour d&eacute;tecter les ennemis dans un rayon de 100 m&egrave;tres. Acc&egrave;s r&eacute;serv&eacute; aux Chevaliers et aux H&eacute;rauts.</li>\n<li>3 points d&rsquo;&Acirc;me pour d&eacute;tecter les ennemis dans un rayon de 1000 m&egrave;tres. Acc&egrave;s r&eacute;serv&eacute; 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&rsquo;&Eacute;lu peut supporter n&rsquo;importe quel type de souffrance. Il ne subit pas les p&eacute;nalit&eacute;s dues &agrave; l&rsquo;&eacute;tat Bless&eacute; (-2) et Gravement Bless&eacute; (-5). Il est immunis&eacute; &agrave; la torture si elle est infl ig&eacute;e &agrave; partir d&rsquo;un des &eacute;l&eacute;ments tut&eacute;laires du personnage.</p>","allegeance":"elementaires","prerequis":"6 ou plus en Trempe.","sacrifice":"<p>3 points d&rsquo;&Acirc;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&eacute;nario, l&rsquo;&Eacute;lu peut r&eacute;sister &agrave; une menace ou agres\u0002sion, physique ou mentale, sans jeter les d&eacute;s. Il est toutefois n&eacute;ces\u0002saire que l&rsquo;&Eacute;lu ait conscience du danger. L&rsquo;&Eacute;lu pourra par exemple r&eacute;sister &agrave; la terreur provoqu&eacute;e par une cr&eacute;ature du Chaos parti\u0002culi&egrave;rement abominable ou l&eacute;gendaire, mais ne pourra pas &eacute;viter d&rsquo;&ecirc;tre assomm&eacute; par un habile voleur de Bakshaan qu&rsquo;il n&rsquo;avait pas vu. Cette r&eacute;sistance peut m&ecirc;me &ecirc;tre &laquo; extraordinaire &raquo; si l&rsquo;Aspect de l&rsquo;&Eacute;lu est tr&egrave;s haut.</p>\n<p>S&rsquo;il est un Adepte ou un Novice, l&rsquo;&Eacute;lu peut r&eacute;sister &agrave; l&rsquo;ivresse lors d&rsquo;une nuit de beuverie chez un Prince-Marchand de Bakshaan.</p>\n<p>S&rsquo;il est un Chevalier ou un H&eacute;raut, l&rsquo;&Eacute;lu peut r&eacute;sister &agrave; un coup surpuissant (celui-ci est annul&eacute;) ou &agrave; l&rsquo;apparition gla\u0002&ccedil;ante d&rsquo;un D&eacute;mon. S&rsquo;il est un Champion, il peut par exemple soutenir l&rsquo;arche d&rsquo;un temple qui s&rsquo;&eacute;croule pendant quelques pr&eacute;cieuses secondes afi n de laisser le temps &agrave; ses camarades de se mettre &agrave; l&rsquo;abri (songez &agrave; Maciste, &agrave; Samson, ou tout simplement &agrave; Conan). Bref, n&rsquo;h&eacute;sitez pas &agrave; faire dans l&rsquo;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&rsquo;&Acirc;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&rsquo;&Eacute;lu re&ccedil;oit de la divinit&eacute; qu&rsquo;il v&eacute;n&egrave;re l&rsquo;&eacute;quivalent d&rsquo;une Pr&eacute;dilection dans la Capacit&eacute; sp&eacute;ciale &OElig;il du sorcier (voir p. 199). Une fois par s&eacute;ance, il peut donc relancer le test de Clairvoyance + Perception.</p>","allegeance":"chaos","prerequis":"6 ou plus en Clairvoyance.","sacrifice":"<p>2 points d&rsquo;&Acirc;me.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.9Xrm1cfrCmkRtOBc"}},"_id":"zzz9JrtWjELdoAfK"}

BIN
packs/dons/000194.ldb Normal file

Binary file not shown.

0
packs/dons/000201.log Normal file
View File

1
packs/dons/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000199

0
packs/dons/LOCK Normal file
View File

8
packs/dons/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/05/01-09:35:36.447142 7f830ea006c0 Recovering log #197
2024/05/01-09:35:36.500900 7f830ea006c0 Delete type=3 #195
2024/05/01-09:35:36.501044 7f830ea006c0 Delete type=0 #197
2024/05/01-09:42:43.163729 7f830e0006c0 Level-0 table #202: started
2024/05/01-09:42:43.163769 7f830e0006c0 Level-0 table #202: 0 bytes OK
2024/05/01-09:42:43.170272 7f830e0006c0 Delete type=0 #200
2024/05/01-09:42:43.184812 7f830e0006c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
2024/05/01-09:42:43.184921 7f830e0006c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2024/04/25-23:18:20.639847 7f0833e006c0 Recovering log #192
2024/04/25-23:18:20.650619 7f0833e006c0 Delete type=3 #190
2024/04/25-23:18:20.650726 7f0833e006c0 Delete type=0 #192
2024/04/25-23:31:59.846695 7f08310006c0 Level-0 table #198: started
2024/04/25-23:31:59.846738 7f08310006c0 Level-0 table #198: 0 bytes OK
2024/04/25-23:31:59.878047 7f08310006c0 Delete type=0 #196
2024/04/25-23:31:59.950365 7f08310006c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
2024/04/25-23:31:59.950424 7f08310006c0 Manual compaction at level-1 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)

BIN
packs/dons/MANIFEST-000199 Normal file

Binary file not shown.

55
packs/equipement.db Normal file
View File

@ -0,0 +1,55 @@
{"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 dhomme 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 &agrave; 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 dAlchimiste","type":"equipement","img":"systems/fvtt-mournblade/assets/icons/equipement.webp","data":{"description":"<p>Permet de mettre au point les objets les plus complexes (difficult&eacute; de 25 et au-del&agrave;)</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 dauberge à 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>&nbsp;(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 dauberge 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&eacute;n&eacute;ralement d&rsquo;avance&hellip;</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 dattelage","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&eacute;cessaires pour l&rsquo;appliquer. Permet de r&eacute;cup&eacute;rer [[/roll 1D4]] points de Sant&eacute; apr&egrave;s (10 &ndash; 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&egrave;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>(&agrave; inhaler pour se sentir en forme)</p>\n<p>S&rsquo;inhale le temps d&rsquo;une action (&agrave; inhaler pour se sentir en forme) simple. Permet de r&eacute;cup&eacute;rer imm&eacute;diatement [[/roll 1D4]] cases de Sant&eacute; (d&eacute;g&acirc;ts non l&eacute;taux). &Agrave; chaque inhalation, lancez un [[/roll 1d20]]. Sur un 1 ou un 11, celui qui vient de priser la poudre s&rsquo;eff ondre et reste inconscient durant (10 &ndash; Trempe) heures.</p>\n<p>&nbsp;</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&rsquo;&agrave; une difficult&eacute; 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&egrave;re un bonus de + 5 au test de Soins pour arr&ecirc;ter les pertes de points de Sant&eacute;. Note : tous les poisons n&rsquo;ont pas d&rsquo;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 dauberge 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>&nbsp;(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 descalade","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 &laquo; Le Combat et la sant&eacute; &raquo; pour conna&icirc;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&eacute;n&eacute;ralement d&rsquo;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"}

BIN
packs/equipement/000194.ldb Normal file

Binary file not shown.

View File

1
packs/equipement/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000199

0
packs/equipement/LOCK Normal file
View File

8
packs/equipement/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/05/01-09:35:36.386580 7f830f4006c0 Recovering log #197
2024/05/01-09:35:36.440932 7f830f4006c0 Delete type=3 #195
2024/05/01-09:35:36.441077 7f830f4006c0 Delete type=0 #197
2024/05/01-09:42:43.156323 7f830e0006c0 Level-0 table #202: started
2024/05/01-09:42:43.156397 7f830e0006c0 Level-0 table #202: 0 bytes OK
2024/05/01-09:42:43.163540 7f830e0006c0 Delete type=0 #200
2024/05/01-09:42:43.184777 7f830e0006c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
2024/05/01-09:42:43.184871 7f830e0006c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2024/04/25-23:18:20.625174 7f0832a006c0 Recovering log #192
2024/04/25-23:18:20.636417 7f0832a006c0 Delete type=3 #190
2024/04/25-23:18:20.636541 7f0832a006c0 Delete type=0 #192
2024/04/25-23:31:59.807936 7f08310006c0 Level-0 table #198: started
2024/04/25-23:31:59.807990 7f08310006c0 Level-0 table #198: 0 bytes OK
2024/04/25-23:31:59.846313 7f08310006c0 Delete type=0 #196
2024/04/25-23:31:59.913834 7f08310006c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
2024/04/25-23:31:59.950407 7f08310006c0 Manual compaction at level-1 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)

Binary file not shown.

10
packs/heritages.db Normal file
View File

@ -0,0 +1,10 @@
{"name":"Abomination","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 120\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">avec l&rsquo;accord du MJ, le personnage choisit un bonus de + 1 dans un attribut (ou un bonus de + 2 dans une Compétence, ou tout autre avantage équivalent).<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">avec l&rsquo;accord du MJ, le personnage choisit un malus de &ndash; 1 dans un attribut (ou tout autre désavantage équivalent). Il souffre par ailleurs du désavantage &laquo; Répulsion &raquo;. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Effets </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">:<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Répulsion : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">si la nature abominable du personnage est découverte, il subit un malus de &ndash; 3 à tous ses tests de Présence devant quelqu&rsquo;un qui a des préjugés défavorables contre de tels personnages (ce qui veut dire pratiquement tout le monde dans les Jeunes Royaumes). </span></p>\n</div>\n</div>\n</div>\n</div>\n<div class=\"page\" title=\"Page 120\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Exemples de mutations : </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Longues jambes : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage a + 2 en Vitesse et &ndash; 1 en Présence.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Froideur reptilienne : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage a + 1 en Trempe et &ndash; 3 à tous ses tests de Persuasion. Son impassibilité met facilement ses interlocuteurs mal à l&rsquo;aise. </span></p>\n</div>\n</div>\n</div>\n</div>\n<div class=\"page\" title=\"Page 121\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Régénération : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le sang du personnage est d&rsquo;une couleur étrange, mais à chaque fois qu&rsquo;il regagne de la Santé, le nombre de points récupérés est doublé.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Résistance à la corruption : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage est naturellement résistant aux poisons et aux maladies courantes, mais sa peau ressemble par endroits à celle d&rsquo;un grand brûlé. Il est immunisé contre ces dernières mais subit un malus de &ndash; 1 en Présence. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.OxYgUbhQ92N44GLs"}},"_id":"2GaJZsqr2c2mcDRv"}
{"name":"Isolationniste","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 120\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage bénéficie du trait &laquo; J&rsquo;ai mieux à la maison &raquo;.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">vous subissez un malus permanent de &ndash; 2 à tous vos tests de Savoir : Jeunes Royaumes. C&rsquo;est un sujet qui ne vous intéresse pas et il se peut même que certaines choses que vous sachiez soient fausses (et probablement le fruit d&rsquo;un bon bourrage de crâne). </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Effets </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">:<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">J&rsquo;ai mieux à la maison : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">vous tirez un grand réconfort moral de la supériorité évidente de vos origines. Vous gagnez + 2 en Âme. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.hYd6nv1QDp0EkFQY"}},"_id":"9bao8syTKYQDLjpR"}
{"name":"Noble","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 121\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage possède la Prédilection Comman- dement (Coercition) et commence la partie avec une arme, une armure et un cheval.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">peu habitué à faire profil bas, le personnage subit un malus de &ndash; 2 aux tests de Discrétion. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.S7GzdRLOlRHqyRcb"}},"_id":"Hl7o7HTX5OYoOLWV"}
{"name":"Paria","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 119\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage bénéficie d&rsquo;un bonus de + 1 en Trempe.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">&laquo; Persécuté &raquo;.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Effets </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Persécuté : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage a tendance à se croire l&rsquo;objet de moqueries ou de regards méprisants... et il se trompe souvent sur le compte de ses interlocuteurs. Il souffre d&rsquo;un malus de &ndash; 2 à tous ses tests de Perception lorsqu&rsquo;ils concernent le domaine de l&rsquo;empathie. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.w24oZ4LobhR9KXt3"}},"_id":"JChFEYx3dueDB3i0"}
{"name":"Colosse","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 120\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">votre taille est augmentée de 20 cm et vous avez + 1 en Puissance.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">&ndash; 1 en Adresse. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.L8Jijr1R3uKveuum"}},"_id":"LsQhqznKS70nzLtB"}
{"name":"Commun","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 120\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">aucun<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">aucun </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.O8laCAr0z6FSdd4t"}},"_id":"OZpha6BHfwq1siGM"}
{"name":"Crapule","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 121\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage bénéficie d&rsquo;un bonus de + 2 en Filouterie. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">&laquo; Sales manières &raquo; </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Effets </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Sales manières : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">&ndash; 2 aux tests de Présence devant des person- nages d&rsquo;une classe sociale supérieure. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.hZDnJDQsTP0Q34vt"}},"_id":"WfM40Irs2ZybFPz6"}
{"name":"Érudit","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 121\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 3, + 2, + 2 dans trois compétences de Savoir au choix, dont Lire &amp; Écrire. </span></p>\n</div>\n</div>\n</div>\n</div>\n<div class=\"page\" title=\"Page 121\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">&ndash; 3 en Santé. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.85lFszp9ztGHJ2Gh"}},"_id":"g1XSpX4Khnedpz4I"}
{"name":"Voyageur","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 121\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantage : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le personnage bénéficie d&rsquo;un bonus de + 2 dans la compétence Savoir : Jeunes Royaumes et il dispose de la Prédilection Routes (Commerce). </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défaut : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">&laquo; Le feu aux trousses &raquo;. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Effets : </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-style: italic; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Le feu aux trousses : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">vous avez du mal à rester longtemps au même endroit. Cela vous rend nerveux. Vous subissez un malus de &ndash; 1 en Trempe chaque fois que vous restez plus d&rsquo;une semaine dans la même communauté (ville, village, navire). </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.sIwut35hb96eQwdi"}},"_id":"i1RCQ66Lep3UfHr7"}
{"name":"Sang-mêlé","type":"heritage","img":"systems/fvtt-mournblade/assets/icons/heritage.webp","data":{"description":"<div class=\"page\" title=\"Page 120\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">vous partagez avec vos ancêtres melnibonéens des ressources mentales insoupçonnées. Votre réserve d&rsquo;Âme est égale à (Trempe + Clairvoyance) x 3 + 5. </span></p>\n</div>\n</div>\n</div>\n</div>\n<div class=\"page\" title=\"Page 120\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Défauts : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">vous êtes l&rsquo;objet de toutes les haines et de tous les préjugés. Vous subissez en permanence un malus de &ndash; 2 à tout test lors d&rsquo;une interaction sociale avec une personne n&rsquo;appar- tenant pas à votre cercle proche. Ce malus ne s&rsquo;applique évi- demment pas à la Sorcellerie. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.rFZS2h1BHUa6vk3l"}},"_id":"ui4JGsGwHNlSXVK3"}

BIN
packs/heritages/000194.ldb Normal file

Binary file not shown.

View File

1
packs/heritages/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000199

0
packs/heritages/LOCK Normal file
View File

8
packs/heritages/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/05/01-09:35:36.580416 7f830ea006c0 Recovering log #197
2024/05/01-09:35:36.650922 7f830ea006c0 Delete type=3 #195
2024/05/01-09:35:36.651073 7f830ea006c0 Delete type=0 #197
2024/05/01-09:42:43.178046 7f830e0006c0 Level-0 table #202: started
2024/05/01-09:42:43.178094 7f830e0006c0 Level-0 table #202: 0 bytes OK
2024/05/01-09:42:43.184514 7f830e0006c0 Delete type=0 #200
2024/05/01-09:42:43.184854 7f830e0006c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
2024/05/01-09:42:43.184903 7f830e0006c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2024/04/25-23:18:20.668825 7f0833e006c0 Recovering log #192
2024/04/25-23:18:20.680265 7f0833e006c0 Delete type=3 #190
2024/04/25-23:18:20.680363 7f0833e006c0 Delete type=0 #192
2024/04/25-23:31:59.913864 7f08310006c0 Level-0 table #198: started
2024/04/25-23:31:59.913918 7f08310006c0 Level-0 table #198: 0 bytes OK
2024/04/25-23:31:59.950159 7f08310006c0 Delete type=0 #196
2024/04/25-23:31:59.950438 7f08310006c0 Manual compaction at level-0 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)
2024/04/25-23:31:59.950490 7f08310006c0 Manual compaction at level-1 from '!items!2GaJZsqr2c2mcDRv' @ 72057594037927935 : 1 .. '!items!ui4JGsGwHNlSXVK3' @ 0 : 0; will stop at (end)

Binary file not shown.

17
packs/metiers.db Normal file
View File

@ -0,0 +1,17 @@
{"name":"Esclave en fuite","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 131\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un esclave dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Trempe, ce bonus est doublé.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 2 en Trempe, + 1 en Puissance. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Discrétion, Filouterie, Mêlée, Mouvements, Perception, Savoir : un artisanat au choix, Survie. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">la marque de son ancien propriétaire et une arme de fortune. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.3ERM97vfdcd0YwHi"}},"_id":"09s33sFuju8zjPqI"}
{"name":"Marin","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 132\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">tant que le marin se trouve sur une embarcation, chaque point de Bonne Aventure qu&rsquo;il dépense double le bonus aux tests de Capacité.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Adresse, + 2 en Trempe. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Commerce, Mêlée, Mouvements, Nage, Navigation, Savoir : Bas-fonds, Savoir : Jeunes Royaumes, Savoir : Jeux. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme de son choix, une veste et des bottes de mer. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.6j1tKkyPuwo5uaPL"}},"_id":"35f1mCziUKfGWgTu"}
{"name":"Racaille","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 132\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;une racaille dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Discrétion ou Savoir : Bas-fonds, ce bonus est doublé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Adresse, + 1 en Clairvoyance, + 1 en Présence. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Coercition, Discrétion, Filouterie, Mêlée, Mouvements, Perception, Persuasion, Savoir : Bas-fonds, Savoir : Jeux.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme de son choix et un jeu de carte ou une paire de dés truqués. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.mKsk20fOPrcDNgMW"}},"_id":"4vOELIgz6PlyEBXz"}
{"name":"Chasseur de primes","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 126\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un chasseur de prime fait un test de Per- ception ou de Savoir : Bas-fonds pour trouver une personne dont il connaît le nom (collecte d&rsquo;information auprès de ses proches, piste à suivre dans la nature, vigilance devant un déguisement qu&rsquo;il pourrait revêtir, etc.), et qu&rsquo;il dépense un point de Bonne Aventure ou un point d&rsquo;Éclat le bonus octroyé est doublé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 2 en Trempe, + 1 en Clairvoyance. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Coercition, Discrétion, Filoute- rie, Mêlée, Perception, Savoir : Bas-fonds, Savoir : Jeunes Royaumes.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme de son choix, une descrip- tion de la personne ou de l&rsquo;objet recherché et une lettre de recommandation émanant d&rsquo;un client satisfait. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.7srRNPIWcpvbvqho"}},"_id":"DuHrBepvID2T5iiG"}
{"name":"Assassin","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 126\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">en dépensant 3 points de Bonne Aven- ture, un assassin peut lancer 1d8 points de dégâts supplémen- taires. Cette capacité ne peut être utilisée qu&rsquo;une seule fois par attaque. En dépensant un point d&rsquo;Éclat, l&rsquo;assassin peut, à la place, choisir le résultat de ce dé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Adresse, + 1 en Clairvoyance, + 1 en Puissance.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Armes à Distance, Discrétion, Filou- terie, Mêlée, Mouvements, Perception, Savoir : Alchimie, Savoir : Bas-fonds. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme de son choix, une dague et une grande pélerine à capuche. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.lNQwoZdyMOgwIdlL"}},"_id":"ENN5Hbnhh9FurhNg"}
{"name":"Dresseur","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 127\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un dresseur dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Coercition ou de Monte impliquant un animal, ce bonus est doublé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Adresse, + 1 en Présence, + 1 en Trempe.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Coercition, Monte, Mouvements, Nage, Perception, Savoir : Plantes &amp; Animaux, Soins, Survie. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold;\">Compagnon animal : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">choisissez votre compagnon animal avec l&rsquo;accord du Maître. Ce dernier est un membre standard de son espèce. Il connaît un nombre de tours simples égal à votre score en Coercition. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">un compagnon animal au choix, un bâton de marche et des vêtements de voyage </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.guXczFFiJxwvXqy5"}},"_id":"Kbfmr5bdBKKX1HPG"}
{"name":"Courtisan","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 127\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un courtisan dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Savoir : Courtisan ou de Persuasion, ce bonus est doublé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Clairvoyance, + 2 en Présence. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Discrétion, Mêlée, Perception, Per- suasion, Savoir : Courtisan, Savoir : Droit, Savoir : Jeunes Royaumes, Savoir : Lire &amp; Écrire, Savoir : Bas-Parler. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme d&rsquo;apparat et un élégant habit de cour. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.7dwahKzRakMU36N3"}},"_id":"Mmbet07iWYFBXdkM"}
{"name":"Capitaine","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 126\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">le capitaine peut coordonner ses alliés afin d&rsquo;améliorer leur efficacité au combat. En dépensant 3 points de Bonne Aventure lors d&rsquo;un combat, il fait bénéficier ses alliés d&rsquo;un + 1 à leur Capacité offensive et à leur Défense jusqu&rsquo;à la fin de l&rsquo;affrontement. En dépensant à la place 1 point d&rsquo;Éclat, ce bonus est porté à + 3. </span></p>\n</div>\n</div>\n</div>\n</div>\n<div class=\"page\" title=\"Page 126\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Présence, + 1 en Puissance, + 1 en Trempe.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Coercition, Mêlée, Monte, Mouve- ments, Persuasion, Savoir : Art de la guerre, Savoir : Courti- san, Savoir : Jeunes Royaumes, Savoir : Lire &amp; Écrire. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme de son choix, un cheval fatigué et un habit d&rsquo;apparat démodé. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.iihYwC2uJXsa1Goz"}},"_id":"NToYuFMXJgu88HCz"}
{"name":"Ecclésiaste","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 129\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacités spéciales : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un ecclésiaste dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obte- nir un bonus à un test de Savoir ou de Persuasion lié à son culte ou à sa propagation, ce bonus est doublé. L&rsquo;ecclésiaste maîtrise l&rsquo;&OElig;il d&rsquo;Arkyn ou l&rsquo;&OElig;il du Sorcier&nbsp;</span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Pacte obligatoire : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">vous devez lier un pacte avec votre divinité. Pour ce faire, vous devez respecter les prérequis. Vous gagnez un niveau en Loi si votre divinité fait partie des Seigneurs de la Loi ou un niveau en Chaos si votre divinité fait partie des Seigneurs du Chaos et un niveau dans l&rsquo;Alignement que vous souhaitez si votre divinité est un Seigneur Élémentaire ou des Bêtes. Vous êtes limité à un pacte de base lors de la création de votre Élu mais vous pouvez choisir un deuxième Don en rapport avec votre divinité. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 2 en Présence, + 1 en Trempe. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Persuasion, Savoir : Alchimie, Savoir : Jeunes Royaumes, Savoir : Bas-Parler, Savoir : Lire &amp; Écrire, Savoir : Haut-Parler, Savoir : Loi &amp; Chaos, Savoir : Seigneurs Élémentaires, Savoir : Seigneurs des Bêtes, Savoir : Runes, Soins. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">un vêtement ecclésiastique, un livre de prière ou son équivalent, le symbole de son culte. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.utPrwKXVt7Ry1rJC"}},"_id":"QX7Nx1jfkOd5rzmP"}
{"name":"Sorcier","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 134\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacités spéciales : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un sorcier dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Terreur ou d&rsquo;Extase, ce bonus est doublé.<br />Le sorcier maîtrise l&rsquo;&OElig;il du Sorcier ou l&rsquo;&OElig;il d&rsquo;Arkyn. </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold;\">De plus, contrairement aux autres personnages, le sorcier maîtrise à la création un nombre de Runes égal à deux fois son score en Savoir : Runes. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 2 en Clairvoyance, + 1 en Trempe. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Coercition, Persuasion, Savoir : Alchi- mie, Savoir : Jeunes Royaumes, Savoir : Bas-Parler, Savoir : Lire &amp; Écrire, Savoir : Haut-Parler, Savoir : Loi &amp; Chaos, Savoir : Runes, Savoir : Seigneurs Élémentaires, Savoir : Sei- gneurs des Bêtes. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">un couteau sacrificiel, un bol, un pinceau et une robe de cérémonie. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.o1FzLjXoOx8n3vpH"}},"_id":"UOITxMrVdITBe0W7"}
{"name":"Artiste","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 124\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsque l&rsquo;artiste pratique son art et dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à son test de compétence, ce bonus est doublé. De surcroît, si l&rsquo;artiste a dépensé un point d&rsquo;Éclat et obtenu à son test une réussite héroïque, il crée un véritable chef-d&rsquo;&oelig;uvre ou produit une performance hors du commun qui est à même d&rsquo;augmenter sa renommée, de lui obtenir un nouveau patron ou de faire d&rsquo;un ou de plusieurs spectateurs des admirateurs prêts à presque tout pour satisfaire l&rsquo;artiste. Enfin, tous les spectateurs ou personnes qui voient pour la première fois ce chef-d&rsquo;&oelig;uvre doivent faire un test d&rsquo;Extase </span></p>\n</div>\n</div>\n</div>\n</div>\n<div class=\"page\" title=\"Page 124\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 2 en Présence, + 1 en Adresse. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Mouvements, Persuasion, Percep- tion, Savoir : Chant &amp; Musique, Savoir : Courtisan, Savoir : Jeunes Royaumes, Savoir : Lire &amp; Écrire, Savoir : Bas-Parler, Savoir : Peinture &amp; Sculpture, Savoir : Théâtre &amp; Poésie. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">l&rsquo;équipement et les accessoires néces- saires à son art, des vêtements de voyage et un vieil habit de cour défraîchi. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.DowptUubMeGDEdC3"}},"_id":"XCkrH4ZihwM9l4HF"}
{"name":"Soldat de fortune","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 135\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">en dépensant 2 points de Bonne Aven- ture lors d&rsquo;un combat, le soldat de fortune perd dorénavant 1 point de Santé de moins à chaque blessure et ce jusqu&rsquo;à la fin du combat. En dépensant à la place 1 point d&rsquo;Éclat, le soldat de fortune perd 3 points de Santé de moins à chaque blessure jusqu&rsquo;à la fin du combat. Toutefois, dans ce dernier cas, sa réserve de points de Santé tombe à 1 une fois le combat achevé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 2 en Puissance, + 1 en Trempe. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Armes à distance, Coercition, Mêlée, Monte, Mouvements, Savoir : Art de la guerre, Savoir : Jeunes Royaumes, Savoir : Jeux, Soins.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme de son choix, une armure de son choix et une cicatrice impressionnante et reconnaissable. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.JsYaRLD7xkXq8qV4"}},"_id":"ZhMLA8SYagTCZAPu"}
{"name":"Artisan","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 122\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsque l&rsquo;artisan dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test d&rsquo;artisanat, ce bonus est doublé. De surcroît, si l&rsquo;artisan a dépensé un point d&rsquo;Éclat et obtenu à son test une réussite héroïque, il crée un véritable chef-d&rsquo;&oelig;uvre (doué d&rsquo;une propriété spéciale définie par le MJ, par exemple un bonus à une arme comme + 1 aux dégâts, + 1 au BM, ou + 1 en protection pour une armure etc.) </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Clairvoyance, + 2 en Adresse. </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Commerce, Perception, Persuasion, Savoir : Architecture, Savoir : un artisanat au choix, Savoir : un deuxième artisanat au choix, Savoir : Jeunes Royaumes, Savoir : Lire &amp; Écrire. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les outils nécessaires à son art, un carnet de note et un matériel d&rsquo;écriture si le personnage pos- sède un niveau en Savoir : Lire &amp; Écrire ou de solides bottes et un bâton de marche dans le cas contraire. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.kEGlsQqhdtPfqg6d"}},"_id":"agSi2gNfXcBDD0A6"}
{"name":"Érudit","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 130\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un érudit dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Savoir, ce bonus est doublé.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 2 en Clairvoyance, + 1 en Présence. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">tous les savoirs sauf Bas-fonds, Courtisan et Runes. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">un carnet de croquis, une plume et un ouvrage savant. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.Y3F5yjwrlKhKaRDP"}},"_id":"nMkFZvawdalFjlKW"}
{"name":"Éclaireur","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 130\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un éclaireur dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Savoir : Jeunes Royaumes ou de Survie, ce bonus est doublé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Adresse, + 1 en Clairvoyance, + 1 en Trempe.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Armes à distance, Discrétion, Monte, Mouvements, Nage, Navigation, Perception, Savoir : Jeunes Royaumes, Savoir : Plantes &amp; Animaux, Survie. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">une arme à distance, un couteau et une tenue adaptée à l&rsquo;environnement du lieu de départ. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.TW3TxALpjCwsYM3o"}},"_id":"tqspjN18J3I11XMW"}
{"name":"Spadassin","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 135\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un spadassin veut assommer quelqu&rsquo;un et dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à son test de Filouterie, ce bonus est doublé. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Adresse, + 1 en Puissance, + 1 en Trempe.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Armes à Distance, Coercition, Com- merce, Discrétion, Filouterie, Mêlée, Mouvements, Survie. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">un assommoir, une arme de son choix, un grand chapeau et de quoi masquer son visage. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.kwUJsy2uCziq4Tdo"}},"_id":"xDZsB5dza1cgurXe"}
{"name":"Marchand","type":"metier","img":"systems/fvtt-mournblade/assets/icons/profession.webp","data":{"description":"<div class=\"page\" title=\"Page 131\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Capacité spéciale : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">lorsqu&rsquo;un marchand dépense un point de Bonne Aventure ou un point d&rsquo;Éclat pour obtenir un bonus à un test de Commerce, ce bonus est doublé.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Bonus d&rsquo;attributs : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Présence, + 1 en Clairvoyance et + 1 en Trempe. </span></p>\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Compétences exercées : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Commerce, Monte, Navigation, Persuasion, Savoir : Courtisan, Savoir : Droit, Savoir : Lire &amp; Écrire, Savoir : Jeunes Royaumes, Survie.<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Équipement de départ : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">un attelage ou un bateau, et quelques marchandises à vendre. </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.XSL2MnXd6Q642JFO"}},"_id":"xlyFCQClBZ1N3O1B"}

BIN
packs/metiers/000194.ldb Normal file

Binary file not shown.

0
packs/metiers/000201.log Normal file
View File

1
packs/metiers/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000199

0
packs/metiers/LOCK Normal file
View File

8
packs/metiers/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/05/01-09:35:36.655366 7f830f4006c0 Recovering log #197
2024/05/01-09:35:36.709235 7f830f4006c0 Delete type=3 #195
2024/05/01-09:35:36.709381 7f830f4006c0 Delete type=0 #197
2024/05/01-09:42:43.185067 7f830e0006c0 Level-0 table #202: started
2024/05/01-09:42:43.185130 7f830e0006c0 Level-0 table #202: 0 bytes OK
2024/05/01-09:42:43.191994 7f830e0006c0 Delete type=0 #200
2024/05/01-09:42:43.216134 7f830e0006c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
2024/05/01-09:42:43.216237 7f830e0006c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2024/04/25-23:18:20.683579 7f0832a006c0 Recovering log #192
2024/04/25-23:18:20.739808 7f0832a006c0 Delete type=3 #190
2024/04/25-23:18:20.740012 7f0832a006c0 Delete type=0 #192
2024/04/25-23:31:59.987531 7f08310006c0 Level-0 table #198: started
2024/04/25-23:31:59.987597 7f08310006c0 Level-0 table #198: 0 bytes OK
2024/04/25-23:32:00.025092 7f08310006c0 Delete type=0 #196
2024/04/25-23:32:00.098181 7f08310006c0 Manual compaction at level-0 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)
2024/04/25-23:32:00.098246 7f08310006c0 Manual compaction at level-1 from '!items!09s33sFuju8zjPqI' @ 72057594037927935 : 1 .. '!items!xlyFCQClBZ1N3O1B' @ 0 : 0; will stop at (end)

Binary file not shown.

20
packs/origines.db Normal file
View File

@ -0,0 +1,20 @@
{"name":"Les Terres Silencieuses","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 118\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres de l&rsquo;Ouest<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">aucune<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 Savoir : Logique &amp; Mécanique ou + 1 en Survie </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.oh4K1mgUrcUc4zdl"}},"_id":"2t1KmBeQNuKK5qlN"}
{"name":"Le Dorel","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 114\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Sud<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Lassa (Élémentaire), Grome (Élémentaire), Kakatal (Élémentaire)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Théâtre &amp; Poésie ou Prédilection : Arme à une Main (Mêlée) ou Prédilection : Attelage (Monte) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.9zbcuoRfiWVEMTmF"}},"_id":"8cStkkGtsnEqyMMV"}
{"name":"Le Dharijor","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 117\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres de l&rsquo;Ouest<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Chardros (Chaos), Pyaray (Chaos), Hionhurn (Chaos)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Art de la Guerre ou + 1 en Mêlée </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.eqh8NilLhxKsHPzY"}},"_id":"8ytKK10eQ9KWomUx"}
{"name":"Le Lormyr","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 116\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Sud<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Donblas (Loi), Shalod (Loi) </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Courtisan ou Prédilection : Arme à deux mains (Mêlée) ou Prédilection : Chevaucher (Monte) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.uEO1bupVGqZtwGoV"}},"_id":"BMjZUFdt23TcZolr"}
{"name":"Le Vilmir","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 113\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Nord<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Miggea (Loi), Tovik (Loi)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Loi &amp; Chaos ou Prédilection : Intimidation (Coercition) ou Prédilection : Se Cacher (Discrétion) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.gdu6A7llcbDAu55D"}},"_id":"CJAC49IJOYwSn27K"}
{"name":"Oin & Yu","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 116\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Sud<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Straasha (Élémentaire), Ap-yss-Alara (Bête), Teer (Chaos)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Navigation ou Prédilection : Pêche (Sur- vie) ou Prédilection : Arme de Jet (Armes à Distance) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.0AkiZr4ZbIH8Mk3i"}},"_id":"HPgTW8rEMwKXaV3y"}
{"name":"Désert des Larmes","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 111\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Nord<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Lassa (Élémentaire), Straasha (Élémentaire), Grome (Élémentaire)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Monte ou Prédilection : Arme à Projectile (Armes à Distance) ou Prédilection : Steppe (Survie) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.u1PZyAQpywvcf5nl"}},"_id":"JhhvvGRFo2vW8hao"}
{"name":"Nadsokor","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 111\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Nord<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Mashabak (Chaos), Balo (Chaos), Checkalakh (Chaos)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Filouterie ou Prédilection : Escamoter (Filouterie) ou Prédilection : Baratin (Persuasion) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.FE1qvvd0k4SYZoGn"}},"_id":"JsG2lEiGLLr5mKaX"}
{"name":"Org","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 113\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Nord<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Teer (Chaos), Hionhurn (Chaos), Balaan (Chaos)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Survie ou Prédilection : Forêt (Survie) ou Prédilection : Mains Nues (Mêlée) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.jPYHmcP6BxDRH0KU"}},"_id":"Pt2RP047qe8sj8MA"}
{"name":"LArgimiliar","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 113\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Sud<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Donblas (Loi), Shalod (Loi)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Monte ou + 1 en Savoir : une Connaissance au choix </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.CcUF5rrbuiFCdpTv"}},"_id":"b12em5uYSh5Fegrs"}
{"name":"Le Pikarayd","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 117\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Sud<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Lassa (Élémentaire), Chardros (Cha- os), Hionhurn (Chaos)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Mêlée ou Prédilection : Arme à une Main (Mêlée) ou Prédilection : Mains Nues (Mêlée) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.ftXOOnpHGyMRADCu"}},"_id":"bQ7Kh9ydUDzl3p82"}
{"name":"Le Jharkor","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 117\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres de l&rsquo;Ouest<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Donblas (Loi), Grome (Élémentaire)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 Savoir : Chant &amp; Musique ou + 1 Savoir : Agriculture </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.5HT5Pz9FZ6zQe9dF"}},"_id":"bV5olFnvZUja7eKV"}
{"name":"Séred Öma","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 111\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Nord<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Arioch (Chaos), Shalod (Loi)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Art (au choix) ou + 1 en Commerce </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.jI24OzfnMcmvECtC"}},"_id":"iCy3p5teOoBZ5zG6"}
{"name":"Le Shazaar (ou Shazar)","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 117\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres de l&rsquo;Ouest<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Donblas (Loi), Aponaä, Seigneur des Chevaux (Bête)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Monte ou Prédilection : Soins aux Animaux (Monte) ou Prédilection : Combat Monté (Mêlée) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.YY1bH6U8s8xvG3p5"}},"_id":"jXCdgNNIOAOEjGDt"}
{"name":"Le Tarkesh","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 118\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres de l&rsquo;Ouest<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Donblas (Loi), Straasha (Élémentaire), Roofdrak (Bête)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 Savoir : Travail du Bois ou + 1 en Navigation </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.CKkvlezivsKCgb7q"}},"_id":"kk9ysBFuqedZqJ1U"}
{"name":"Pan Tang","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 119\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Îles des Jeunes Royaumes<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Chardros (Chaos), Balaan (Chaos), Maluk (Chaos)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Loi &amp; Chaos ou Prédilection : Arme à une Main (Mêlée) ou Prédilection : Éloquence (Persuasion) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.rc82LHSc7a9925uY"}},"_id":"lHUMxB4peDFfhvod"}
{"name":"Quarzhasaat","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 113\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Nord<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Mabelode (Chaos), Eequor (Chaos), Maluk (Chaos)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Courtisan ou Prédilection : Charme (Persuasion) ou Prédilection : Désert (Survie) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.izSuvh9fVBvgtmG6"}},"_id":"tGD2uoQgNEoSqHnj"}
{"name":"Le Filkhar","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 116\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Sud<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Donblas (Loi), Shalod (Loi) </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Persuasion ou + 1 en Savoir : Artisanat (Cuisine) </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.dUJk3mrziQM5Rnbd"}},"_id":"wmI6blFpV0BIYHtE"}
{"name":"LIlmiora","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 110\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Terres du Nord<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Arkyn (Loi), Donblas (Loi), Shalod (Loi)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Savoir : Artisanat (au choix) ou + 1 en Savoir : Courtisan </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.8GzEvygEWuX3QNZ9"}},"_id":"xBXKDFKKxua8RGoy"}
{"name":"Les Îles des Cités Pourpres","type":"origine","img":"systems/fvtt-mournblade/assets/icons/origine.webp","data":{"description":"<div class=\"page\" title=\"Page 119\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Région : </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">les Îles des Jeunes Royaumes<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Divinités principales </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">: </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">Donblas (Loi), Slortar (Chaos), Straasha (Élémentaire)<br /></span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; font-weight: bold; color: rgb(29.700000%, 0.600000%, 13.200000%);\">Avantages </span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT'; color: rgb(29.700000%, 0.600000%, 13.200000%);\">:</span><span style=\"font-size: 11.000000pt; font-family: 'CentaurMT';\">+ 1 en Commerce ou + 1 en Navigation </span></p>\n</div>\n</div>\n</div>\n</div>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xLCohqWYqWL3nwTN":3},"flags":{"core":{"sourceId":"Item.3s6ixAvW5lPVoRg9"}},"_id":"yBvkQb9S64s908sR"}

BIN
packs/origines/000194.ldb Normal file

Binary file not shown.

View File

1
packs/origines/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000199

0
packs/origines/LOCK Normal file
View File

8
packs/origines/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/05/01-09:35:36.508432 7f830f4006c0 Recovering log #197
2024/05/01-09:35:36.561800 7f830f4006c0 Delete type=3 #195
2024/05/01-09:35:36.561939 7f830f4006c0 Delete type=0 #197
2024/05/01-09:42:43.170680 7f830e0006c0 Level-0 table #202: started
2024/05/01-09:42:43.170753 7f830e0006c0 Level-0 table #202: 0 bytes OK
2024/05/01-09:42:43.177825 7f830e0006c0 Delete type=0 #200
2024/05/01-09:42:43.184836 7f830e0006c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
2024/05/01-09:42:43.184888 7f830e0006c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2024/04/25-23:18:20.653541 7f0832a006c0 Recovering log #192
2024/04/25-23:18:20.665587 7f0832a006c0 Delete type=3 #190
2024/04/25-23:18:20.665693 7f0832a006c0 Delete type=0 #192
2024/04/25-23:31:59.878272 7f08310006c0 Level-0 table #198: started
2024/04/25-23:31:59.878321 7f08310006c0 Level-0 table #198: 0 bytes OK
2024/04/25-23:31:59.913563 7f08310006c0 Delete type=0 #196
2024/04/25-23:31:59.950389 7f08310006c0 Manual compaction at level-0 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)
2024/04/25-23:31:59.950473 7f08310006c0 Manual compaction at level-1 from '!items!2t1KmBeQNuKK5qlN' @ 72057594037927935 : 1 .. '!items!yBvkQb9S64s908sR' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

@ -0,0 +1 @@
MANIFEST-000095

0
packs/pnj-creatures/LOCK Normal file
View File

Some files were not shown because too many files have changed in this diff Show More