Compare commits

..

5 Commits

Author SHA1 Message Date
fb6463aba5 Sante et autrs 2022-06-06 18:49:39 +02:00
665feac605 Gestion des predilections et rework dons 2022-06-05 23:27:38 +02:00
cd1ecf1d96 Gestion/assistance aventure/eclat 2022-06-05 18:49:38 +02:00
ea0de0e8cd Gestion/assistance aventure/eclat 2022-06-05 16:35:25 +02:00
c7a1133334 Gestion/assistance aventure/eclat 2022-06-05 15:54:17 +02:00
28 changed files with 1074 additions and 234 deletions

BIN
assets/icons/adresse.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/icons/eclat.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/icons/presence.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
assets/icons/puissance.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/icons/trempe.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -41,9 +41,12 @@ export class MournbladeActorSheet extends ActorSheet {
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited,
skills: duplicate(this.actor.getSkills()),
weapons: duplicate(this.actor.getWeapons()),
armors: duplicate(this.actor.getArmors()),
//equipments: duplicate(this.actor.getEquipments()),
armes: duplicate(this.actor.getWeapons()),
protections: duplicate(this.actor.getArmors()),
dons: duplicate(this.actor.getDons()),
alignement: this.actor.getAlignement(),
combat: this.actor.getCombatValues(),
equipements: duplicate(this.actor.getEquipments()),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
@ -106,28 +109,17 @@ export class MournbladeActorSheet extends ActorSheet {
let compId = li.data("item-id")
this.actor.rollCompetence(attrKey, compId)
})
html.find('.roll-spec').click((event) => {
const li = $(event.currentTarget).parents(".item");
const specId = li.data("item-id");
this.actor.rollSpec(specId);
});
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('.roll-arme-offensif').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
this.actor.rollArmeOffensif(armeId)
})
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('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore;
@ -152,11 +144,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.
@ -36,7 +39,7 @@ export class MournbladeActor extends Actor {
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 == 'pnj') {
}
@ -44,20 +47,60 @@ export class MournbladeActor extends Actor {
return super.create(data, options);
}
/* -------------------------------------------- */
prepareArme( arme){
arme = duplicate(arme)
let combat = this.getCombatValues()
if (arme.data.typearme == "contact" || arme.data.typearme == "contactjet") {
arme.data.competence = duplicate(this.data.items.find( item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
arme.data.attrKey = "pui"
arme.data.totalDegats = arme.data.degats + "+" + combat.bonusDegatsTotal
arme.data.totalOffensif = this.data.data.attributs.pui.value + arme.data.competence.data.niveau + arme.data.bonusmaniementoff
if (arme.data.isdefense) {
arme.data.totalDefensif = combat.defenseTotal + arme.data.competence.data.niveau + arme.data.bonusmaniementdef
}
}
if (arme.data.typearme == "jet" || arme.data.typearme == "tir") {
arme.data.competence = duplicate(this.data.items.find( item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.data.attrKey = "adr"
arme.data.totalOffensif = this.data.data.attributs.adr.value + arme.data.competence.data.niveau + arme.data.bonusmaniementoff
arme.data.totalDegats = arme.data.degats
if (arme.data.isdefense) {
arme.data.totalDefensif = combat.defenseTotal + arme.data.competence.data.niveau + arme.data.bonusmaniementdef
}
}
return arme
}
/* -------------------------------------------- */
getWeapons() {
return this.data.items.filter(item => item.type == "arme" )
let armes = []
for (let arme of this.data.items ) {
if (arme.type == "arme") {
armes.push(this.prepareArme( arme) )
}
}
return armes
}
/* -------------------------------------------- */
getDons() {
return this.data.items.filter(item => item.type == "don")
}
/* -------------------------------------------- */
getEquipments() {
return this.data.items.filter(item => item.type == "equipement")
}
/* -------------------------------------------- */
getArmors() {
return this.data.items.filter(item => item.type == "protection" )
return this.data.items.filter(item => item.type == "protection")
}
/* -------------------------------------------- */
getSkills() {
let comp = []
for( let item of this.data.items) {
for (let item of this.data.items) {
item = duplicate(item)
if ( item.type == "competence") {
if (item.type == "competence") {
item.data.attribut1total = item.data.niveau + (this.data.data.attributs[item.data.attribut1]?.value || 0)
item.data.attribut2total = item.data.niveau + (this.data.data.attributs[item.data.attribut2]?.value || 0)
item.data.attribut3total = item.data.niveau + (this.data.data.attributs[item.data.attribut3]?.value || 0)
@ -69,12 +112,41 @@ export class MournbladeActor extends Actor {
item.data.attribut1label = this.data.data.attributs[item.data.attribut1]?.label || ""
item.data.attribut2label = this.data.data.attributs[item.data.attribut2]?.label || ""
item.data.attribut3label = this.data.data.attributs[item.data.attribut3]?.label || ""
comp.push( item )
}
comp.push(item)
}
}
return comp
}
/* -------------------------------------------- */
getAlignement() {
return (this.data.data.balance.loi > this.data.data.balance.chaos) ? "loyal" : "chaotique"
}
/* -------------------------------------------- */
getDefenseBase() {
return this.data.data.attributs.tre.value + 5
}
/* -------------------------------------------- */
getVitesseBase() {
return __vitesseBonus[this.data.data.attributs.adr.value]
}
/* -------------------------------------------- */
getCombatValues() {
let combat = {
initBase: this.data.data.attributs.adr.value,
initTotal: this.data.data.attributs.adr.value + this.data.data.combat.initbonus,
bonusDegats: this.getBonusDegats(),
bonusDegatsTotal: this.getBonusDegats() + this.data.data.combat.bonusdegats,
vitesseBase: this.getVitesseBase(),
vitesseTotal: this.getVitesseBase() + this.data.data.combat.vitessebonus,
defenseBase: this.getDefenseBase(),
defenseTotal: this.getDefenseBase() + this.data.data.combat.defensebonus
}
return combat
}
/* -------------------------------------------- */
prepareBaseData() {
}
@ -87,10 +159,18 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
prepareDerivedData() {
if (this.type == 'character') {
if (this.type == 'personnage') {
let newSante = (this.data.data.attributs.pui.value + this.data.data.attributs.tre.value)*2 + 5
if (this.data.data.sante.base!=newSante ) {
this.update( {'data.sante.base': newSante} )
}
let newAme = (this.data.data.attributs.cla.value + this.data.data.attributs.tre.value)*2 + 5
if (this.data.data.ame.base!=newAme ) {
this.update( {'data.ame.base': newAme} )
}
}
super.prepareDerivedData();
super.prepareDerivedData()
}
/* -------------------------------------------- */
@ -119,7 +199,7 @@ export class MournbladeActor extends Actor {
/* -------------------------------------------- */
editItemField(itemId, itemType, itemField, dataType, value) {
let item= this.data.items.find(item => item.id == itemId)
let item = this.data.items.find(item => item.id == itemId)
if (item) {
console.log("Item ", item, itemField, dataType, value)
if (dataType.toLowerCase() == "number") {
@ -128,10 +208,39 @@ export class MournbladeActor extends Actor {
value = String(value)
}
let update = { _id: item.id, [`data.${itemField}`]: value };
this.updateEmbeddedDocuments( "Item", [update])
this.updateEmbeddedDocuments("Item", [update])
}
}
/* -------------------------------------------- */
getBonneAventure() {
return this.data.data.bonneaventure.actuelle
}
/* -------------------------------------------- */
changeBonneAventure(value) {
let newBA = this.data.data.bonneaventure.actuelle
newBA += value
this.update({ 'data.bonneaventure.actuelle': newBA })
}
/* -------------------------------------------- */
getEclat() {
return this.data.data.eclat.value
}
/* -------------------------------------------- */
changeEclat(value) {
let newE = this.data.data.eclat.value
newE += value
this.update({ 'data.eclat.value': newE })
}
/* -------------------------------------------- */
canEclatDoubleD20() {
return (this.getAlignement() == "loyal" && this.data.data.eclat.value > 0)
}
/* -------------------------------------------- */
compareName(a, b) {
if (a.name < b.name) {
@ -148,6 +257,11 @@ export class MournbladeActor extends Actor {
return this.data.data.attributes[attrKey]
}
/* -------------------------------------------- */
getBonusDegats() {
return __degatsBonus[this.data.data.attributs.pui.value]
}
/* -------------------------------------------- */
async equipGear(equipmentId) {
let item = this.data.items.find(item => item.id == equipmentId);
@ -191,6 +305,19 @@ export class MournbladeActor extends Actor {
}
}
/* -------------------------------------------- */
getCompetence( compId ) {
return this.data.items.get(compId)
}
/* -------------------------------------------- */
async setPredilectionUsed( compId, predIdx) {
let comp = this.data.items.get(compId)
let pred = duplicate(comp.data.data.predilections)
pred[predIdx].used = true
await this.updateEmbeddedDocuments('Item', [ {_id: compId, 'data.predilections': pred}])
}
/* -------------------------------------------- */
getCommonRollData(attrKey = undefined, compId = undefined) {
let rollData = MournbladeUtility.getBasicRollData()
@ -198,13 +325,20 @@ export class MournbladeActor extends Actor {
rollData.actorImg = this.img
rollData.actorId = this.id
rollData.img = this.img
rollData.canEclatDoubleD20 = this.canEclatDoubleD20()
rollData.doubleD20 = false
rollData.attributs = MournbladeUtility.getAttributs()
if (attrKey) {
rollData.attrKey = attrKey
rollData.attr = duplicate(this.data.data.attributs[attrKey])
if (attrKey != "tochoose") {
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + this.data.data.attributs[attrKey].labelnorm + ".webp"
rollData.attr = duplicate(this.data.data.attributs[attrKey])
}
}
if (compId) {
rollData.competence = duplicate(this.data.items.get(compId) || {})
rollData.actionImg = rollData.competence.img
}
return rollData
}
@ -225,4 +359,34 @@ export class MournbladeActor extends Actor {
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollArmeOffensif(armeId) {
let arme = this.data.items.get(armeId)
arme = this.prepareArme( arme )
let rollData = this.getCommonRollData(arme.data.attrKey, arme.data.competence._id)
rollData.arme = arme
console.log("ARME!", rollData)
let rollDialog = await MournbladeRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollArmeDegats(armeId) {
let arme = this.data.items.get(armeId)
arme = this.prepareArme( arme )
let roll = new Roll(arme.data.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

@ -119,15 +119,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-subitem').click(ev => {
this.deleteSubitem(ev);
});
})
html.find('.edit-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = duplicate(this.object.data.data.predilections)
pred[index].name = ev.currentTarget.value
this.object.update( { 'data.predilections': pred })
})
html.find('.delete-prediction').click(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = duplicate(this.object.data.data.predilections)
pred.splice(index,1)
this.object.update( { 'data.predilections': pred })
})
html.find('.use-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = duplicate(this.object.data.data.predilections)
pred[index].used = ev.currentTarget.checked
this.object.update( { 'data.predilections': pred })
})
html.find('#add-predilection').click(ev => {
let pred = duplicate(this.object.data.data.predilections)
pred.push( { name: "Nouvelle prédilection", used: false })
this.object.update( { 'data.predilections': pred })
})
// Update Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
@ -135,14 +160,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

@ -63,6 +63,11 @@ export class MournbladeRollDialog extends Dialog {
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('#doubleD20').change(async (event) => {
this.rollData.doubleD20 = event.currentTarget.checked
})
}
}

View File

@ -8,10 +8,12 @@ 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("getCombatTrackerEntryContext", (html, options) => {
MournbladeUtility.pushInitiativeOptions(html, options);
});
})
Hooks.on("dropCanvasData", (canvas, data) => {
MournbladeUtility.dropItemOnToken(canvas, data)
});
@ -49,14 +51,14 @@ export class MournbladeUtility {
static getModificateurOptions() {
let opt = []
for (let i = -15; i <= 15; i++) {
opt.push( `<option value="${i}">${i}</option>` )
opt.push(`<option value="${i}">${i}</option>`)
}
return opt.concat("\n")
}
/* -------------------------------------------- */
static getAttributs() {
return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe"}
return { adr: "Adresse", pui: "Puissance", cla: "Clairvoyance", pre: "Présence", tre: "Trempe" }
}
/* -------------------------------------------- */
static pushInitiativeOptions(html, options) {
@ -92,18 +94,25 @@ export class MournbladeUtility {
/* -------------------------------------------- */
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 = game.actors.get(rollData.actorId)
await actor.setPredilectionUsed( rollData.competence._id, predIdx)
rollData.competence = duplicate( actor.getCompetence(rollData.competence._id) )
MournbladeUtility.rollMournblade(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/partial-list-niveau.html'
'systems/fvtt-mournblade/templates/editor-notes-gm.html',
'systems/fvtt-mournblade/templates/partial-item-description.html',
'systems/fvtt-mournblade/templates/partial-list-niveau.html'
]
return loadTemplates(templatePaths);
}
@ -124,7 +133,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) {
@ -193,7 +202,7 @@ export class MournbladeUtility {
}
/* -------------------------------------------- */
static saveRollData(rollData) {
game.socket.emit("system.Mournblade-rpg", {
game.socket.emit("system.fvtt-mournblade", {
name: "msg_update_roll", data: rollData
}); // Notify all other clients of the roll
this.updateRollData(rollData);
@ -260,51 +269,89 @@ 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
}
}
}
if (rollData.difficulte > 0 && !rollData.isDramatique) {
rollData.isSuccess = (rollData.roll.finalResult >= rollData.difficulte)
rollData.isHeroique = ((rollData.roll.finalResult - rollData.difficulte) >= 10)
rollData.isDramatique = ((rollData.roll.finalResult - rollData.difficulte) <= -10)
}
}
/* -------------------------------------------- */
static async rollMournblade(rollData) {
let actor = game.actors.get(rollData.actorId)
if (rollData.attrKey == "tochoose") { // No attr selected, force address
rollData.attrKey = "adr"
}
if ( !rollData.attr) {
rollData.actionImg = "systems/fvtt-mournblade/assets/icons/" + actor.data.data.attributs[rollData.attrKey].labelnorm + ".webp"
rollData.attr = duplicate(actor.data.data.attributs[rollData.attrKey])
}
rollData.diceFormula = rollData.mainDice
if (rollData.competence) {
if ( rollData.doubleD20) { // Multiply result !
rollData.diceFormula += "*2"
if (!rollData.isReroll) {
actor.changeEclat(-1)
}
}
if (rollData.competence) {
rollData.predilections = duplicate( rollData.competence.data.predilections.filter( pred => !pred.used) || [] )
let compmod = (rollData.competence.data.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.data.niveau}+${rollData.modificateur}+${compmod}`
} else {
rollData.diceFormula += `+${rollData.attr.value}*2+${rollData.modificateur}`
}
let myRoll = rollData.roll
if (!myRoll) { // New rolls only of no rerolls
myRoll = new Roll(rollData.diceFormula).roll({ async: false });
console.log("ROLL : ", rollData.diceFormula)
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"));
rollData.roll = myRoll
if (rollData.arme) {
rollData.diceFormula += `+${rollData.arme.data.bonusmaniementoff}`
}
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"));
rollData.roll = myRoll
console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total
if ( rollData.mainDice == "1d20") {
let diceValue = myRoll.terms[0].results[0].result
console.log("PAIR/IMP", diceValue)
if ( diceValue % 2 == 1) {
console.log("PAIR/IMP2", diceValue)
rollData.finalResult -= myRoll.terms[0].results[0].result // Substract value
if (diceValue == 1 || diceValue == 11) {
rollData.isDramatique = true
rollData.isSuccess = false
}
}
}
if (rollData.difficulte > 0 && !rollData.isDramatique) {
rollData.isSuccess = (myRoll.finalResult >= rollData.difficulte)
rollData.isHeroique = ((myRoll.finalResult - rollData.difficulte) >= 10)
rollData.isDramatique = ((myRoll.finalResult - rollData.difficulte) <= -10)
}
this.computeResult( rollData)
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-generic-result.html`, rollData)
});
}, rollData)
}
/* -------------------------------------------- */
static async bonusRollMournblade(rollData) {
rollData.bonusFormula = rollData.addedBonus
let bonusRoll = new Roll(rollData.bonusFormula).roll({async: false})
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = 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);
}
/* -------------------------------------------- */
@ -364,7 +411,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) {
@ -381,8 +428,10 @@ export class MournbladeUtility {
chatOptions.whisper = this.getWhisperRecipients(rollMode, name);
break;
}
chatOptions.alias = chatOptions.alias || name;
ChatMessage.create(chatOptions);
chatOptions.alias = chatOptions.alias || name
let msg = await ChatMessage.create(chatOptions)
console.log("=======>", rollData)
msg.setFlag("world", "mournblade-roll", rollData)
}
/* -------------------------------------------- */
@ -390,7 +439,7 @@ export class MournbladeUtility {
let rollData = {
rollId: randomID(16),
rollMode: game.settings.get("core", "rollMode"),
modificateursOptions : this.getModificateurOptions(),
modificateursOptions: this.getModificateurOptions(),
difficulte: 0,
modificateur: 0,
}
@ -413,8 +462,121 @@ export class MournbladeUtility {
}
/* -------------------------------------------- */
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 = game.actors.get(rollData.actorId)
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 = game.actors.get(rollData.actorId)
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 = game.actors.get(rollData.actorId)
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 = game.actors.get(rollData.actorId)
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 = game.actors.get(rollData.actorId)
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 = game.actors.get(rollData.actorId)
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 = game.actors.get(rollData.actorId)
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 = game.actors.get(rollData.actorId)
if ( rollData.competence) {
let nbPred = rollData.competence.data.predilections.filter( pred => !pred.used).length
return ( !rollData.isReroll && rollData.competence && nbPred > 0 )
}
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 +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: "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")
}
)
return options
}
/* -------------------------------------------- */

