forked from public/fvtt-yggdrasill
Compare commits
47 Commits
LeRatierBr
...
v10
Author | SHA1 | Date | |
---|---|---|---|
63d1c5847b | |||
866a079c69 | |||
fa0b989c86 | |||
895a722f4c | |||
4442050b11 | |||
aee6b2feae | |||
a613571d7e | |||
545807d533 | |||
42736e02a7 | |||
0e3c5ef749 | |||
|
4b3b59516a | ||
6b42e9dc3f | |||
|
9886ebc85b | ||
|
b67fffb26c | ||
|
d3ffc93738 | ||
|
d4a005fafb | ||
|
7f029f67f2 | ||
|
6ea56b85e6 | ||
|
3ca4a1c844 | ||
583cc2b87a | |||
85030243fa | |||
6506023e2d | |||
3c684ca7b9 | |||
95337a35c2 | |||
e371d57963 | |||
d1da5bfe23 | |||
1dc804697e | |||
e7c67fe479 | |||
57afc103c6 | |||
24f03af66e | |||
26491b5594 | |||
af38cb1e7c | |||
f5557f46a6 | |||
da5b2bf785 | |||
26a5cdcffb | |||
bafaaad6b4 | |||
45922a1277 | |||
35aab26384 | |||
e4f8505cc7 | |||
c28c7d8c0d | |||
9a94798102 | |||
96e02cdb7a | |||
1eb5c5ecb3 | |||
42904b1391 | |||
51fb0deba2 | |||
ba05e0485f | |||
4cff41d648 |
@ -17,7 +17,7 @@ test:
|
||||
build:
|
||||
stage: build
|
||||
script:
|
||||
- zip fvtt-yggdrasill.zip -r *.js *.json *.md module styles templates -x ".*"
|
||||
- zip fvtt-yggdrasill.zip -r *.js *.json *.md fonts images packs module styles templates -x ".*"
|
||||
artifacts:
|
||||
name: fvtt-yggdrasill
|
||||
when: on_success
|
||||
|
11
README.md
11
README.md
@ -1,2 +1,11 @@
|
||||
# fvtt-yggdrasill
|
||||
# Yggdrasill (7ième Cercle) pour FoundryVTT
|
||||
|
||||
Ce système non-officiel est le portage du JdR Yggdrasill (7ième Cercle) pour le système FoundryVTT.
|
||||
|
||||
https://www.7emecercle.com/7C_site/jeux-de-roles/yggdrasill/
|
||||
|
||||
Le livre de base d'Yggdrasill, disponible sur le site de 7ième cercle est nécessaire pour jouer.
|
||||
Yggdrasill le jeu de rôle est la propriété de 7ième Cercle.
|
||||
|
||||
The Vinque font used in this system is properly licensed for Web usage. The proof of the license agreement can be provided thru mail from here or on the French Discord (user @Thelvyn).
|
||||
|
||||
|
@ -14,8 +14,8 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
classes: ["yggdrasill", "sheet", "actor"],
|
||||
template: "systems/fvtt-yggdrasill/templates/actor-sheet.html",
|
||||
width: 640,
|
||||
height: 720,
|
||||
width: 680,
|
||||
height: 740,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
editScore: false
|
||||
@ -23,8 +23,8 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getData() {
|
||||
const objectData = YggdrasillUtility.data(this.object);
|
||||
async getData() {
|
||||
const objectData = duplicate(this.object)
|
||||
|
||||
let formData = {
|
||||
title: this.title,
|
||||
@ -34,7 +34,7 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
name: objectData.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
data: foundry.utils.deepClone(YggdrasillUtility.templateData(this.object)),
|
||||
data: foundry.utils.deepClone(objectData.system),
|
||||
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
|
||||
limited: this.object.limited,
|
||||
isEpuise: this.actor.isEpuise(),
|
||||
@ -48,19 +48,26 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
blessures: this.actor.getBlessures(),
|
||||
armes: this.actor.getArmes(),
|
||||
armures: this.actor.getArmures(),
|
||||
boucliers: this.actor.getBoucliers(),
|
||||
prouessesMartiales: this.actor.getProuessesMartiales(),
|
||||
equipements: this.actor.getToutEquipements(),
|
||||
effetsmagiques: this.actor.getEffetsMagiques(),
|
||||
effetsRunes: this.actor.getEffetsDeRunes(),
|
||||
encTotal: this.actor.getEncTotal(),
|
||||
protectionTotal: this.actor.getProtectionTotal(),
|
||||
dpBouclier: this.actor.getDpBouclier(),
|
||||
monnaies: this.actor.getMonnaies(),
|
||||
sortsSejdr:this.actor.getSortsSejdr(),
|
||||
sortsGaldr:this.actor.getSortsGaldr(),
|
||||
runes: this.actor.getRunes(),
|
||||
optionsCarac: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||
optionsDMDP: YggdrasillUtility.createDirectSortedOptionList(-10, +10),
|
||||
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||
optionsFuror: YggdrasillUtility.createDirectOptionList(0, 15),
|
||||
tiragerunes: await TextEditor.enrichHTML(this.object.system.tiragesrunes, {async: true}),
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, {async: true}),
|
||||
gmnotes: await TextEditor.enrichHTML(this.object.system.biodata.gmnotes, {async: true}),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@ -83,7 +90,7 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
updateDP( data ) {
|
||||
let dp = data.caracsecondaire.defensephy;
|
||||
dp.total = dp.max + Number(dp.bonusmalus);
|
||||
dp.total += (dp.bouclierequipe) ? 3 : 0;
|
||||
dp.total += this.actor.getDpBouclier();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -97,7 +104,7 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
// Update Inventory Item
|
||||
html.find('.item-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||
const item = this.actor.items.get(li.data("item-id"));
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Delete Inventory Item
|
||||
@ -112,12 +119,12 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
|
||||
html.find('.munition-moins').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||
const item = this.actor.items.get(li.data("item-id"));
|
||||
this.actor.decrementeMunition( item );
|
||||
} );
|
||||
html.find('.munition-plus').click(event => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||
const item = this.actor.items.get(li.data("item-id"));
|
||||
this.actor.incrementeMunition( item );
|
||||
} );
|
||||
html.find('.equipement-moins').click(event => {
|
||||
@ -176,7 +183,7 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
});
|
||||
html.find('.weapon-damage').click((event) => {
|
||||
const li = $(event.currentTarget).parents(".item");
|
||||
const weapon = this.actor.getOwnedItem(li.data("item-id"));
|
||||
const weapon = this.actor.items.get(li.data("item-id"));
|
||||
this.actor.rollDamage(weapon, 'damage');
|
||||
});
|
||||
html.find('.competence-base').change((event) => {
|
||||
@ -190,7 +197,7 @@ export class YggdrasillActorSheet extends ActorSheet {
|
||||
});
|
||||
html.find('.item-link a').click((event) => {
|
||||
const itemId = $(event.currentTarget).data("item-id");
|
||||
const item = this.actor.getOwnedItem(itemId);
|
||||
const item = this.actor.items.get(itemId);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
html.find('.item-equip').click(ev => {
|
||||
|
@ -175,15 +175,15 @@ export class YggdrasillActor extends Actor {
|
||||
async prepareData() {
|
||||
if ( this.type == "personnage") {
|
||||
this.computeCaracSecondaire();
|
||||
if (this.data.data.furor.value == 0)
|
||||
if (this.system.furor.value == 0)
|
||||
await this.setEpuise();
|
||||
else
|
||||
await this.cleanEpuise();
|
||||
if ( this.data.data.caracsecondaire.pv.value < (this.data.data.caracsecondaire.pv.max/4) )
|
||||
if ( this.system.caracsecondaire.pv.value < (this.system.caracsecondaire.pv.max/4) )
|
||||
await this.setMeurtri();
|
||||
else
|
||||
await this.cleanMeurtri();
|
||||
if ( this.data.data.caracsecondaire.pv.value < (this.data.data.caracsecondaire.pv.max/2) )
|
||||
if ( this.system.caracsecondaire.pv.value < (this.system.caracsecondaire.pv.max/2) )
|
||||
await this.setBlesse();
|
||||
else
|
||||
await this.cleanBlesse();
|
||||
@ -193,23 +193,24 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_preUpdate(changed, options, user) {
|
||||
if ( changed.data?.caracsecondaire?.pv?.value ) {
|
||||
if ( changed.data.caracsecondaire.pv.value < 0 )
|
||||
changed.data.caracsecondaire.pv.value = 0;
|
||||
if ( changed.data.caracsecondaire.pv.value > this.data.data.caracsecondaire.pv.max )
|
||||
changed.data.caracsecondaire.pv.value = this.data.data.caracsecondaire.pv.max;
|
||||
if ( changed.system?.caracsecondaire?.pv?.value ) {
|
||||
if ( changed.system.caracsecondaire.pv.value < 0 )
|
||||
changed.system.caracsecondaire.pv.value = 0;
|
||||
if ( changed.system.caracsecondaire.pv.value > this.system.caracsecondaire.pv.max )
|
||||
changed.system.caracsecondaire.pv.value = this.system.caracsecondaire.pv.max;
|
||||
}
|
||||
if ( changed.data?.furor?.value ) {
|
||||
if ( changed.data.furor.value < 0 )
|
||||
changed.data.furor.value = 0;
|
||||
if ( changed.data.furor.value > this.data.data.furor.max )
|
||||
changed.data.furor.value = this.data.data.furor.max;
|
||||
|
||||
if ( changed.system?.furor?.value ) {
|
||||
if ( changed.system.furor.value < 0 )
|
||||
changed.system.furor.value = 0;
|
||||
if ( changed.system.furor.value > this.system.furor.max )
|
||||
changed.system.furor.value = this.system.furor.max;
|
||||
}
|
||||
super._preUpdate(changed, options, user);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCompetences() {
|
||||
let comp = this.data.items.filter( item => item.type == 'competence');
|
||||
let comp = this.items.filter( item => item.type == 'competence');
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
@ -224,87 +225,97 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getInitiativeScore() {
|
||||
return this.data.data.caracsecondaire.reaction.max;
|
||||
if ( this.type == 'personnage') {
|
||||
return this.system.caracsecondaire.reaction.max;
|
||||
} else {
|
||||
return this.system.attributs.physique.values.defaut.value;
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCompetencesGenerales() {
|
||||
let comp = this.data.items.filter( item => item.type == 'competence' && item.data.data.categorie == 'generale');
|
||||
let comp = this.items.filter( item => item.type == 'competence' && item.system.categorie == 'generale');
|
||||
return comp.sort( this.compareName );
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCompetencesMartiales() {
|
||||
let comp = this.data.items.filter( item => item.type == 'competence' && item.data.data.categorie == 'martiale');
|
||||
let comp = this.items.filter( item => item.type == 'competence' && item.system.categorie == 'martiale');
|
||||
return comp.sort( this.compareName );
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCompetencesMagiques() {
|
||||
let comp = this.data.items.filter( item => item.type == 'competence' && item.data.data.categorie == 'magique');
|
||||
let comp = this.items.filter( item => item.type == 'competence' && item.system.categorie == 'magique');
|
||||
return comp.sort( this.compareName );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getDons( ) {
|
||||
let dons = this.data.items.filter( item => item.type == 'don');
|
||||
let dons = this.items.filter( item => item.type == 'don');
|
||||
return dons.sort( this.compareName );
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getEffetsMagiques( ) {
|
||||
let effets = this.data.items.filter( item => item.type == 'effetmagique');
|
||||
let effets = this.items.filter( item => item.type == 'effetmagique');
|
||||
return effets.sort( this.compareName );
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getEffetsDeRunes( ) {
|
||||
let effets = this.data.items.filter( item => item.type == 'effetderune');
|
||||
let effets = this.items.filter( item => item.type == 'effetderune');
|
||||
return effets.sort( this.compareName );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getMonnaies( ) {
|
||||
let monnaies = this.data.items.filter( item => item.type == 'monnaie');
|
||||
let monnaies = this.items.filter( item => item.type == 'monnaie');
|
||||
return monnaies.sort( this.compareName );
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getFaiblesses( ) {
|
||||
let faib = this.data.items.filter( item => item.type == 'faiblesse');
|
||||
let faib = this.items.filter( item => item.type == 'faiblesse');
|
||||
return faib.sort( this.compareName );
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getBlessures( ) {
|
||||
return this.data.items.filter( item => item.type == 'blessure');
|
||||
return this.items.filter( item => item.type == 'blessure');
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getToutEquipements() {
|
||||
return this.data.items.filter( item => item.type == 'equipement' || item.type == 'armure' || item.type == 'armecc' || item.type == 'armedist');
|
||||
return this.items.filter( item => item.type == 'equipement' || item.type == 'armure' || item.type == 'armecc' || item.type == 'armedist' || item.type == 'bouclier');
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getArmes() {
|
||||
return this.data.items.filter( item => (item.type == 'armecc' || item.type == 'armedist') && item.data.data.equipe );
|
||||
return this.items.filter( item => (item.type == 'armecc' || item.type == 'armedist') && item.system.equipe );
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getArmures() {
|
||||
return this.data.items.filter( item => item.type == 'armure' && item.data.data.equipe );
|
||||
return this.items.filter( item => item.type == 'armure' && item.system.equipe );
|
||||
}
|
||||
getBoucliers() {
|
||||
return this.items.filter( item => item.type == 'bouclier' && item.system.equipe );
|
||||
}
|
||||
getProuessesMartiales() {
|
||||
let prouesse = this.data.items.filter( item => item.type == 'prouesse' );
|
||||
let prouesse = this.items.filter( item => item.type == 'prouesse' );
|
||||
return prouesse.sort( this.compareName );
|
||||
}
|
||||
getSortsSejdr() {
|
||||
let sort = this.data.items.filter( item => item.type == 'sortsejdr' );
|
||||
let sort = this.items.filter( item => item.type == 'sortsejdr' );
|
||||
return sort.sort( this.compareName );
|
||||
}
|
||||
getSortsGaldr() {
|
||||
let sort = this.data.items.filter( item => item.type == 'sortgaldr' );
|
||||
let sort = this.items.filter( item => item.type == 'sortgaldr' );
|
||||
return sort.sort( this.compareName );
|
||||
}
|
||||
getRunes() {
|
||||
let sort = this.data.items.filter( item => item.type == 'rune' );
|
||||
let sort = this.items.filter( item => item.type == 'rune' );
|
||||
return sort.sort( this.compareName );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async setEpuise( ) {
|
||||
await this.update({ 'data.status.epuise': true});
|
||||
this.data.data.status.epuise = true;
|
||||
if (!this.system.status.epuise) {
|
||||
await this.update({ 'system.status.epuise': true});
|
||||
this.system.status.epuise = true;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Epuisé');
|
||||
if ( !effect ) {
|
||||
let effect = statusEffects.find( ef => ef.id == 'epuise');
|
||||
@ -313,8 +324,10 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async cleanEpuise() {
|
||||
await this.update({ 'data.status.epuise': false});
|
||||
this.data.data.status.epuise = false;
|
||||
if (this.system.status.epuise) {
|
||||
await this.update({ 'system.status.epuise': false});
|
||||
this.system.status.epuise = false;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Epuisé');
|
||||
if ( effect ) {
|
||||
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||
@ -322,7 +335,7 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async toggleEpuise( ) {
|
||||
if ( this.data.data.status.epuise ) {
|
||||
if ( this.system.status.epuise ) {
|
||||
await this.cleanEpuise();
|
||||
} else {
|
||||
await this.setEpuise();
|
||||
@ -330,14 +343,15 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
isEpuise() {
|
||||
return this.data.data.status.epuise;
|
||||
return this.system.status.epuise;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async setBlesse( ) {
|
||||
await this.update({ 'data.status.blesse': true} );
|
||||
this.data.data.status.blesse = true;
|
||||
console.log("BLESSSE !!!!");
|
||||
if (!this.system.status.blesse) {
|
||||
await this.update({ 'system.status.blesse': true} );
|
||||
this.system.status.blesse = true;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Blessé');
|
||||
if ( !effect ) {
|
||||
let effect = statusEffects.find( ef => ef.id == 'blesse');
|
||||
@ -346,8 +360,10 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async cleanBlesse() {
|
||||
await this.update({ 'data.status.blesse': false} );
|
||||
this.data.data.status.blesse = false;
|
||||
if (this.system.status.blesse) {
|
||||
await this.update({ 'system.status.blesse': false} );
|
||||
this.system.status.blesse = false;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Blessé');
|
||||
if ( effect ) {
|
||||
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||
@ -356,33 +372,37 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
isBlesse() {
|
||||
return this.data.data.status.blesse;
|
||||
return this.system.status.blesse;
|
||||
//return this.getEffectByLabel('Blessé');
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async setMeurtri( ) {
|
||||
await this.setBlesse();
|
||||
await this.update({ 'data.status.meurtri': true});
|
||||
this.data.data.status.meurtri = true;
|
||||
if (!this.system.status.meurtri) {
|
||||
await this.update({ 'system.status.meurtri': true});
|
||||
this.system.status.meurtri = true;
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async cleanMeurtri() {
|
||||
await this.update({ 'data.status.meurtri': false});
|
||||
this.data.data.status.meurtri = false;
|
||||
if (this.system.status.meurtri) {
|
||||
await this.update({ 'system.status.meurtri': false});
|
||||
this.system.status.meurtri = false;
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
isMeurtri() {
|
||||
return this.data.data.status.meurtri;
|
||||
return this.system.status.meurtri;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async decrementFuror( nbFuror) {
|
||||
await this.update( { 'data.furor.value': this.data.data.furor.value - nbFuror } );
|
||||
await this.update( { 'system.furor.value': this.system.furor.value - nbFuror } );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCurrentFuror() {
|
||||
return this.data.data.furor.value;
|
||||
return this.system.furor.value;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -401,8 +421,8 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCarac( caracName ) {
|
||||
for( let key in this.data.data.carac) {
|
||||
let categ = this.data.data.carac[key];
|
||||
for( let key in this.system.carac) {
|
||||
let categ = this.system.carac[key];
|
||||
for( let carac in categ.carac) {
|
||||
if (carac.toLowerCase() == caracName.toLowerCase() ) {
|
||||
return deepClone(categ.carac[carac]);
|
||||
@ -414,50 +434,72 @@ export class YggdrasillActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
computeCaracSecondaire( ) {
|
||||
if ( this.type == "personnage") {
|
||||
let basecorps = this.data.data.carac.corps.carac;
|
||||
let basecorps = this.system.carac.corps.carac;
|
||||
let sumcorps = basecorps.puissance.value + basecorps.agilite.value + basecorps.vigueur.value
|
||||
let baseesprit = this.data.data.carac.esprit.carac;
|
||||
let baseesprit = this.system.carac.esprit.carac;
|
||||
let sumesprit = baseesprit.intellect.value + baseesprit.perception.value + baseesprit.tenacite.value
|
||||
let baseame = this.data.data.carac.ame.carac;
|
||||
let baseame = this.system.carac.ame.carac;
|
||||
let sumame = baseame.charisme.value + baseame.communication.value + baseame.instinct.value
|
||||
|
||||
let newPV = (sumcorps*3) + (sumesprit *2) + sumame;
|
||||
if ( newPV != this.data.data.caracsecondaire.pv.max) {
|
||||
this.data.data.caracsecondaire.pv.max = newPV;
|
||||
this.update( { 'data.caracsecondaire.pv.max': newPV });
|
||||
if ( newPV != this.system.caracsecondaire.pv.max) {
|
||||
this.system.caracsecondaire.pv.max = newPV;
|
||||
this.update( { 'system.caracsecondaire.pv.max': newPV });
|
||||
}
|
||||
|
||||
this.data.data.caracsecondaire.reaction.value = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||
this.data.data.caracsecondaire.reaction.max = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||
this.system.caracsecondaire.reaction.value = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||
let newReac = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||
if ( newReac != this.system.caracsecondaire.reaction.max) {
|
||||
this.system.caracsecondaire.reaction.max = newReac
|
||||
this.update( { 'system.caracsecondaire.reaction.max': newReac });
|
||||
}
|
||||
|
||||
this.data.data.caracsecondaire.defensephy.value = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||
this.data.data.caracsecondaire.defensephy.max = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||
this.system.caracsecondaire.defensephy.value = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||
let newDef = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value;
|
||||
if ( newDef != this.system.caracsecondaire.defensephy.max) {
|
||||
this.system.caracsecondaire.defensephy.max = newDef
|
||||
this.update( { 'system.caracsecondaire.defensephy.max': newDef });
|
||||
}
|
||||
|
||||
this.data.data.caracsecondaire.defensemen.value = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||
this.data.data.caracsecondaire.defensemen.max = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||
this.system.caracsecondaire.defensemen.value = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||
newDef = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value;
|
||||
if ( newDef != this.system.caracsecondaire.defensemen.max) {
|
||||
this.system.caracsecondaire.defensemen.max = newDef
|
||||
this.update( { 'system.caracsecondaire.defensemen.max': newDef });
|
||||
}
|
||||
|
||||
this.data.data.caracsecondaire.deplacement.value = basecorps.agilite.value + basecorps.vigueur.value;
|
||||
this.data.data.caracsecondaire.deplacement.max = basecorps.agilite.value + basecorps.vigueur.value;
|
||||
this.system.caracsecondaire.deplacement.value = basecorps.agilite.value + basecorps.vigueur.value;
|
||||
let depl = basecorps.agilite.value + basecorps.vigueur.value;
|
||||
if ( depl != this.system.caracsecondaire.deplacement.max) {
|
||||
this.system.caracsecondaire.deplacement.max = depl
|
||||
this.update( { 'system.caracsecondaire.deplacement.max': depl });
|
||||
}
|
||||
|
||||
this.data.data.caracsecondaire.capaenc.value = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||
this.data.data.caracsecondaire.capaenc.max = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||
this.system.caracsecondaire.capaenc.value = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||
let enc = (basecorps.puissance.value * 2) + basecorps.vigueur.value;
|
||||
if ( enc != this.system.caracsecondaire.capaenc.max ) {
|
||||
this.system.caracsecondaire.capaenc.max = enc
|
||||
this.update( { 'system.caracsecondaire.capaenc.max': enc });
|
||||
}
|
||||
|
||||
//console.log("CARAC SEC", this.system.caracsecondaire)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async equiperObject( equipementId ) {
|
||||
let item = this.data.items.find( item => item.id == equipementId );
|
||||
if (item && item.data.data) {
|
||||
let update = { _id: item.id, "data.equipe": !item.data.data.equipe };
|
||||
let item = this.items.find( item => item.id == equipementId );
|
||||
if (item && item.system) {
|
||||
let update = { _id: item.id, "data.equipe": !item.system.equipe };
|
||||
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async updateCompetence( compId, niveau) {
|
||||
let comp = this.data.items.find( item => item.type == 'competence' && item.id == compId);
|
||||
let comp = this.items.find( item => item.type == 'competence' && item.id == compId);
|
||||
console.log("Comp updated!!!!", compId, niveau);
|
||||
if (comp) {
|
||||
const update = { _id: comp.id, 'data.niveau': niveau };
|
||||
const update = { _id: comp.id, 'system.niveau': niveau };
|
||||
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||
} else {
|
||||
ui.notifications.warn("Compétence inconnue", compId)
|
||||
@ -471,9 +513,9 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollAttribute( attrkey, subAttrKey = 'defaut') {
|
||||
let attr = duplicate(this.data.data.attributs[attrkey]);
|
||||
let subAttr = duplicate(this.data.data.attributs[attrkey].values[subAttrKey] );
|
||||
console.log("ATTR : ", attr, subAttr);
|
||||
let attr = duplicate(this.system.attributs[attrkey]);
|
||||
console.log("ATTR : ", attr, attrkey, subAttrKey);
|
||||
let subAttr = duplicate(this.system.attributs[attrkey].values[subAttrKey] );
|
||||
if ( attr ) {
|
||||
subAttr.label = subAttr.label || "";
|
||||
let title = `Attribut : ${attr.label} ${subAttr.label} : ${subAttr.value}`;
|
||||
@ -483,13 +525,15 @@ export class YggdrasillActor extends Actor {
|
||||
actorImg: this.img,
|
||||
actorId: this.id,
|
||||
attr: attr,
|
||||
valuePhysique: this.data.data.attributs["physique"].values["defaut"].value,
|
||||
valuePhysique: this.system.attributs["physique"].values["defaut"].value,
|
||||
subAttr: subAttr,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
title: title,
|
||||
isBlesse: this.data.data.etat.etat == "blesse",
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||
isBlesse: this.system.etat.etat == "blesse",
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-15, +15),
|
||||
bonusMalus: 0,
|
||||
bonusdefense: 0,
|
||||
optionsBD: YggdrasillUtility.buildListOptions(0, +15),
|
||||
optionsSR: YggdrasillUtility.buildSROptions( ),
|
||||
sr: 0
|
||||
}
|
||||
@ -503,8 +547,8 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCarac( categName, caracName) {
|
||||
let carac = duplicate(this.data.data.carac[categName].carac[caracName]);
|
||||
console.log("CARAC : ", carac, this.data.data.carac);
|
||||
let carac = duplicate(this.system.carac[categName].carac[caracName]);
|
||||
console.log("CARAC : ", carac, this.system.carac);
|
||||
if ( carac) {
|
||||
let rollData = {
|
||||
mode: "carac",
|
||||
@ -518,11 +562,12 @@ export class YggdrasillActor extends Actor {
|
||||
isEpuise: this.isEpuise(),
|
||||
isBlesse: this.isBlesse(),
|
||||
isMeurtri: this.isMeurtri(),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-15, +15),
|
||||
bonusMalus: 0,
|
||||
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||
furorUsage: 0,
|
||||
optionsSR: YggdrasillUtility.buildSROptions( ),
|
||||
optionsBD: YggdrasillUtility.buildListOptions(0, +15),
|
||||
sr: 0
|
||||
}
|
||||
let rollDialog = await YggdrasillRoll.create( this, rollData);
|
||||
@ -536,7 +581,7 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCompetence( competenceId ) {
|
||||
let competence = this.data.items.find( item => item.type == 'competence' && item.id == competenceId);
|
||||
let competence = this.items.find( item => item.type == 'competence' && item.id == competenceId);
|
||||
if ( competence) {
|
||||
let rollData = {
|
||||
mode: "competence",
|
||||
@ -545,12 +590,12 @@ export class YggdrasillActor extends Actor {
|
||||
actorId: this.id,
|
||||
img: competence.img,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
title: `Compétence ${competence.name} : ${competence.data.data.niveau}`,
|
||||
title: `Compétence ${competence.name} : ${competence.system.niveau}`,
|
||||
competence: duplicate(competence),
|
||||
isEpuise: this.isEpuise(),
|
||||
isBlesse: this.isBlesse(),
|
||||
isMeurtri: this.isMeurtri(),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-15, +15),
|
||||
bonusMalus: 0,
|
||||
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||
furorUsage: 0,
|
||||
@ -570,18 +615,18 @@ export class YggdrasillActor extends Actor {
|
||||
let attackData = duplicate(attackMode[mode]);
|
||||
if ( attackData){
|
||||
attackData.mode = mode;
|
||||
attackData.carac = duplicate(this.data.data.carac[attackData.categName].carac[attackData.caracName]);
|
||||
attackData.carac = duplicate(this.system.carac[attackData.categName].carac[attackData.caracName]);
|
||||
if ( attackData.malus != 0) {
|
||||
let malusTab = attackData.malus.split(';');
|
||||
attackData.malus = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.malus = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
}
|
||||
if ( attackData.protection != 0) {
|
||||
let malusTab = attackData.protection.split(';');
|
||||
attackData.protection = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.protection = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
}
|
||||
if ( attackData.bonusdegats != 0) {
|
||||
let malusTab = attackData.bonusdegats.split(';');
|
||||
attackData.bonusdegats = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.bonusdegats = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
}
|
||||
}
|
||||
return attackData;
|
||||
@ -592,18 +637,18 @@ export class YggdrasillActor extends Actor {
|
||||
let attackData = duplicate( tirMode[mode] );
|
||||
if ( attackData){
|
||||
attackData.mode = mode;
|
||||
attackData.carac = duplicate(this.data.data.carac[attackData.categName].carac[attackData.caracName]);
|
||||
attackData.carac = duplicate(this.system.carac[attackData.categName].carac[attackData.caracName]);
|
||||
if ( attackData.malus != 0) {
|
||||
let malusTab = attackData.malus.split(';');
|
||||
attackData.malus = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.malus = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
}
|
||||
if ( attackData.protection != 0) {
|
||||
let malusTab = attackData.protection.split(';');
|
||||
attackData.protection = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.protection = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
}
|
||||
if ( attackData.bonusdegats != 0) {
|
||||
let malusTab = attackData.bonusdegats.split(';');
|
||||
attackData.bonusdegats = this.data.data.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.bonusdegats = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
}
|
||||
}
|
||||
return attackData;
|
||||
@ -611,23 +656,24 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollSort( sortId, magie) {
|
||||
let sort = this.data.items.find( item => item.id == sortId);
|
||||
let competence = this.data.items.find( item => item.type == 'competence' && item.name.toLowerCase().includes(magie));
|
||||
let sort = this.items.find( item => item.id == sortId);
|
||||
let competence = this.items.find( item => item.type == 'competence' && item.name.toLowerCase().includes(magie));
|
||||
console.log("SORT :", sortId, sort, competence );
|
||||
|
||||
let carac;
|
||||
if ( magie == "sejdr") {
|
||||
carac = duplicate(this.data.data.carac.ame.carac.instinct);
|
||||
carac = duplicate(this.system.carac.ame.carac.instinct);
|
||||
} else if ( magie == "rune") {
|
||||
carac = duplicate(this.data.data.carac.ame.carac.communication);
|
||||
carac = duplicate(this.system.carac.ame.carac.communication);
|
||||
} else {
|
||||
carac = duplicate(this.data.data.carac.ame.carac.charisme);
|
||||
carac = duplicate(this.system.carac.ame.carac.charisme);
|
||||
}
|
||||
|
||||
if ( sort && competence) {
|
||||
|
||||
let rollData = {
|
||||
mode: magie,
|
||||
isMagie: true,
|
||||
alias: this.name,
|
||||
actorImg: this.img,
|
||||
actorId: this.id,
|
||||
@ -635,8 +681,8 @@ export class YggdrasillActor extends Actor {
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
title: magie + " - " + sort.name,
|
||||
selectedCarac: carac,
|
||||
agiliteCarac: duplicate(this.data.data.carac.corps.carac.agilite),
|
||||
instinctCarac: duplicate(this.data.data.carac.ame.carac.instinct),
|
||||
agiliteCarac: duplicate(this.system.carac.corps.carac.agilite),
|
||||
instinctCarac: duplicate(this.system.carac.ame.carac.instinct),
|
||||
sort: duplicate(sort),
|
||||
competence: duplicate(competence),
|
||||
dureeGaldr: "1d5a",
|
||||
@ -646,8 +692,8 @@ export class YggdrasillActor extends Actor {
|
||||
isEpuise: this.isEpuise(),
|
||||
isBlesse: this.isBlesse(),
|
||||
isMeurtri: this.isMeurtri(),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||
optionsBD: YggdrasillUtility.buildListOptions(0, +6),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-15, +15),
|
||||
optionsBD: YggdrasillUtility.buildListOptions(0, +15),
|
||||
bonusMalus: 0,
|
||||
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||
furorUsage: 0,
|
||||
@ -667,9 +713,9 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollArme( armeId ) {
|
||||
let arme = this.data.items.find( item => item.id == armeId);
|
||||
let compName = armeCategorieToCompetence[arme.data.data.categorie];
|
||||
let competence = this.data.items.find( item => item.type == 'competence' && item.name == compName);
|
||||
let arme = this.items.find( item => item.id == armeId);
|
||||
let compName = armeCategorieToCompetence[arme.system.categorie];
|
||||
let competence = this.items.find( item => item.type == 'competence' && item.name == compName);
|
||||
console.log("ARME :", armeId, arme, competence );
|
||||
|
||||
if ( arme && competence) {
|
||||
@ -690,15 +736,15 @@ export class YggdrasillActor extends Actor {
|
||||
img: competence.img,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
title: "Attaque !",
|
||||
selectedCarac: duplicate(this.data.data.carac.corps.carac.agilite),
|
||||
selectedCarac: duplicate(this.system.carac.corps.carac.agilite),
|
||||
arme: duplicate(arme),
|
||||
competence: duplicate(competence),
|
||||
bonusdefense: 0,
|
||||
isEpuise: this.isEpuise(),
|
||||
isBlesse: this.isBlesse(),
|
||||
isMeurtri: this.isMeurtri(),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-6, +6),
|
||||
optionsBD: YggdrasillUtility.buildListOptions(0, +6),
|
||||
optionsBonusMalus: YggdrasillUtility.buildListOptions(-15, +15),
|
||||
optionsBD: YggdrasillUtility.buildListOptions(0, +15),
|
||||
bonusMalus: 0,
|
||||
optionsFuror: YggdrasillUtility.buildListOptions(0, this.getCurrentFuror() ),
|
||||
furorUsage: 0,
|
||||
@ -716,10 +762,16 @@ export class YggdrasillActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
getEncTotal( ) {
|
||||
let encTotal = 0;
|
||||
for( let item of this.data.items) {
|
||||
for( let item of this.items) {
|
||||
if (item.type == "equipement" || item.type == "armecc"
|
||||
|| item.type == "armedist" || item.type == "armure" || item.type == "monnaie") {
|
||||
encTotal += item.data.data.enc;
|
||||
|| item.type == "armedist" || item.type == "armure" || item.type == "monnaie" || item.type == "bouclier") {
|
||||
encTotal += (item.system.enc * item.system.quantite);
|
||||
}
|
||||
}
|
||||
for( let item of this.items) {
|
||||
if (item.type == "bouclier" && item.system.equipe) {
|
||||
encTotal -= (item.system.enc * item.system.quantite);
|
||||
encTotal += (item.system.enccomb * item.system.quantite);
|
||||
}
|
||||
}
|
||||
return encTotal;
|
||||
@ -728,30 +780,40 @@ export class YggdrasillActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
getProtectionTotal( ) {
|
||||
let protectionTotal = 0;
|
||||
for( let item of this.data.items) {
|
||||
if (item.type == "armure" && item.data.data.equipe) {
|
||||
protectionTotal += Number(item.data.data.protection);
|
||||
for( let item of this.items) {
|
||||
if (item.type == "armure" && item.system.equipe) {
|
||||
protectionTotal += Number(item.system.protection);
|
||||
}
|
||||
}
|
||||
return protectionTotal;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getDpBouclier( ) {
|
||||
let dpBouclier = 0;
|
||||
for( let item of this.items) {
|
||||
if (item.type == "bouclier" && item.system.equipe) {
|
||||
dpBouclier += Number(item.system.defensebonus);
|
||||
}
|
||||
}
|
||||
return dpBouclier;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async incrementeQuantite( objetId ) {
|
||||
let objetQ = this.data.items.find( item => item.id == objetId );
|
||||
let objetQ = this.items.find( item => item.id == objetId );
|
||||
if (objetQ) {
|
||||
let newQ = objetQ.data.data.quantite + 1;
|
||||
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||
let newQ = objetQ.system.quantite + 1;
|
||||
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async decrementeQuantite( objetId ) {
|
||||
let objetQ = this.data.items.find( item => item.id == objetId );
|
||||
let objetQ = this.items.find( item => item.id == objetId );
|
||||
if (objetQ) {
|
||||
let newQ = objetQ.data.data.quantite - 1;
|
||||
let newQ = objetQ.system.quantite - 1;
|
||||
newQ = (newQ <= 0) ? 0 : newQ;
|
||||
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'data.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,8 +23,8 @@ export class YggdrasillFigurantSheet extends ActorSheet {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getData() {
|
||||
const objectData = YggdrasillUtility.data(this.object);
|
||||
async getData() {
|
||||
const objectData = duplicate(this.object)
|
||||
|
||||
let formData = {
|
||||
title: this.title,
|
||||
@ -34,14 +34,16 @@ export class YggdrasillFigurantSheet extends ActorSheet {
|
||||
name: objectData.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
data: foundry.utils.deepClone(YggdrasillUtility.templateData(this.object)),
|
||||
data: foundry.utils.deepClone(this.object.system),
|
||||
limited: this.object.limited,
|
||||
equipements: this.actor.getToutEquipements(),
|
||||
effetsmagiques: this.actor.getEffetsMagiques(),
|
||||
encTotal: this.actor.getEncTotal(),
|
||||
monnaies: this.actor.getMonnaies(),
|
||||
optionsAttr: new Array(21).fill('option'),
|
||||
optionsAttr: new Array(41).fill('option'),
|
||||
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||
notes: await TextEditor.enrichHTML(this.object.system.notes, {async: true}),
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@ -63,7 +65,7 @@ export class YggdrasillFigurantSheet extends ActorSheet {
|
||||
// Update Inventory Item
|
||||
html.find('.item-edit').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
const item = this.actor.getOwnedItem(li.data("item-id"));
|
||||
const item = this.actor.items.get(li.data("item-id"));
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Delete Inventory Item
|
||||
@ -93,7 +95,7 @@ export class YggdrasillFigurantSheet extends ActorSheet {
|
||||
});
|
||||
html.find('.item-link a').click((event) => {
|
||||
const itemId = $(event.currentTarget).data("item-id");
|
||||
const item = this.actor.getOwnedItem(itemId);
|
||||
const item = this.actor.items.get(itemId);
|
||||
item.sheet.render(true);
|
||||
});
|
||||
html.find('.item-equip').click(ev => {
|
||||
|
@ -43,7 +43,7 @@ export class YggdrasillItemSheet extends ItemSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async getData() {
|
||||
const objectData = YggdrasillUtility.data(this.object);
|
||||
const objectData = duplicate(this.object);
|
||||
|
||||
let formData = {
|
||||
title: this.title,
|
||||
@ -53,9 +53,10 @@ export class YggdrasillItemSheet extends ItemSheet {
|
||||
name: objectData.name,
|
||||
editable: this.isEditable,
|
||||
cssClass: this.isEditable ? "editable" : "locked",
|
||||
data: foundry.utils.deepClone(YggdrasillUtility.templateData(this.object)),
|
||||
data: foundry.utils.deepClone(this.object.system),
|
||||
optionsBase: YggdrasillUtility.createDirectOptionList(0, 20),
|
||||
optionsNiveaux4: YggdrasillUtility.buildListOptions(1, 5),
|
||||
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||
limited: this.object.limited,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
@ -75,13 +76,13 @@ export class YggdrasillItemSheet 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 item = this.object.options.actor.items.get(li.data("item-id"));
|
||||
item.sheet.render(true);
|
||||
});
|
||||
// Update Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.object.options.actor.deleteOwnedItem( li.data("item-id") ).then( this.render(true));
|
||||
this.object.options.actor.deleteEmbeddedDocuments( "Item", [li.data("item-id") ] ).then( this.render(true));
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -67,10 +67,36 @@ function welcomeMessage() {
|
||||
ChatMessage.create({
|
||||
user: game.user.id,
|
||||
whisper: [game.user.id],
|
||||
content: `<div id="welcome-message-yggdrasill"><span class="rdd-roll-part">Bienvenue !</div>
|
||||
content: `<div id="welcome-message-yggdrasill"><span class="rdd-roll-part"><strong>Bienvenue à Yggdrasill !</strong>
|
||||
<p>Yggdrasill est un Jeu de Rôle publié par 7ième Cercle : https://www.7emecercle.com/7C_site/jeux-de-roles/yggdrasill/</p>
|
||||
<br>Yggdrasill est une propriété de 7ième Cercle.
|
||||
</div>
|
||||
` });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
// Register world usage statistics
|
||||
function registerUsageCount( registerKey ) {
|
||||
if ( game.user.isGM ) {
|
||||
game.settings.register(registerKey, "world-key", {
|
||||
name: "Unique world key",
|
||||
scope: "world",
|
||||
config: false,
|
||||
default: "",
|
||||
type: String
|
||||
});
|
||||
|
||||
let worldKey = game.settings.get(registerKey, "world-key")
|
||||
if ( worldKey == undefined || worldKey == "" ) {
|
||||
worldKey = randomID(32)
|
||||
game.settings.set(registerKey, "world-key", worldKey )
|
||||
}
|
||||
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
|
||||
$.ajax(regURL)
|
||||
/* -------------------------------------------- */
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Foundry VTT Initialization */
|
||||
/* -------------------------------------------- */
|
||||
@ -84,7 +110,8 @@ Hooks.once("ready", function () {
|
||||
user: game.user._id
|
||||
});
|
||||
}
|
||||
welcomeMessage();
|
||||
registerUsageCount("fvtt-yggdrasill")
|
||||
welcomeMessage()
|
||||
});
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -73,12 +73,12 @@ export class YggdrasillRoll extends Dialog {
|
||||
updateGaldrSR( ) {
|
||||
let sdDuree = Number(dureeGaldrSD[this.rollData.dureeGaldr]);
|
||||
let sdVar = 0;
|
||||
if ( this.rollData.sort.data.voie == "illusion") {
|
||||
if ( this.rollData.sort.system.voie == "illusion") {
|
||||
sdVar = Number(zonesciblesGaldrSD[this.rollData.zoneGaldr]);
|
||||
} else {
|
||||
sdVar = Number(ciblesGaldrSD[this.rollData.nbCibles]);
|
||||
}
|
||||
let SR = Number(this.rollData.sort.data.sd) + sdDuree + sdVar;
|
||||
let SR = Number(this.rollData.sort.system.sd) + sdDuree + sdVar;
|
||||
$("#srTotal").text(SR);
|
||||
this.rollData.sr = SR;
|
||||
}
|
||||
@ -91,27 +91,32 @@ export class YggdrasillRoll extends Dialog {
|
||||
if ( this.rollData.supportRune == "peau") {
|
||||
support = 3;
|
||||
this.rollData.echelleDuree = "Actions";
|
||||
this.rollData.echelleDureeVie = "Heures"
|
||||
}
|
||||
if ( this.rollData.supportRune == "tissu") {
|
||||
support = 6;
|
||||
this.rollData.echelleDuree = "Tours";
|
||||
this.rollData.echelleDureeVie = "Jours"
|
||||
}
|
||||
if ( this.rollData.supportRune == "cuir") {
|
||||
support = 9;
|
||||
this.rollData.echelleDuree = "Minutes";
|
||||
this.rollData.echelleDureeVie = "Semaines"
|
||||
}
|
||||
if ( this.rollData.supportRune == "bois") {
|
||||
support = 12;
|
||||
this.rollData.echelleDuree = "Heures";
|
||||
this.rollData.echelleDureeVie = "Mois"
|
||||
}
|
||||
if ( this.rollData.supportRune == "pierremetal") {
|
||||
support = 15;
|
||||
this.rollData.echelleDuree = "Jours";
|
||||
this.rollData.echelleDureeVie = "Années"
|
||||
}
|
||||
let SR = this.rollData.puissanceRune + (Number(this.rollData.sort.data.niveau)*3) + support;
|
||||
let SR = this.rollData.puissanceRune + (Number(this.rollData.sort.system.niveau)*3) + support;
|
||||
$("#srTotal").text(SR);
|
||||
$("#runeDuree").text( this.rollData.dureeRune + " " + this.rollData.echelleDuree);
|
||||
$("#runeDureeVie").text( this.rollData.puissanceRune + " " + this.rollData.echelleDuree);
|
||||
$("#runeDureeVie").text( this.rollData.competence.system.niveau + " " + this.rollData.echelleDureeVie);
|
||||
this.rollData.sr = SR;
|
||||
}
|
||||
|
||||
|
@ -20,19 +20,6 @@ export class YggdrasillUtility {
|
||||
return loadTemplates(templatePaths);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static templateData(it) {
|
||||
return YggdrasillUtility.data(it)?.data ?? {}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static data(it) {
|
||||
if (it instanceof Actor || it instanceof Item || it instanceof Combatant) {
|
||||
return it.data;
|
||||
}
|
||||
return it;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static createDirectSortedOptionList( min, max) {
|
||||
let options = [];
|
||||
@ -98,6 +85,38 @@ export class YggdrasillUtility {
|
||||
return compendiumData.filter(filter);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async specificYggRoll( nbDice ) {
|
||||
let rawDices = []
|
||||
let rolls = []
|
||||
let maxTab = []
|
||||
|
||||
maxTab[0] = {idx: 0, value: 0}
|
||||
maxTab[1] = {idx: 0, value: 0}
|
||||
|
||||
for (let i=0; i<nbDice; i++) {
|
||||
rolls[i] = new Roll("1d10x10").roll( {async: false}) //+sumDice+"+"+rollData.furorUsage+"d10+"+niveauCompetence+"+"+rollData.finalBM).roll( { async: false} );
|
||||
if ( i == nbDice-1 ) {
|
||||
await this.showDiceSoNice(rolls[i], game.settings.get("core", "rollMode") );
|
||||
} else {
|
||||
this.showDiceSoNice(rolls[i], game.settings.get("core", "rollMode") );
|
||||
}
|
||||
rawDices.push({ 'result': rolls[i].total});
|
||||
|
||||
if ( rolls[i].total > maxTab[0].value) {
|
||||
if ( nbDice > 1 && maxTab[0].value > maxTab[1].value) {
|
||||
maxTab[1].value = maxTab[0].value
|
||||
}
|
||||
maxTab[0].value = rolls[i].total
|
||||
} else {
|
||||
if ( nbDice > 1 && rolls[i].total > maxTab[1].value) {
|
||||
maxTab[1].value = rolls[i].total
|
||||
}
|
||||
}
|
||||
}
|
||||
return { rawDices: rawDices, maxTab: maxTab, rolls: rolls}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async rollAttribute( rollData ) {
|
||||
// Init stuff
|
||||
@ -114,18 +133,27 @@ export class YggdrasillUtility {
|
||||
rollData.finalBM -= 3;
|
||||
}
|
||||
|
||||
let myRoll = new Roll("2d10+"+niveau+"+"+rollData.finalBM).roll( { async: false} );
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode") );
|
||||
let results = await this.specificYggRoll( 2 )
|
||||
rollData.rawDices = results.rawDices
|
||||
rollData.maxTab = results.maxTab
|
||||
rollData.rolls = results.rolls
|
||||
rollData.bonus = niveau + rollData.finalBM
|
||||
|
||||
rollData.finalTotal = rollData.maxTab[0].value + rollData.maxTab[1].value;
|
||||
rollData.finalTotal += rollData.bonus
|
||||
|
||||
// Compute total SR
|
||||
rollData.srFinal = rollData.sr;
|
||||
if ( rollData.bonusdefense ) {
|
||||
rollData.srFinal += rollData.bonusdefense;
|
||||
}
|
||||
if ( rollData.srFinal > 0 ) {
|
||||
isCritical = myRoll.total >= rollData.srFinal*2;
|
||||
isSuccess = myRoll.total >= rollData.srFinal;
|
||||
marge = myRoll.total - rollData.srFinal;
|
||||
isCritical = rollData.finalTotal >= rollData.srFinal*2;
|
||||
isSuccess = rollData.finalTotal >= rollData.srFinal;
|
||||
marge = rollData.finalTotal - rollData.srFinal;
|
||||
}
|
||||
|
||||
if (myRoll.dice[0].results[0].result == 1 && myRoll.dice[0].results[1].result == 1) {
|
||||
if (rollData.rolls[0].dice[0].results[0].result == 1 && rollData.rolls[1].dice[0].results[0].result == 1) {
|
||||
isFailure = true;
|
||||
}
|
||||
// Dégats
|
||||
@ -141,7 +169,6 @@ export class YggdrasillUtility {
|
||||
rollData.isSuccess = isSuccess;
|
||||
rollData.isCritical = isCritical;
|
||||
rollData.marge = marge;
|
||||
rollData.roll = myRoll
|
||||
|
||||
console.log("ROLLLL ATTR!!!!", rollData);
|
||||
|
||||
@ -153,7 +180,7 @@ export class YggdrasillUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async rollYggdrasill( rollData ) {
|
||||
let sumDice = ( rollData.isEpuise | rollData.isMeurtri | rollData.isBlesse) ? 1 : 2;
|
||||
let sumDice = ( rollData.isEpuise | rollData.isMeurtri) ? 1 : 2;
|
||||
|
||||
// Init stuff
|
||||
let isCritical = false;
|
||||
@ -165,7 +192,7 @@ export class YggdrasillUtility {
|
||||
|
||||
// Select niveau de competence/arme/carac
|
||||
if ( rollData.mode != "carac" ) {
|
||||
niveauCompetence = rollData.competence.data.niveau;
|
||||
niveauCompetence = rollData.competence.system.niveau;
|
||||
} else {
|
||||
niveauCompetence = rollData.selectedCarac.value;
|
||||
}
|
||||
@ -175,8 +202,8 @@ export class YggdrasillUtility {
|
||||
if ( rollData.attackDef) {
|
||||
rollData.finalBM -= rollData.attackDef.malus;
|
||||
}
|
||||
if ( rollData.sort && rollData.sort.data.malus ) {
|
||||
rollData.finalBM += rollData.sort.data.malus;
|
||||
if ( rollData.sort && rollData.sort.system.malus ) {
|
||||
rollData.finalBM += rollData.sort.system.malus;
|
||||
}
|
||||
// Gestion cas blessé (malus de -3)
|
||||
if ( rollData.isBlesse) { // Cas blesse : malus de -3
|
||||
@ -184,40 +211,60 @@ export class YggdrasillUtility {
|
||||
}
|
||||
|
||||
if (sumDice > nbDice) sumDice = nbDice;
|
||||
let myRoll = new Roll(nbDice+"d10x10kh"+sumDice+"+"+rollData.furorUsage+"d10+"+niveauCompetence+"+"+rollData.finalBM).roll( { async: false} );
|
||||
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode") );
|
||||
let results = await this.specificYggRoll( nbDice )
|
||||
rollData.rawDices = results.rawDices
|
||||
rollData.maxTab = results.maxTab
|
||||
rollData.rolls = results.rolls
|
||||
console.log("RES", results, nbDice, sumDice)
|
||||
|
||||
if ( rollData.furorUsage > 0 ) {
|
||||
results = await this.specificYggRoll( rollData.furorUsage )
|
||||
rollData.furorRawDices = results.rawDices
|
||||
rollData.furorMaxTab = results.maxTab
|
||||
rollData.furorRolls = results.rolls
|
||||
let actor = game.actors.get(rollData.actorId);
|
||||
actor.decrementFuror( rollData.furorUsage);
|
||||
}
|
||||
|
||||
rollData.bonusTotal = niveauCompetence + rollData.finalBM
|
||||
rollData.finalTotal = (sumDice ==1) ? rollData.maxTab[0].value : rollData.maxTab[0].value + rollData.maxTab[1].value;
|
||||
rollData.furorResult = 0
|
||||
for (let i=0; i<rollData.furorUsage; i++) {
|
||||
rollData.furorResult += rollData.furorMaxTab[i].value
|
||||
}
|
||||
rollData.finalTotal += rollData.furorResult + rollData.bonusTotal;
|
||||
rollData.niveauCompetence = niveauCompetence
|
||||
|
||||
// Compute total SR
|
||||
rollData.srFinal = rollData.sr;
|
||||
if ( rollData.bonusdefense ) {
|
||||
rollData.srFinal += rollData.bonusdefense;
|
||||
}
|
||||
|
||||
if ( rollData.srFinal > 0 ) {
|
||||
isCritical = myRoll.total >= rollData.srFinal*2;
|
||||
isSuccess = myRoll.total >= rollData.srFinal;
|
||||
marge = myRoll.total - rollData.srFinal;
|
||||
isCritical = rollData.finalTotal >= rollData.srFinal*2;
|
||||
isSuccess = rollData.finalTotal >= rollData.srFinal;
|
||||
marge = rollData.finalTotal - rollData.srFinal;
|
||||
}
|
||||
|
||||
rollData.rawDices = duplicate(myRoll.dice[0].results);
|
||||
if (nbDice == 1 && myRoll.dice[0].results[0].result == 1) {
|
||||
if (nbDice == 1 && rollData.rolls[0].dice[0].results[0].result == 1) {
|
||||
isFailure = true;
|
||||
}
|
||||
if (nbDice == 2 && myRoll.dice[0].results[0].result == 1 && myRoll.dice[0].results[1].result == 1) {
|
||||
if (nbDice == 2 && rollData.rolls[0].dice[0].results[0].result == 1 && rollData.rolls[1].dice[0].results[0].result == 1) {
|
||||
isFailure = true;
|
||||
}
|
||||
if (nbDice >= 3 ) {
|
||||
let nbOnes = myRoll.dice[0].results.filter( dice => dice.result == 1);
|
||||
isFailure = nbOnes.length >= 3;
|
||||
let nbOnes = 0
|
||||
for (let roll of rollData.rolls) {
|
||||
if (roll.dice[0].results[0].result == 1 ) nbOnes++;
|
||||
}
|
||||
if ( rollData.furorUsage > 0 ) {
|
||||
let actor = game.actors.get(rollData.actorId);
|
||||
actor.decrementFuror( rollData.furorUsage);
|
||||
isFailure = nbOnes >= 3;
|
||||
}
|
||||
|
||||
// Dégats
|
||||
if ( isSuccess && (rollData.mode == "armecc" || rollData.mode == "armedist") ) {
|
||||
rollData.degatsExplain = `Marge(${marge}) + Degats Arme(${rollData.arme.data.degat}) + Bonus Attaque(${rollData.attackDef.bonusdegats})`;
|
||||
rollData.degats = marge + rollData.arme.data.degat + rollData.attackDef.bonusdegats;
|
||||
rollData.degatsExplain = `Marge(${marge}) + Degats Arme(${rollData.arme.system.degat}) + Bonus Attaque(${rollData.attackDef.bonusdegats})`;
|
||||
rollData.degats = marge + rollData.arme.system.degat + rollData.attackDef.bonusdegats;
|
||||
}
|
||||
|
||||
// Stockage resultats
|
||||
@ -226,14 +273,13 @@ export class YggdrasillUtility {
|
||||
rollData.isSuccess = isSuccess;
|
||||
rollData.isCritical = isCritical;
|
||||
rollData.marge = marge;
|
||||
rollData.roll = myRoll
|
||||
|
||||
// Specific GALDR
|
||||
if ( rollData.sort?.type == "sortgaldr" && rollData.isSuccess) {
|
||||
let galdrRoll = new Roll( rollData.dureeGaldr.substring(0, rollData.dureeGaldr.length - 1) ).roll( { async: false} );
|
||||
await this.showDiceSoNice(galdrRoll, game.settings.get("core", "rollMode") );
|
||||
rollData.dureeGaldrText = galdrRoll.total + " " + dureeGaldrText[rollData.dureeGaldr];
|
||||
if ( rollData.sort.data.voie == "illusion") {
|
||||
if ( rollData.sort.system.voie == "illusion") {
|
||||
let volume = rollData.zoneGaldr.substring(3, rollData.zoneGaldr.length);
|
||||
rollData.zoneGaldrText = rollData.instinctCarac.value + " x " + volume;
|
||||
} else {
|
||||
@ -251,7 +297,7 @@ export class YggdrasillUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getUsers(filter) {
|
||||
return game.users.filter(filter).map(user => user.data._id);
|
||||
return game.users.filter(filter).map(user => user.system._id);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static getWhisperRecipients(rollMode, name) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
[Dolphin]
|
||||
SortOrder=1
|
||||
HeaderColumnWidths=544,73,106,72
|
||||
SortRole=modificationtime
|
||||
Timestamp=2021,9,21,17,43,45.19
|
||||
Timestamp=2022,2,5,12,44,17.076
|
||||
Version=4
|
||||
ViewMode=1
|
||||
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails
|
||||
|
@ -1,21 +1,15 @@
|
||||
{"name":"Casque","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":3,"enc":2,"valeur":2,"description":"<p>Le modèle le plus fréquent comporte un nasal et des « lunettes » qui protègent les yeux. Sur une base de bol en métal, des lamelles de renforts sont rivetées afin d’assurer la rigidité de l’ensemble. L’intérieur est doublé de cuir et de tissu afin d’amortir les chocs.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"8MoqC7EIc3SXtdsN"}
|
||||
{"name":"Lance cc","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"hast","equipe":false,"degat":10,"solidite":11,"enc":2,"valeur":4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xMRAVbweHG0aMBNR":3},"flags":{"core":{"sourceId":"Item.KPPt0lyDyEac7SPi"}},"_id":"3VBHojfjdD504ibv"}
|
||||
{"_id":"8aaaIqx6uT1sJ0RO","name":"Lance","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":8,"solidite":11,"enc":4,"portee":"5/10/15/30","valeur":4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Cuir lamellé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":6,"enc":3,"valeur":2,"description":"<p>Des lamelles de cuir plus rigides sont collées et cousues sur la version précédente. La poitrine, le ventre, les omoplates et les coudes sont particulièrement renforcés. Des pièces semi-rigides, bombées, enserrent parfois les épaules.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"B2yc8LDKTRl0Hjxt"}
|
||||
{"name":"Hache de guerre","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"longue","equipe":false,"degat":9,"solidite":10,"enc":2,"valeur":1,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"BwmkCCiJWME4CpB0"}
|
||||
{"name":"Epaullières de fourrure","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.6,"description":"<p>Il s’agit d’un grand morceau de peau encerclant les épaules et le cou. En général, cette fourrure est fixée sur une cape. En plus de la protection qu’elle apporte, sa nature (loup, ours, vison, etc.. ) donne une indication sur le statut du guerrier.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"C2mzwxiCPJWoY8kc"}
|
||||
{"name":"Poignard cc","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"courte","equipe":false,"degat":3,"solidite":9,"enc":0,"valeur":0.5,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"xMRAVbweHG0aMBNR":3},"flags":{"core":{"sourceId":"Item.jLtQv1SAt8pkMGqa"}},"_id":"CwrTGdva6vQVz0aQ"}
|
||||
{"name":"Epée courte","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"longue","equipe":false,"degat":5,"solidite":11,"enc":0,"valeur":2,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"FGIja8vhUOeGNC4x"}
|
||||
{"name":"Longue hache","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"deuxmains","equipe":false,"degat":14,"solidite":12,"enc":3,"valeur":3,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"GqAbMhROpATanmH3"}
|
||||
{"name":"Hache de jet","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":4,"solidite":8,"enc":0,"portee":"3/6/9/15","valeur":0.3,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"IZRpi8jq9erpiyoy"}
|
||||
{"_id":"MkEW9Ma5m9nlE0nr","name":"Poignard","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":3,"solidite":9,"enc":2,"portee":"3/6/9/12","valeur":0.4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":4,"enc":1,"valeur":1,"description":"<p>La veste devient plus épaisse et doublée de tissu. Des pièces de métal, des rivets plats en cuivre, en bronze ou en fer apportent une protection supplémentaire aux zones les plus exposées. Le col monte parfois jusque sous le menton.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"P6dSkefY97UqdDj9"}
|
||||
{"_id":"MkEW9Ma5m9nlE0nr","name":"Poignard","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":3,"solidite":9,"enc":0,"portee":"3/6/9/12","valeur":0.5,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Arc de chasse","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"tir","equipe":false,"degat":6,"solidite":8,"enc":2,"portee":"10/20/40/80","valeur":1,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"PsqO2GFVTFIeyCmQ"}
|
||||
{"name":"Bracelets de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":1,"enc":0,"valeur":0.3,"description":"<p>Ils protègent l’avant-bras, du dessus de la main jusqu’au coude. Souvent gravés de motifs décoratifs, ils se composent de lamelles de cuir rigidifiées et nouées à l’aide de gros lacets.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"RgYAFOOAh7GGzBaF"}
|
||||
{"name":"Jambières de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.4,"description":"<p>Nouées autour des cuisses ou des mollets, elles protègent le combattant des coups visant ses jambes. Ici aussi, les artisans essaient souvent d’orner ces pièces d’armure de décorations ciselées dans la matière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"SpTt7wfW9qBKJDxX"}
|
||||
{"name":"Veste de cuir","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":0,"valeur":0.3,"description":"<p>Il s’agit autant d’un vêtement courant que d’une armure. La veste recouvre le torse, le ventre et les hanches. Certaines possèdent des manches, courtes ou longues. Le cuir souple et fin ne restreint guère la liberté de mouvement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"WrJ7Q4e556LDolbu"}
|
||||
{"name":"Hachette","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"courte","equipe":false,"degat":4,"solidite":8,"enc":0,"valeur":0.3,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"fjIHt6jNRAM25L9q"}
|
||||
{"name":"Arc de guerre","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"tir","equipe":false,"degat":7,"solidite":10,"enc":2,"portee":"10/30/50/100","valeur":2,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"jSrZnzjI0QVWuXw8"}
|
||||
{"name":"Javeline","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"jet","equipe":false,"degat":6,"solidite":7,"enc":2,"portee":"5/10/20/40","valeur":0.4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"m6PjnSO3ACnzU0ie"}
|
||||
{"name":"Cotte de mailles","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":9,"enc":5,"valeur":8,"description":"<p>Composée de centaines d’anneaux de fer rivetés, la cotte de mailles protège les mêmes parties du corps qu’une veste. Elle ne descend jamais sur les jambes car cela restreint trop la mobilité des combattants. Ceux-ci enfilent dessous une chemise molletonnée ou une fine veste de cuir.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"n9eKutLHJZoBYFAD"}
|
||||
{"name":"Epée à deux mains","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"deuxmains","equipe":false,"degat":12,"solidite":14,"enc":3,"valeur":5,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ptcBNQhYLwWkBkc0"}
|
||||
{"name":"Epée longue","type":"armecc","img":"icons/svg/item-bag.svg","data":{"categorie":"longue","equipe":false,"degat":7,"solidite":11,"enc":1,"valeur":4,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"rpY7aUxJelvsozvh"}
|
||||
{"name":"Fronde","type":"armedist","img":"icons/svg/item-bag.svg","data":{"categorie":"tir","equipe":false,"degat":4,"solidite":12,"enc":0,"portee":"10/20/30/40","valeur":0.1,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"x3aMYeKa73GxJ1Ge"}
|
||||
|
@ -1,8 +1,8 @@
|
||||
{"name":"Bracelets de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":1,"enc":0,"valeur":0.3,"description":"<p>Ils protègent l’avant-bras, du dessus de la main jusqu’au coude. Souvent gravés de motifs décoratifs, ils se composent de lamelles de cuir rigidifiées et nouées à l’aide de gros lacets.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"4YGPuZ813BWQaNbq"}
|
||||
{"_id":"4YGPuZ813BWQaNbq","name":"Bracelets de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"piecearmure","equipe":false,"protection":1,"enc":0,"valeur":0.3,"description":"<p>Ils protègent l’avant-bras, du dessus de la main jusqu’au coude. Souvent gravés de motifs décoratifs, ils se composent de lamelles de cuir rigidifiées et nouées à l’aide de gros lacets.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Cuir lamellé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":6,"enc":3,"valeur":2,"description":"<p>Des lamelles de cuir plus rigides sont collées et cousues sur la version précédente. La poitrine, le ventre, les omoplates et les coudes sont particulièrement renforcés. Des pièces semi-rigides, bombées, enserrent parfois les épaules.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"9WReqm0CdcCGnsNc"}
|
||||
{"name":"Veste de cuir","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":0,"valeur":0.3,"description":"<p>Il s’agit autant d’un vêtement courant que d’une armure. La veste recouvre le torse, le ventre et les hanches. Certaines possèdent des manches, courtes ou longues. Le cuir souple et fin ne restreint guère la liberté de mouvement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"JP6OeUflKfg4WiyJ"}
|
||||
{"name":"Cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":4,"enc":1,"valeur":1,"description":"<p>La veste devient plus épaisse et doublée de tissu. Des pièces de métal, des rivets plats en cuivre, en bronze ou en fer apportent une protection supplémentaire aux zones les plus exposées. Le col monte parfois jusque sous le menton.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"MFH09YNp4uGL8eCE"}
|
||||
{"name":"Epaullières de fourrure","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.6,"description":"<p>Il s’agit d’un grand morceau de peau encerclant les épaules et le cou. En général, cette fourrure est fixée sur une cape. En plus de la protection qu’elle apporte, sa nature (loup, ours, vison, etc.. ) donne une indication sur le statut du guerrier.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"NK7IF0Cr4oOPCZVq"}
|
||||
{"name":"Jambières de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":2,"enc":1,"valeur":0.4,"description":"<p>Nouées autour des cuisses ou des mollets, elles protègent le combattant des coups visant ses jambes. Ici aussi, les artisans essaient souvent d’orner ces pièces d’armure de décorations ciselées dans la matière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"WergjG9QE8SxlAGr"}
|
||||
{"name":"Casque","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":3,"enc":2,"valeur":2,"description":"<p>Le modèle le plus fréquent comporte un nasal et des « lunettes » qui protègent les yeux. Sur une base de bol en métal, des lamelles de renforts sont rivetées afin d’assurer la rigidité de l’ensemble. L’intérieur est doublé de cuir et de tissu afin d’amortir les chocs.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ozRBKdYJtbnk87gO"}
|
||||
{"_id":"NK7IF0Cr4oOPCZVq","name":"Epaulières de fourrure","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"piecearmure","equipe":false,"protection":2,"enc":1,"valeur":0.6,"description":"<p>Il s’agit d’un grand morceau de peau encerclant les épaules et le cou. En général, cette fourrure est fixée sur une cape. En plus de la protection qu’elle apporte, sa nature (loup, ours, vison, etc.. ) donne une indication sur le statut du guerrier.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"_id":"WergjG9QE8SxlAGr","name":"Jambières de cuir renforcé","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"piecearmure","equipe":false,"protection":2,"enc":1,"valeur":0.4,"description":"<p>Nouées autour des cuisses ou des mollets, elles protègent le combattant des coups visant ses jambes. Ici aussi, les artisans essaient souvent d’orner ces pièces d’armure de décorations ciselées dans la matière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"_id":"ozRBKdYJtbnk87gO","name":"Casque","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"piecearmure","equipe":false,"protection":3,"enc":2,"valeur":2,"description":"<p>Le modèle le plus fréquent comporte un nasal et des « lunettes » qui protègent les yeux. Sur une base de bol en métal, des lamelles de renforts sont rivetées afin d’assurer la rigidité de l’ensemble. L’intérieur est doublé de cuir et de tissu afin d’amortir les chocs.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Cotte de mailles","type":"armure","img":"icons/svg/item-bag.svg","data":{"categorie":"armure","equipe":false,"protection":9,"enc":5,"valeur":8,"description":"<p>Composée de centaines d’anneaux de fer rivetés, la cotte de mailles protège les mêmes parties du corps qu’une veste. Elle ne descend jamais sur les jambes car cela restreint trop la mobilité des combattants. Ceux-ci enfilent dessous une chemise molletonnée ou une fine veste de cuir.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"qUXBrstsh5Oo8FEx"}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{"name":"Superstition","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le monde regorge de signes divins, de détails naturels qui reflètent le sens caché des choses. Le personnage sait repérer et interpréter ces éléments. Il s’agit en général d’y voir des conditions favorables ou défavorables pour le moment présent, mais aussi des messages d’avertissement envoyés par les dieux. Les habitants de la Scandia sont des gens très superstitieux et ils tendent à voir partout des présages significatifs. Le Meneur de Jeu pourra en profiter pour glisser quelques indices obscurs sur la situation actuelle des héros qui, dans l’idéal, révèleront leur plein sens une fois qu’il sera trop tard.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"26CQEICWZs8Gw4Xi"}
|
||||
{"name":"Intimidation","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Par l’intermédiaire de la menace verbale ou physique, le personnage peut contraindre quelqu’un à lui obéir. Une tentative d’Intimidation nécessite un test en opposition. La cible tente de résister grâce à sa Ténacité et à sa Défense mentale.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"3vspCnDuVMqQDuPe"}
|
||||
{"name":"Négociation","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la capacité à mener une discussion vers un compromis acceptable par les deux parties. Négociation est une compétence utile aux diplomates de la Scandia, mais aussi aux marchands qui peuvent mener à bien leur marchandage lors de l’achat et de la vente de leurs produits.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"4k4NLNlEG7jZEPK6"}
|
||||
{"name":"Jeu","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>le personnage connaît les règles et sait pratiquer la plupart des jeux prisés par les habitants de la Scandia, comme les jeux de dés ou le <em>hnefatafl</em>. Cette compétence s’utilise généralement avec des tests en opposition mettant en concurrence les niveaux de maîtrise respectifs des joueurs. Mais elle permet également de tricher. Dans ce cas, les autres participants peuvent tenter un test en opposition de Perception + Vigilance. Si le tricheur est démasqué, attendezvous à des conséquences… musclées.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"6OMBvnSFqVHqd36u"}
|
||||
{"_id":"6OMBvnSFqVHqd36u","name":"Jeux","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>le personnage connaît les règles et sait pratiquer la plupart des jeux prisés par les habitants de la Scandia, comme les jeux de dés ou le <em>hnefatafl</em>. Cette compétence s’utilise généralement avec des tests en opposition mettant en concurrence les niveaux de maîtrise respectifs des joueurs. Mais elle permet également de tricher. Dans ce cas, les autres participants peuvent tenter un test en opposition de Perception + Vigilance. Si le tricheur est démasqué, attendezvous à des conséquences… musclées.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Artisanat","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>Cette compétence regroupe l’ensemble des activités manuelles permettant de confectionner les objets du quotidien. La plupart des habitants de la Scandia pratiquent plus ou moins ces techniques et se révèlent autonomes lorsqu’il s’agit de fabriquer ou de réparer des ustensiles basiques. Un niveau Confirmé permet d’exercer son artisanat en professionnel et de gagner sa vie avec cette activité. Les meilleurs artisans bénéficient d’une renommée et d’une considération importantes. L’utilisation de cette compétence correspond en général à un test étendu. Spécialisations possibles : cordonnerie, ferronnerie, chaudronnerie, charpenterie, tissage, tannerie, corderie, taille de pierre, poterie, sellerie, etc…</p>\n<p>Il existe cependant deux spécialisations qui méritent que l’on s’y attarde, tant elles occupent une place importante dans la société des Terres du Nord.</p>\n<p><strong>Construction navale : </strong>cette spécialisation permet de mener à bien la construction des différents types de navires sillonnant les flots de la Scandia. Le personnage maîtrise aussi bien les secrets de l’architecture navale que les techniques de la charpenterie de marine, mais il sait tout autant diriger les artisans qui vont réaliser le bateau selon ses instructions. Les meilleurs dans ce domaine sont très recherchés par tous les jarls et souverains des Royaumes Nordiques.</p>\n<p><strong>Forge : </strong>l’art de la forge nécessite des connaissances spécifiques dont certaines confinent au secret transmis uniquement d’un maître à son disciple. Un personnage Novice sait fabriquer des objets usuels, simples, utiles au quotidien (clous, têtes d’outils, anneaux…) Une fois atteint le niveau Confirmé, il peut commencer à forger des pièces plus complexes (fer pour les chevaux, serrures, ferrures d’ornements, etc…) ainsi que des armes et des armures. Si certains exercent leur profession de manière itinérante, un forgeron doit tout de même disposer d’un atelier et d’outils appropriés afin de pouvoir mettre en oeuvre sa compétence. Un forgeron pratique l’un des métiers les plus respectés parmi les artisans.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"947IgofSqazA1CoD"}
|
||||
{"name":"Survie","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage se sent à l’aise dans les milieux naturels et sait comment y vivre en harmonie avec la nature. Cette compétence permet de trouver de quoi se nourrir et s’abreuver, un endroit pour s’abriter, de faire du feu et de se protéger des conditions climatiques extrêmes comme le froid d’une nuit d’hiver. La Survie recouvre également la chasse et le pistage, mais aussi le sens de l’orientation et les premiers soins.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"9AHUm9FLajXTkEZJ"}
|
||||
{"name":"Traditions","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Grâce à cette compétence, le personnage se souvient des règles, des coutumes et des lois qui ont cours dans la région, voire la cité, où il se trouve. Si le système juridique reste assez semblable dans toute la Scandia, il existe souvent quelques variations locales dans l’application des peines encourues pour un même crime. De même, les us et coutumes de certains endroits changent subtilement par rapport aux habitudes des héros et peuvent provoquer des situations des plus embarrassantes. Un personnage Expert dans cette compétence peut endosser le rôle de crieur des lois lors d’un thing.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"CIfheBgF5plSgqYT"}
|
||||
@ -9,10 +9,10 @@
|
||||
{"name":"Esquive","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage anticipe les attaques portées contre lui et se met hors de portée des coups ou des projectiles qui le visent. Bien qu’elle s’avère surtout utile en combat, cette compétence sert également à éviter une collision qui menace le héros, comme un attelage lancé au galop vers lui, ou un éboulement de gros rochers. Que l’esquive soit réussie ou pas, le personnage se retrouve toujours à terre, à quelques pas de sa position initiale (le joueur choisit la direction).</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"MLCAKgi8wRLwlINc"}
|
||||
{"name":"Commerce","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la connaissance des lois de l’offre et de la demande. Le négociant sait évaluer les choses lors d’un troc, ou d’une transaction s’il utilise de la monnaie. Il connaît également les points d’approvisionnement pour les différentes marchandises produites dans la Scandia, et les endroits où il a le plus de chance d’en tirer le meilleur profit. Les dates et les lieux où se déroulent les foires annuelles n’ont pas de secret pour lui. Enfin, cette compétence gère tout l’aspect intendance de cette activité.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"OlELPb9hGkbQNnff"}
|
||||
{"name":"Chercher","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence entre en jeu lorsque le personnage fouille un endroit particulier. Elle permet de révéler les éléments cachés dans le décor ou les indices dissimulés. Contrairement à la compétence Vigilance, Chercher nécessite une démarche active de la part du héros.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"QysZVyRFax7P0mko"}
|
||||
{"name":"Médecine","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence correspond à la connaissance de l’ensemble des pratiques médicales de la Scandia. Elle permet d’établir un diagnostic, de soigner les maladies les plus courantes, de traiter les blessures, de réduire une fracture, d’accompagner un accouchement, mais aussi de déterminer les causes probables d’une mort inexpliquée. Les premiers soins sont quant à eux couverts par la compétence Survie, mais un personnage plus compétent en Médecine peut dans ce cas substituer cette discipline à un test de Survie.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"SEeAKWRSKO0HWt6Q"}
|
||||
{"_id":"SEeAKWRSKO0HWt6Q","name":"Médecine*","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence correspond à la connaissance de l’ensemble des pratiques médicales de la Scandia. Elle permet d’établir un diagnostic, de soigner les maladies les plus courantes, de traiter les blessures, de réduire une fracture, d’accompagner un accouchement, mais aussi de déterminer les causes probables d’une mort inexpliquée. Les premiers soins sont quant à eux couverts par la compétence Survie, mais un personnage plus compétent en Médecine peut dans ce cas substituer cette discipline à un test de Survie.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Herboristerie","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Il s’agit de la connaissance des plantes, des herbes et des produits naturels permettant de concocter des remèdes, mais aussi des teintures ou encore des poisons de toutes sortes. Un personnage versé dans cette discipline sait également reconnaître les plantes rencontrées en pleine nature, ainsi que déterminer l’endroit où il a le plus de chance de trouver une espèce spécifique.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"SHnTbcIm0JZN7UqU"}
|
||||
{"name":"Natation","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence représente l’aptitude à se mouvoir à la surface de l’eau et à y demeurer en cas de chute depuis un navire. Le Meneur de Jeu peut appliquer un malus au test de Natation égal à la valeur de protection de l’armure portée par l’infortuné. Le nageur peut également se déplacer sous l’eau ou plonger depuis les hauteurs vertigineuses des falaises avec de bonnes chances de réussite.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"VcfHyyT169aId8Td"}
|
||||
{"name":"Langues","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>Tous les personnages parlent couramment le norrois (<em>dansk tunga</em>), la langue commune aux différents royaumes de la Scandia. Chaque spécialisation dans cette compétence correspond à une langue particulière et étrangère, ou à un patois local issu d’une autre racine linguistique comme le finnois parlé par les tribus sames. Il est toujours possible de comprendre un dialecte tiré du norrois en réussissant, généralement, un test d’Intellect contre un Seuil de Réussite Moyen (14). Exemples de spécialisation : saxon, finnois, balte, germain…</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ZhIYWUKuDV5hyuUA"}
|
||||
{"_id":"ZhIYWUKuDV5hyuUA","name":"Langues*","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>Tous les personnages parlent couramment le norrois (<em>dansk tunga</em>), la langue commune aux différents royaumes de la Scandia. Chaque spécialisation dans cette compétence correspond à une langue particulière et étrangère, ou à un patois local issu d’une autre racine linguistique comme le finnois parlé par les tribus sames. Il est toujours possible de comprendre un dialecte tiré du norrois en réussissant, généralement, un test d’Intellect contre un Seuil de Réussite Moyen (14). Exemples de spécialisation : saxon, finnois, balte, germain…</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"name":"Discrétion","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Le personnage sait se déplacer en silence, tout en profitant du moindre couvert afin de passer inaperçu. Cette compétence permet également de se cacher efficacement ou de camoufler un objet sur soi ou dans le décor environnant.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"cKowAJGvHnY0GSOZ"}
|
||||
{"name":"Art","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":true,"categorie":"generale","specialisation":"","description":"<p>Choisissez le domaine de prédilection du personnage. Il peut s’agir d’un simple don naturel, d’une activité professionnelle (pour un scalde), d’un loisir… Cette compétence permet de créer une oeuvre d’art originale ou d’en reproduire une existante. Spécialisations possibles : orfèvrerie, chant, musique, danse, gravure, poésie déclamée, flatterie, peinture, etc…</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"fcTMIpIMVc1cQASZ"}
|
||||
{"name":"Larcins","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"generale","specialisation":"","description":"<p>Cette compétence recouvre les activités des filous des terres du Nord. Elle permet de crocheter une serrure, mais aussi de couper une bourse ou de subtiliser discrètement des clefs. Dans ce deuxième cas, Larcins s’emploie dans un test en opposition contre la Perception et la Vigilance de la cible.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"ggoWPfYoTx7QG5ae"}
|
||||
|
@ -1,3 +1,3 @@
|
||||
{"name":"Galdr","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Le <em>galdr</em> utilise la puissance divine de la voix pour la magie. Tout pratiquant de la magie peut l’utiliser. Il n’est pas besoin d’avoir une belle voix ou de chanter juste, mais de lancer des incantations.</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"RAhkadJOfEnVBLpy"}
|
||||
{"name":"Runes","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Cette compétence permet de lire et de connaître le sens de chacune des vingt-quatre runes. Mais surtout elles donnent des indications occultes sur la réalité du monde et permettent de lancer des sorts de protection, malédiction et guérison, à ceux qui savent s’en servir.</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"UoWkSxLdXhZQinnc"}
|
||||
{"name":"Sejdr","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Il s’agit là de l’antique art magique enseigné à Odhinn même, par Freyja, la sorcellerie. Les femmes sont plus nombreuses à en pratiquer certains sorts car ils sont liés à des travaux considérés comme purement féminins (filer de la laine, mettre des vêtements de cérémonie pour les visions, chevaucher un autre personnage). Certains hommes pratiquent le Sejdr sans s’en soucier, d’autres sélectionnent les sorts les moins compromettants et les complètent avec les Runes ou le Galdr.</p>","niveau":0,"niveauunrequis":true},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{},"_id":"mIBiTKqfqiiepeyz"}
|
||||
{"_id":"RAhkadJOfEnVBLpy","name":"Galdr*","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Le <em>galdr</em> utilise la puissance divine de la voix pour la magie. Tout pratiquant de la magie peut l’utiliser. Il n’est pas besoin d’avoir une belle voix ou de chanter juste, mais de lancer des incantations.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"_id":"UoWkSxLdXhZQinnc","name":"Runes*","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Cette compétence permet de lire et de connaître le sens de chacune des vingt-quatre runes. Mais surtout elles donnent des indications occultes sur la réalité du monde et permettent de lancer des sorts de protection, malédiction et guérison, à ceux qui savent s’en servir.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
{"_id":"mIBiTKqfqiiepeyz","name":"Sejdr*","type":"competence","img":"systems/fvtt-yggdrasill/images/icons/icon_skill.png","data":{"isspecialisation":false,"categorie":"magique","specialisation":"","description":"<p>Il s’agit là de l’antique art magique enseigné à Odhinn même, par Freyja, la sorcellerie. Les femmes sont plus nombreuses à en pratiquer certains sorts car ils sont liés à des travaux considérés comme purement féminins (filer de la laine, mettre des vêtements de cérémonie pour les visions, chevaucher un autre personnage). Certains hommes pratiquent le Sejdr sans s’en soucier, d’autres sélectionnent les sorts les moins compromettants et les complètent avec les Runes ou le Galdr.</p>","niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{}}
|
||||
|
@ -72,7 +72,7 @@
|
||||
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_3mky1xz4s5a","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Matériel de voyage","children":[],"icon":""}},"_id":"YkBXKz3eMPwnZzdy"}
|
||||
{"_id":"Yzp6xG4TvdqekMbS","name":"Tabouret","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_5sjuseujvx","color":"#000000"}}}
|
||||
{"_id":"aTXpAI60TC9iPNW2","name":"Noix (x12)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||
{"_id":"b7KxnGQYSch0R3LR","name":"Oie, la pièce (Copy)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||
{"_id":"b7KxnGQYSch0R3LR","name":"Oie, la pièce","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||
{"_id":"bBYQWKsP2obNVY3g","name":"Toque de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":30,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||
{"_id":"bVyPX9mly7ZKGmpi","name":"Lanterne","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":12,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||
{"name":"#[CF_tempEntity]","type":"competence","img":"icons/svg/item-bag.svg","data":{"isspecialisation":false,"categorie":"","specialisation":"","description":0,"niveau":0,"niveauunrequis":false},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_xbkwrebbs7","folderPath":[],"color":"#000000","fontColor":"#FFFFFF","name":"Animaux","children":[],"icon":""}},"_id":"bc4G5zHvyo85bTY4"}
|
||||
@ -122,7 +122,7 @@
|
||||
{"_id":"tj5GitQXME3twMZA","name":"Ferme","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":100,"quantite":0,"description":"<p>Valeur: 100 à 500 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||
{"_id":"u6x3iKoK1dFVSkmR","name":"Assiettes en terre cuite (x6)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.kq81bAOPnRmqKfcz"},"cf":{"id":"temp_w8bf2nzl2s8","color":"#000000"}}}
|
||||
{"_id":"uhn3xaweehPUZ50g","name":"Lait de vache, le litre","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_oahtnyiva7l","color":"#000000"}}}
|
||||
{"_id":"unHM416bSKzKQnEz","name":"Maison longue","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":50,"quantite":0,"description":"<p>Valeur: 50 à 10 000 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||
{"_id":"unHM416bSKzKQnEz","name":"Maison longue","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":500,"quantite":0,"description":"<p>Valeur: 500 à 10 000 onces d'argent</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_4l2xub2vumf","color":"#000000"}}}
|
||||
{"_id":"v2yQffSyG2Hv3PaX","name":"Poulet (x2)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_xbkwrebbs7","color":"#000000"}}}
|
||||
{"_id":"vLedwJH0DQKCaXfx","name":"Pantalon de cuir de luxe","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":70,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||
{"_id":"vdDSkS9Y3VEkoMtd","name":"Grand sac","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":6,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||
@ -131,7 +131,7 @@
|
||||
{"_id":"wGNKXkawnjjKSMhL","name":"Chemise ordinaire","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":8,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||
{"_id":"wIPiowsoKpN6O2i4","name":"Pièce de chanvre (5 mètres)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":2,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.K7VwQEbx4MfPwHnD"},"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||
{"_id":"wWj2mtvC00EEqw0T","name":"Pièce de laine (5 mètres)","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_t9iszt166h","color":"#000000"}}}
|
||||
{"_id":"xId7XdABXbPFlMZu","name":"Mouton, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":3,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||
{"_id":"xId7XdABXbPFlMZu","name":"Mouton, au kilo","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_gnm0v0yf2u6","color":"#000000"}}}
|
||||
{"_id":"xSuvtLVKnW7JX9pe","name":"Corde, 10m","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":1,"quantite":0,"description":null},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_3mky1xz4s5a","color":"#000000"}}}
|
||||
{"_id":"xqd7mgmosQP917Ie","name":"Ceinture de mauvaise qualité","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"cf":{"id":"temp_adwio7cb4q5","color":"#000000"}}}
|
||||
{"_id":"xru0AoOx7lNrv85V","name":"Anneau","type":"equipement","img":"icons/svg/item-bag.svg","data":{"equipe":false,"enc":0,"valeur":5,"quantite":0,"description":"<p>Valeur 5 à 100</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{"core":{"sourceId":"Item.BDhealihoWBT314b"},"cf":{"id":"temp_2dc832wxenw","color":"#000000"}}}
|
||||
|
@ -1,25 +1,25 @@
|
||||
{"name":"Féroce comme l’ours niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-6,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.CecbSkY2QPsZjT9X"}},"_id":"1NgxXWCVuFNQ6pis"}
|
||||
{"name":"Inspiré par Odhinn niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":2,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-6,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Ggr706SVOvQplR07"}},"_id":"1jPd0WmLB7iOZCgw"}
|
||||
{"name":"Grêle mortelle niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (Marge de Réussite + potentiel de l’arme) x Nombre de projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x Nombre de projectiles) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.iu2pLSJfPe8dtSdS"}},"_id":"3GMFpDNQtt7AOrS7"}
|
||||
{"_id":"1NgxXWCVuFNQ6pis","name":"Féroce comme l’ours niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-6,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse ( +10 ). En outre, il rajoute immédiatement de 2 dés à sa réserve de furor. Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.CecbSkY2QPsZjT9X"}}}
|
||||
{"_id":"1jPd0WmLB7iOZCgw","name":"Inspiré par Odhinn niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":2,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-6,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +6. Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Ggr706SVOvQplR07"}}}
|
||||
{"_id":"3GMFpDNQtt7AOrS7","name":"Grêle mortelle niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (MR + potentiel de l’arme) x 2 projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x 2) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.iu2pLSJfPe8dtSdS"}}}
|
||||
{"name":"Ni d’estoc, ni de taille","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":3,"armes":"armes longues","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le héros dépense une action pour parer une attaque adverse. Durant le restant de ce tour de combat, il peut réaliser une seconde parade sans que cela ne lui demande de sacrifier une nouvelle action. Cette seconde défense fait partie d’un enchaînement entamé avec la première. Aussi, il effectue son test sans prendre en compte de modificateur d’action supplémentaire (mais avec le malus de prouesse de –9). Cette seconde parade n’apparaît pas dans le décompte des actions pour ce tour. Cette défense ne permet que de se garder d’un coup. Il est impossible d’enchaîner une contre-attaque ensuite.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.JmzUmkOVEYdhRN4k"}},"_id":"3qnqodZhPbOQdzmH"}
|
||||
{"name":"Inspiré par Odhinn niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":4,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-12,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.fX09Ank6h2uN6ExH"}},"_id":"5JrBAoHl1Vh1Xz6y"}
|
||||
{"_id":"5JrBAoHl1Vh1Xz6y","name":"Inspiré par Odhinn niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":4,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-12,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +12. Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.fX09Ank6h2uN6ExH"}}}
|
||||
{"name":"Entre les yeux","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-12,"description":"<p>Le héros réalise un tir très précis et particulièrement mortel. Si le projectile atteint la cible, celle-ci perd immédiatement la moitié des Points de Vie qui lui reste. Les figurants sont tués sur le coup.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.cZj3CfZTbG2NlpDf"}},"_id":"5bVAc6dFgOSqFGpk"}
|
||||
{"name":"A toi !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":2,"armes":"Esquive","prerequis":"Niveau de compétence \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage doit se trouver au contact de plusieurs adversaires. Il dépense une action pour réaliser une esquive face à un coup qui menace de l’atteindre. S’il la réussit, il reste sur place, sans chuter, et laisse juste passer l’attaque sans qu’elle l’atteigne. Par contre, celle-ci touche automatiquement un autre de ses adversaires qui subit la moitié des dégâts normaux.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.cxV1XLmQVgnIwP7H"}},"_id":"88SDaHJqIovht0u8"}
|
||||
{"name":"Briser le bouclier","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes à deux mains","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros frappe de toutes ses forces le bouclier de l’adversaire. S’il atteint sa cible, il détruit automatiquement cette pièce d’équipement. Le bouclier devient inutilisable et le défenseur voit sa protection diminuer d’autant.</p>\n<p>Le défenseur ne peut pas parer ce coup, juste l’esquiver.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.2IFHvihXIH7csSuc"}},"_id":"9kqFH6n1xEegwW5u"}
|
||||
{"name":"Rapide comme la foudre","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"Mouvement \"Novice\"","modificateur":-3,"description":"<p>Le personnage change brusquement de rythme dans le combat et modifie sa position pour prendre l’avantage sur son adversaire. Le joueur dépense une action et réalise un test de Mouvement contre un Seuil de Réussite Moyen (14) plus la Défense physique (ou le Conflit/défensif) d’un ennemi qui détient l’initiative sur lui (sans oublier le malus de –3 lié à la prouesse). En cas de succès, dès l’action suivante, le héros échange son rang d’initiative avec celui de son adversaire. Cette nouvelle valeur est utilisée pour tous le reste du combat, contre cet ennemi comme contre d’autres.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.puZXhty1LvcDozTi"}},"_id":"AvQ0eT5ySDz7GUDS"}
|
||||
{"name":"Féroce comme l’ours niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-3,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.h8lItxjvYlXPRf3U"}},"_id":"BlrwSdiYuC11aNhe"}
|
||||
{"_id":"BlrwSdiYuC11aNhe","name":"Féroce comme l’ours niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-3,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5). En outre, il rajoute immédiatement de 1 dé à sa réserve de furor. Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.h8lItxjvYlXPRf3U"}}}
|
||||
{"name":"Feinte de corps","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":1,"armes":"Toutes les armes de mêlée","prerequis":"","modificateur":-3,"description":"<p>Le personnage effectue une parade et tente de se dégager de la trajectoire de l’attaque ennemie. S’il réussit son coup, la prochaine action de l’adversaire est modifiée par un malus supplémentaire de –3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.BNCXoUQF5Alk1QeC"}},"_id":"Ckoaunbtt2vb7pQ4"}
|
||||
{"name":"Sonner","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"toutes les armes de mêlée","prerequis":"compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le personnage assène un déluge de coups violents sur son adversaire. Le dessein de l’attaquant consiste à désorienter l’ennemi. Si le coup porte, la victime subit des dégâts normaux. En outre, elle doit immédiatement réussir un test de Ténacité contre un SR Aisé (10) avec un malus égal au montant des dégâts subis. En cas d’échec, la cible passe en mode défensif (pour les figurants, il s’agit d’un test de Résistance Mentale défensif contre ce même SR). Elle ne peut donc plus contre-attaquer pour le restant de ce tour de combat.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.OBej7jVy0MEV4zfT"}},"_id":"CshFNho3CdQi6PSz"}
|
||||
{"name":"Grêle mortelle niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (Marge de Réussite + potentiel de l’arme) x Nombre de projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x Nombre de projectiles) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.w0c4ZQzRxmIPNhsR"}},"_id":"DKMvBiQGZT6vc8Yu"}
|
||||
{"_id":"DKMvBiQGZT6vc8Yu","name":"Grêle mortelle niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (MR + potentiel de l’arme) x 3 projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x 3) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.w0c4ZQzRxmIPNhsR"}}}
|
||||
{"name":"Fendre le casque","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes longues, armes à deux mains, armes d'Hast, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le personnage sacrifie sa garde pour atteindre l’ennemi d’un coup vicieux à la tête. La Valeur de sa Défense Physique est réduite de deux points (DP -2) pour le reste du tour de combat. S’il réussit son attaque, calculez normalement les dégâts. Le casque est fendu et la valeur de protection de l’armure ennemie est réduite d’autant. En outre, la victime doit réussir un test de Vigueur contre un Seuil de Réussite Aisé (10) assorti d’un malus égal au total des dégâts subis. Si elle échoue, elle est sonnée et passe en mode défensif pour le restant de ce tour de combat (les figurants réalisent un test de Physique + 2D10 contre ce même SR).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.z0aG1e121dTRKfx4"}},"_id":"DZHfTAZPCpCtcbuo"}
|
||||
{"name":"Par le Bras de Thor ! niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.gNqSpCAu7URoY6qp"}},"_id":"Dk9Jef17ImwNwzEe"}
|
||||
{"name":"Vider les mains","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes courtes, armes longues","prerequis":"armes courtes \"Expert\", armes longues \"Confirmé\"","modificateur":-6,"description":"<p>Le héros enchaîne une série de mouvements et de feintes puis vient frapper violemment le fer ennemi. L’adversaire qui, en réaction, rate une esquive ou une parade, ou n’agit pas, lâche son arme aussitôt. Celle-ci chute à quelques pas de là, 1D5 mètres, dans une direction du choix de l’attaquant.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.oWnmb3qQG1YJeYUo"}},"_id":"HzRqAG5R1eBNomR3"}
|
||||
{"name":"Prise de l'ours","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"lutte","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros empoigne son adversaire avec force et l’écrase entre ses bras puissants. La victime peut essayer de se libérer en remportant un test en opposition de Puissance. Il doit consacrer une action à chaque tentative. Tant que la prise est maintenue, l’attaquant inflige automatiquement une perte de (PUI x2) Points de Vie à sa victime, au début de chaque tour de combat. Il ne peut rien faire d’autre durant cette période.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.NN8GvBAJ4v5vsOjQ"}},"_id":"IMFOGClhabJoq7Ve"}
|
||||
{"name":"Les crocs du loup niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-9,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adé-143</p>\n<p>Les Règles - Les Prouesses Martiales quat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + niveau de la prouesse). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.KeIYySNmxe44jWNY"}},"_id":"IOl9Y6D0aUtenxYj"}
|
||||
{"_id":"IOl9Y6D0aUtenxYj","name":"Les crocs du loup niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-9,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adéquat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + 3 ). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.KeIYySNmxe44jWNY"}}}
|
||||
{"name":"Projectile humain","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"lutte","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-9,"description":"<p>Le personnage doit avoir réussi et maintenu une Prise de l’ours dans le tour de combat précédent. Il peut alors jeter sa victime jusqu’à une distance égale à sa Puissance en mètres. Celle-ci subit (PUI x2) points de dégâts dans la manoeuvre. Si d’autres ennemis sont pris pour cibles, ceux-ci perdent ce même nombre de Points de Vie et doivent réussir un test d’Agilité contre un Seuil de Réussite Moyen (14) ou chuter au sol (un test de Physique +2D10 pour les figurants). Ce test de réaction ne nécessite pas la dépense d’une action.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.PfCyTKhaVHFPHkVN"}},"_id":"Ijvn821SrhVwvsUp"}
|
||||
{"name":"Féroce comme l’ours niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-12,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Uku9HUiulLnarqGS"}},"_id":"KC3OieZmASsU0lVC"}
|
||||
{"_id":"KC3OieZmASsU0lVC","name":"Féroce comme l’ours niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-12,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+20). En outre, il rajoute immédiatement de 4 dés à sa réserve de furor . Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Uku9HUiulLnarqGS"}}}
|
||||
{"name":"Par le Bras de Thor ! niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-9,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.Lnt8agsqELbAurHc"}},"_id":"OquECCNx5uwrl1Fb"}
|
||||
{"name":"Inspiré par Odhinn niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-9,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.3ZFsfhb1ecJoOR0F"}},"_id":"QxcdyEgbahougYZn"}
|
||||
{"_id":"QxcdyEgbahougYZn","name":"Inspiré par Odhinn niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":3,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-9,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +9. Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.3ZFsfhb1ecJoOR0F"}}}
|
||||
{"name":"Assomer","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"toutes les armes de mêlée","prerequis":"compétence martiale (Confirmé)","modificateur":-6,"description":"<p>Le personnage vise la tête de son adversaire et tente de lui asséner un coup puissant, mais contrôlé. Il essaie alors de le plonger dans l’inconscience, sans doute dans le but de le capturer. Si le coup porte, la victime ne subit que la moitié des dégâts infligés, mais elle doit réaliser un test de Vigueur contre un SR Moyen (14), avec un malus égal à la Marge de réussite de l’attaque (les figurants lancent simplement 2D10+Physique). En cas d’échec, elle sombre dans l’inconscience pour 1D10 minutes.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.2iT4jtabFR8l4J3p"}},"_id":"Sk891Y3X5A2VkVik"}
|
||||
{"name":"Par le Bras de Thor ! niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-6,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.vUZfeTnfGCda48fl"}},"_id":"TVh39qy45QMDTAM4"}
|
||||
{"name":"Comme des lapins !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"toutes les armes de mêlée","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-6,"description":"<p>Le personnage doit faire face à plusieurs adversaires.</p>\n<p>Tous ne doivent être que des Figurants. Le joueur choisit sa cible principale parmi eux. Si l’attaque est réussie et qu’elle suffit à mettre hors de combat sa victime, il peut immédiatement porter un nouveau coup contre un autre ennemi à portée. Il s’agit d’une action supplémentaire. Aussi, chaque attaque au-delà de la première se voit assortie du modificateur normal d’action supplémentaire, en plus de celui associé à cette prouesse (-6). Si cette deuxième attaque suffit également pour se débarrasser de ce deuxième PNJ, le héros peut poursuivre cet enchaînement jusqu’à ce qu’il décide volontairement de l’interrompre, qu’il n’ait plus d’adversaire à portée ou ne puisse abattre sa cible d’un seul coup.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.wLGDcGtp6SVvcd9R"}},"_id":"U61cOHJKIFCiDMFN"}
|
||||
@ -29,26 +29,26 @@
|
||||
{"name":"Ralliez-vous à moi","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":2,"armes":"","prerequis":"Tactique \"Confirmé","modificateur":-6,"description":"<p>Le héros rameute ses troupes. Sur le champ de bataille, il sonne du cor, bat le rappel et regroupe ses hommes autour de lui. Le joueur réalise un test de Intellect + Tactique + modificateurs. En cas de réussite, tous les alliés à portée de voix du héros bénéficient d’un bonus de +5 à toutes leurs actions lors de ce tour de combat. Luimême ne peut entreprendre aucune autre action que cette prouesse durant ce laps de temps.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.3IdAT7lgv1jWMimg"}},"_id":"YpBHYe3xepEpw0wX"}
|
||||
{"name":"Coup de bouclier","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"armes courtes, armes longues","prerequis":"armes improvisées \"Novice\"","modificateur":-3,"description":"<p>Le personnage doit être équipé d’un bouclier.</p>\n<p>S’il vient de réussir une parade, il porte immédiatement une violente riposte à l’aide d’un coup de bouclier contre son adversaire. Cette contre-attaque nécessite la dépense d’une action et reste donc sujette au malus d’action supplémentaire. Il faut également prendre en compte le malus de prouesse (-3). S’il réussit son test d’Armes improvisées, il inflige à sa victime ( PUI + MR + 5) points de dégât.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.LubJ6Axsth382qR3"}},"_id":"aRJ877Zm4dwhVbWC"}
|
||||
{"name":"Saut du lynx","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":1,"armes":"","prerequis":"Esquive \"Confirmé\"","modificateur":-3,"description":"<p>Le héros se jette de côté et réalise une roulade parfaite. Il se retrouve automatiquement sur ses pieds à la fin de cette manoeuvre. Lorsqu’il se relève, il est de nouveau au contact de son adversaire et peut poursuivre le combat au corps à corps.</p>\n<p>Si le héros utilise cette prouesse afin d’échapper à un projectile, il parcourt alors une distance égale à la moitié de sa valeur de Déplacement (DEP/2), dans la direction de son choix.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.i5Jk0FRdb9EGiYCP"}},"_id":"aZJR34ut5YrjHbKo"}
|
||||
{"name":"Inspiré par Odhinn niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-3,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3/+6/+9/+12 (selon le niveau de la prouesse). Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.TDXq78vjN11q9kyH"}},"_id":"bOltcp27yH4a4Wy3"}
|
||||
{"_id":"bOltcp27yH4a4Wy3","name":"Inspiré par Odhinn niv.1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":1,"armes":"","prerequis":"valeur d'Instinct égale à 3 où plus","modificateur":-3,"description":"<p>Le personnage invoque le pouvoir du père des Ases pour soutenir son combat. Le joueur réalise un test d’Instinct contre un Seuil de Réussite Moyen (14) plus le modificateur dû au niveau de la prouesse. S’il réussit, tous les prochains tests de Ténacité réalisés durant ce combat bénéficient d’un bonus de +3. Inspiré par Odhinn, il ne craint plus la mort car il sait que les Valkyries viendront le chercher afin de l’emporter vers la Valhöll et la demeure du Père de la Victoire.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.TDXq78vjN11q9kyH"}}}
|
||||
{"name":"Coup de tête","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes courtes, armes longues, armes à deux mains","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le héros est engagé dans un corps à corps et vient de réussir une action de parade. Il peut immédiatement dépenser une action afin de riposter à l’aide d’un coup de tête violent sur le visage de son adversaire. Il utilise pour cela la compétence martiale Lutte. En cas de réussite, il inflige (valeur de Puissance + Marge) points de dégâts (ajoutez à ce montant la valeur de protection de son casque s’il en porte un). De plus, sa victime subit un modificateur supplémentaire de +3 à sa prochaine action. Par contre, en cas d’échec critique, le héros perd automatiquement, sans prendre en compte ses protections éventuelles, cinq Points de Vie (-5PV). Mais en cas de réussite critique, si l’adversaire porte un casque, celui-ci est fracassé et ne le protège plus. Sinon, doublez les dégâts infligés.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.kcf3eFEjH5Nzey1W"}},"_id":"ebX4aouh6WEZ1aSy"}
|
||||
{"name":"Blocage niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":3,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-9,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 2, 4 ou 6 points selon le niveau de la prouesse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.P1JhWufOzDRRYr0k"}},"_id":"jHuBo6ctHP4Bf847"}
|
||||
{"_id":"jHuBo6ctHP4Bf847","name":"Blocage niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":3,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-9,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 4 points.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.P1JhWufOzDRRYr0k"}}}
|
||||
{"name":"Par le Bras de Thor ! niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"armes longues, armes à deux mains, armes d’Hast, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-12,"description":"<p>Le personnage invoque le nom du dieu du tonnerre et foudroie son adversaire d’un coup implacable. S’il réussit son attaque, calculez normalement les dégâts. Cependant, lancer autant de dés à dix faces que le niveau de la prouesse et ajouter le résultat au montant initial des dégâts. Notez que le joueur peut posséder cette prouesse à différents niveaux, mais doit acheter chacun d’eux séparément.</p>\n<p>Ainsi, il lui en coûte 4 points afin de maîtriser « Par le bras de Thor ! » aux niveaux 1 et 3.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.mJvV6wQkQgZI9whn"}},"_id":"jyYqashGfvA6xZ1g"}
|
||||
{"name":"Grêle mortelle niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-12,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (Marge de Réussite + potentiel de l’arme) x Nombre de projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x Nombre de projectiles) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.ax6CM5b124XYYzpj"}},"_id":"ktYtIwpVQZi6HWy5"}
|
||||
{"_id":"ktYtIwpVQZi6HWy5","name":"Grêle mortelle niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-12,"description":"<p>Le personnage libère plusieurs projectiles dans le même tir, de deux à quatre selon le niveau de la prouesse (il encoche plusieurs flèches, il saisit deux javelots dans la même main, etc…) Il ne peut cependant viser qu’une seule cible. En cas de réussite, les dégâts infligés sont désormais égaux à (MR + potentiel de l’arme) x 4 projectiles.</p>\n<p>La valeur de protection de la victime s’applique contre chaque trait. On retire donc (Protection x 4) au montant total des dégâts.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.ax6CM5b124XYYzpj"}}}
|
||||
{"name":"Mur de fer","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":3,"armes":"armes courtes, armes longues","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le héros balaie l’espace devant lui avec son arme, créant un véritable rempart de métal entre son adversaire et lui. S’il réussit sa parade, il ne dépense pas son action. En cas d’échec, l’action est dépensée normalement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.qqGx5kl4T8h18g7j"}},"_id":"lEkuO0ZlXnJ4FQAB"}
|
||||
{"name":"La charge du sanglier niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-12,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.V7RytyyTlbVN5cS4"}},"_id":"ld0X2wPgUxBateYG"}
|
||||
{"name":"Blocage niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":4,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-12,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 2, 4 ou 6 points selon le niveau de la prouesse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.v3Exgy3nlA6xzwMq"}},"_id":"mZJhrKyrhZ7L4tfB"}
|
||||
{"_id":"ld0X2wPgUxBateYG","name":"La charge du sanglier niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"épée et bouclier","prerequis":"svinfylkingar, épée et bouclier","modificateur":-12,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : + 20, pour le niveau 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + 4) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.V7RytyyTlbVN5cS4"}}}
|
||||
{"_id":"mZJhrKyrhZ7L4tfB","name":"Blocage niv.4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":4,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-12,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 6 points.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.v3Exgy3nlA6xzwMq"}}}
|
||||
{"name":"Impact !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-9,"description":"<p>Le héros projette son arme de jet avec toute sa force ou vise un point précis pour déséquilibrer sa cible. Sous l’impact, lorsque celle-ci est touchée, elle se retrouve projetée de PUI mètres en arrière et chute au sol si elle rate un test d’Agilité contre un Seuil de Réussite Moyen (14) assorti d’un malus égal à la totalité des points de dégâts subis (un test de Physique +2D10 pour les figurants).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.TYpltLw2F1w0jotr"}},"_id":"nHktQbVo5szIXJh0"}
|
||||
{"name":"Charge impétueuse","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"toutes les armes de mêlée","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le héros doit effectuer un déplacement afin d’engager sa cible. Si l’attaque porte, ajoutez la valeur normale de Déplacement du personnage aux dégâts infligés. S’il a passé l’action précédente à courir ou sprinter vers sa cible, et réussi son test de mouvement, ces bonus aux dégâts passent respectivement à DEP x2 (course) ou DEP x3 (sprint).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.C07wu8D2KjCfNGDG"}},"_id":"o0h9ehFsQbKEwYLz"}
|
||||
{"name":"Féroce comme l’ours niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-9,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+5, +10, +15 ou +20). En outre, il rajoute immédiatement de 1 à 4 dés à sa réserve de furor (selon le niveau de prouesse utilisé). Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.H6SjgKSMheB2jnDi"}},"_id":"rKTHXXIcmuB9GIUQ"}
|
||||
{"name":"Les crocs du loup niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-6,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adé-143</p>\n<p>Les Règles - Les Prouesses Martiales quat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + niveau de la prouesse). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.FTn8bwwuUHshCzRe"}},"_id":"rRw6V0w1xeYigd8n"}
|
||||
{"_id":"rKTHXXIcmuB9GIUQ","name":"Féroce comme l’ours niv.3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"berserkr, hache à deux mains","modificateur":-9,"description":"<p>Le <em>berserkr</em> est totalement habité par sa rage de combat. La lame de sa longue hache virevolte autour de lui et fauche ses ennemis comme du blé mûr. Le héros bénéficie d’un bonus aux dégâts pour cette attaque dépendant du niveau de la prouesse (+15 ). En outre, il rajoute immédiatement de 3 dés à sa réserve de furor. Ce second effet ne s’applique qu’une seule fois par combat. Si le <em>berserkr</em> fait appel à cette prouesse martiale plusieurs fois durant ce combat, il bénéficie toujours du bonus aux dégâts, mais plus de l’augmentation de la réserve de <em>furor</em>.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.H6SjgKSMheB2jnDi"}}}
|
||||
{"_id":"rRw6V0w1xeYigd8n","name":"Les crocs du loup niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-6,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adéquat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + 2 ). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.FTn8bwwuUHshCzRe"}}}
|
||||
{"name":"Pas encore mort !","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":4,"armes":"","prerequis":"Ténacité supérieure où égale à 3","modificateur":-12,"description":"<p>Le héros atteint le stade « Mort », il peut, à chaque nouveau tour de combat, effectuer un test de Ténacité contre un Seuil de Réussite de base Moyen (14). Il applique à son test les différents modificateurs habituels de combat, mais pas les malus de blessure, seulement celui dû à la prouesse (-12). De plus, s’il est épuisé, il ne garde normalement qu’un seul dé. S’il réussit son test, le personnage peut agir normalement ce tour-ci. Il ne subit plus de pertes de Points de Vie supplémentaires tant qu’il bénéficie de cet effet. Dès qu’il échoue, ou dès que le combat se termine, le héros s’écroule et trépasse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.UKI3ScyfZah6DRAn"}},"_id":"rWul7HjBYCmqCtin"}
|
||||
{"name":"Soumets-toi","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"lutte, armes à deux mains","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage exploite le déséquilibre de l’adversaire pour le jeter au sol. Si la cible ne peut parer ou esquiver cette attaque, elle est projetée à terre, aux pieds du héros. Par contre, elle ne subit que la moitié des dégâts normaux.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.f5jNRmufSJhBJN5Z"}},"_id":"sR0g8c3IRWgnvxo4"}
|
||||
{"name":"Désarçonner","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"armes à deux mains, armes d'Hast, armes de jet","prerequis":"niveau de compétence martiale \"Confirmé\"","modificateur":-6,"description":"<p>Le personnage place un coup puissant afin de faire tomber un adversaire du haut de sa monture. Calculez normalement les dégâts infligés. La victime doit réussir un test de Vigueur + Chevaucher contre un Seuil de Réussite Moyen (14) assorti d’un malus égal au total des dégâts subis (un test de Physique + 2D10 pour les figurants). En cas d’échec, elle chute lourdement au sol et devra consacrer sa prochaine action à se relever ou accepter de combattre au sol.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.KuzoIUkgpTB98IFf"}},"_id":"tVhIgg3TUWiqyEP1"}
|
||||
{"name":"Rugissement de Fenrir","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"utilitaire","niveau":3,"armes":"","prerequis":"Intimidation \"Confirmé\", guerrier-fauve, thulr","modificateur":-9,"description":"<p>Le joueur dépense une action pour réaliser un test d’Intimidation. Le héros pousse un rugissement féroce qui résonne sur le champ de bataille comme un appel funeste. Tous les adversaires à portée de voix doivent effectuer un test en opposition de Ténacité + Défense Mentale (ou Mystique/passif) contre un Seuil de Réussite égal au résultat du test du personnage. En cas d’échec, ils subissent un modificateur égal à la valeur de Charisme du héros à toute action entreprise contre lui pour toute la durée du combat.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.x1HNJDfypuNntbzh"}},"_id":"u5Qddc8Y2MnHhWBg"}
|
||||
{"name":"Aucun abri sûr","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"armes de tir, armes de jet","prerequis":"niveau de compétence martiale \"Novice\"","modificateur":-3,"description":"<p>Le héros peut attaquer une cible retranchée derrière un obstacle, tant qu’il est conscient de sa présence et que l’impact de son projectile peut raisonnablement traverser cette barrière. Ainsi, une flèche passe à travers un mur d’osier tressé ou de bois fin. Une hachette peut éclater la paroi d’un tonneau dans lequel se cache un ennemi. En cas de succès, la cible est atteinte par le trait, mais ne subit que la moitié des points de dégât normaux sans prendre en compte la valeur de protection de l’obstacle.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.2lMMNwfsnkUyb04X"}},"_id":"valjps0vpm5a1aHn"}
|
||||
{"name":"Blocage niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":2,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-6,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 2, 4 ou 6 points selon le niveau de la prouesse.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.yZDAs2kpGPXVfQmO"}},"_id":"vksayDqJ7SY9gJKm"}
|
||||
{"name":"La charge du sanglier niv. 1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-3,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.JobfUGWOUMx34HXU"}},"_id":"vw9afhYxPUwDRgkO"}
|
||||
{"name":"Les crocs du loup niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-12,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adé-143</p>\n<p>Les Règles - Les Prouesses Martiales quat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + niveau de la prouesse). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.qO1cu7cOaayNDILY"}},"_id":"w2VQ7lGrE63mYvDJ"}
|
||||
{"name":"La charge du sanglier niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-9,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.pHa44BsEo5XlnnHE"}},"_id":"xyh5Gd9vLjiQ5s1K"}
|
||||
{"_id":"vksayDqJ7SY9gJKm","name":"Blocage niv.2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"defensive","niveau":2,"armes":"Toues les armes de mêlée","prerequis":"","modificateur":-6,"description":"<p>Le personnage réalise une parade puissante et bloque l’arme adverse. S’il réussit son test, l’adversaire ne peut pas attaquer lors de sa prochaine action, durant ce tour de combat ou le suivant. Celui-ci peut utiliser cette action pour réaliser autre chose, mais pas une attaque. Si le héros échoue, il réduit tout de même les dégâts occasionnés par cette attaque de 2 points.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.yZDAs2kpGPXVfQmO"}}}
|
||||
{"_id":"vw9afhYxPUwDRgkO","name":"La charge du sanglier niv. 1","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":1,"armes":"épée et bouclier","prerequis":"svinfylkingar, épée et bouclier","modificateur":-3,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5, pour le niveau 1.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + 1) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.JobfUGWOUMx34HXU"}}}
|
||||
{"_id":"w2VQ7lGrE63mYvDJ","name":"Les crocs du loup niv. 4","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":4,"armes":"","prerequis":"ulfhedinn, lance","modificateur":-12,"description":"<p>Le héros harcèle son adversaire de coups de lance et le maintient à sa distance. Le joueur réalise, pour une seule action, selon le niveau utilisé, un, deux, trois ou quatre tests d’attaque, assortis du malus de prouesse adéquat. Chaque coup porté efficacement inflige un total de points de dégâts égal à (Puissance + dégâts de la lance + 4 ). La Marge de Réussite n’est pas prise en compte ici.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.qO1cu7cOaayNDILY"}}}
|
||||
{"_id":"xyh5Gd9vLjiQ5s1K","name":"La charge du sanglier niv. 3","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"épée et bouclier","prerequis":"svinfylkingar, épée et bouclier","modificateur":-9,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-9 ).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +15, pour le niveaux 3.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + 3) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.pHa44BsEo5XlnnHE"}}}
|
||||
{"name":"Franchir la ligne ennemie","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":3,"armes":"toutes les armes de mêlée","prerequis":"niveau de compétence martiale \"Expert\"","modificateur":-9,"description":"<p>Le personnage doit effectuer une charge contre au moins trois adversaires groupés. Pour le test d’attaque, prenez en compte la valeur de Défense Physique (ou le Conflit défensif pour des figurants) la plus élevée parmi eux. Si le héros réussit son coup, calculez normalement les dégâts et désignez une seule cible parmi les défenseurs. Le personnage se retrouve à la fin de son action derrière ses ennemis, à une distance égale à la moitié de sa valeur de Déplacement (DEP/2) du personnage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.3TRMLKH3eLYoeMPu"}},"_id":"yPx8m1KZID0zJC3C"}
|
||||
{"name":"La charge du sanglier niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"","prerequis":"svinfylkingar, épée et bouclier","modificateur":-6,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-3, -6, -9 ou –12).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +5 / +10 / +15 / + 20, pour les niveaux 1 à 4.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + niveau de la prouesse) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.xzVV440ASSuXJBC6"}},"_id":"z0cF4dWHmUAg0KvV"}
|
||||
{"_id":"z0cF4dWHmUAg0KvV","name":"La charge du sanglier niv. 2","type":"prouesse","img":"icons/svg/item-bag.svg","data":{"categorie":"attaque","niveau":2,"armes":"épée et bouclier","prerequis":"svinfylkingar, épée et bouclier","modificateur":-6,"description":"<p>Le personnage se rue en avant et percute violemment son adversaire. Si le joueur réussit son test, la cible ne peut tenter que d’esquiver cette attaque, avec un malus égal à celui de la prouesse (-6).</p>\n<p>Un adversaire atteint par cette attaque perd un nombre de Points de Vie égal à la somme de la Puissance du svinfylkingar, plus la Marge de réussite de l’attaque, plus une base dépendant du niveau de la prouesse. Soit : PUI + MR + Base.</p>\n<p>La base des dégâts est respectivement égale à : +10, pour le niveau 2.</p>\n<p>L’armure s’applique normalement ici.</p>\n<p>La victime doit réussir un test d’Agilité (SR 14 plus les points de dégât de l’attaque) ou se retrouver projetée au sol, à (Puissance du svinfylkingar + 2) mètres en arrière.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"feLeZcbqgHkVzfJP":3},"flags":{"core":{"sourceId":"Item.xzVV440ASSuXJBC6"}}}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{"name":"Baume de récupération totale","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"12 heures","niveau":5,"malus":-15,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Ce sort permet de créer des baumes qui se conservent très longtemps, des mois voire des années, à condition d’être bien conditionnées à l’abri de la lumière et dans des pots étanches.</p>\n<p>Une dose de ce baume appliquée sur une personne blessée prend 1D10 Minutes pour agir. Au bout de ce laps de temps, la personne se retrouve au maximum de ses Points de Vie, de sa Réserve de dés, toute hémorragies est arrêtée. Le nombre de doses qu’un mage peut créer à chaque fois qu’il lance ce sort dépend de sa Marge de Réussite.</p>\n<p> </p>\n<table style=\"user-select: text; width: 273px; border-right: 1px solid #7a7971; border-left: 1px solid #7a7971; border-image: initial; color: #191813; font-family: Vinque; font-size: 16px; letter-spacing: 1px; text-align: justify;\" border=\"1\">\n<tbody style=\"box-sizing: border-box; user-select: text;\">\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">MR</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">Nombre de doses</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">0 - 5</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">1</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">6 - 10</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">2</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">11 - 15</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">3</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">16 - 25</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">4</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">26+</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">5</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"1LklBTpkRHN0vgkG"}
|
||||
{"_id":"1LklBTpkRHN0vgkG","name":"Baume de récupération totale","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"12 heures","niveau":5,"malus":-15,"duree":"1d10 Minutes","zone":"Une personne","description":"<p>Effet : Ce sort permet de créer des baumes qui se conservent très longtemps, des mois voire des années, à condition d’être bien conditionnées à l’abri de la lumière et dans des pots étanches.</p>\n<p>Une dose de ce baume appliquée sur une personne blessée prend 1D10 Minutes pour agir. Au bout de ce laps de temps, la personne se retrouve au maximum de ses Points de Vie, de sa Réserve de dés, toute hémorragies est arrêtée. Le nombre de doses qu’un mage peut créer à chaque fois qu’il lance ce sort dépend de sa Marge de Réussite.</p>\n<p> </p>\n<table style=\"user-select: text; width: 273px; border-right: 1px solid #7a7971; border-left: 1px solid #7a7971; border-image: initial; color: #191813; font-family: Vinque; font-size: 16px; letter-spacing: 1px; text-align: justify;\" border=\"1\">\n<tbody style=\"box-sizing: border-box; user-select: text;\">\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">MR</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">Nombre de doses</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">0 - 5</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">1</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">6 - 10</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">2</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">11 - 15</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">3</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">16 - 25</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">4</td>\n</tr>\n<tr style=\"box-sizing: border-box; user-select: text;\">\n<td style=\"box-sizing: border-box; user-select: text; width: 133px;\">26+</td>\n<td style=\"box-sizing: border-box; user-select: text; width: 139px;\">5</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{}}
|
||||
{"name":"Annulation d’un envoûtement mineur sur une personne","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 heures","niveau":4,"malus":-12,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage doit réussir un Test en opposition à la puissance de l’envoûtement. Cet envoûtement doit obligatoirement être Mineur et sur une personne. Si le Test est réussi, la personne est libérée définitivement de l’envoûtement.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"2nda3xReEZqUPJ1q"}
|
||||
{"name":"Protection contre les envoûtements","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"5 Tours","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage accorde à une personne de son choix, un bonus contre toutes tentatives d’envoûtement de tout types de magie (Sejdr, Galdr ou Runes). Ce bonus est équivalent à la DM du mage et il viendra s’ajouter à chaque fois que la personne doit réussir un Test contre un envoûtement et ce, pendant toute la durée du sort.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"DagSbvjXoq9nOqe2"}
|
||||
{"name":"Préparation de baumes, onguents","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 heures","niveau":2,"malus":-6,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Ce sort permet de créer des baumes et des onguents. Ces baumes se conservent très longtemps, des mois, des années, à condition d’être bien conditionnés à l’abri de la lumière et dans des pots étanches.</p>\n<p>Dés que l’on applique une dose du baume ou de l’onguent sur une personne ayant une blessure, celle-ci regagne de suite 2D10 Points de vie sans pouvoir dépasser son maximum.</p>\n<p>Le nombre de doses qu’un mage peut créer à chaque fois qu’il lance ce sort dépend de sa Marge de Réussite.</p>\n<p> </p>\n<table style=\"width: 52.9485%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 48.8453%;\">MR</td>\n<td style=\"width: 50.1743%;\">Nombre de doses</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">0 - 5</td>\n<td style=\"width: 50.1743%;\">1</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">6 - 10</td>\n<td style=\"width: 50.1743%;\">2</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">11 - 15</td>\n<td style=\"width: 50.1743%;\">3</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">16 - 25</td>\n<td style=\"width: 50.1743%;\">4</td>\n</tr>\n<tr>\n<td style=\"width: 48.8453%;\">26+</td>\n<td style=\"width: 50.1743%;\">5</td>\n</tr>\n</tbody>\n</table>\n<p> </p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"FH05D8YIkS71fLAL"}
|
||||
@ -7,7 +7,7 @@
|
||||
{"name":"Guérison des maladies modérées","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Si le mage réussit son sort contre un SR équivalent à la Virulence de la maladie modérée. Il permet de guérir instantanément le malade (voir le chapitre sur les maladie page 135). Ce sort ne permet pas de soigner les effets de la maladie déjà subis par le malade.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"OuMwU1kvkx2MQGJ8"}
|
||||
{"name":"Annulation d’envoûtement mineur sur un objet","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 heures","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"Un objet","description":"<p>Effet : Le mage doit réussir un Test en opposition à la puissance de l’envoûtement. Cet envoûtement doit obligatoirement être Mineur et sur un objet qui se lie à une personne. Si le Test est réussi, la personne est libérée de l’envoûtement. Précisons bien que l’objet est toujours envoûté et si une personne s’empare par la suite de l’objet, elle risque fort d’être vicitme de l’envoûtement. Le temps durant lequel l’objet envoûté est inoffensif dépend de la Marge de Réussite du mage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"SXqKl03fyEztAisz"}
|
||||
{"name":"Regagner des Dés de Réserve / Faire perdre des Dés de Réserve","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Actions","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage permet à une personne de son choix de récupérer autant de dés de réserve qu’il a en INS. Ce gain de dés ne permet pas de dépasser son maximum. Par contre, si la personne ciblée par le sort était en Épuisement, elle sort de suite de cette état. Si le bénéficiaire du sort ne faisait rien pendant le Tour où il regagne ses dés en réserve, il devra attendre le début du Tour suivant pour agir.</p>\n<p>Effet inverse : Si le mage réussit son sort, la victime aura droit à un Test de Résistance avec comme SR le résultat du sort du mage. En cas d’échec, la victime perd instantanément un nombre de dés de réserve équivalent à l’INS du mage. Cependant, aucune victime de ce sort ne peut tomber en Épuisement, il lui restera donc au moins un dé dans sa réserve quel que soit le nombre de dés perdus.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"ViDD3KUwJSLQWaDO"}
|
||||
{"name":"Guérison des maladies graves","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":4,"malus":-15,"duree":"Instantané","zone":"Une personne","description":"<p><br />Effet : Si le mage réussit son sort contre un SR équivalent à la Virulence de la maladie grave, il guérit instantanément le malade (voir le chapitre sur les maladies page 135). Ce sort ne permet pas de soigner les effets de la maladie déjà subis par le malade.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"byw6UNhU614nIZIU"}
|
||||
{"_id":"byw6UNhU614nIZIU","name":"Guérison des maladies graves","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":5,"malus":-15,"duree":"Instantané","zone":"Une personne","description":"<p><br />Effet : Si le mage réussit son sort contre un SR équivalent à la Virulence de la maladie grave, il guérit instantanément le malade (voir le chapitre sur les maladies page 135). Ce sort ne permet pas de soigner les effets de la maladie déjà subis par le malade.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{}}
|
||||
{"name":"Guérison des maladies mineures","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":1,"malus":-3,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Si le mage réussit son sort contre un SR équivalent à la Virulence de la maladie mineure. Il permet de guérir instantanément le malade (voir le chapitre sur les maladie page 135). Ce sort ne permet pas de soigner les effets de la maladie déjà subis par le malade.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"dn2cqQ04MMvDaGts"}
|
||||
{"name":"Soigner Empoisonnement","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"3 Tours","niveau":3,"malus":-9,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Si le mage réussit son Test contre un SR équivalent à la Virulence du Poison. La victime est totalement purifiée, le mage ayant détruit toute trace d’empoisonnement. Ce sort ne permet pas de guérir la victime si elle a déjà subi des effets du poison (Perte de vie, de Caractéristique,...).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"gP4PB4GU77FQKn0m"}
|
||||
{"name":"Récupération totale","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Guérison","preparation":"4 Tours","niveau":4,"malus":-12,"duree":"Instantané","zone":"Une personne","description":"<p>Effet : Le mage permet à une personne de son choix de revenir à son score maximal de Point de Vie. Ce sort ne guérit pas des hémorragies, des effets de blessures graves...</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"iJpRWsZeo1w2suaz"}
|
||||
|
@ -6,7 +6,7 @@
|
||||
{"name":"Glissement de terrain","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"10 minutes","niveau":4,"malus":-12,"duree":"Variable","zone":"INS x 100m3","description":"<p> </p>\n<p>Effet : Le mage fait appel aux forces de la terre pour faire glisser / tomber une paroi de colline, un flanc de falaise, de la boue ou de la neige,... Les dégâts qu’occasionnent ce glissement de terrain dépendent de la nature du glissement.</p>\n<p>Pour les personnes et la perte de Point de Vie, on ne tient pas compte des protections. Pour les structures, on ne s’occupe que de celles en bois et qu’à la fin du sort pour connaître leur état. Les structures de pierre ne sont pas atteintes par les glissements de terrain. La durée du sort dépend de la nature du glissement et on compte en Tour.</p>\n<table style=\"width: 98.8506%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 14.7059%;\">Nature</td>\n<td style=\"width: 12.7451%;\">Durée</td>\n<td style=\"width: 25.9348%;\">Personne</td>\n<td style=\"width: 45.2576%;\">Structure</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Boue</td>\n<td style=\"width: 12.7451%;\">9</td>\n<td style=\"width: 25.9348%;\">1D5/T</td>\n<td style=\"width: 45.2576%;\">Idem</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Neige</td>\n<td style=\"width: 12.7451%;\">7</td>\n<td style=\"width: 25.9348%;\">1D10/T</td>\n<td style=\"width: 45.2576%;\">Légèrement endommagée (portes et fenêtres brisées)</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Terre</td>\n<td style=\"width: 12.7451%;\">5</td>\n<td style=\"width: 25.9348%;\">2D10/T</td>\n<td style=\"width: 45.2576%;\">Endommagée (Paroi détruite)</td>\n</tr>\n<tr>\n<td style=\"width: 14.7059%;\">Pierre</td>\n<td style=\"width: 12.7451%;\">3</td>\n<td style=\"width: 25.9348%;\">3D10/T</td>\n<td style=\"width: 45.2576%;\">Détruite</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"FGlhv3ME8WEN2j4h"}
|
||||
{"name":"Détourner le lit d’une rivière ou d’un fleuve","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"2 heures","niveau":4,"malus":-12,"duree":"Voir tableau","zone":"Une rivière","description":"<p>Effet : Le mage peut grâce à ce puissant sort dévier le cours d’une rivière ou d’un fleuve. Le mage décide dans quelle direction doit partir l’écoulement du fleuve ou de la rivière.</p>\n<p>Par la suite, le fleuve ou la rivière trouvera un nouveau chemin naturel et ce pendant toute la durée du sort. Ainsi, il est possible, par exemple, de dévier une rivière en plaine qui au lieu de passer sur la droite d’un village, passera au gré du mage soit par le village lui-même, soit par sa gauche.</p>\n<p>Le tableau ci-dessous aidera a gérer, en terme de jeu, les effets dévastateurs d’un tel sort. Pour les personnes, il indique les dégâts que prend une victime prise dans le détournement du fleuve ou de la rivière. Les dommages sont calculés en Tour, et représentent aussi bien la noyade que les chocs violents contre les débris transportés par le fleuve ou la rivière. On ne tient pas compte des éventuelles protections. Pour les Structures, ce tableau décrit leur état une fois le fleuve (ou la rivière) passé.</p>\n<p> </p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td> </td>\n<td>Personne</td>\n<td>Structure bois</td>\n<td>Structure pierre</td>\n</tr>\n<tr>\n<td>Rivière</td>\n<td>1D10</td>\n<td>Abimée*</td>\n<td>Indemne</td>\n</tr>\n<tr>\n<td>Fleuve</td>\n<td>2D10</td>\n<td>Détruite</td>\n<td>\n<p><span style=\"background-color: rgba(255, 255, 255, 0.2);\">Abimée*</span></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p>* Par abimée, on entend une structure qui a perdu ses portes, ses fenêtres et peut-être même une paroi.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"GoVpo8a46UlLHne4"}
|
||||
{"name":"Maîtriser le brouillard","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"4 Minutes","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"INS x 200m3","description":"<p>Effet : Grâce à ce sort, un mage peut se faire lever ou se dissiper un Brouillard. La densité de ce brouillard dépend de la volonté du Mage, il peut varier d’une simple brume à un brouillard épais où la visibilité est quasi nulle.</p>\n<p>Les dimensions de la nappe de brouillard sont à la discrétion du mage. Il peut très bien créer une large bande de brume comme un cercle enveloppant un bateau. Ce sort ne peut être lancé qu’en extérieur et la nappe de brouillard ne se déplace pas avec le mage.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"MjBp9KQptUR094UC"}
|
||||
{"name":"Maîtriser la pluie","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"1 heure","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"INS x 100m2 au sol","description":"<p>Effet : Idem que le sort Invoquer la pluie, sauf que dans ce cas le mage n’est plus soumis aux conditions météorologiques pour faire tomber la pluie Il peut désormais invoquer ou dissiper les nuages nécessaires à la pluie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"f3iwjaKvJIXsJrjI"}
|
||||
{"_id":"f3iwjaKvJIXsJrjI","name":"Maîtriser la pluie","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"1 heure","niveau":3,"malus":-9,"duree":"voir Tableau","zone":"INS x 100m2 au sol","description":"<p>Effet : Idem que le sort @Compendium[fvtt-yggdrasill.sejdr-maitrise-des-elements.0hZBqEZ1QGm1jHYw]{Invoquer la pluie}, sauf que dans ce cas le mage n’est plus soumis aux conditions météorologiques pour faire tomber la pluie Il peut désormais invoquer ou dissiper les nuages nécessaires à la pluie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{}}
|
||||
{"name":"Créer obscurité / lever obscurité","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"4 Actions","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"INS x 10m3","description":"<p>Effet : Le mage est capable de créer une zone de INS x 10m3 dans laquelle il est maître de l’intensité lumineuse. Il peut varier cette intensité, pendant toute la durée du sort, allant à volonté d’une nuit noire sans lune à un après-midi d’été sans nuages et vice-versa. Le mage est toujours au centre de la zone affectée par ce sort même s’il se déplace. Les torches et autres moyens de s’éclairer fonctionnent normalement à l’intérieur de la zone du sort. Ce sort peut être lancé en intérieur comme en extérieur.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"fKdVTZUys5csOPyP"}
|
||||
{"name":"Créer une tempête de neige","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"2 Tours","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"INS x 500m2 au sol","description":"<p>Effet : Le mage lève une violente tempête de neige sur toute la zone du sort. Ce sort cumul plusieurs effets : des vents violents (voir le sort : Maîtriser les vents violents pour les effets), un froid intense qui fait perdre sans tenir compte des protections une perte de INS Points de Vie par Tour, ainsi que la neige qui rend toute visibilité impossible.</p>\n<p>Il suffit de quelques minutes pour recouvrir de neige glacée un groupe d’aventuriers, de quelques heures pour recouvrir une maison ou de jours pour engloutir sous cette neige un petit village. La quantité de neige tombée dépend de la durée du sort et de l’unité de temps du sort :</p>\n<p> </p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Unité de temps</td>\n<td>Neige en cms</td>\n</tr>\n<tr>\n<td>Par Action</td>\n<td>INS cms</td>\n</tr>\n<tr>\n<td>Par Tour</td>\n<td>INS x 5cms</td>\n</tr>\n<tr>\n<td>Par Minute</td>\n<td>INS x 20cms</td>\n</tr>\n<tr>\n<td>Par Heure</td>\n<td>INS x 40cms</td>\n</tr>\n<tr>\n<td>Par journée</td>\n<td>INS x 60cms</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"fbtAbKAjzB8k2gJE"}
|
||||
{"_id":"fbtAbKAjzB8k2gJE","name":"Créer une tempête de neige","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"1 Heure","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"INS x 500m2 au sol","description":"<p>Effet : Le mage lève une violente tempête de neige sur toute la zone du sort. Ce sort cumul plusieurs effets : des vents violents (voir le sort : Maîtriser les vents violents pour les effets), un froid intense qui fait perdre sans tenir compte des protections une perte de INS Points de Vie par Tour, ainsi que la neige qui rend toute visibilité impossible.</p>\n<p>Il suffit de quelques minutes pour recouvrir de neige glacée un groupe d’aventuriers, de quelques heures pour recouvrir une maison ou de jours pour engloutir sous cette neige un petit village. La quantité de neige tombée dépend de la durée du sort et de l’unité de temps du sort :</p>\n<p> </p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Unité de temps</td>\n<td>Neige en cms</td>\n</tr>\n<tr>\n<td>Par Action</td>\n<td>INS cms</td>\n</tr>\n<tr>\n<td>Par Tour</td>\n<td>INS x 5cms</td>\n</tr>\n<tr>\n<td>Par Minute</td>\n<td>INS x 20cms</td>\n</tr>\n<tr>\n<td>Par Heure</td>\n<td>INS x 40cms</td>\n</tr>\n<tr>\n<td>Par journée</td>\n<td>INS x 60cms</td>\n</tr>\n</tbody>\n</table>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{}}
|
||||
{"name":"Créer / Calmer un tremblement de terre","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Maîtrise des éléments","preparation":"2 heures","niveau":5,"malus":-15,"duree":"Voir tableau","zone":"INS x 200m2 au sol","description":"<p>Effet : Ce sort crée un terrible et dévastateur tremblement de terre qui affecte toute la zone déterminée par le mage. Le tableau ci-dessous aidera à gérer, en termes de jeu, les effets dévastateurs d’un tel sort. Pour les personnes, il indique les dégâtss que prend une victime prise dans la zone de turbulences. Les dommages sont calculés en Tours, et représentent aussi bien les chocs violents contre les débris et les chutes de la personne. On ne tient pas compte des éventuelles protections. Pour les Structures, ce tableau décrit leur état une fois le tremblement de terre terminé.</p>\n<p>Les dégâts occasionnés par un tremblement de terre dépendent beaucoup de la zone dans lequel il se situe.</p>\n<p> </p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td> </td>\n<td>Personne</td>\n<td>Bois</td>\n<td>Pierre</td>\n</tr>\n<tr>\n<td>Plaine désertique</td>\n<td>1D2</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Plaine densité faible</td>\n<td>1D5</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Plaine densité moyenne</td>\n<td>1D10</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Plaine densité forte</td>\n<td>2d10</td>\n<td>A*</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Colline désertique</td>\n<td>1D5</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Colline densité faible</td>\n<td>1D10</td>\n<td>A*</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Colline densité moyenne</td>\n<td>2D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Colline densité forte</td>\n<td>3D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Montagne désertique</td>\n<td>1D10</td>\n<td>D</td>\n<td>I</td>\n</tr>\n<tr>\n<td>Montagne densité faible</td>\n<td>2D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Montagne densité moyenne</td>\n<td>3D10</td>\n<td>D</td>\n<td>A*</td>\n</tr>\n<tr>\n<td>Montagne densité forte</td>\n<td>4D10</td>\n<td>D</td>\n<td>D</td>\n</tr>\n</tbody>\n</table>\n<p>I= Indemne - A = Abimée - D = Détruite</p>\n<p>* Par abimée, on entend une structure qui a perdu ses portes, ses fenêtres et peut-être même une paroi.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"tsuOVAHU0W0R6acd"}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{"name":"Amélioration de la Défense Physique d’autrui / Abaissement de la défense Physique","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Tours","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage augmente la DP d’une valeur égale à son INS. La durée dépend de sa marge de réussite (voir Tableau). Ce bonus à la DP s’additionne avec n’importe quel autre Bonus (magique, Bouclier,...).</p>\n<p>Effet inverse : Si le mage réussit son Test, il baissera la DP d’une cible de son choix, d’une valeur égale à son INS.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"6juBCfGgXhXiO4yq"}
|
||||
{"_id":"6juBCfGgXhXiO4yq","name":"Amélioration / Abaissement de la Défense Physique d’autrui / Abaissement de la défense Physique d'autrui","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Tours","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage augmente la DP d’une valeur égale à son INS. La durée dépend de sa marge de réussite (voir Tableau). Ce bonus à la DP s’additionne avec n’importe quel autre Bonus (magique, Bouclier,...).</p>\n<p>Effet inverse : Si le mage réussit son Test, il baissera la DP d’une cible de son choix, d’une valeur égale à son INS.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{}}
|
||||
{"name":"Renforcement de protections / Abaissement de protections","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Actions","niveau":1,"malus":-3,"duree":"voir Tableau","zone":"Une protection sauf bouclier","description":"<p>Effet : Le mage augmente la valeur de protection d’une armure, d’un casque ou de n’importe quelle Protection sauf d’un bouclier. Cet augmentation est égale à la valeur du Mage en INS.</p>\n<p>Effet inverse : Le mage s’il réussit son Test en tenant compte de la DM de son adversaire, baisse la valeur de protection d’une armure, d’un casque,... de son choix. Cette baisse est égale à la valeur du Mage en INS.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"F47UUVM4ddF8HqSS"}
|
||||
{"name":"Augmentation de la Réserve de dés d’autrui","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"3 Tours","niveau":4,"malus":-12,"duree":"voir Tableau","zone":"Une personne","description":"<p>Effet : Le mage permet à une personne de son choix de dépasser son maximum de Réserve de dés. Il rajoute à cette réserve un nombre de dés équivalent à l’INS du mage. Pour bénéficier de ce sort la personne doit posséder toute sa réserve de dés au moment ou le mage lance ce sort. À aucun moment, ce sort ne permet de sortir d’un Epuisement et de régénérer sa réserve de dés.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"SgFbyMICyAEy4KHN"}
|
||||
{"name":"Augmentation de la santé","type":"sortsejdr","img":"icons/svg/item-bag.svg","data":{"forme":"Transmission des forces","preparation":"2 Tours","niveau":2,"malus":-6,"duree":"voir Tableau","zone":"Lui-même","description":"<p>Effet : Le mage peut dépasser ses limites en Points de Vie. Il lance un nombre de D10 équivalent à son INS, l’addition de ces D10 donne la valeur que le mage peut se rajouter en Points de vie (on ne rejette pas les 10). La durée dépend de sa marge de réussite (voir Tableau). À aucun moment ce sort ne permet de guérir le mage et il doit être en bonne santé (maximum en PV) pour bénéficier de ce sort. Par contre, les Points de vie supplémentaires sont considérés comme un bonus et ne viennent pas modifier l’Echelle de vie.</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"rbua2TFRS5ZZzTJp":3},"flags":{},"_id":"UMJBINUD7ABjNgKa"}
|
||||
|
@ -548,6 +548,10 @@ section.sheet-body:after {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#combat #combat-round .encounters a {
|
||||
color: #3f1f1f;
|
||||
}
|
||||
|
||||
/* ======================================== */
|
||||
/* Global UI elements */
|
||||
|
||||
@ -871,11 +875,6 @@ ul, li {
|
||||
color: rgba(220,220,220,0.75);
|
||||
}
|
||||
|
||||
#sidebar.collapsed {
|
||||
height: 430px !important;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#sidebar-tabs > .collapsed, #chat-controls .chat-control-icon {
|
||||
color: rgba(220,220,220,0.75);
|
||||
text-shadow: 1px 1px 0 rgba(0,0,0,0.75);
|
||||
@ -949,8 +948,8 @@ ul, li {
|
||||
}
|
||||
|
||||
#sidebar #sidebar-tabs i{
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
display: inline-block;
|
||||
background-position:center;
|
||||
background-size:cover;
|
||||
|
203
system.json
203
system.json
@ -1,155 +1,226 @@
|
||||
{
|
||||
"name": "fvtt-yggdrasill",
|
||||
"title": "Yggdrasill",
|
||||
"description": "Système Yggdrasill pour FoundryVTT",
|
||||
"version": "1.1.0",
|
||||
"manifestPlusVersion": "1.0.0",
|
||||
"minimumCoreVersion": "0.8.0",
|
||||
"compatibleCoreVersion": "9",
|
||||
"templateVersion": 37,
|
||||
"author": "Uberwald",
|
||||
"esmodules": [ "modules/yggdrasill-main.js" ],
|
||||
"styles": ["styles/simple.css"],
|
||||
"background" : "images/ui/yggdrasill_map.webp",
|
||||
"media": [
|
||||
"description": "Système non-officiel Yggdrasill (7ième Cercle) pour FoundryVTT",
|
||||
"version": "10.0.3",
|
||||
"esmodules": [
|
||||
"modules/yggdrasill-main.js"
|
||||
],
|
||||
"styles": [
|
||||
"styles/simple.css"
|
||||
],
|
||||
"background": "systems/fvtt-yggdrasill/images/ui/yggdrasill_map.webp",
|
||||
"packs": [
|
||||
{
|
||||
"label": "Compétences Générales",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "competences-generales",
|
||||
"path": "packs/competences-generales.db"
|
||||
"path": "packs/competences-generales.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Compétences Martiales",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "competences-martiales",
|
||||
"path": "packs/competences-martiales.db"
|
||||
"path": "packs/competences-martiales.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Compétences Magiques",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "competences-magiques",
|
||||
"path": "packs/competences-magiques.db"
|
||||
"path": "packs/competences-magiques.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Prouesses Martiales",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "prouesses-martiales",
|
||||
"path": "packs/prouesses-martiales.db"
|
||||
"path": "packs/prouesses-martiales.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Dons",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "dons",
|
||||
"path": "packs/dons.db"
|
||||
"path": "packs/dons.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Faiblesses",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "faiblesses",
|
||||
"path": "packs/faiblesses.db"
|
||||
"path": "packs/faiblesses.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Blessures",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "blessures",
|
||||
"path": "packs/blessures.db"
|
||||
"path": "packs/blessures.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Armes",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "armes",
|
||||
"path": "packs/armes.db"
|
||||
"path": "packs/armes.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Armures",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "armures",
|
||||
"path": "packs/armures.db"
|
||||
"path": "packs/armures.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Runes",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "runes",
|
||||
"path": "packs/runes.db"
|
||||
"path": "packs/runes.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Sejdr - Transmission des Forces",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "sejdr-transmission-des-forces",
|
||||
"path": "packs/sejdr-transmission-des-forces.db"
|
||||
"path": "packs/sejdr-transmission-des-forces.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Sejdr - Malédictions",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "sejdr-maledictions",
|
||||
"path": "packs/sejdr-maledictions.db"
|
||||
"path": "packs/sejdr-maledictions.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Sejdr - Maîtrise des Elements",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "sejdr-maitrise-des-elements",
|
||||
"path": "packs/sejdr-maitrise-des-elements.db"
|
||||
"path": "packs/sejdr-maitrise-des-elements.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Sejdr - Guérison",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "sejdr-guerison",
|
||||
"path": "packs/sejdr-guerison.db"
|
||||
"path": "packs/sejdr-guerison.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Sejdr - Divination",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "sejdr-divination",
|
||||
"path": "packs/sejdr-divination.db"
|
||||
"path": "packs/sejdr-divination.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Poisons",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "poisons",
|
||||
"path": "packs/poisons.db"
|
||||
"path": "packs/poisons.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Galdr - Malédictions",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "galdr-maledictions",
|
||||
"path": "packs/galdr-maledictions.db"
|
||||
"path": "packs/galdr-maledictions.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Galdr - Illusions",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "galdr-illusions",
|
||||
"path": "packs/galdr-illusions.db"
|
||||
"path": "packs/galdr-illusions.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Galdr - Charme",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "galdr-charme",
|
||||
"path": "packs/galdr-charme.db"
|
||||
"path": "packs/galdr-charme.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
},
|
||||
{
|
||||
"label": "Equipement",
|
||||
"entity": "Item",
|
||||
"type": "Item",
|
||||
"system": "fvtt-yggdrasill",
|
||||
"name": "equipement",
|
||||
"path": "packs/equipement.db"
|
||||
}
|
||||
],
|
||||
"library": false,
|
||||
"languages": [
|
||||
{
|
||||
"lang": "fr",
|
||||
"name": "French",
|
||||
"path": "lang/fr.json"
|
||||
"path": "packs/equipement.db",
|
||||
"private": false,
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"gridDistance": 5,
|
||||
"gridUnits": "m",
|
||||
"primaryTokenAttribute": "",
|
||||
"secondaryTokenAttribute": "",
|
||||
"socket": true,
|
||||
"url": "https://www.uberwald.me/data/files/yggdrasill",
|
||||
"manifest": "https://www.uberwald.me/data/files/yggdrasill/system.json",
|
||||
"download": "https://www.uberwald.me/data/files/yggdrasill/fvtt-yggdrasill.zip",
|
||||
"license": "LICENSE.txt"
|
||||
"url": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/raw/branch/v10/system.json",
|
||||
"download": "https://www.uberwald.me/gitea/public/fvtt-yggdrasill/archive/fvtt-yggdrasill-10.0.3.zip",
|
||||
"license": "LICENSE.txt",
|
||||
"id": "fvtt-yggdrasill",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Uberwald",
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"relationships": {
|
||||
"requires": [
|
||||
{
|
||||
"id": "compendium-folders",
|
||||
"type": "module",
|
||||
"compatibility": {}
|
||||
},
|
||||
{
|
||||
"id": "lib-wrapper",
|
||||
"type": "module",
|
||||
"compatibility": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"compatibility": {
|
||||
"minimum": "10",
|
||||
"verified": "10.286"
|
||||
}
|
||||
}
|
@ -128,7 +128,6 @@
|
||||
"defensephy": {
|
||||
"value": 0,
|
||||
"bonusmalus": 0,
|
||||
"bouclierequipe": false,
|
||||
"max": 0,
|
||||
"label": "Défense Physique",
|
||||
"abbrev": "dp"
|
||||
@ -246,7 +245,7 @@
|
||||
}
|
||||
},
|
||||
"Item": {
|
||||
"types": ["competence", "don", "faiblesse", "blessure", "maladie", "poison", "sort", "prouesse", "armecc", "sortsejdr", "sortgaldr", "rune", "armedist", "armure", "equipement", "effetmagique", "monnaie" ],
|
||||
"types": ["competence", "don", "faiblesse", "blessure", "maladie", "poison", "sort", "prouesse", "armecc", "sortsejdr", "sortgaldr", "rune", "armedist", "armure", "bouclier", "equipement", "effetmagique", "monnaie" ],
|
||||
"effetmagique": {
|
||||
"origine": "",
|
||||
"effet": ""
|
||||
@ -330,6 +329,16 @@
|
||||
"enc": 0,
|
||||
"valeur": 0,
|
||||
"description": ""
|
||||
},
|
||||
"bouclier": {
|
||||
"categorie": "",
|
||||
"equipe": false,
|
||||
"defensebonus": 0,
|
||||
"enc": 0,
|
||||
"enccomb": 0,
|
||||
"solidite": 0,
|
||||
"valeur": 0,
|
||||
"description": ""
|
||||
},
|
||||
"equipement": {
|
||||
"equipe": false,
|
||||
|
@ -43,14 +43,8 @@
|
||||
<li class="item flexrow list-item" data-carac-categ="{{keycateg}}" data-carac-key="{{keycarac}}">
|
||||
<img class="sheet-competence-img" src="systems/fvtt-yggdrasill/images/icons/icon_carac_{{keycateg}}.png"/>
|
||||
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}"><a class="carac-roll">{{mycarac.label}}</a></span>
|
||||
<select class="carac-base flexrow" type="text" name="data.carac.{{keycateg}}.carac.{{keycarac}}.value" value="{{mycarac.value}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{#select mycarac.value}}
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
<option value="5">5</option>
|
||||
{{/select}}
|
||||
<select class="carac-base flexrow" type="text" name="system.carac.{{keycateg}}.carac.{{keycarac}}.value" value="{{mycarac.value}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.optionsCarac selected=mycarac.value localize=false}}
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
@ -62,10 +56,10 @@
|
||||
<span class="generic-label"><h3>Furor</h3>
|
||||
<ul>
|
||||
<li class="">
|
||||
<input type="text" id="input-furor" name="data.furor.value" value="{{data.furor.value}}" data-dtype="Number"/>
|
||||
<input type="text" id="input-furor" name="system.furor.value" value="{{data.furor.value}}" data-dtype="Number"/>
|
||||
{{#if isGM}}
|
||||
<span class="pv-label flexrow tooltip tooltip-nobottom">/
|
||||
<input type="text" id="max-furor" name="data.furor.max" value="{{data.furor.max}}" data-dtype="Number"/>
|
||||
<input type="text" id="max-furor" name="system.furor.max" value="{{data.furor.max}}" data-dtype="Number"/>
|
||||
</span>
|
||||
{{else}}
|
||||
<span class="pv-label flexrow tooltip tooltip-nobottom"> / {{data.furor.max}}</span>
|
||||
@ -154,7 +148,7 @@
|
||||
<li class="item flexrow list-item"><span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">Base : {{caracsec.max}}</span></li>
|
||||
<li class="item flexrow list-item">
|
||||
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">B/M</span>
|
||||
<select class="carac-base flexrow" type="text" name="data.caracsecondaire.{{key}}.bonusmalus" value="{{caracsec.bonusmalus}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
<select class="carac-base flexrow" type="text" name="system.caracsecondaire.{{key}}.bonusmalus" value="{{caracsec.bonusmalus}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{#select caracsec.bonusmalus}}
|
||||
{{#each @root.optionsDMDP as |option key| }}
|
||||
<option value="{{option.value}}">{{option.text}}</option>
|
||||
@ -162,10 +156,6 @@
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="item flexrow list-item">
|
||||
<span>Bouclier ?</span>
|
||||
<span class="attribute-value checkbox"><input type="checkbox" name="data.caracsecondaire.{{key}}.bouclierequipe" {{checked caracsec.bouclierequipe}}/></span>
|
||||
</li>
|
||||
<li class="item flexrow list-item">
|
||||
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-total">Total : {{caracsec.total}}</span>
|
||||
</li>
|
||||
@ -176,7 +166,7 @@
|
||||
<li class="item flexrow list-item"><span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">Base : {{caracsec.max}}</span></li>
|
||||
<li class="item flexrow list-item">
|
||||
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{key}}-max">B/M</span>
|
||||
<select class="carac-base flexrow" type="text" name="data.caracsecondaire.{{key}}.bonusmalus" value="{{caracsec.bonusmalus}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
<select class="carac-base flexrow" type="text" name="system.caracsecondaire.{{key}}.bonusmalus" value="{{caracsec.bonusmalus}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{#select caracsec.bonusmalus}}
|
||||
{{#each @root.optionsDMDP as |option key| }}
|
||||
<option value="{{option.value}}">{{option.text}}</option>
|
||||
@ -198,20 +188,20 @@
|
||||
<span class="generic-label"><h3>Points de Vie</h3>
|
||||
<ul>
|
||||
<li class="">
|
||||
<input class="input-pv" type="text" id="input-pv" name="data.caracsecondaire.pv.value" value="{{data.caracsecondaire.pv.value}}" data-dtype="Number"/>
|
||||
<input class="input-pv" type="text" id="input-pv" name="system.caracsecondaire.pv.value" value="{{data.caracsecondaire.pv.value}}" data-dtype="Number"/>
|
||||
<span class="pv-label flexrow tooltip tooltip-nobottom" name="{{key}}-total"> / {{data.caracsecondaire.pv.max}}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
|
||||
<span class="generic-label"><h4>Epuisé :
|
||||
<input type="checkbox" id="isEpuise" name="data.status.epuise" {{checked data.status.epuise}}/></h3>
|
||||
<input type="checkbox" id="isEpuise" name="system.status.epuise" {{checked data.status.epuise}}/></h3>
|
||||
</span>
|
||||
<span class="generic-label"><h4>Blessé :
|
||||
<input type="checkbox" id="isBlesse" name="data.status.blesse" {{checked data.status.blesse}}/></h3>
|
||||
<input type="checkbox" id="isBlesse" name="system.status.blesse" {{checked data.status.blesse}}/></h3>
|
||||
</span>
|
||||
<span class="generic-label"><h4>Meurtri :
|
||||
<input type="checkbox" id="isMeurtri" name="data.status.meurtri" {{checked data.status.meurtri}}/></h3>
|
||||
<input type="checkbox" id="isMeurtri" name="system.status.meurtri" {{checked data.status.meurtri}}/></h3>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -239,12 +229,12 @@
|
||||
<img class="sheet-competence-img" src="{{competence.img}}"/>
|
||||
<span class="competence-label"><a>{{competence.name}}</a></span>
|
||||
<div>
|
||||
{{#if competence.data.data.isspecialisation}}
|
||||
<span class="specialisation-label">({{competence.data.data.specialisation}})</span>
|
||||
{{#if competence.system.isspecialisation}}
|
||||
<span class="specialisation-label">({{competence.system.specialisation}})</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.data.data.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.optionsBase selected=competence.data.data.niveau localize=false}}
|
||||
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.system.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.optionsBase selected=competence.system.niveau localize=false}}
|
||||
</select>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -267,8 +257,8 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{competence.id}}">
|
||||
<img class="sheet-competence-img" src="{{competence.img}}"/>
|
||||
<span class="competence-label"><a>{{competence.name}}</a></span>
|
||||
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.data.data.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.optionsBase selected=competence.data.data.niveau localize=false}}
|
||||
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.system.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.optionsBase selected=competence.system.niveau localize=false}}
|
||||
</select>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -288,8 +278,8 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{competence.id}}">
|
||||
<img class="sheet-competence-img" src="{{competence.img}}"/>
|
||||
<span class="competence-label"><a>{{competence.name}}</a></span>
|
||||
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.data.data.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.optionsBase selected=competence.data.data.niveau localize=false}}
|
||||
<select class="competence-base flexrow" type="text" skillname="{{competence.name}}" value="{{competence.system.niveau}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{selectOptions @root.optionsBase selected=competence.system.niveau localize=false}}
|
||||
</select>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||
@ -321,10 +311,10 @@
|
||||
<li class="item stat flexrow list-item" data-arme-id="{{arme.id}}" data-item-id="{{arme.id}}">
|
||||
<img class="sheet-competence-img" src="{{arme.img}}"/>
|
||||
<span class="stat-label arme-label flexrow tooltip tooltip-nobottom"><a name="{{arme.name}}">{{arme.name}}</a></span>
|
||||
<span class="stat-label combat-label"> {{arme.data.data.categorie}}</span>
|
||||
<span class="stat-label combat-label"> {{arme.data.data.degat}}</span>
|
||||
<span class="stat-label combat-label"> {{arme.system.categorie}}</span>
|
||||
<span class="stat-label combat-label"> {{arme.system.degat}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-equip" title="Worn">{{#if arme.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-equip" title="Worn">{{#if arme.system.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<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>
|
||||
@ -345,8 +335,8 @@
|
||||
<li class="item stat flexrow list-item" data-item-id="{{prouesse.id}}">
|
||||
<img class="sheet-competence-img" src="{{prouesse.img}}"/>
|
||||
<span class="stat-label combat-label flexrow tooltip tooltip-nobottom">{{prouesse.name}}</a></span>
|
||||
<span class="stat-label combat-label">{{prouesse.data.data.categorie}}</span>
|
||||
<span class="stat-label combat-label">{{prouesse.data.data.niveau}}</span>
|
||||
<span class="stat-label combat-label">{{prouesse.system.categorie}}</span>
|
||||
<span class="stat-label combat-label">{{prouesse.system.niveau}}</span>
|
||||
<div class="item-controls">
|
||||
<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>
|
||||
@ -368,16 +358,41 @@
|
||||
<li class="item stat flexrow list-item" data-armure-id="{{armure.id}}" data-item-id="{{armure.id}}">
|
||||
<img class="sheet-competence-img" src="{{armure.img}}"/>
|
||||
<span class="stat-label combat-label flexrow tooltip tooltip-nobottom"><a name="{{armure.name}}">{{armure.name}}</a></span>
|
||||
<span class="stat-label combat-label"> {{armure.data.data.categorie}}</span>
|
||||
<span class="stat-label combat-label"> {{armure.data.data.protection}}</span>
|
||||
<span class="stat-label combat-label"> {{armure.system.categorie}}</span>
|
||||
<span class="stat-label combat-label"> {{armure.system.protection}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-equip" title="Worn">{{#if armure.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-equip" title="Worn">{{#if armure.system.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<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><h4>Bouclier (Bonus de défense physique : {{dpBouclier}}) </h4></div>
|
||||
<ul class="item-list alternate-list">
|
||||
<li class="stat flexrow" >
|
||||
<span class="stat-label flexrow">Nom</span>
|
||||
<span class="stat-label flexrow">Catégorie</span>
|
||||
<span class="stat-label flexrow">Bonus DP</span>
|
||||
<div class="item-controls">
|
||||
</div>
|
||||
</li>
|
||||
{{#each bouclier as |bouclier key|}}
|
||||
<li class="item stat flexrow list-item" data-armure-id="{{bouclier.id}}" data-item-id="{{bouclier.id}}">
|
||||
<img class="sheet-competence-img" src="{{bouclier.img}}"/>
|
||||
<span class="stat-label combat-label flexrow tooltip tooltip-nobottom"><a name="{{bouclier.name}}">{{bouclier.name}}</a></span>
|
||||
<span class="stat-label combat-label"> {{bouclier.system.categorie}}</span>
|
||||
<span class="stat-label combat-label"> {{bouclier.system.defensebonus}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-equip" title="Worn">{{#if bouclier.system.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<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>
|
||||
|
||||
@ -391,8 +406,8 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{sort.id}}">
|
||||
<img class="sheet-competence-img" src="{{sort.img}}"/>
|
||||
<span class="sort-label"><a class="sort-sejdr">{{sort.name}}</a></span>
|
||||
<span class="sort-difficulty">{{sort.data.data.forme}}</span>
|
||||
<span class="sort-difficulty">{{sort.data.data.niveau}}</span>
|
||||
<span class="sort-difficulty">{{sort.system.forme}}</span>
|
||||
<span class="sort-difficulty">{{sort.system.niveau}}</span>
|
||||
<div class="item-controls">
|
||||
<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>
|
||||
@ -409,8 +424,8 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{sort.id}}">
|
||||
<img class="sheet-competence-img" src="{{sort.img}}"/>
|
||||
<span class="sort-label"><a class="sort-galdr">{{sort.name}}</a></span>
|
||||
<span class="sort-difficulty">{{sort.data.data.domaine}}</span>
|
||||
<span class="sort-difficulty">{{sort.data.data.duree}}</span>
|
||||
<span class="sort-difficulty">{{sort.system.domaine}}</span>
|
||||
<span class="sort-difficulty">{{sort.system.duree}}</span>
|
||||
<div class="item-controls">
|
||||
<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>
|
||||
@ -427,9 +442,9 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{sort.id}}">
|
||||
<img class="sheet-competence-img" src="{{sort.img}}"/>
|
||||
<span class="sort-label"><a class="sort-rune">{{sort.name}}</a></span>
|
||||
<span class="sort-difficulty">{{sort.data.data.cible}}</span>
|
||||
<span class="sort-difficulty">{{sort.data.data.niveau}}</span>
|
||||
<span class="sort-difficulty">{{sort.data.data.domaine}}</span>
|
||||
<span class="sort-difficulty">{{sort.system.cible}}</span>
|
||||
<span class="sort-difficulty">{{sort.system.niveau}}</span>
|
||||
<span class="sort-difficulty">{{sort.system.domaine}}</span>
|
||||
<div class="item-controls">
|
||||
<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>
|
||||
@ -449,7 +464,7 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{monnaie.id}}">
|
||||
<img class="sheet-competence-img" src="{{monnaie.img}}"/>
|
||||
<span class="generic-label">{{monnaie.name}}</span>
|
||||
<span class="generic-label">{{monnaie.data.data.quantite}}
|
||||
<span class="generic-label">{{monnaie.system.quantite}}
|
||||
(<a class="equipement-moins plus-moins-button"> -</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||
</span>
|
||||
</span>
|
||||
@ -477,13 +492,13 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{equipement.id}}">
|
||||
<img class="sheet-competence-img" src="{{equipement.img}}"/>
|
||||
<span class="equipement-label">{{equipement.name}}</span>
|
||||
<span class="equipement-label">{{equipement.data.data.quantite}}</span>
|
||||
<span class="equipement-label">{{equipement.data.data.enc}}</span>
|
||||
<span class="equipement-label">{{equipement.system.quantite}}</span>
|
||||
<span class="equipement-label">{{equipement.system.enc}}</span>
|
||||
<span class="equipement-label">
|
||||
(<a class="equipement-moins plus-moins-button">-</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||
</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-equip" title="Worn">{{#if equipement.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-equip" title="Worn">{{#if equipement.system.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<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>
|
||||
@ -499,25 +514,43 @@
|
||||
<h3>Expérience et Renommée : </h3>
|
||||
<div class="form-group editor">
|
||||
<span class="equipement-label">XP : </span>
|
||||
<input type="text" name="data.xp.xp.current" value="{{data.xp.xp.current}}" data-dtype="Number"/>
|
||||
<input type="text" name="data.xp.xp.total" value="{{data.xp.xp.total}}" data-dtype="Number"/>
|
||||
<input type="text" name="system.xp.xp.current" value="{{data.xp.xp.current}}" data-dtype="Number"/>
|
||||
<input type="text" name="system.xp.xp.total" value="{{data.xp.xp.total}}" data-dtype="Number"/>
|
||||
<span class="equipement-label">Renommée : </span>
|
||||
<input type="text" name="data.xp.renommee.value" value="{{data.xp.renommee.value}}" data-dtype="Number"/>
|
||||
<input type="text" name="system.xp.renommee.value" value="{{data.xp.renommee.value}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<hr>
|
||||
<h3>Biodatas : </h3>
|
||||
<div class="form-group editor">
|
||||
<span class="equipement-label">Poids : </span>
|
||||
<input type="text" name="system.biodata.poids" value="{{data.biodata.poids}}" data-dtype="String"/>
|
||||
<span class="equipement-label">Taille : </span>
|
||||
<input type="text" name="system.biodata.taille" value="{{data.biodata.taille}}" data-dtype="String"/>
|
||||
<span class="equipement-label">Age : </span>
|
||||
<input type="text" name="system.biodata.age" value="{{data.biodata.age}}" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="form-group editor">
|
||||
<span class="equipement-label">Archetype : </span>
|
||||
<input type="text" name="system.biodata.archetype" value="{{data.biodata.archetype}}" data-dtype="String"/>
|
||||
<span class="equipement-label">Profession : </span>
|
||||
<input type="text" name="system.biodata.profession" value="{{data.biodata.profession}}" data-dtype="String"/>
|
||||
<span class="equipement-label">Royaume : </span>
|
||||
<input type="text" name="system.biodata.royaume" value="{{data.biodata.royaume}}" data-dtype="String"/>
|
||||
</div>
|
||||
<hr>
|
||||
<h3>Biographie : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
<h3>Notes : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.notes target="data.notes" button=true owner=owner editable=editable}}
|
||||
{{editor notes target="system.notes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
<h3>Tirage des Runes: </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.tiragerunes target="data.tiragerunes" button=true owner=owner editable=editable}}
|
||||
{{editor tiragerunes target="system.tiragerunes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
{{>"systems/fvtt-yggdrasill/templates/editor-notes-gm.html"}}
|
||||
|
@ -4,7 +4,7 @@
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<div>
|
||||
<div>
|
||||
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
|
||||
<h3>
|
||||
@ -12,22 +12,24 @@
|
||||
Jet de {{attr.label}} {{subAttr.label}} (2d10+{{subAttr.value}})
|
||||
{{else}}
|
||||
{{#if (eq mode "competence")}}
|
||||
Jet de {{selectedCarac.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||
Jet de {{selectedCarac.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}})
|
||||
{{else}}
|
||||
{{#if (eq mode "armecc")}}
|
||||
Attaque au corps à Corps {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||
Attaque au corps à Corps {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}}
|
||||
({{competence.system.niveau}})
|
||||
{{else}}
|
||||
{{#if (eq mode "armedist")}}
|
||||
Attaque à Distance {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||
Attaque à Distance {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}}
|
||||
({{competence.system.niveau}})
|
||||
{{else}}
|
||||
{{#if (eq mode "sejdr")}}
|
||||
Lancer du Sort {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||
Lancer du Sort {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}})
|
||||
{{else}}
|
||||
{{#if (eq mode "rune")}}
|
||||
Gravure de la Rune {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||
Gravure de la Rune {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}})
|
||||
{{else}}
|
||||
{{#if (eq mode "galdr")}}
|
||||
Lancer du Domaine {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.data.niveau}})
|
||||
Lancer du Domaine {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}})
|
||||
{{else}}
|
||||
Jet de {{selectedCarac.label}} ({{selectedCarac.value}}d10)
|
||||
{{/if}}
|
||||
@ -43,21 +45,33 @@
|
||||
<div>
|
||||
<ul>
|
||||
<li>Dés :
|
||||
{{#each rawDices as |dice key|}}
|
||||
{{dice.result}}
|
||||
{{#each rawDices as |roll key|}}
|
||||
{{roll.result}}
|
||||
{{/each}}
|
||||
</li>
|
||||
{{#if sumDice}}
|
||||
<li>Nombre de dés additionnés : {{sumDice}}</li>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq mode "competence")}}
|
||||
<li>Competence : {{niveauCompetence}}</li>
|
||||
{{/if}}
|
||||
{{#if (eq mode "carac")}}
|
||||
<li>Carac : {{niveauCompetence}}</li>
|
||||
{{/if}}
|
||||
|
||||
<li>Bonus/Malus Final : {{finalBM}}</li>
|
||||
|
||||
{{#if sr}}
|
||||
<li>Seuil de Réussite final : {{srFinal}}</li>
|
||||
{{/if}}
|
||||
{{#if furorUsage}}
|
||||
<li>Furor : {{furorUsage}}</li>
|
||||
<li>Furor dépensée : {{furorUsage}}</li>
|
||||
<li>Resultat de la Furor : {{furorResult}}</li>
|
||||
{{/if}}
|
||||
<li><h3>Total : {{roll.total}}</h3></li>
|
||||
<li>
|
||||
<h3>Total : {{finalTotal}}</h3>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
{{#if dureeGaldrText}}
|
||||
@ -95,11 +109,28 @@
|
||||
<div class="chat-message-header">
|
||||
<img class="chat-icon" src="systems/fvtt-yggdrasill/images/icons/icon_reussite_critique.png" alt="critique" />
|
||||
Réussite Critique !
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if isFailure}}
|
||||
<div class="chat-message-header">
|
||||
<img class="chat-icon" src="systems/fvtt-yggdrasill/images/icons/icon_echec_critique.png" alt="echec" />
|
||||
Echec Critique !
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if (and isSuccess isMagie)}}
|
||||
<div>
|
||||
<hr>
|
||||
{{{sort.data.description}}}
|
||||
{{#if (eq mode "rune")}}
|
||||
<hr>
|
||||
Support : {{supportRune}}<br>
|
||||
Durée de réalisation : {{dureeRune}} {{echelleDuree}}<br>
|
||||
Durée de vie : {{niveauCompetence}} {{echelleDureeVie}}<br>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</div>
|
@ -1,6 +1,6 @@
|
||||
{{#if data.isGM}}
|
||||
<h3>GM Notes : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.gmnotes target="data.gmnotes" button=true owner=owner editable=editable}}
|
||||
{{editor gmnotes target="system.biodata.gmnotes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
@ -43,9 +43,10 @@
|
||||
|
||||
{{#each attr.values as |value index|}}
|
||||
{{#if value.label}}
|
||||
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{index}}"><a class="attribut-roll" data-attr-sub-key="{{index}}">{{value.label}}</a></span>
|
||||
<span class="stat-label flexrow tooltip tooltip-nobottom" name="{{index}}">
|
||||
<a class="attribut-roll" data-attr-sub-key="{{index}}">{{value.label}}</a></span>
|
||||
{{/if}}
|
||||
<select class="carac-base flexrow" type="text" name="data.attributs.{{key}}.values.{{index}}.value" value="{{value.value}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
<select class="carac-base flexrow" type="text" name="system.attributs.{{key}}.values.{{index}}.value" value="{{value.value}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{#select value.value}}
|
||||
{{#each @root.optionsAttr as |option index|}}
|
||||
<option value="{{index}}">{{index}}</option>
|
||||
@ -65,7 +66,7 @@
|
||||
<ul>
|
||||
<li class="item flexrow list-item" data-attr-key="etat">
|
||||
<span class="stat-label flexrow tooltip tooltip-nobottom" name="etat">Etat : </span>
|
||||
<select class="carac-base flexrow" type="text" name="data.etat.etat" value="{{data.etat.etat}}" data-dtype="String" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
<select class="carac-base flexrow" type="text" name="system.etat.etat" value="{{data.etat.etat}}" data-dtype="String" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||
{{#select data.etat.etat}}
|
||||
<option value="fringant">Fringant</option>
|
||||
<option value="blesse">Blessé</option>
|
||||
@ -101,7 +102,7 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{monnaie.id}}">
|
||||
<img class="sheet-competence-img" src="{{monnaie.img}}"/>
|
||||
<span class="generic-label">{{monnaie.name}}</span>
|
||||
<span class="generic-label">{{monnaie.data.data.quantite}}
|
||||
<span class="generic-label">{{monnaie.system.quantite}}
|
||||
(<a class="equipement-moins plus-moins-button"> -</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||
</span>
|
||||
</span>
|
||||
@ -129,13 +130,13 @@
|
||||
<li class="item flexrow list-item" data-item-id="{{equipement.id}}">
|
||||
<img class="sheet-competence-img" src="{{equipement.img}}"/>
|
||||
<span class="equipement-label">{{equipement.name}}</span>
|
||||
<span class="equipement-label">{{equipement.data.data.quantite}}</span>
|
||||
<span class="equipement-label">{{equipement.data.data.enc}}</span>
|
||||
<span class="equipement-label">{{equipement.system.quantite}}</span>
|
||||
<span class="equipement-label">{{equipement.system.enc}}</span>
|
||||
<span class="equipement-label">
|
||||
(<a class="equipement-moins plus-moins-button">-</a>/<a class="equipement-plus plus-moins-button">+</a>)
|
||||
</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control item-equip" title="Worn">{{#if equipement.data.data.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<a class="item-control item-equip" title="Worn">{{#if equipement.system.equipe}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||
<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>
|
||||
@ -150,12 +151,12 @@
|
||||
<article class="flexcol">
|
||||
<h3>Biographie : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
<hr>
|
||||
<h3>Notes : </h3>
|
||||
<div class="form-group editor">
|
||||
{{editor content=data.notes target="data.notes" button=true owner=owner editable=editable}}
|
||||
{{editor notes target="data.notes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<img class="vadentis-hud-togglebutton" src="systems/foundryvtt-vadentis/images/icons/icone_item_armes_cac.webp" width="36" height="36" title="Attaque"/>
|
||||
<div class="vadentis-hud-list tokenhudext left">
|
||||
{{#each armes as |arme key|}}
|
||||
{{#if arme.data.equipee}}
|
||||
{{#if arme.system.equipee}}
|
||||
<div class="control-icon tokenhudicon vadentis-hud-menu vadentis-attaque" data-combatant-id="{{../combatant._id}}" data-arme-id="{{arme._id}}" title="{{arme.name}}">
|
||||
<label>C:{{arme.name}}</label>
|
||||
</div>
|
||||
|
@ -12,8 +12,8 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select system.categorie}}
|
||||
<option value="lutte">Lutte</option>
|
||||
<option value="improvisee">Improvisée</option>
|
||||
<option value="courte">Courte</option>
|
||||
@ -24,15 +24,15 @@
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipe" {{checked data.equipe}}/></label>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Degat</label><input type="text" name="data.degat" value="{{data.degat}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Solidité</label><input type="text" name="data.solidite" value="{{data.solidite}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Degat</label><input type="text" name="system.degat" value="{{data.degat}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Solidité</label><input type="text" name="system.solidite" value="{{data.solidite}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="system.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="system.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<option value="jet">Jet</option>
|
||||
<option value="tir">Tir</option>
|
||||
@ -20,16 +20,16 @@
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipe" {{checked data.equipe}}/></label>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Degat</label><input type="text" name="data.degat" value="{{data.degat}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Solidité</label><input type="text" name="data.solidite" value="{{data.solidite}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Portée</label><input type="text" name="data.portee" value="{{data.portee}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Degat</label><input type="text" name="system.degat" value="{{data.degat}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Solidité</label><input type="text" name="system.solidite" value="{{data.solidite}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="system.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="system.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Portée</label><input type="text" name="system.portee" value="{{data.portee}}" data-dtype="String"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<option value="armure">Armure</option>
|
||||
<option value="piecearmure">Pièce d'Armure</option>
|
||||
@ -20,14 +20,14 @@
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipe" {{checked data.equipe}}/></label>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Protection</label><input type="text" name="data.protection" value="{{data.protection}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Protection</label><input type="text" name="system.protection" value="{{data.protection}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="system.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="system.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
35
templates/item-bouclier-sheet.html
Normal file
35
templates/item-bouclier-sheet.html
Normal file
@ -0,0 +1,35 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="profile-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="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<option value="bouclier">bouclier</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipe" {{checked data.equipe}}/></label>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Bonus DP</label><input type="text" name="system.defensebonus" value="{{data.defensebonus}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="system.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement en combat</label><input type="text" name="system.enccomb" value="{{data.enccomb}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Solidité</label><input type="text" name="system.solidite" value="{{data.solidite}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="system.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</form>
|
@ -12,7 +12,7 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<option value="generale">Générale</option>
|
||||
<option value="magique">Magique</option>
|
||||
@ -21,20 +21,20 @@
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Niveau</label>
|
||||
<select class="competence-malus flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
<select class="competence-malus flexrow" type="text" name="system.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
{{selectOptions @root.optionsBase selected=data.niveau localize=false}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Spécialisation ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.isspecialisation" {{checked data.isspecialisation}}/></label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.isspecialisation" {{checked data.isspecialisation}}/></label>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Spécialisation</label><input type="text" name="data.specialisation" value="{{data.specialisation}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Spécialisation</label><input type="text" name="system.specialisation" value="{{data.specialisation}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Niveau 1 requis ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.niveauunrequis" {{checked data.niveauunrequis}}/></label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.niveauunrequis" {{checked data.niveauunrequis}}/></label>
|
||||
</li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -13,11 +13,11 @@
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<label class="generic-label">Origine</label>
|
||||
<input type="text" name="data.origine" value="{{data.origine}}" data-dtype="String"/>
|
||||
<input type="text" name="system.origine" value="{{data.origine}}" data-dtype="String"/>
|
||||
</li>
|
||||
</ul>
|
||||
<label class="generic-label">Effet</label>
|
||||
{{editor content=data.effet target="data.effet" button=true owner=owner editable=editable}}
|
||||
{{editor effet target="system.effet" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -12,13 +12,13 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Equipée ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.equipe" {{checked data.equipe}}/></label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.equipe" {{checked data.equipe}}/></label>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="data.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="system.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Valeur</label><input type="text" name="system.valeur" value="{{data.valeur}}" data-dtype="Number"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<option value="mineure">Mineure</option>
|
||||
<option value="moderee">Modérée</option>
|
||||
@ -20,11 +20,11 @@
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Periode</label><input type="text" name="data.periode" value="{{data.periode}}" data-dtype="String"/>
|
||||
<li class="flexrow"><label class="generic-label">Periode</label><input type="text" name="system.periode" value="{{data.periode}}" data-dtype="String"/>
|
||||
</li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Quantité</label><input type="text" name="data.quantite" value="{{data.quantite}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="data.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Quantité</label><input type="text" name="system.quantite" value="{{data.quantite}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Encombrement</label><input type="text" name="system.enc" value="{{data.enc}}" data-dtype="Number"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<option value="mineure">Mineure</option>
|
||||
<option value="moderee">Modérée</option>
|
||||
@ -20,10 +20,10 @@
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Type</label><input type="text" name="data.type" value="{{data.type}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Type</label><input type="text" name="system.type" value="{{data.type}}" data-dtype="String"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Catégorie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
<select class="competence-base flexrow" type="text" name="system.categorie" value="{{data.categorie}}" data-dtype="String">
|
||||
{{#select data.categorie}}
|
||||
<option value="attaque">Attaque</option>
|
||||
<option value="defensive">Défensive</option>
|
||||
@ -22,18 +22,18 @@
|
||||
</li>
|
||||
<li class="flexrow">
|
||||
<label class="generic-label">Niveau</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
<select class="competence-base flexrow" type="text" name="system.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
{{#select data.niveau}}
|
||||
{{{optionsNiveaux4}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Armes</label><input type="text" name="data.armes" value="{{data.armes}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Prérequis</label><input type="text" name="data.prerequis" value="{{data.prerequis}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Modificateur</label><input type="text" name="data.modificateur" value="{{data.modificateur}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Armes</label><input type="text" name="system.armes" value="{{data.armes}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Prérequis</label><input type="text" name="system.prerequis" value="{{data.prerequis}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Modificateur</label><input type="text" name="system.modificateur" value="{{data.modificateur}}" data-dtype="Number"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -11,20 +11,20 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Cible</label><input type="text" name="data.cible" value="{{data.cible}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Cible</label><input type="text" name="system.cible" value="{{data.cible}}" data-dtype="String"/></li>
|
||||
<li class="flexrow">
|
||||
<label class="generic-label">Niveau</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
<select class="competence-base flexrow" type="text" name="system.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
{{#select data.niveau}}
|
||||
{{{optionsNiveaux4}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Domaine</label><input type="text" name="data.domaine" value="{{data.domaine}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Zone/Cible</label><input type="text" name="data.zonecible" value="{{data.zonecible}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Domaine</label><input type="text" name="system.domaine" value="{{data.domaine}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Zone/Cible</label><input type="text" name="system.zonecible" value="{{data.zonecible}}" data-dtype="String"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -13,7 +13,7 @@
|
||||
<ul>
|
||||
<li class="flexrow">
|
||||
<label class="generic-label">Voie</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.voie" value="{{data.voie}}" data-dtype="String">
|
||||
<select class="competence-base flexrow" type="text" name="system.voie" value="{{data.voie}}" data-dtype="String">
|
||||
{{#select data.voie}}
|
||||
<option value="malediction">Malédictions</option>
|
||||
<option value="illusion">Illusions</option>
|
||||
@ -21,10 +21,10 @@
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">SD</label><input type="text" name="data.sd" value="{{data.sd}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">SD</label><input type="text" name="system.sd" value="{{data.sd}}" data-dtype="Number"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -11,22 +11,22 @@
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Domaine</label><input type="text" name="data.forme" value="{{data.forme}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Préparation</label><input type="text" name="data.preparation" value="{{data.preparation}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Domaine</label><input type="text" name="system.forme" value="{{data.forme}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Préparation</label><input type="text" name="system.preparation" value="{{data.preparation}}" data-dtype="String"/></li>
|
||||
<li class="flexrow">
|
||||
<label class="generic-label">Niveau</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
<select class="competence-base flexrow" type="text" name="system.niveau" value="{{data.niveau}}" data-dtype="Number">
|
||||
{{#select data.niveau}}
|
||||
{{{optionsNiveaux4}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Malus</label><input type="text" name="data.malus" value="{{data.malus}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Durée</label><input type="text" name="data.duree" value="{{data.duree}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Zone</label><input type="text" name="data.zone" value="{{data.zone}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Malus</label><input type="text" name="system.malus" value="{{data.malus}}" data-dtype="Number"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Durée</label><input type="text" name="system.duree" value="{{data.duree}}" data-dtype="String"/></li>
|
||||
<li class="flexrow"><label class="generic-label">Zone</label><input type="text" name="system.zone" value="{{data.zone}}" data-dtype="String"/></li>
|
||||
</ul>
|
||||
<label class="generic-label">Description</label>
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
{{editor description target="system.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -30,7 +30,7 @@
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Compétence : </span>
|
||||
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.system.niveau}}</span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
@ -32,7 +32,7 @@
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Compétence : </span>
|
||||
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.system.niveau}}</span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
@ -18,6 +18,15 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Défense Physique du défenseur : </span>
|
||||
<select class="competence-base flexrow" type="text" id="bonusdefense" name="bonusdefense" value="{{bonusdefense}}" data-dtype="Number">
|
||||
{{#select bonusdefense}}
|
||||
{{{optionsBD}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Seuil de Réussite : </span>
|
||||
<select class="competence-base flexrow" type="text" id="sr" name="sr" value="sr" data-dtype="Number">
|
||||
|
@ -2,10 +2,10 @@
|
||||
<h2 class="dialog-roll-title">{{title}}</h2>
|
||||
|
||||
<div class="floxrow">
|
||||
{{#if competence.data.data.isspecialisation}}
|
||||
{{#if competence.system.isspecialisation}}
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Spécialisation : </span>
|
||||
<span class="competence-base flexrow" >{{competence.data.specialisation}}</span>
|
||||
<span class="competence-base flexrow" >{{competence.system.specialisation}}</span>
|
||||
<span class="competence-base flexrow" > </span>
|
||||
<span class="competence-base flexrow" > </span>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<form class="skill-roll-dialog">
|
||||
<h2 class="dialog-roll-title">{{title}} - SD {{sort.data.sd}}</h2>
|
||||
<h2 class="dialog-roll-title">{{title}} - SD {{sort.system.sd}}</h2>
|
||||
|
||||
<div class="floxrow">
|
||||
<div class="flexrow">
|
||||
@ -11,7 +11,7 @@
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Compétence : </span>
|
||||
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.system.niveau}}</span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<form class="skill-roll-dialog">
|
||||
<h2 class="dialog-roll-title">{{title}} - Niveau {{sort.data.niveau}}</h2>
|
||||
<h2 class="dialog-roll-title">{{title}} - Niveau {{sort.system.niveau}}</h2>
|
||||
|
||||
<div class="floxrow">
|
||||
<div class="flexrow">
|
||||
@ -11,7 +11,7 @@
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Compétence : </span>
|
||||
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.system.niveau}}</span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
@ -10,18 +10,18 @@
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Préparation : </span>
|
||||
<span class="competence-base flexrow" id="caracName">{{sort.data.preparation}}</span>
|
||||
<span class="competence-base flexrow" id="caracName">{{sort.system.preparation}}</span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Compétence : </span>
|
||||
<span class="competence-base flexrow" id="compName">{{competence.name}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.data.niveau}}</span>
|
||||
<span class="competence-base flexrow" id="compNiveau">{{competence.system.niveau}}</span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="competence-base flexrow" >Malus du Sort : </span>
|
||||
<span class="competence-base flexrow" id="malus">{{sort.data.malus}}</span>
|
||||
<span class="competence-base flexrow" id="malus">{{sort.system.malus}}</span>
|
||||
</div>
|
||||
|
||||
<div class="flexrow">
|
||||
|
Loading…
Reference in New Issue
Block a user