diff --git a/images/icons/.directory b/images/icons/.directory new file mode 100644 index 0000000..b68f2ff --- /dev/null +++ b/images/icons/.directory @@ -0,0 +1,6 @@ +[Dolphin] +SortRole=creationtime +Timestamp=2021,4,13,9,23,48.267 +Version=4 +ViewMode=1 +VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails diff --git a/images/icons/feuille_perso_PA.webp b/images/icons/feuille_perso_PA.webp new file mode 100644 index 0000000..b8365a2 Binary files /dev/null and b/images/icons/feuille_perso_PA.webp differ diff --git a/images/icons/feuille_perso_PE.webp b/images/icons/feuille_perso_PE.webp new file mode 100644 index 0000000..a78df89 Binary files /dev/null and b/images/icons/feuille_perso_PE.webp differ diff --git a/images/icons/feuille_perso_PV.webp b/images/icons/feuille_perso_PV.webp new file mode 100644 index 0000000..0162594 Binary files /dev/null and b/images/icons/feuille_perso_PV.webp differ diff --git a/images/icons/tchat_attaque_réussie.webp b/images/icons/tchat_attaque_réussie.webp new file mode 100644 index 0000000..94842bc Binary files /dev/null and b/images/icons/tchat_attaque_réussie.webp differ diff --git a/images/icons/tchat_attaque_échouée.webp b/images/icons/tchat_attaque_échouée.webp new file mode 100644 index 0000000..f679c8f Binary files /dev/null and b/images/icons/tchat_attaque_échouée.webp differ diff --git a/images/icons/tchat_dégâts_infligés.webp b/images/icons/tchat_dégâts_infligés.webp new file mode 100644 index 0000000..dca8753 Binary files /dev/null and b/images/icons/tchat_dégâts_infligés.webp differ diff --git a/images/icons/tchat_réussite_critique.webp b/images/icons/tchat_réussite_critique.webp new file mode 100644 index 0000000..c063e7e Binary files /dev/null and b/images/icons/tchat_réussite_critique.webp differ diff --git a/images/icons/tchat_sort_réussi.webp b/images/icons/tchat_sort_réussi.webp new file mode 100644 index 0000000..dd7027e Binary files /dev/null and b/images/icons/tchat_sort_réussi.webp differ diff --git a/images/icons/tchat_sort_échoué.webp b/images/icons/tchat_sort_échoué.webp new file mode 100644 index 0000000..2db156f Binary files /dev/null and b/images/icons/tchat_sort_échoué.webp differ diff --git a/images/icons/tchat_échec_critique.webp b/images/icons/tchat_échec_critique.webp new file mode 100644 index 0000000..3981be2 Binary files /dev/null and b/images/icons/tchat_échec_critique.webp differ diff --git a/modules/vadentis-actor-sheet.js b/modules/vadentis-actor-sheet.js index 0047ba6..5921fd9 100644 --- a/modules/vadentis-actor-sheet.js +++ b/modules/vadentis-actor-sheet.js @@ -23,6 +23,7 @@ export class VadentisActorSheet extends ActorSheet { /* -------------------------------------------- */ getData() { + this.actor.calculerSommeStats(); let data = super.getData(); data.editScore = this.options.editScore; @@ -36,7 +37,7 @@ export class VadentisActorSheet extends ActorSheet { data.armes = this.actor.getArmes(); data.armures = this.actor.getArmures(); data.equipements = this.actor.getEquipements(); - + data.optionsBase = VadentisUtility.createDirectOptionList(0, 50); data.optionsMalus = VadentisUtility.createDirectReverseOptionList(-50, 0); data.optionsBonus = VadentisUtility.createDirectOptionList(0, 50); @@ -73,6 +74,10 @@ export class VadentisActorSheet extends ActorSheet { let combatName = event.currentTarget.attributes.name.value; this.actor.rollCombat(combatName); }); + html.find('.magie-label a').click((event) => { + let magieName = event.currentTarget.attributes.name.value; + this.actor.rollMagie(magieName); + }); html.find('.competence-label a').click((event) => { const li = $(event.currentTarget).parents(".item"); const competenceId = li.data("item-id"); diff --git a/modules/vadentis-actor.js b/modules/vadentis-actor.js index da91de7..236c6d2 100644 --- a/modules/vadentis-actor.js +++ b/modules/vadentis-actor.js @@ -104,6 +104,18 @@ export class VadentisActor extends Actor { } } + /* -------------------------------------------- */ + calculerSommeStats( ) { + for (const key in this.data.data.combat) { + let combatData = this.data.data.combat[key]; + combatData.total = combatData.base + combatData.malus + combatData.bonus; + } + for (const key in this.data.data.magie) { + let magieData = this.data.data.magie[key]; + magieData.total = magieData.base + magieData.malus + magieData.bonus; + } + } + /* -------------------------------------------- */ async processSortDevotion( name, devotionSort ) { if ( this.data.data.stats.pointsenergie.value == 0) { // Vérification du ~ de points d'énergie @@ -113,51 +125,66 @@ export class VadentisActor extends Actor { let scores = this.data.data.magie[(name =="devotion") ? 'devotion': 'matriseelementaire']; let statValue = scores.base + scores.malus + scores.bonus; - let formulaFull = `1d20+${scores.base}+${scores.malus}+${scores.bonus}`; - let myRoll = new Roll("1d20+"+statValue); - myRoll.evaluate(); - myRoll.toMessage( { flavor: `Lancer de ${name} : ${devotionSort.name} (${formulaFull})` } ); - + let formulaFull = this.buildTexteFormula( scores ); + let myRoll = await VadentisUtility.processRoll("1d20+"+statValue ); + let msgData = { + alias: this.name, + title: `Sort ${devotionSort.name}`, + isSort: true + } + if (myRoll.results[0] > 1 && myRoll.total >= devotionSort.data.difficulty) { - let content = `${this.name} a réussi son ${name} et perd ${devotionSort.data.pe} Points d'Energie. L'effet suivant se produit:
${devotionSort.data.effect}`; + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_sort_réussi.webp'; + msgData.msg = `${this.name} a réussi son ${name} et perd ${devotionSort.data.pe} Points d'Energie (lancer : ${formulaFull}). L'effet suivant se produit:
${devotionSort.data.effect}`; let newEnergie = this.data.data.stats.pointsenergie.value - devotionSort.data.pe; await this.update( {'data.stats.pointsenergie.value': newEnergie }); + if (myRoll.results[0] == 20 ) { // Critique ? + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_réussite_critique.webp'; + msgData.ms += "
C'est une réussite critique !"; + } if ( devotionSort.data.damage != "") { - let degatsText = `
Et provoque les dégats suivants : `; let formula = devotionSort.data.damage; if (myRoll.results[0] == 20 ) { // Critique ? - degatsText += `
Et provoque les dégats critiques suivants : `; + msgData.msg += `
Et provoque les dégats critiques suivants : `; formula = devotionSort.data.damagecritical; - } - content += degatsText; - /*let myRoll = new Roll(formula); - myRoll.evaluate(); - if (game.modules.get("dice-so-nice") && game.modules.get("dice-so-nice").active) { - await game.dice3d.showForRoll(degatsRoll, game.user, true); + } else { + msgData.msg += `
Et provoque les dégats suivants : `; } - content += myRoll.total + `(${devotionSort.data.damagecritical})`; */ - content += `${devotionSort.data.damagecritical}`; + content += `${formula}`; } if ( newEnergie < 0) { - content += `
Attention : Les Points d'Energie de ${this.name} sont négatifs ! Il convient d'éditer ses Points de Vie en conséquence.`; + msgData.msg += `
Attention : Les Points d'Energie de ${this.name} sont négatifs ! Il convient d'éditer ses Points de Vie en conséquence.`; } - ChatMessage.create( { content: content} ); } else { + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_sort_échoué.webp'; if (myRoll.results[0] == 1 ) { // Critique ? - ChatMessage.create( { content: `${this.name} a fait un échec critique à son lancer de ${name}` } ); + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_échec_critique.webp'; + msgData.msg = `${this.name} a fait un échec critique à son lancer de ${name}`; } else { - ChatMessage.create( { content: `${this.name} a échoué son lancer de ${name}` } ); + msgData.msg = `${this.name} a échoué son lancer de ${name}`; } } - } + ChatMessage.create({ + //whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData) + }); +} /* -------------------------------------------- */ async rollDamage( weapon, damageType ) { let formula = VadentisUtility.processDamageString( weapon.data.data[damageType], this ); let degatsRoll = await VadentisUtility.processRoll( formula ); - - ChatMessage.create( { content: `${this.name} frappe avec ${weapon.name} et produit ${degatsRoll.total} Points de Dégâts (${formula}).` } ); + let msgData = { + alias: this.name, + img: "systems/foundryvtt-vadentis/images/icons/tchat_dégâts_infligés.webp", + title: `Dégâts de ${weapon.name}`, + msg: `${this.name} frappe avec ${weapon.name} et produit ${degatsRoll.total} Points de Dégâts (${formula}).` + } + ChatMessage.create({ + //whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData) + }); } /* -------------------------------------------- */ @@ -165,12 +192,22 @@ export class VadentisActor extends Actor { let pvData = this.data.data.stats.pointsvie; let newValue = Math.max( pvData.value - damageValue, MIN_PV); await this.update( {'data.stats.pointsvie.value': newValue }); - ChatMessage.create( { content: `${this.name} vient de perdre ${damageValue} Points de Vie. Ses Points de Vie actuels sont désormais de ${newValue}.` } ); + + let msgData = { + alias: this.name, + img: "systems/foundryvtt-vadentis/images/icons/tchat_dégâts_infligés.webp", + title: `${this.name} encaisse des dégâts !`, + msg: `${this.name} vient de perdre ${damageValue} Points de Vie. Ses Points de Vie actuels sont désormais de ${newValue}.` + } + ChatMessage.create({ + //whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData) + }); } /* -------------------------------------------- */ _getCombatValue(mydata) { - if ( Number(mydata.base)) { + if ( typeof mydata.base == 'number' ) { return mydata.base + mydata.malus + mydata.bonus; }else { return Number(mydata.base[0]) + Number(mydata.malus[0]) + Number(mydata.bonus[0]); @@ -198,6 +235,12 @@ export class VadentisActor extends Actor { return this._getCombatValue( attaqueData); } + /* -------------------------------------------- */ + buildTexteFormula( stat) { + let signMalus = (stat.malus < 0) ? "" : "+"; + return `1d20+ ${stat.base} ${signMalus} ${stat.malus} + ${stat.bonus}`; + } + /* -------------------------------------------- */ async rollSort( sortId ) { let sort = this.data.items.find( item => item.type == 'sort' && item._id == sortId ); @@ -218,38 +261,99 @@ export class VadentisActor extends Actor { async rollTechnique( techniqueId ) { let technique = this.data.items.find( item => item.type == 'technique' && item._id == techniqueId ); if (technique) { - if ( this.data.data.stats.pointsadrenaline.value < technique.data.pacost) { // Vérification du ~ de points d'adrénaline - ChatMessage.create({ content: `${this.name} n'a pas assez de Points d'Adrénaline pour éxecuter sa technique ${technique.name}` } ); - return; + let msgData = { + alias: this.name, + img: technique.img, + title: `Technique ${technique.name}` } - let newAdrenaline = this.data.data.stats.pointsadrenaline.value - technique.data.pacost; - await this.update( {'data.stats.pointsadrenaline.value': newAdrenaline }); - - ChatMessage.create( { content: `${this.name} execute sa technique ${technique.name}, pour un côut de ${technique.data.pacost} Points d'Adrénaline
- Les effets sont : ${technique.data.effect}`} ); + if ( this.data.data.stats.pointsadrenaline.value < technique.data.pacost) { // Vérification du ~ de points d'adrénaline + msgData.msg = `${this.name} n'a pas assez de Points d'Adrénaline pour éxecuter sa technique ${technique.name}`; + } else { + let newAdrenaline = this.data.data.stats.pointsadrenaline.value - technique.data.pacost; + await this.update( {'data.stats.pointsadrenaline.value': newAdrenaline }); + msgData.msg = `${this.name} execute sa technique ${technique.name}, pour un côut de ${technique.data.pacost} Points d'Adrénaline
+ Les effets sont : ${technique.data.effect}`; + } + ChatMessage.create({ + //whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData) + }); + } else { + ui.notifications.warn("Technique non trouvée"); } } /* -------------------------------------------- */ - rollCompetence( competenceId ) { + async rollCompetence( competenceId ) { let competence = this.data.items.find( item => item.type == 'competence' && item._id == competenceId); if ( competence) { + let msgData = { + alias: this.name, + img: competence.img, + title: `Compétence ${competence.name}` + } + let statValue = competence.data.base + competence.data.malus + competence.data.bonus; - let formulaFull = `1d20+${competence.data.base}+${competence.data.malus}+${competence.data.bonus}`; - let myRoll = new Roll("1d20+"+statValue); - myRoll.evaluate(); - myRoll.toMessage( { flavor: `Jet de compétence : ${competence.name} (${formulaFull})` } ); + let formulaFull = this.buildTexteFormula( competence.data ); + let myRoll = await VadentisUtility.processRoll("1d20+"+statValue ); + msgData.msg = `${formulaFull} => ${myRoll.total}`; + + if (myRoll.results[0] == 1 ) { // Critique ? + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_échec_critique.webp'; + msgData.msg += `
C'est un échec critique !`; + } + if (myRoll.results[0] == 20 ) { // Critique ? + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_réussite_critique.webp'; + msgData.msg += `
C'est une réussite critique !`; + } + + ChatMessage.create({ + //whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData) + }); + } else { + ui.notifications.warn("Compétence non trouvée"); } } /* -------------------------------------------- */ - rollCombat( combatName ) { - let stat = this.data.data.combat[combatName]; + async genericRoll( stat ) { let statValue = this._getCombatValue( stat ); - let formulaFull = `1d20+${stat.base}+${stat.malus}+${stat.bonus}`; - let myRoll = new Roll("1d20+"+statValue); - myRoll.evaluate(); - myRoll.toMessage( { title: "Test !",flavor: `Jet de ${stat.label} (${formulaFull})` } ); + let formulaFull = this.buildTexteFormula( stat ); + + let myRoll = await VadentisUtility.processRoll("1d20+"+statValue ); + let msgData = { + alias: this.name, + img: "", + title: `Jet de ${stat.label}`, + msg: `${formulaFull} => ${myRoll.total}` + } + + if (myRoll.results[0] == 1 ) { // Critique ? + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_échec_critique.webp'; + msgData.msg += `
C'est un échec critique !`; + } + if (myRoll.results[0] == 20 ) { // Critique ? + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_réussite_critique.webp'; + msgData.msg += `
C'est une réussite critique !`; + } + + ChatMessage.create({ + //whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData) + }); + } + + /* -------------------------------------------- */ + async rollCombat( combatName ) { + let stat = this.data.data.combat[combatName]; + this.genericRoll( stat ); +} + + /* -------------------------------------------- */ + rollMagie( magieName ) { + let stat = this.data.data.magie[magieName]; + this.genericRoll( stat ); } /* -------------------------------------------- */ diff --git a/modules/vadentis-utility.js b/modules/vadentis-utility.js index 2fa23c6..c692b62 100644 --- a/modules/vadentis-utility.js +++ b/modules/vadentis-utility.js @@ -86,30 +86,45 @@ export class VadentisUtility extends Entity { let attacker = game.actors.get(combatData.attackerActorId); let defender = game.actors.get(combatData.targetActorId); if( attacker && defender) { - let defense = defender.getDefenseScore(); + let defense = defender.getDefenseScore(); let attaque = attacker.getAttaqueScore(); - let myRoll = await this.processRoll("1d20+"+attaque); + let msgData = { + alias: this.name, + title: `${attacker.name} attaque ${defender.name}` + } + + let formulaTouche = "1d20+"+attaque; + let formulaFull = attacker.buildTexteFormula( attacker.data.data.combat.attaque ); + let myRoll = await this.processRoll(formulaTouche); if (myRoll.results[0] > 1 && myRoll.total >= defense) { // Success ! let degats = `normaux : ${combatData.arme.data.damage}`; let formula = combatData.arme.data.damage.toLowerCase(); + msgData.msg = `${attacker.name} a réussi son attaque sur ${defender.name} (${formulaFull} => ${myRoll.total} / ${defense}) !
Les dégâts sont ${degats}.`; + if ( myRoll.results[0] == 20) { degats = `critiques : ${combatData.arme.data.criticaldamage}`; formula = combatData.arme.data.criticaldamage.toLowerCase(); + msgData.msg += `
C'est une réussite critique !`; } - ChatMessage.create( { content: `${attacker.name} a réussi son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !
Les dégâts sont ${degats}`}); + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_attaque_réussie.webp' formula = this.processDamageString( formula, attacker ); let degatsRoll = await this.processRoll(formula); - ChatMessage.create( { content: `Et les dégats infligés sont de ${degatsRoll.total} (${formula}) à appliquer à ${defender.name}`}); + msgData.msg +=`
Les dégats infligés sont de ${degatsRoll.total} (${formula}).`; defender.applyDamage( degatsRoll.total ); } else { //Echec + msgData.img = 'systems/foundryvtt-vadentis/images/icons/tchat_attaque_échouée.webp'; if ( myRoll.results[0] == 1) { - ChatMessage.create( { content: `${attacker.name} a fait un échec critique et a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !` }); + msgData.msg = `${attacker.name} a fait un échec critique et a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !`; } else { - ChatMessage.create( { content: `${attacker.name} a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !` }); + msgData.msg = `${attacker.name} a raté son attaque sur ${defender.name} (${myRoll.total} / ${defense}) !`; } } + ChatMessage.create({ + //whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-vadentis/templates/chat-generic-result.html`, msgData) + }); } else { ui.notifications.warn("Impossible de trouver l'attaquant et le défenseur.") } diff --git a/packs/techniques.db b/packs/techniques.db index 57e8aea..7f13925 100644 --- a/packs/techniques.db +++ b/packs/techniques.db @@ -1,43 +1,43 @@ -{"name":"Escalade fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple ses capacités d'escalade. Cela se traduit par un bonus de +6 en Escalader. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"0uxLjiQ3iXZk115E"} -{"name":"Combo Niveau 3","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Si le personnage a touché une cible avec une attaque de corps-à-corps, il peut enchaîner une attaque sur un adversaire se trouvant à 2m de distance.

\n

S'il réussit, il peut enchaîner une attaque sur un autre adversaire se trouvant à 2m.

\n

Si sa troisième attaque porte, il peut porter une ultime attaque sur une nouvelle cible ou une cible précédente.

","pacost":1,"xp":1100,"notes":"

Remplace la technique \"Combo Niveau 2\"

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"4MFf6QDWZkTRYiop"} -{"name":"Charge de taureau","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur parcourt le double de la distance qui lui est normalement autorisée.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"4Xp6h6DCDoCVsQgr"} -{"name":"Bullet time","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant phase d'attaque","effect":"

L'utilisateur équipé d'une arme de jet ou à feu peut attaquer jusqu'à trois cibles sélectionnées se trouvant dans un rayon de 18m autour de lui.

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"58r0xDIdLBNzGHU0"} -{"name":"Muraille","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase de dégâts","effect":"

Les dégâts de la prochaine attaque non-élémentaires que subit l'utilisateur sont divisés par deux arrondis au supérieur.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"5TR96TCC12xi5Y1h"} -{"name":"Attaque sonique Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase d'attaque","effect":"

L'utilisateur peut porter deux attaques supplémentaire ce tour.

","pacost":1,"xp":1000,"notes":"

Remplace la technique \"Attaque sonique\"

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"5d7EUBcb1rjpKHlz"} -{"name":"Esquive acrobatique","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après la phase d'attaque","effect":"

Lorsqu'un adversaire a échoué une attaque contre l'utilisateur, ce dernier peut se déplacer jusqu’à 9m dans la direction souhaitée.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"7rF8qIxuu4qYu7bZ"} -{"name":"Feinte","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase d'attaque","effect":"

L'utilisateur effectue une manœuvre de combat qui désoriente la cible. Le joueur fait un test de Bluff, de Démonstration ou d'Intimider. Selon le résultat, les effets sont les suivants:

\n

► 1-12 : lance deux jets d’attaque et garde le meilleur

\n

► 13-20 : lance trois jets d’attaque et garde le meilleur

\n

► 21 et + : lance quatre jets d’attaque et garde le meilleur

\n

\n

► Réussite critique: l’attaque est une réussite critique

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"8ILesVMNmQY5rPYN"} -{"name":"Double dégâts","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase de dégâts","effect":"

Les dégâts de l'attaque sont doublés. 

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"9u8VhRPZCiw1mOUK"} -{"name":"Flèche bestiale","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Après la phase d'attaque","effect":"

Lorsque l'utilisateur attaque une cible en tirant à l'arc, il peut faire reculer cette cible de plusieurs mètres.

\n

Pour ce faire, il faut lancer un jet de force:

\n

► 1-5 : 1m

\n

► 6-11 : 2m

\n

► 12-16 : 3m

\n

► 16-20 : 4m

\n

► 21 et + : 5m

\n

\n

► Réussite critique : 6m

\n

\n

Le bonus de Force est également ajouté aux Dégâts.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"AHU8tBgFwhYTQDWc"} -{"name":"Chute de l'ours","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Lorsqu'il tombe de plus de 1m de hauteur et qu'il souhaite attaquer une cible en contrebas, l'utilisateur ajoute son bonus de Force à l'Attaque et une fois supplémentaires aux Dégâts.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Bw5c1jgkbD6yECSN"} -{"name":"Partage de Maîtrise élémentaire","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur aide une cible au contact à faire appel à sa Donnée. Pour ce faire, l’utilisateur effectue un test de maîtrise élémentaire et l’allié reçoit comme bonus durant 1 minute (6 tours):

\n

►1-10: +1 maîtrise élémentaire 

\n

►11-15: +2 maîtrise élémentaire

\n

►16-20: +3 maîtrise élémentaire

\n

►21 et +: 4 maîtrise élémentaire

\n

\n

► Réussite critique: +5 maîtrise élémentaire

","pacost":1,"xp":800,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"DTXMq9MMJ2GYKlvX"} -{"name":"Maîtrise élémentaire fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur gagne un +5 en Maîtise élémentaire pendant 1 tour.

","pacost":1,"xp":800,"notes":"

Jets d'Attaques et de Dégâts à lancer pour chaque cible.

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"EIg9iA0Zu20J701i"} -{"name":"Esquive","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase d'attaque","effect":"

L'adversaire doit confirmer deux jets d'Attaques pour toucher l'utilisateur. 

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"HPe2L4oIQs91dC8B"} -{"name":"Pas légers","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur peut parcourir 9m sur unr surface liquide (eau, lave, ...).

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"HtiHyCBZrKQEXN35"} -{"name":"Esquive Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase d'attaque","effect":"

Lorsque l’utilisateur est sur le point de se faire attaquer, il effectue un jet de réflexe:

\n

► 1-10 : l’adversaire effectue deux jets d’attaque et prend le moins bon

\n

► 11-20 : l’adversaire effectue trois jets d’attaque et prend le moins bon

\n

► 21 et + : l’adversaire effectue quatre jets d’attaque et prend le moins bon

\n

\n

► Réussite critique : l’adversaire effectue cinq jets d’attaque et prend le moins bon

","pacost":1,"xp":1200,"notes":"

Remplace la technique \"Esquive\"

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"HzoCLclZf4btZVhp"} -{"name":"Attaque sonique","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase d'attaque","effect":"

L'utilisateur peut porter une attaque supplémentaire ce tour.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"I6z7voZsJYnw8mgX"} -{"name":"Attaque réflexe","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire","effect":"

Lorsque l'adversaire offre une attaque d'opportunité, l'utilisateur peut tenter d'attaquer plusieurs fois l'adversaire en question. Pour ce faire, il effectue un test de réflexe:

\n

►1-10 : 1 attaque d'opportunité supplémentaire

\n

►11-20 : 2 attaques d'opportunité supplémentaires

\n

►21 et + : 3 attaques d'opportunité supplémentaires

\n

\n

►Réussite critique : 4 attaques d’opportunité supplémentaires

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"IUztJkI2F28vWxfr"} -{"name":"Force fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 1 tour / 6 secondes, l'utilisateur décuple se Force. Cela se traduit par un bonus de +6 en Force.  Ce bonus est actif jusqu'à la fin du prochain tour de l'utilisateur.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"J8beCoNnIfHPFI9h"} -{"name":"Immortel","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après la phase de dégâts","effect":"

Lorsque l'utilisateur tombe à 0 PV ou moins il reste stabilisé à 1 PV.

\n

Utilisable une fois par jour.

","pacost":1,"xp":600,"notes":"

Utilisable une fois par jour. 

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"Jvoy1V5iS0yzZvcl"} -{"name":"Lame tournoyante","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur attaque tous les adversaires situés à portée avec une arme de corps-à-corps. Chaque attaque supplémentaire s'effectue avec un malus supplémentaire de -1 à l'Attaque.

","pacost":1,"xp":800,"notes":"

Jets d'Attaques et de Dégâts à lancer pour chaque cible.

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"PZekNfgFjfvJjxad"} -{"name":"Acrobatie fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple son agitlié. Cela se traduit par un bonus de +6 en Acrobatie. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"PrpRSjDpLTI6T6QF"} -{"name":"Combo Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Si le personnage a touché une cible avec une attaque de corps-à-corps, il peut enchaîner une attaque sur un adversaire se trouvant à 2m de distance. S'il réussit, il peut enchaîner une attaque sur un autre adversaire se trouvant à 2m.

","pacost":1,"xp":900,"notes":"

Remplace la technique \"Combo\"

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"TdFe5EdQl1q2zjPU"} -{"name":"Toute puissance","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase de dégâts","effect":"

L'utilisateur effectue le maximum de dégâts que lui permet son arme.

","pacost":1,"xp":700,"notes":"

Inutilisable lors d'une réussite critique. 

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"VBZ6eAA4pjMmBOsI"} -{"name":"Initiative suprême","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Début du combat","effect":"

Le personnage prend instantanément les rênes du combat. Cela lui permet d'agir en premier dans l'ordre des tours et ce pour l'entier du combat.

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"VxXAlO2uNiBfxUtP"} -{"name":"Réessayer","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Après un lancer sur un D20 quelconque, l'utilisateur peut relancer 1D10 dont le résultat viendra remplacer l'unité du jet précédent.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"WOwuSvNayJc6NIgn"} -{"name":"Evasion","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Lorsqu'il est aux prises avec un ou plusieurs adversaires, l'utilisateur peut se retirer du combat en se déplaçant jusqu’à son maximum de distance sans offrir d’attaque d’opportunité

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"acZSaqnreh2Gi6Mi"} -{"name":"Contre-attaque","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après phase d'attaque","effect":"

Si l'utilisateur a esquivé une attaque adverse au corps-à-corps, il peut immédiatement porter une attaque unique contre l’adversaire qui a échoué son attaque.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"bxqpQyk4n4mjIuMD"} -{"name":"Prestance","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur utilise la force de sa prestance pour déconcentrer une cible. Pour ce faire, le joueur effectue un test d’Intimidation ou de Démonstration. La cible subit alors des malus pendant 2 tours selon le résultat:

\n

► 1-10 : -1 attaque ; -1 Maîtrise élémentaire ; -1 Défense

\n

► 11-20 : -2 attaque et -2 Maîtrise élémentaire ; -2 Défense

\n

► 21 et + : -3 attaque et -3 Maîtrise élémentaire ; -3 Défense

\n

\n

► Réussite critique : -5 attaque et -5 Maîtrise élémentaire ; -5 CA

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"dV7KShwATLGmAxja"} -{"name":"Conseil de combat","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Le personnage peut donner des indications à un allié sur le point faible d’un adversaire. Pour ce faire, le joueur fait un test de Vie en nature ou d’Intelligence (au choix). L'allié reçoit alors un bonus pour sa prochaine attaque contre la cible en fonction du résultat:

\n

►1-10:  +2 attaque

\n

►11-20: +3 attaque

\n

►21 et + : +4 attaque

\n

\n

► Réussite critique : +5 attaque

\n

 

\n

Si l'utilisateur de cette technique possède les attributs \"Tueur de Vaadrins\" ou \"Tueur de bêtes\" ou \"Tueur d'humanoïdes\" ou \"Tueur d'élémentaire\" et que l'adversaire ciblé correspond à l'une de ces catégories, le bonus accordé à l'allié augmente de +1 par Niveau d'attribut. 

","pacost":1,"xp":600,"notes":null},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"fSDM5YYuo31Bd3E3"} -{"name":"Natation fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple ses capacités de natation. Cela se traduit par un bonus de +6 en Natation. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"irC2UdbOJkATSEhS"} -{"name":"Constitution fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple sa constitution. Cela se traduit par un bonus de +6 en Constitution. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"j2ycxnnovET9mGRs"} -{"name":"Capture de projectiles","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase de dégats","effect":"

Si l'adversaire attaque l'utilisateur avec une arme de jet et que son attaque porte, l'utilisateur peut tenter d'attraper la flèche ou le carreau avant qu'ils ne l'atteignent. Pour ce faire il doit effectuer un jet de Réflexe et battre le jet d'Attaque de l'adversaire.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"j4p8ZTToGsBlpyEI"} -{"name":"Volonté du berserker","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après la phase de dégâts","effect":"

Au moment où l'utilisateur tombe à moins de 1 PV, il peut effectuer un test de Volonté. 

\n

Il reste alors debout et capable d'action durant un nombre de tour en fonction du résultat de son test:

\n

► 1-10: 1 tour

\n

► 11-20: 2 tours

\n

► 21 et + : 3 tours

\n

► Réussite critique : 4 tours + il récupère 1D4 PV par PA restant

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"kLH8Zm98p22AgMGY"} -{"name":"Viser parfaitement","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur d'une arme de tir se concentre sur une partie précise de la cible. Il ajoute un bonus de +5 à l'Attaque.

","pacost":1,"xp":700,"notes":"

L'utilisateur ne peut effectuer aucune autre action du tour. 

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"oRaclfAtWuYozB4G"} -{"name":"Sens du sacrifice","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase de dégâts","effect":"

L'utilisateur se projette jusqu’à 9m pour protéger un allié. Il se prend l'attaque à la place de l'allié et reçoit immédiatement les dégâts (sans passer par la phase d’attaque).

\n

Si l'utilisateur est aux prises avec un adversaire, celui-ci reçoit également une attaque d'opportunité.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"qwFTKd6BtxsH0ivP"} -{"name":"Combo","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Si le personnage a touché une cible avec une attaque de corps-à-corps, il peut porter une nouvelle attaque sur un adversaire se trouvant à 2m de distance.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"r0TAOASdnCColtS1"} -{"name":"Viser parfaitement Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur d'une arme de tir e concentre sur une partie précise de la cible. Il ajoute un bonus de +10 Attaque.

","pacost":1,"xp":900,"notes":"

L'utilisateur ne peut effectuer aucune autre action du tour. 

\n

Remplace la technique \"Viser parfaitement\"

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"rCCCra75cRs1DwzH"} -{"name":"Dévotion fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur gagne un +5 en Dévotion pendant 1 tour.

","pacost":1,"xp":800,"notes":"

Jets d'Attaques et de Dégâts à lancer pour chaque cible.

"},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"sPwc09qsKsDnjg1w"} -{"name":"Attaque bestiale","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur, après la phase d'attaque","effect":"

Lorsque l'utilisateur attaque une cible au corps-à-corps, il peut faire reculer celle-ci de plusieurs mètres.

\n

Pour ce faire, il effectue un jet de Force:

\n

► 1-5 : 2m

\n

► 6-10 : 3m

\n

► 11-15 : 4m

\n

► 16-20 : 5m

\n

► 21 et + : 6m

\n

\n

► Réussite critique : 7m

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"toG8yu9P71a4bkbW"} -{"name":"Fuite éclair","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Après la phase de dégâts","effect":"

Une fois les dégâts effectués, l'utilisateur peut quitter le combat au corps-à-corps sans laisser d’attaque d'opportunité à son adversaire.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"umLaqHqu6wEggSiF"} -{"name":"Provocation","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur provoque une cible située à 20m pour qu'elle ne s'intéresse qu'à lui. La cible attaquera alors de préférence l'utilisateur de la technique. Le joueur effectue un test d’Intimidation, de Contrôle de soi, Démonstration ou de Social (au choix). Selon le résultat, les effets sont les suivants pendant 1D4 tours:

\n

► 1-10 : l’utilisateur gagne +2 à l'Attaque et -2 à la Défense contre cette cible

\n

► 11-20 : l’utilisateur gagne +3 l'Attaque et -2 à la Défense contre cette cible

\n

► 21 et + : l’utilisateur gagne +4 l'Attaque et -2 à la Défense contre cette cible

\n

\n

► Réussite critique : l’utilisateur gagne +5 attaque contre cette cible

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"vSwLmSEarxNSf0d5"} -{"name":"Zone d'effet amplifiée","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Une fois que le sort est lancé","effect":"

La zone d'effet du Sort lancé par l'utilisateur peut être doublée. 

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"wajhQbvas8C74LfS"} +{"name":"Escalade fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple ses capacités d'escalade. Cela se traduit par un bonus de +6 en Escalader. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"0uxLjiQ3iXZk115E"} +{"name":"Combo Niveau 3","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Si le personnage a touché une cible avec une attaque de corps-à-corps, il peut enchaîner une attaque sur un adversaire se trouvant à 2m de distance.

\n

S'il réussit, il peut enchaîner une attaque sur un autre adversaire se trouvant à 2m.

\n

Si sa troisième attaque porte, il peut porter une ultime attaque sur une nouvelle cible ou une cible précédente.

","pacost":1,"xp":1100,"notes":"

Remplace la technique \"Combo Niveau 2\"

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"4MFf6QDWZkTRYiop"} +{"name":"Charge de taureau","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur parcourt le double de la distance qui lui est normalement autorisée.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"4Xp6h6DCDoCVsQgr"} +{"name":"Bullet time","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant phase d'attaque","effect":"

L'utilisateur équipé d'une arme de jet ou à feu peut attaquer jusqu'à trois cibles sélectionnées se trouvant dans un rayon de 18m autour de lui.

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"58r0xDIdLBNzGHU0"} +{"name":"Muraille","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase de dégâts","effect":"

Les dégâts de la prochaine attaque non-élémentaires que subit l'utilisateur sont divisés par deux arrondis au supérieur.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"5TR96TCC12xi5Y1h"} +{"name":"Attaque sonique Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase d'attaque","effect":"

L'utilisateur peut porter deux attaques supplémentaire ce tour.

","pacost":1,"xp":1000,"notes":"

Remplace la technique \"Attaque sonique\"

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"5d7EUBcb1rjpKHlz"} +{"name":"Esquive acrobatique","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après la phase d'attaque","effect":"

Lorsqu'un adversaire a échoué une attaque contre l'utilisateur, ce dernier peut se déplacer jusqu’à 9m dans la direction souhaitée.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"7rF8qIxuu4qYu7bZ"} +{"name":"Feinte","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase d'attaque","effect":"

L'utilisateur effectue une manœuvre de combat qui désoriente la cible. Le joueur fait un test de Bluff, de Démonstration ou d'Intimider. Selon le résultat, les effets sont les suivants:

\n

► 1-12 : lance deux jets d’attaque et garde le meilleur

\n

► 13-20 : lance trois jets d’attaque et garde le meilleur

\n

► 21 et + : lance quatre jets d’attaque et garde le meilleur

\n

\n

► Réussite critique: l’attaque est une réussite critique

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"8ILesVMNmQY5rPYN"} +{"name":"Double dégâts","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase de dégâts","effect":"

Les dégâts de l'attaque sont doublés. 

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"9u8VhRPZCiw1mOUK"} +{"name":"Flèche bestiale","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Après la phase d'attaque","effect":"

Lorsque l'utilisateur attaque une cible en tirant à l'arc, il peut faire reculer cette cible de plusieurs mètres.

\n

Pour ce faire, il faut lancer un jet de force:

\n

► 1-5 : 1m

\n

► 6-11 : 2m

\n

► 12-16 : 3m

\n

► 16-20 : 4m

\n

► 21 et + : 5m

\n

\n

► Réussite critique : 6m

\n

\n

Le bonus de Force est également ajouté aux Dégâts.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"AHU8tBgFwhYTQDWc"} +{"name":"Chute de l'ours","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Lorsqu'il tombe de plus de 1m de hauteur et qu'il souhaite attaquer une cible en contrebas, l'utilisateur ajoute son bonus de Force à l'Attaque et une fois supplémentaires aux Dégâts.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"Bw5c1jgkbD6yECSN"} +{"name":"Partage de Maîtrise élémentaire","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur aide une cible au contact à faire appel à sa Donnée. Pour ce faire, l’utilisateur effectue un test de maîtrise élémentaire et l’allié reçoit comme bonus durant 1 minute (6 tours):

\n

►1-10: +1 maîtrise élémentaire 

\n

►11-15: +2 maîtrise élémentaire

\n

►16-20: +3 maîtrise élémentaire

\n

►21 et +: 4 maîtrise élémentaire

\n

\n

► Réussite critique: +5 maîtrise élémentaire

","pacost":1,"xp":800,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"DTXMq9MMJ2GYKlvX"} +{"name":"Maîtrise élémentaire fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur gagne un +5 en Maîtise élémentaire pendant 1 tour.

","pacost":1,"xp":800,"notes":"

Jets d'Attaques et de Dégâts à lancer pour chaque cible.

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"EIg9iA0Zu20J701i"} +{"name":"Esquive","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase d'attaque","effect":"

L'adversaire doit confirmer deux jets d'Attaques pour toucher l'utilisateur. 

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"HPe2L4oIQs91dC8B"} +{"name":"Pas légers","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur peut parcourir 9m sur unr surface liquide (eau, lave, ...).

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"HtiHyCBZrKQEXN35"} +{"name":"Esquive Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase d'attaque","effect":"

Lorsque l’utilisateur est sur le point de se faire attaquer, il effectue un jet de réflexe:

\n

► 1-10 : l’adversaire effectue deux jets d’attaque et prend le moins bon

\n

► 11-20 : l’adversaire effectue trois jets d’attaque et prend le moins bon

\n

► 21 et + : l’adversaire effectue quatre jets d’attaque et prend le moins bon

\n

\n

► Réussite critique : l’adversaire effectue cinq jets d’attaque et prend le moins bon

","pacost":1,"xp":1200,"notes":"

Remplace la technique \"Esquive\"

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"HzoCLclZf4btZVhp"} +{"name":"Attaque sonique","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase d'attaque","effect":"

L'utilisateur peut porter une attaque supplémentaire ce tour.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"I6z7voZsJYnw8mgX"} +{"name":"Attaque réflexe","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire","effect":"

Lorsque l'adversaire offre une attaque d'opportunité, l'utilisateur peut tenter d'attaquer plusieurs fois l'adversaire en question. Pour ce faire, il effectue un test de réflexe:

\n

►1-10 : 1 attaque d'opportunité supplémentaire

\n

►11-20 : 2 attaques d'opportunité supplémentaires

\n

►21 et + : 3 attaques d'opportunité supplémentaires

\n

\n

►Réussite critique : 4 attaques d’opportunité supplémentaires

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"IUztJkI2F28vWxfr"} +{"name":"Force fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 1 tour / 6 secondes, l'utilisateur décuple se Force. Cela se traduit par un bonus de +6 en Force.  Ce bonus est actif jusqu'à la fin du prochain tour de l'utilisateur.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"J8beCoNnIfHPFI9h"} +{"name":"Immortel","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après la phase de dégâts","effect":"

Lorsque l'utilisateur tombe à 0 PV ou moins il reste stabilisé à 1 PV.

\n

Utilisable une fois par jour.

","pacost":1,"xp":600,"notes":"

Utilisable une fois par jour. 

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"Jvoy1V5iS0yzZvcl"} +{"name":"Lame tournoyante","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur attaque tous les adversaires situés à portée avec une arme de corps-à-corps. Chaque attaque supplémentaire s'effectue avec un malus supplémentaire de -1 à l'Attaque.

","pacost":1,"xp":800,"notes":"

Jets d'Attaques et de Dégâts à lancer pour chaque cible.

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"PZekNfgFjfvJjxad"} +{"name":"Acrobatie fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple son agitlié. Cela se traduit par un bonus de +6 en Acrobatie. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"PrpRSjDpLTI6T6QF"} +{"name":"Combo Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Si le personnage a touché une cible avec une attaque de corps-à-corps, il peut enchaîner une attaque sur un adversaire se trouvant à 2m de distance. S'il réussit, il peut enchaîner une attaque sur un autre adversaire se trouvant à 2m.

","pacost":1,"xp":900,"notes":"

Remplace la technique \"Combo\"

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"TdFe5EdQl1q2zjPU"} +{"name":"Toute puissance","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Avant la phase de dégâts","effect":"

L'utilisateur effectue le maximum de dégâts que lui permet son arme.

","pacost":1,"xp":700,"notes":"

Inutilisable lors d'une réussite critique. 

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"VBZ6eAA4pjMmBOsI"} +{"name":"Initiative suprême","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Début du combat","effect":"

Le personnage prend instantanément les rênes du combat. Cela lui permet d'agir en premier dans l'ordre des tours et ce pour l'entier du combat.

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"VxXAlO2uNiBfxUtP"} +{"name":"Réessayer","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Après un lancer sur un D20 quelconque, l'utilisateur peut relancer 1D10 dont le résultat viendra remplacer l'unité du jet précédent.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"WOwuSvNayJc6NIgn"} +{"name":"Evasion","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Lorsqu'il est aux prises avec un ou plusieurs adversaires, l'utilisateur peut se retirer du combat en se déplaçant jusqu’à son maximum de distance sans offrir d’attaque d’opportunité

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"acZSaqnreh2Gi6Mi"} +{"name":"Contre-attaque","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après phase d'attaque","effect":"

Si l'utilisateur a esquivé une attaque adverse au corps-à-corps, il peut immédiatement porter une attaque unique contre l’adversaire qui a échoué son attaque.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"bxqpQyk4n4mjIuMD"} +{"name":"Prestance","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur utilise la force de sa prestance pour déconcentrer une cible. Pour ce faire, le joueur effectue un test d’Intimidation ou de Démonstration. La cible subit alors des malus pendant 2 tours selon le résultat:

\n

► 1-10 : -1 attaque ; -1 Maîtrise élémentaire ; -1 Défense

\n

► 11-20 : -2 attaque et -2 Maîtrise élémentaire ; -2 Défense

\n

► 21 et + : -3 attaque et -3 Maîtrise élémentaire ; -3 Défense

\n

\n

► Réussite critique : -5 attaque et -5 Maîtrise élémentaire ; -5 CA

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"dV7KShwATLGmAxja"} +{"name":"Conseil de combat","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Le personnage peut donner des indications à un allié sur le point faible d’un adversaire. Pour ce faire, le joueur fait un test de Vie en nature ou d’Intelligence (au choix). L'allié reçoit alors un bonus pour sa prochaine attaque contre la cible en fonction du résultat:

\n

►1-10:  +2 attaque

\n

►11-20: +3 attaque

\n

►21 et + : +4 attaque

\n

\n

► Réussite critique : +5 attaque

\n

 

\n

Si l'utilisateur de cette technique possède les attributs \"Tueur de Vaadrins\" ou \"Tueur de bêtes\" ou \"Tueur d'humanoïdes\" ou \"Tueur d'élémentaire\" et que l'adversaire ciblé correspond à l'une de ces catégories, le bonus accordé à l'allié augmente de +1 par Niveau d'attribut. 

","pacost":1,"xp":600,"notes":null},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"fSDM5YYuo31Bd3E3"} +{"name":"Natation fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple ses capacités de natation. Cela se traduit par un bonus de +6 en Natation. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"irC2UdbOJkATSEhS"} +{"name":"Constitution fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Durant 2 tours / 12 secondes, l'utilisateur décuple sa constitution. Cela se traduit par un bonus de +6 en Constitution. 

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"j2ycxnnovET9mGRs"} +{"name":"Capture de projectiles","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase de dégats","effect":"

Si l'adversaire attaque l'utilisateur avec une arme de jet et que son attaque porte, l'utilisateur peut tenter d'attraper la flèche ou le carreau avant qu'ils ne l'atteignent. Pour ce faire il doit effectuer un jet de Réflexe et battre le jet d'Attaque de l'adversaire.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"j4p8ZTToGsBlpyEI"} +{"name":"Volonté du berserker","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Après la phase de dégâts","effect":"

Au moment où l'utilisateur tombe à moins de 1 PV, il peut effectuer un test de Volonté. 

\n

Il reste alors debout et capable d'action durant un nombre de tour en fonction du résultat de son test:

\n

► 1-10: 1 tour

\n

► 11-20: 2 tours

\n

► 21 et + : 3 tours

\n

► Réussite critique : 4 tours + il récupère 1D4 PV par PA restant

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"kLH8Zm98p22AgMGY"} +{"name":"Viser parfaitement","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur d'une arme de tir se concentre sur une partie précise de la cible. Il ajoute un bonus de +5 à l'Attaque.

","pacost":1,"xp":700,"notes":"

L'utilisateur ne peut effectuer aucune autre action du tour. 

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"oRaclfAtWuYozB4G"} +{"name":"Sens du sacrifice","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'adversaire. Avant la phase de dégâts","effect":"

L'utilisateur se projette jusqu’à 9m pour protéger un allié. Il se prend l'attaque à la place de l'allié et reçoit immédiatement les dégâts (sans passer par la phase d’attaque).

\n

Si l'utilisateur est aux prises avec un adversaire, celui-ci reçoit également une attaque d'opportunité.

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"qwFTKd6BtxsH0ivP"} +{"name":"Combo","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

Si le personnage a touché une cible avec une attaque de corps-à-corps, il peut porter une nouvelle attaque sur un adversaire se trouvant à 2m de distance.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"r0TAOASdnCColtS1"} +{"name":"Viser parfaitement Niveau 2","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur d'une arme de tir e concentre sur une partie précise de la cible. Il ajoute un bonus de +10 Attaque.

","pacost":1,"xp":900,"notes":"

L'utilisateur ne peut effectuer aucune autre action du tour. 

\n

Remplace la technique \"Viser parfaitement\"

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"rCCCra75cRs1DwzH"} +{"name":"Dévotion fabuleuse","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur gagne un +5 en Dévotion pendant 1 tour.

","pacost":1,"xp":800,"notes":"

Jets d'Attaques et de Dégâts à lancer pour chaque cible.

"},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"sPwc09qsKsDnjg1w"} +{"name":"Attaque bestiale","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur, après la phase d'attaque","effect":"

Lorsque l'utilisateur attaque une cible au corps-à-corps, il peut faire reculer celle-ci de plusieurs mètres.

\n

Pour ce faire, il effectue un jet de Force:

\n

► 1-5 : 2m

\n

► 6-10 : 3m

\n

► 11-15 : 4m

\n

► 16-20 : 5m

\n

► 21 et + : 6m

\n

\n

► Réussite critique : 7m

","pacost":1,"xp":500,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"toG8yu9P71a4bkbW"} +{"name":"Fuite éclair","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Après la phase de dégâts","effect":"

Une fois les dégâts effectués, l'utilisateur peut quitter le combat au corps-à-corps sans laisser d’attaque d'opportunité à son adversaire.

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"umLaqHqu6wEggSiF"} +{"name":"Provocation","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur","effect":"

L'utilisateur provoque une cible située à 20m pour qu'elle ne s'intéresse qu'à lui. La cible attaquera alors de préférence l'utilisateur de la technique. Le joueur effectue un test d’Intimidation, de Contrôle de soi, Démonstration ou de Social (au choix). Selon le résultat, les effets sont les suivants pendant 1D4 tours:

\n

► 1-10 : l’utilisateur gagne +2 à l'Attaque et -2 à la Défense contre cette cible

\n

► 11-20 : l’utilisateur gagne +3 l'Attaque et -2 à la Défense contre cette cible

\n

► 21 et + : l’utilisateur gagne +4 l'Attaque et -2 à la Défense contre cette cible

\n

\n

► Réussite critique : l’utilisateur gagne +5 attaque contre cette cible

","pacost":1,"xp":700,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"vSwLmSEarxNSf0d5"} +{"name":"Zone d'effet amplifiée","permission":{"default":0,"0FETyDL9AqSwhPI5":3},"type":"technique","data":{"condition":"Tour de l'utilisateur. Une fois que le sort est lancé","effect":"

La zone d'effet du Sort lancé par l'utilisateur peut être doublée. 

","pacost":1,"xp":600,"notes":""},"flags":{},"img":"systems/foundryvtt-vadentis/images/icons/icone_item_techniques.webp","effects":[],"_id":"wajhQbvas8C74LfS"} diff --git a/styles/simple.css b/styles/simple.css index dbd233f..8302132 100644 --- a/styles/simple.css +++ b/styles/simple.css @@ -394,62 +394,11 @@ table {border: 1px solid #7a7971;} z-index: 9999; display: block; } -.rdd-roll-part{ - align-items: center; - border-radius: 6px; padding: 3px; - background:linear-gradient(30deg, rgba(191, 149, 63, 0.3), rgba(252, 246, 186, 0.3), rgba(179, 135, 40, 0.3), rgba(251, 245, 183, 0.3), rgba(170, 119, 28, 0.3)); -} -.rdd-roll-sign{ - border-radius: 6px; padding: 3px; - background:linear-gradient(30deg, rgba(61, 55, 93, 0.3), rgba(178, 179, 196, 0.3), rgba(59, 62, 63, 0.6), rgba(206, 204, 199, 0.3), rgba(61, 46, 49, 0.3)); -} -.rdd-roll-norm{ - border-radius: 6px; padding: 3px; - background:linear-gradient(30deg, rgba(7, 76, 0, 0.3), rgba(66, 163, 65, 0.2), rgba(184, 226, 163, 0.1), rgba(66, 163, 65, 0.2), rgba(184, 226, 163, 0.3)); -} -.rdd-roll-echec{ - border-radius: 6px; padding: 3px; - background-image: linear-gradient(150deg, rgba(255, 0, 0, 0.3), rgba(255, 200, 128, 0.05),rgba(255, 200, 128, 0.1), rgba(255,10,0,0.3)); -} -.rdd-roll-epart{ - border-radius: 6px; padding: 3px; - background:linear-gradient(150deg, rgba(100, 45, 124, 0.6), rgba(216, 157, 192, 0.3), rgba(177, 157, 216, 0.5), rgba(107, 62, 121, 0.3), rgba(100, 45, 124, 0.6)); -} -.rdd-roll-etotal{ - border-radius: 6px; padding: 3px; - background:linear-gradient(150deg, rgba(0, 0, 0, 0.7), rgba(100, 45, 124, 0.4), rgba(82, 17, 131, 0.3),rgba(100, 45, 124, 0.4), rgba(0, 0, 0, 0.7)); -} -.rdd-diviseur{ - border-radius: 6px; padding: 3px; - background:linear-gradient(30deg, rgba(61, 55, 93, 0.2), rgba(178, 179, 196, 0.1), rgba(59, 62, 63, 0.2), rgba(206, 204, 199, 0.1), rgba(61, 46, 49, 0.2)); -} -.table-resolution-carac { - background-color: yellow; -} - -.table-resolution-target { - font-weight: bold; - background-color: lightblue; -} - -#tableProbaReussite{ - font-size: 0.8rem; - padding: 5px; -} - -.poesie-extrait { - font-size: 0.85rem; - font-style: italic; -} -.poesie-reference{ - font-size: 0.70rem; - text-align: right; -} /* ======================================== */ /* Sheet */ .window-app.sheet .window-content .sheet-header{ - background: #011d33 url("../images/ui/texture_feuille_perso_principale.webp") no-repeat left top; + background: #011d33 url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat left top; color: rgba(255, 255, 255, 1); } @@ -461,7 +410,7 @@ table {border: 1px solid #7a7971;} } .window-app .window-content, .window-app.sheet .window-content .sheet-body{ - background: rgb(245,245,240) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat left top; + background: rgb(245,245,240) url("../images/ui/texture_feuille_perso_principale.webp") no-repeat left top; } section.sheet-body{padding: 0.25rem 0.5rem;} @@ -474,7 +423,7 @@ section.sheet-body{padding: 0.25rem 0.5rem;} } .sheet nav.sheet-tabs { - font-size: 0.65rem; + font-size: 0.80rem; font-weight: bold; height: 5rem; flex: 0 0 5rem; @@ -539,13 +488,6 @@ section.sheet-body:after { color: rgba(255, 255, 255, 0.5); } -.alchimie-tache { - font-weight: bold; - background: rgb(182, 180, 179); - border: 1px solid rgba(72, 46, 28, 1); - border-radius: 0.25rem; - color: rgba(212, 27, 27, 0.5); -} .window-app.sheet .window-content .tooltip:hover .tooltiptext { top: 2rem; @@ -687,6 +629,12 @@ ul, li { .description-label { flex-grow: 2; } + +.score-label { + flex-grow: 2; + align-content: center; +} + .attribut-value, .carac-value { flex-grow: 0; @@ -860,34 +808,7 @@ ul, li { } -/* ======================================== */ -/* Fatigue CSS */ -.table-fatigue { - table-layout: fixed; - padding: 0; - margin: 0; -} -.table-fatigue td { - table-layout: fixed; - width: 2px; - height: 2px; - padding: 0; -} -.table-fatigue .fatigue-used { - background-color: DarkRed; - border: 1px solid #999; -} -.table-fatigue .fatigue-none { - background-color: Grey; - border: 1px solid #999; -} -.table-fatigue .fatigue-free { - border: 1px solid #999; -} -.table-fatigue .fatigue-malus { - font-size: 0.8rem; -} - .flex-actions-bar { +.flex-actions-bar { flex-grow: 2; } @@ -921,9 +842,13 @@ ul, li { cursor: pointer; } +.chat-message .message-header .flavor-text, .chat-message .message-header .whisper-to { + font-size: 1.2rem; +} + .chat-message { background: rgba(220,220,210,0.5); - font-size: 1rem; + font-size: 1.2rem; } .chat-message.whisper { @@ -1056,229 +981,6 @@ ul, li { border-image-outset: 0px; } -/*--------------------------------------------------------------------------*/ -/* CALENDAR STUFF */ -#calendar-time-container{ - position: absolute; - display: block; -} -.calendar{ - min-width: 150px; - grid-row: 1; - grid-column: 1; - width: fit-content; - height: 84px; - margin: 0; - padding: 0; - border: 1px solid #000; - border-radius: 3%; - background: rgba(0, 0, 0, 0.5); - font-family: "GoudyAcc"; - z-index: 100; -} -.calendar-hdr{ - display: grid; - font-size: 1rem; - margin: 3px; - padding: 4px; - height: 25px; - width: fit-content; - min-width: 200px; - border-bottom: 1px solid #111; - color: #CCC; - float: left; -} -.calendar-date-rdd { - font-family: "GoudyAcc"; - color: #CCC; - opacity: 90; - font-size: 13px; - line-height: 1; - text-align: center; - padding: 0; - margin: 0; - border: none; - flex: 1; -} -.calendar-date{ - grid-row: 1; - grid-column: 2; - float: left; - text-align: center; - padding-top: 0px; - padding-bottom: 0px; - margin-bottom: 5px; - color: #CCC; - cursor: pointer; -} -.calendar-date, -.calendar-date-num { - transition: 0.2s; -} -.calendar-date-num { - grid-row: 1; - grid-column: 2; - float: left; - text-align: center; - padding-top: 0px; - padding-bottom: 0px; - margin-bottom: 5px; - color: #CCC; - opacity: 0; - cursor: pointer; -} -.calendar-heure-img{ - width: 24px; - height: 24px; - flex-grow: 0; - border-width: 0; - opacity: 90; - color: rgba(255, 255, 255, 0.5); -} -.calendar-hdr:hover .calendar-date { - opacity: 0; -} -.calendar-hdr:hover .calendar-date-num{ - opacity: 1; -} -.calendar-container{ - padding-top: 3px; - padding-bottom: 20px; -} -.calendar-btn-container-left{ - width: 20%; - display: grid; - float: left; - margin: 2px; - grid-row-gap: 3px; - color: rgba(0, 0, 0, 0.5); -} -.calendar-btn-container-right{ - width: 20%; - display: grid; - float: right; - margin: 2px; - grid-row-gap: 3px; -} -.astrologie-btn-edit, -.calendar-btn-edit{ - grid-row: 1; - grid-column: 1; - margin: auto; - color: rgba(0, 0, 0, 0.5); -} -.astrologie-btn-edit:hover, -.calendar-btn-edit:hover { - color: #FFF; - border: 0px solid #000; - cursor: pointer; -} -.calendar-btn{ - margin: auto; - border: 1px solid rgba(0, 0, 0, 0); - color: rgba(255, 255, 255, 0.5); -} -.calendar-btn:hover { - color: rgba(255, 255, 128, 0.7); - border: 1px solid rgba(255, 128, 0, 0.8); - cursor: pointer; -} - -.calendar-1min{ - grid-row: 1; - grid-column: 1; -} -.calendar-5min{ - grid-row: 1; - grid-column: 2; -} -.calendar-10min{ - grid-row: 2; - grid-column: 1; - margin-left: 10px; -} - -.calendar-20min{ - grid-row: 2; - grid-column: 2; - margin-left: 10px; -} - -.calendar-lyre{ - grid-row: 1; - grid-column: 1; - height: fit-content; - text-align: center; - vertical-align: center; -} - -.calendar-vaisseau{ - grid-row: 1; - grid-column: 2; - height: fit-content; - text-align: center; - vertical-align: center; -} - -.calendar-30min{ - grid-row: 2; - grid-column: 1; - height: fit-content; - text-align: center; - vertical-align: center; -} -.calendar-1heure{ - grid-row: 2; - grid-column: 2; - height: fit-content; - text-align: center; - vertical-align: center; -} - -.calendar-btn-container-left:hover{ - color: #FFF; - border: 0px solid #000; - cursor: pointer; -} -.calendar-weekday-time{ - display: grid; - float: left; - width: 55%; - padding-top: 0px; - padding-bottom: 0px; - margin: auto; - color: #CCC; -} -.calendar-weekday{ - grid-column: 1; - grid-row: 1; - text-align: center; - margin: auto; - border-bottom: 1px solid #111; -} -.calendar-time{ - grid-column: 1; - grid-row: 2; - font-size: 1.10rem; - text-align: center; - margin: auto; - cursor: pointer; - display: inline-flex; -} -.calendar-nombre-astral{ -grid-column: 2; -grid-row: 2; -font-size: 1.10rem; -text-align: right; -margin: auto; -cursor: pointer; -display: inline-flex; -} -.calendar-time-disp{ - position: relative; - bottom: 6px; -} - /* Tooltip container */ .tooltip { position: relative; diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 00e05ab..4253453 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -13,7 +13,7 @@ {{!-- Sheet Tab Navigation --}}