View File

@ -1,42 +1,42 @@
{"name":"Fouet","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d4 + 1","deuxmains":false,"courte":3,"moyenne":0,"longue":0,"tr":0,"rarete":4,"prix":40},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Qb1h25U88mTM4h72"}},"_id":"0swiE8k5zfUIqmXu"}
{"name":"Hache des mers","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.mGYFgteaWBDo10Xb"}},"_id":"2BSVJXr0FGZZJ9fh"}
{"name":"Fléau darmes","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D10+1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.PHQabMgfk1GNOjKo"}},"_id":"2qezkR1BdC0DcRIl"}
{"_id":"2BSVJXr0FGZZJ9fh","name":"Hache des mers","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.mGYFgteaWBDo10Xb"}}}
{"_id":"2qezkR1BdC0DcRIl","name":"Fléau darmes","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D10+1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.PHQabMgfk1GNOjKo"}}}
{"name":"Arbalète","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"2d6","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":3,"rarete":10,"prix":500},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.WYp8ojQN8HYJwUJc"}},"_id":"2zIdrBK88iuMbOF0"}
{"name":"Cimeterre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":1,"degats":"1d10","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.RYxEg0gJfAlIZ4mw"}},"_id":"3Iv1oLpZcPEJVaI4"}
{"_id":"3Iv1oLpZcPEJVaI4","name":"Cimeterre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":1,"degats":"1d10","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.RYxEg0gJfAlIZ4mw"}}}
{"name":"Fronde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D4","deuxmains":false,"courte":10,"moyenne":25,"longue":50,"tr":1,"rarete":2,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.TgVuNnytO9k2K0Xe"}},"_id":"4To8rLxv4efsoZK0"}
{"name":"Pierre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D4","deuxmains":false,"courte":3,"moyenne":6,"longue":15,"tr":1,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.3YS9IfQddECnoagK"}},"_id":"4yKlK8MeSj5Zk8lM"}
{"name":"Grand marteau","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"2D6+2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.vjic4cPkJ0iMCIt5"}},"_id":"6e1JHoD1Jrz020R7"}
{"_id":"6e1JHoD1Jrz020R7","name":"Grand marteau","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"2D6+2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.vjic4cPkJ0iMCIt5"}}}
{"name":"Arc de cavalerie","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d6","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":7,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5EWrgNQjJMx1t2v1"}},"_id":"88UuW1bdpFuCmkqb"}
{"name":"Épée de maître","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d8+ 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.kX3MbDFu9uYZVNf2"}},"_id":"9Eo9mRbPPZHN98Cr"}
{"name":"Lance ilmioréenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","bonusmaniementoff":0,"bonusmaniementdef":2,"degats":"1d8 + 2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.8ApbiVgkx79OHVp2"}},"_id":"9xPd4ITtyk3nmMoN"}
{"name":"Masse lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d10 + 1","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":80},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.DPfXgFj3gpjJ3nbR"}},"_id":"CeC5lAKs7NdPF05l"}
{"name":"Gourdin","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1D6","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.CBIfq9eRd2RmoI4H"}},"_id":"CqP80SQFQOefpGgd"}
{"name":"Rapière","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":3,"bonusmaniementdef":1,"degats":"1d8+ 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.XIStcClTnmLoSwyR"}},"_id":"CupT9m8L909l4Fo5"}
{"_id":"9Eo9mRbPPZHN98Cr","name":"Épée de maître","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d8+ 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.kX3MbDFu9uYZVNf2"}}}
{"_id":"9xPd4ITtyk3nmMoN","name":"Lance ilmioréenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.8ApbiVgkx79OHVp2"}}}
{"_id":"CeC5lAKs7NdPF05l","name":"Masse lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d10 + 1","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":80},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.DPfXgFj3gpjJ3nbR"}}}
{"_id":"CqP80SQFQOefpGgd","name":"Gourdin","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1D6","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.CBIfq9eRd2RmoI4H"}}}
{"_id":"CupT9m8L909l4Fo5","name":"Rapière","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":3,"bonusmaniementdef":1,"degats":"1d8+ 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.XIStcClTnmLoSwyR"}}}
{"name":"Hachette / Hache de lancer","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d4 + 1","deuxmains":false,"courte":5,"moyenne":10,"longue":15,"tr":1,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5NHbRanxXA5vUE3B"}},"_id":"DzkeP7jbruqW4nQH"}
{"name":"Lance légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d8","deuxmains":false,"courte":10,"moyenne":25,"longue":50,"tr":1,"rarete":5,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.LIVeq22E9EanRS9L"}},"_id":"FDeRBkxXwoZIuL9B"}
{"_id":"FDeRBkxXwoZIuL9B","name":"Lance légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d8","deuxmains":false,"courte":10,"moyenne":25,"longue":50,"tr":1,"rarete":5,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.LIVeq22E9EanRS9L"}}}
{"name":"Arc de chasse","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 - 1","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.TrYZ9BxYukS1mbBX"}},"_id":"Hrm08cpgAMMV6Jpq"}
{"name":"Coup de pied / poing / tête","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.nBPKHsYIM0HgMcBy"}},"_id":"Iw3j4oC6H8HJ9MFQ"}
{"name":"Lance lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1d10","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Kcl07bs7TOcne37W"}},"_id":"KY22L6Lx5WxgvyGD"}
{"_id":"Iw3j4oC6H8HJ9MFQ","name":"Coup de pied / poing / tête","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.nBPKHsYIM0HgMcBy"}}}
{"_id":"KY22L6Lx5WxgvyGD","name":"Lance lourde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1d10","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Kcl07bs7TOcne37W"}}}
{"name":"Arc du Désert des Larmes","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 1","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.QmYjdRCAk3MnxKJg"}},"_id":"MDpFpqmXpIX5VV80"}
{"name":"Hache de bataille dite lormyrienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6 + 2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Lpa6kesbzgKVtogn"}},"_id":"MP49mYF7FVuW9ALB"}
{"name":"Couteau / Dague","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","deuxmains":false,"courte":3,"moyenne":6,"longue":15,"tr":1,"rarete":1,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5a9GKIvNgbbXBq3s"}},"_id":"N5BbO2lGwzQnpvH0"}
{"name":"Pique filkharienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d8 + 2","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.dF9LxfA1crZBmT92"}},"_id":"QwrZbFeJUQv2OBqI"}
{"name":"Masse légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.xrWRNZBrEzkUQzRG"}},"_id":"SzgkzHvzma8NiMd5"}
{"name":"Sabre dabordage","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d8","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.aNUqO9OZT0GBszvv"}},"_id":"U8CoqFhGuT3ZHeq1"}
{"_id":"MP49mYF7FVuW9ALB","name":"Hache de bataille dite lormyrienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Lpa6kesbzgKVtogn"}}}
{"_id":"N5BbO2lGwzQnpvH0","name":"Couteau / Dague","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contactjet","isdefense":true,"bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d4","deuxmains":false,"courte":3,"moyenne":6,"longue":15,"tr":1,"rarete":1,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.5a9GKIvNgbbXBq3s"}}}
{"_id":"QwrZbFeJUQv2OBqI","name":"Pique filkharienne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.dF9LxfA1crZBmT92"}}}
{"_id":"SzgkzHvzma8NiMd5","name":"Masse légère","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":5},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.xrWRNZBrEzkUQzRG"}}}
{"_id":"U8CoqFhGuT3ZHeq1","name":"Sabre dabordage","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d8","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":50},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.aNUqO9OZT0GBszvv"}}}
{"name":"Javelot","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"jet","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d6","deuxmains":false,"courte":25,"moyenne":50,"longue":75,"tr":1,"rarete":5,"prix":30},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Zwiz9E3TbeUP8qHH"}},"_id":"aELvOR7A9DIJKgBk"}
{"name":"Fourche / Faux de paysan","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":1,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.K5Ayim6mPKZoCSCc"}},"_id":"aJBVfqQ3JQNyVL7c"}
{"name":"Arme improvisée","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d6","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.E7gcmnNQK2t5OQjv"}},"_id":"c6l49ZmEBjUxfI3W"}
{"_id":"aJBVfqQ3JQNyVL7c","name":"Fourche / Faux de paysan","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1D6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":1,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.K5Ayim6mPKZoCSCc"}}}
{"_id":"c6l49ZmEBjUxfI3W","name":"Arme improvisée","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d6","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.E7gcmnNQK2t5OQjv"}}}
{"name":"Arc de guerre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"tir","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d10 + 1","deuxmains":false,"courte":30,"moyenne":50,"longue":100,"tr":1,"rarete":6,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Tq6lUFPTkBN5cBwn"}},"_id":"cKf5z3fajUnxJh0r"}
{"name":"Main gauche","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":3,"degats":"1d4 + 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.BBii0qi1unvSRNO4"}},"_id":"fLHX6ut131CQI630"}
{"name":"Marteau de guerre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d8 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":6,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.6n2uSdYfRAsSqQnA"}},"_id":"freCCeiYGfWmUAQU"}
{"name":"Sabre de Pan Tang","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d10 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.l3ffzso7GyHMKguD"}},"_id":"j5659PJlrHz56V1k"}
{"name":"Hallebarde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":0,"bonusmaniementdef":2,"degats":"2d6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.ZTdyIoMzE9kqm4e6"}},"_id":"lYtm5MwP96numskx"}
{"name":"Lance melnibonéenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"2d6+ 4","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":10,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.KAl5qXHeYDoYRU6G"}},"_id":"mQGT0vmDjoTZCW5u"}
{"_id":"fLHX6ut131CQI630","name":"Main gauche","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":3,"degats":"1d4 + 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":10},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.BBii0qi1unvSRNO4"}}}
{"_id":"freCCeiYGfWmUAQU","name":"Marteau de guerre","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":0,"degats":"1d8 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":6,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.6n2uSdYfRAsSqQnA"}}}
{"_id":"j5659PJlrHz56V1k","name":"Sabre de Pan Tang","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":120},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.l3ffzso7GyHMKguD"}}}
{"_id":"lYtm5MwP96numskx","name":"Hallebarde","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":0,"bonusmaniementdef":2,"degats":"2d6","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.ZTdyIoMzE9kqm4e6"}}}
{"_id":"mQGT0vmDjoTZCW5u","name":"Lance melnibonéenne","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":10,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.KAl5qXHeYDoYRU6G"}}}
{"name":"Arc en os","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"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","bonusmaniementoff":3,"bonusmaniementdef":0,"degats":"1d8 + 1","deuxmains":false,"courte":30,"moyenne":60,"longue":125,"tr":2,"rarete":10,"prix":500},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Dy9dzVhXbNAVm3zn"}},"_id":"nzve5qucVN6FC5wn"}
{"name":"Bâton ferré ou lesté","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1D8","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.zoBHSbvJPnjbtPh6"}},"_id":"sHj90bPcMaDlOw51"}
{"name":"Épée courte / Glaive","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1D6+1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":4,"prix":40},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Mxv5gMHRvRrsuhPA"}},"_id":"sju2r73hUHyGbHYg"}
{"name":"Faucheur","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d4 + 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.OlmzE29fh9DFd8TF"}},"_id":"t2uQcWe7kirUOp3D"}
{"name":"Fléau lourd","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d10+ 3","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.vDDw0qqM1Kg7Pu6T"}},"_id":"uatjBTFCE5ZCqhAd"}
{"name":"Hache","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":2,"prix":30},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.2MwgptY2kE4tgYBe"}},"_id":"v7ymzlEALvsk0poA"}
{"name":"Épée large","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d6+ 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.iuAizxCvnUxmsjrn"}},"_id":"wWk0Wfer06Ttmouv"}
{"name":"Épée longue","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6 + 1","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.yiYtZ0sCUpMihvzz"}},"_id":"wv5EiePmPTpqFutt"}
{"_id":"sHj90bPcMaDlOw51","name":"Bâton ferré ou lesté","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":2,"degats":"1D8","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":0,"prix":1},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.zoBHSbvJPnjbtPh6"}}}
{"_id":"sju2r73hUHyGbHYg","name":"Épée courte / Glaive","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1D6+1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":4,"prix":40},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.Mxv5gMHRvRrsuhPA"}}}
{"_id":"t2uQcWe7kirUOp3D","name":"Faucheur","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d4 + 1","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":100},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.OlmzE29fh9DFd8TF"}}}
{"_id":"uatjBTFCE5ZCqhAd","name":"Fléau lourd","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":1,"bonusmaniementdef":0,"degats":"1d10+ 3","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":7,"prix":150},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.vDDw0qqM1Kg7Pu6T"}}}
{"_id":"v7ymzlEALvsk0poA","name":"Hache","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"1d6 + 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":2,"prix":30},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.2MwgptY2kE4tgYBe"}}}
{"_id":"wWk0Wfer06Ttmouv","name":"Épée large","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":1,"degats":"1d6+ 2","deuxmains":false,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":5,"prix":70},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.iuAizxCvnUxmsjrn"}}}
{"_id":"wv5EiePmPTpqFutt","name":"Épée longue","type":"arme","img":"systems/fvtt-mournblade/assets/icons/arme.webp","data":{"description":"","typearme":"contact","isdefense":true,"bonusmaniementoff":2,"bonusmaniementdef":0,"degats":"2d6 + 1","deuxmains":true,"courte":0,"moyenne":0,"longue":0,"tr":0,"rarete":8,"prix":250},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"RiMAsQHaUMojde7N":3},"flags":{"core":{"sourceId":"Item.yiYtZ0sCUpMihvzz"}}}

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

View File

@ -274,12 +274,18 @@ table {border: 1px solid #7a7971;}
padding: 0px;
margin: 5px 0;
border-bottom: 0;
font-weight: bold;
font-size: 2rem;
font-family: "Charlemagne";
}
.fvtt-mournblade .sheet-header h1.charname input {
width: 100%;
height: 100%;
margin: 0;
font-weight: bold;
font-family: "Charlemagne";
font-size: 2rem;
}
.fvtt-mournblade .sheet-tabs {
@ -1112,7 +1118,7 @@ ul, li {
cursor: pointer;
color: #ffffff;
font-size: 0.8rem;
padding: 4px 12px 0px 12px;
padding: 4px 4px 0px 4px;
text-decoration: none;
text-shadow: 0px 1px 0px #4d3534;
position: relative;
@ -1128,6 +1134,34 @@ ul, li {
top:1px;
}
.button-sheet-roll {
box-shadow: inset 0px 1px 0px 0px #a6827e;
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 60%);
background-color: #7d5d3b00;
border-radius: 4px;
border: 1px ridge #846109;
display: inline-block;
cursor: pointer;
color: #ffffff;
font-size: 0.8rem;
padding: 1px 1px 0px 1px;
text-decoration: none;
text-shadow: 0px 1px 0px #4d3534;
position: relative;
max-height:1.8rem;
max-width: 4rem;
margin-left:4px;
}
.button-sheet-roll:hover {
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
background-color: red;
}
.button-sheet-roll:active {
position:relative;
top:1px;
}
.plus-minus-button {
box-shadow: inset 0px 1px 0px 0px #a6827e;
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
@ -1206,11 +1240,20 @@ ul, li {
max-width: 64px;
}
/*************************************************************/
.arme-defensif {
padding-top: 7px;
padding-left: 4px;
margin-left: 4px;
text-align: center;
flex-grow: 2;
}
/*************************************************************/
.button-roll-competence {
min-width: 64px;
max-width: 64px;
background-color: rgb(211, 221, 187);
background-color: rgba(211, 221, 187, 100);
padding-top: 7px;
padding-left: 4px;
margin-left: 4px;
@ -1234,6 +1277,7 @@ ul, li {
flex-grow:1;
max-width: 2rem;
min-width: 2rem;
max-height: 2rem;
}
/*************************************************************/
@ -1271,3 +1315,49 @@ ul, li {
height: 54px;
position:relative;
}
.item-name-label-header {
flex-grow:2;
max-width: 12rem;
min-width: 12rem;
}
.item-name-label {
flex-grow:2;
max-width: 10rem;
min-width: 10rem;
}
.item-name-label-level2 {
flex-grow:2;
max-width: 9rem;
min-width: 9rem;
}
.item-field-label-short {
flex-grow:1;
max-width: 4rem;
min-width: 4rem;
}
.item-field-label-medium {
flex-grow:1;
max-width: 6rem;
min-width: 6rem;
}
.item-field-label-long {
flex-grow:1;
max-width: 8rem;
min-width: 8rem;
}
.item-control-end {
align-self: flex-end;
}
.alternate-list {
margin-top: 4px;
flex-wrap: nowrap;
}
.item-filler {
flex-grow: 6;
flex-shrink: 7;
}
.item-controls-fixed {
min-width:2rem;
max-width: 2rem;
}

View File

@ -17,7 +17,7 @@
"library": false,
"license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-mournblade/raw/branch/main/system.json",
"download": "https://www.uberwald.me/gitea/public/fvtt-mournblade/archive/fvtt-mournblade-0.0.10.zip",
"download": "https://www.uberwald.me/gitea/public/fvtt-mournblade/archive/fvtt-mournblade-0.0.16.zip",
"manifestPlusVersion": "1.0.0",
"media": [],
"minimumCoreVersion": "0.8.0",
@ -62,6 +62,16 @@
"tags": [
"equipement"
]
},
{
"type": "Item",
"label": "Dons",
"name": "dons",
"path": "./packs/dons.db",
"system": "fvtt-mournblade",
"tags": [
"don"
]
}
],
"primaryTokenAttribute": "secondary.health",
@ -70,9 +80,9 @@
"styles": [
"styles/simple.css"
],
"templateVersion": 8,
"templateVersion": 14,
"title": "Mournblade",
"url": "",
"version": "0.0.10",
"version": "0.0.16",
"background": "./images/ui/mournblade_welcome.webp"
}

View File

@ -73,10 +73,10 @@
"traumatismes": ""
},
"combat": {
"initiative": 0,
"vitesse": 0,
"initbonus": 0,
"vitessebonus": 0,
"bonusdegats": 0,
"defensebase": 0
"defensebonus": 0
},
"balance": {
"loi": 0,
@ -105,12 +105,17 @@
"description": ""
}
},
"types": [ "arme", "competence", "protection", "pacte", "traitchaotique", "monnaie", "don", "tendance", "rune", "predilection", "equipement", "capacite"],
"capacite":{
"types": [ "arme", "competence", "protection", "pacte", "traitchaotique", "monnaie", "don", "tendance", "rune", "equipement", "capacite", "origine", "heritage", "metier"],
"origine": {
"templates": [ "base" ]
},
"predilection": {
"competence": "",
"heritage": {
"templates": [ "base" ]
},
"metier": {
"templates": [ "base" ]
},
"capacite":{
"templates": [ "base" ]
},
"equipement": {
@ -120,6 +125,7 @@
},
"arme": {
"typearme": "",
"isdefense": false,
"bonusmaniementoff": 0,
"bonusmaniementdef": 0,
"degats": "",
@ -137,6 +143,7 @@
"attribut1": "",
"attribut2": "",
"attribut3": "",
"predilections": [],
"templates": [ "base" ]
},
"protection": {

View File

@ -5,23 +5,58 @@
<div class="header-fields">
<div class="flexrow">
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="flexcol">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
<div class="flexcol">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
<div class="flexrow">
<span class="flexrow">
<h4 class="item-name-label competence-name item-field-label-short">{{upperFirst alignement}}</h4>
<label class="item-name-label competence-name item-field-label-short">Loi</label>
<select class="status-small-label color-class-common item-field-label-short" type="text"
name="data.balance.loi" value="{{data.balance.loi}}" data-dtype="Number">
{{#select data.balance.loi}}
{{> systems/fvtt-mournblade/templates/partial-list-niveau.html}}
{{/select}}
</select>
<label class="item-name-label competence-name item-field-label-short">Chaos</label>
<select class="status-small-label color-class-common item-field-label-short" type="text"
name="data.balance.chaos" value="{{data.balance.chaos}}" data-dtype="Number">
{{#select data.balance.chaos}}
{{> systems/fvtt-mournblade/templates/partial-list-niveau.html}}
{{/select}}
</select>
</span>
</div>
<div class="flexrow">
<h4 class="item-name-label competence-name">Bonne Aventure</h4>
<label class="item-name-label competence-name item-field-label-short">Base</label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="data.bonneaventure.base" value="{{data.bonneaventure.base}}" data-dtype="Number" />
<label class="item-name-label competence-name item-field-label-short">Actuelle</label>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="data.bonneaventure.actuelle" value="{{data.bonneaventure.actuelle}}" data-dtype="Number" />
</div>
<div class="flexrow">
<h4 class="item-name-label competence-name item-field-label-short">Eclat</h4>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="data.eclat.value" value="{{data.eclat.value}}" data-dtype="Number" />
<h4 class="item-name-label competence-name item-field-label-medium">Expérience</h4>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="data.experience.value" value="{{data.experience.value}}" data-dtype="Number" />
</div>
</div>
</div>
</div>
</header>
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="principal">Principal</a>
<a class="item" data-tab="principal">Attributs</a>
<a class="item" data-tab="competences">Compétences</a>
<a class="item" data-tab="combat">Combat</a>
<a class="item" data-tab="traits">Traits/Pactes</a>
<a class="item" data-tab="dons">Dons/Pactes</a>
<a class="item" data-tab="equipement">Equipement</a>
<a class="item" data-tab="biodata">Bio&Notes</a>
</nav>
</nav>
{{!-- Sheet Body --}}
<section class="sheet-body">
@ -29,16 +64,17 @@
{{!-- Main Tab --}}
<div class="tab principal" data-group="primary" data-tab="principal">
<div class="flexcol">
<div class="grid grid-2col">
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
{{#each data.attributs as |attr key|}}
<li class="item flexrow " data-attr-key="{{key}}">
<img class="item-name-img" src="systems/fvtt-mournblade/assets/icons/{{attr.labelnorm}}.webp">
<span class="item-name-label competence-name"><a class="roll-attribut">{{attr.label}}</a></span>
<select class="status-small-label color-class-common" type="text" name="data.attributs.{{key}}.value"
value="{{attr.value}}" data-dtype="Number">
<span class="item-name-label competence-name item-field-label-medium"><a
class="roll-attribut">{{attr.label}}</a></span>
<select class="status-small-label color-class-common item-field-label-short" type="text"
name="data.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="Number">
{{#select attr.value}}
{{> systems/fvtt-mournblade/templates/partial-list-niveau.html}}
{{/select}}
@ -48,32 +84,70 @@
</ul>
</div>
<div class="sheet-box color-bg-ame color-text-ame">
<span class="flexrow">
<h4 class="ame-margin title-font">Bonne Aventure</h4>
</span>
<span class="flexrow">
<label>Base</label><label>{{data.bonneaventure.base}}</label>
<label>Actuelle</label><label>{{data.bonneaventure.actuelle}}</label>
</span>
</div>
<div class="sheet-box color-bg-archetype">
<h4 class="item-name-label competence-name">Santé</h4>
<ul class="item-list alternate-list">
<li class="item flexrow">
<label class="competence-name">Base</label>
<input type="text" class="input-numeric-short" name="data.sante.base"
value="{{data.sante.base}}" data-dtype="Number" />
</li>
<li class="item flexrow">
<label class="competence-name">Non létaux</label>
<input type="text" class="input-numeric-short" name="data.sante.nonletaux"
value="{{data.sante.nonletaux}}" data-dtype="Number" />
</li>
<li class="item flexrow">
<label class="competence-name">Létaux</label>
<input type="text" class="input-numeric-short" name="data.sante.letaux"
value="{{data.sante.letaux}}" data-dtype="Number" />
</li>
</ul>
<div class="sheet-box color-bg-ame color-text-ame">
<span class="flexrow">
<h4 class="ame-margin title-font">Eclat</h4>
</span>
<span class="flexrow">
<label>Valeur</label><label>{{data.eclat.value}}</label>
</span>
</div>
<h4 class="item-name-label competence-name">Ame</h4>
<ul class="item-list alternate-list">
<li class="item flexrow">
<label class="competence-name">Base</label>
<input type="text" class="input-numeric-short" name="data.ame.base"
value="{{data.ame.base}}" data-dtype="Number" />
</li>
<li class="item flexrow">
<label class="competence-name">Courante</label>
<input type="text" class="input-numeric-short" name="data.ame.value"
value="{{data.ame.value}}" data-dtype="Number" />
</li>
</ul>
<div class="sheet-box color-bg-ame color-text-ame">
<span class="flexrow">
<h4 class="ame-margin title-font">Expérience</h4>
</span>
<span class="flexrow">
<label>Valeur</label><label>{{data.experience.value}}</label>
</span>
<h4 class="item-name-label competence-name">Combat</h4>
<ul class="item-list alternate-list">
<li class="item flexrow">
<label class="competence-name">Initiative</label>
<label class="competence-name">{{combat.initBase}}</label>
<input type="text" class="input-numeric-short" name="data.combat.initbonus" value="{{data.combat.initbonus}}" data-dtype="Number" />
<label class="competence-name">{{combat.initTotal}}</label>
</li>
<li class="item flexrow">
<label class="competence-name">B. Dégats</label>
<label class="competence-name">+{{combat.bonusDegats}}</label>
<input type="text" class="input-numeric-short"
name="data.combat.bonusdegats" value="{{data.combat.bonusdegats}}" data-dtype="Number" />
<label class="competence-name">+{{combat.bonusDegatsTotal}}</label>
</li>
<li class="item flexrow">
<label class="competence-name">Vitesse</label>
<label class="competence-name">{{combat.vitesseBase}}</label>
<input type="text" class="input-numeric-short"
name="data.combat.vitessebonus" value="{{data.combat.vitessebonus}}" data-dtype="Number" />
<label class="competence-name">{{combat.vitesseTotal}}</label>
</li>
<li class="item flexrow">
<label class="competence-name">Défense</label>
<label class="competence-name">{{combat.defenseBase}}</label>
<input type="text" class="input-numeric-short"
name="data.combat.defensebonus" value="{{data.combat.defensebonus}}" data-dtype="Number" />
<label class="competence-name">{{combat.defenseTotal}}</label>
</li>
</ul>
</div>
</div>
@ -99,28 +173,32 @@
{{#each skills as |skill key|}}
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
<img class="item-name-img" src="{{skill.img}}" />
<span class="item-name-label competence-name">{{skill.name}}</span>
<select class="status-small-label color-class-common edit-item-data competence-niveau" type="text" data-item-field="niveau"
value="{{skill.data.niveau}}" data-dtype="Number">
<span class="item-name-label competence-name"><a class="roll-competence"
data-attr-key="tochoose">{{skill.name}}</a></span>
<select class="status-small-label color-class-common edit-item-data competence-niveau" type="text"
data-item-field="niveau" value="{{skill.data.niveau}}" data-dtype="Number">
{{#select skill.data.niveau}}
{{> systems/fvtt-mournblade/templates/partial-list-niveau.html}}
{{/select}}
</select>
{{#if (ne skill.data.attribut1 "none")}}
<span class="item-field-label-short button-roll-competence"><a class="roll-competence" data-attr-key="{{skill.data.attribut1}}">{{upper skill.data.attribut1}} : {{skill.data.attribut1total}}</a></span>
{{else}}
<span class="item-field-label-short button-roll-competence-empty" >&nbsp;</span>
<span class="item-field-label-short">
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.data.attribut1}}">{{upper
skill.data.attribut1}} : {{skill.data.attribut1total}}</button>
</span>
{{/if}}
{{#if (ne skill.data.attribut2 "none")}}
<span class="item-field-label-short button-roll-competence"><a class="roll-competence" data-attr-key="{{skill.data.attribut2}}">{{upper skill.data.attribut2}} : {{skill.data.attribut2total}}</a></span>
{{else}}
<span class="item-field-label-short button-roll-competence-empty">&nbsp;</span>
<span class="item-field-label-short">
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.data.attribut2}}">{{upper
skill.data.attribut2}} : {{skill.data.attribut2total}}</button>
</span>
{{/if}}
{{#if (ne skill.data.attribut3 "none")}}
<span class="item-field-label-short button-roll-competence"><a class="roll-competence" data-attr-key="{{skill.data.attribut3}}">{{upper skill.data.attribut3}} : {{skill.data.attribut3total}}</a></span>
{{else}}
<span class="item-field-label-short button-roll-competence-empty">&nbsp;</span>
<span class="item-field-label-short">
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.data.attribut3}}">{{upper
skill.data.attribut3}} : {{skill.data.attribut3total}}</button>
</span>
{{/if}}
<div class="item-filler">&nbsp;</div>
@ -137,6 +215,153 @@
</div>
{{!-- Dons/Pactes Tab --}}
<div class="tab dons" data-group="primary" data-tab="dons">
<div class="flexrow">
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Dons</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Allégeance</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
</div>
</li>
{{#each dons as |don key|}}
<li class="item flexrow " data-item-id="{{don._id}}" data-item-type="don">
<img class="item-name-img" src="{{don.img}}" />
<span class="item-name-label competence-name">{{don.name}}</span>
<span class="item-field-label-short">{{don.data.allegeance}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
</div>
</div>
{{!-- Equipement Tab --}}
<div class="tab equipement" data-group="primary" data-tab="equipement">
<div class="flexcol">
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Armes</label></h3>
</span>
<span class="item-field-label-short">
<label class="short-label">Attaque</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Défense</label>
</span>
<span class="item-field-label-short">
<label class="short-label">Dégats</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
class="fas fa-plus"></i></a>
</div>
</li>
{{#each armes as |arme key|}}
<li class="item flexrow " data-item-id="{{arme._id}}" data-item-type="arme">
<img class="item-name-img" src="{{arme.img}}" />
<span class="item-name-label competence-name">{{arme.name}}</span>
<span class="item-field-label-short">
<button class="roll-arme-offensif button-sheet-roll">{{arme.data.totalOffensif}}</button>
</span>
{{#if arme.data.isdefense}}
<span class="item-field-label-short arme-defensif"><label
class="arme-defensif">{{arme.data.totalDefensif}}</label></span>
{{else}}
<span class="item-field-label-short arme-defensif"><label class="arme-defensif">-</label></span>
{{/if}}
<span class="item-field-label-short">
<button class="roll-arme-degats button-sheet-roll">{{arme.data.totalDegats}}</button>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Protections</label></h3>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
class="fas fa-plus"></i></a>
</div>
</li>
{{#each protections as |protection key|}}
<li class="item flexrow " data-item-id="{{protection._id}}" data-item-type="protection">
<img class="item-name-img" src="{{protection.img}}" />
<span class="item-name-label competence-name">{{protection.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Equipements</label></h3>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
class="fas fa-plus"></i></a>
</div>
</li>
{{#each equipements as |equipement key|}}
<li class="item flexrow " data-item-id="{{equipement._id}}" data-item-type="equipement">
<img class="item-name-img" src="{{equipement.img}}" />
<span class="item-name-label competence-name">{{equipement.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
</div>
</div>
{{!-- Biography Tab --}}
<div class="tab biodata" data-group="primary" data-tab="biodata">
<div class="grid grid-3col">

View File

@ -0,0 +1,26 @@
<div class="chat-message-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<h4 class=chat-actor-name>{{alias}}</h4>
</div>
<hr>
{{#if actionImg}}
<div>
<img class="chat-icon" src="{{actionImg}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol">
</div>
<div>
<ul>
<li>Arme : {{arme.name}} (+{{arme.data.totalDegats}})</li>
<li>Dégats : {{finalResult}}</li>
</ul>
</div>
</div>

View File

@ -7,9 +7,9 @@
<hr>
{{#if img}}
{{#if actionImg}}
<div>
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
<img class="chat-icon" src="{{actionImg}}" alt="{{name}}" />
</div>
{{/if}}
@ -18,14 +18,18 @@
<div>
<ul>
<li>Attribut : {{attr.label}}</li>
<li class="mournblade-roll">Attribut : {{attr.label}}</li>
{{#if competence}}
<li>Compétence : {{competence.name}}</li>
{{/if}}
{{#if weaponName}}
<li>Weapon : {{weaponName}}</li>
{{#if bonusRoll}}
<li>{{textBonus}} : {{bonusRoll.total}}</li>
{{/if}}
{{#if arme}}
<li>Arme : {{arme.name}} (+{{arme.data.bonusmaniementoff}})</li>
{{/if}}
<li>Formule : {{diceFormula}}</li>
@ -43,9 +47,14 @@
<li>Succés Héroïque!!!</li>
{{/if}}
{{#if isDramatique}}
<li>Succés Dramatique!!!</li>
<li>Echec Dramatique!!!</li>
{{/if}}
{{#each predilections as |pred key|}}
<li>
<button class="chat-card-button predilection-reroll" data-predilection-index="{{key}}">Predilection : {{pred.name}}</button>
</li>
{{/each}}
</ul>
</div>

View File

@ -25,10 +25,16 @@
<label class="generic-label">Bonus de maniement (offensif) : </label>
<input type="text" class="padd-right status-small-label color-class-common" name="data.bonusmaniementoff" value="{{data.bonusmaniementoff}}" data-dtype="Number" />
</span>
<span class="flexrow">
<label class="generic-label">Défensive ? </label>
<input class="" type="checkbox" name="data.isdefense" value="{{data.isdefense}}" {{checked data.isdefense}}/>
</span>
{{#if data.isdefense}}
<span class="flexrow">
<label class="generic-label">Bonus de maniement (défensif) : </label>
<input type="text" class="padd-right status-small-label color-class-common" name="data.bonusmaniementdef" value="{{data.bonusmaniementdef}}" data-dtype="Number" />
</span>
{{/if}}
<span class="flexrow">
<label class="generic-label">Dégâts : </label>
<input type="text" class="padd-right status-small-label color-class-common" name="data.degats" value="{{data.degats}}" data-dtype="String" />

View File

@ -1,56 +1,77 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div>
</header>
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
</div>
</header>
{{!-- Sheet Body --}}
<section class="sheet-body">
{{!-- Sheet Body --}}
<section class="sheet-body">
<div class="flexcol">
<span class="flexrow">
<label class="generic-label">Niveau : </label>
<input type="text" class="padd-right status-small-label color-class-common" name="data.niveau" value="{{data.niveau}}"
data-dtype="Number" />
<input type="text" class="padd-right status-small-label color-class-common" name="data.niveau"
value="{{data.niveau}}" data-dtype="Number" />
</span>
<span class="flexrow">
<label class="generic-label">Attribut 1 : </label>
<select class="status-small-label color-class-common" type="text" name="data.attribut1" value="{{data.attribut1}}" data-dtype="string" >
<select class="status-small-label color-class-common" type="text" name="data.attribut1"
value="{{data.attribut1}}" data-dtype="string">
{{#select data.attribut1}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{/select}}
</select>
</select>
</span>
<span class="flexrow">
<label class="generic-label">Attribut 2 : </label>
<select class="status-small-label color-class-common" type="text" name="data.attribut2" value="{{data.attribut2}}" data-dtype="string" >
<select class="status-small-label color-class-common" type="text" name="data.attribut2"
value="{{data.attribut2}}" data-dtype="string">
<option value="none">Aucun</option>
{{#select data.attribut2}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{/select}}
</select>
</select>
</span>
<span class="flexrow">
<label class="generic-label">Attribut 3 : </label>
<select class="status-small-label color-class-common" type="text" name="data.attribut3" value="{{data.attribut3}}" data-dtype="string" >
<select class="status-small-label color-class-common" type="text" name="data.attribut3"
value="{{data.attribut3}}" data-dtype="string">
<option value="none">Aucun</option>
{{#select data.attribut3}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{/select}}
</select>
</select>
</span>
<span class="flexrow">
<h3>Prédilections</h3>
</span>
<ul>
{{#each data.predilections as |predilection key|}}
<li class="prediction-item item flexrow" data-prediction-index="{{key}}">
<input type="text" class="padd-right color-class-common edit-prediction"
name="data.predilections[{{key}}]" value="{{predilection.name}}" data-dtype="String" />
<input class="use-prediction" type="checkbox" name="predilection.used" value="{{predilection.used}}" {{checked predilection.used}} />
<a class="item-control delete-prediction" title="Supprimer une predilection"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ul>
<span class="flexrow">
<button id="add-predilection" class="chat-card-button">Ajouter une prédilection</button>
</span>
{{> systems/fvtt-mournblade/templates/partial-item-description.html}}
</div>
</section>
</form>
</section>
</form>

View File

@ -14,9 +14,11 @@
<label class="generic-label">Allégeance : </label>
<select class="status-small-label color-class-common" type="text" name="data.allegeance" value="{{data.allegeance}}" data-dtype="string" >
{{#select data.allegeance}}
<option value="tous">Tous</option>
<option value="chaos">Chaos</option>
<option value="loi">Loi</option>
<option value="betes">Seigneurs de Bêtes</option>
<option value="betes">Seigneurs des Bêtes</option>
<option value="elementaires">Seigneurs Elementaires</option>
{{/select}}
</select>
</span>
@ -24,13 +26,15 @@
<label class="generic-label">Prérequis : </label>
<input type="text" class="padd-right status-small-label color-class-common" name="data.prerequis" value="{{data.prerequis}}" data-dtype="String" />
</span>
<span class="flexrow">
<label class="generic-label">Sacrifice : </label>
<div class="small-editor item-text-long-line">
{{editor content=data.sacrifice target="data.sacrifice" button=true owner=owner editable=editable}}
</div>
</span>
<span>
<h3>Sacrifices</h3>
</span>
<div class="small-editor item-text-long-line">
{{editor content=data.sacrifice target="data.sacrifice" button=true owner=owner editable=editable}}
</div>
{{> systems/fvtt-mournblade/templates/partial-item-description.html}}
</div>

View File

@ -0,0 +1,18 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div>
</header>
{{!-- Sheet Body --}}
<section class="sheet-body">
<div class="flexcol">
{{> systems/fvtt-mournblade/templates/partial-item-description.html}}
</div>
</section>
</form>

View File

@ -0,0 +1,18 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div>
</header>
{{!-- Sheet Body --}}
<section class="sheet-body">
<div class="flexcol">
{{> systems/fvtt-mournblade/templates/partial-item-description.html}}
</div>
</section>
</form>

View File

@ -0,0 +1,18 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div>
</header>
{{!-- Sheet Body --}}
<section class="sheet-body">
<div class="flexcol">
{{> systems/fvtt-mournblade/templates/partial-item-description.html}}
</div>
</section>
</form>

View File

@ -1,5 +1,5 @@
<span>
<label class="generic-label">Description</label>
<h3>Description</h3>
</span>
<div class="medium-editor item-text-long-line">
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}

View File

@ -9,8 +9,19 @@
<div class="flexcol">
<div class="flexrow">
<span class="roll-dialog-label">{{attr.label}}</span>
<span class="small-label">{{attr.value}}</span>
{{#if (eq attrKey "tochoose")}}
<span class="roll-dialog-label">Attribut</span>
<select class="status-small-label color-class-common" id ="attrKey" type="text" name="attrKey" value="attrKey" data-dtype="string" >
{{#select attrKey}}
{{#each attributs as |attrLabel attrKey|}}
<option value="{{attrKey}}">{{attrLabel}}</option>
{{/each}}
{{/select}}
</select>
{{else}}
<span class="roll-dialog-label">{{attr.label}}</span>
<span class="small-label">{{attr.value}}</span>
{{/if}}
</div>
{{#if competence}}
@ -46,6 +57,13 @@
</select>
</div>
{{#if canEclatDoubleD20}}
<div class="flexrow">
<span class="roll-dialog-label">Doubler le d20 (1 Point d'Eclat)</span>
<input class="" id="doubleD20" type="checkbox" name="doubleD20" value="{{doubleD20}}" {{checked doubleD20}}/>
</div>
{{/if}}
</div>