-
-
- - - - -
- - - - -
- - - - -
- - - - -
- - - -
-
-
- - - - -
- - - - -
- - - - -
diff --git a/modules/vadentis-actor-sheet.js b/modules/vadentis-actor-sheet.js
index 8d10331..30a0e2a 100644
--- a/modules/vadentis-actor-sheet.js
+++ b/modules/vadentis-actor-sheet.js
@@ -31,6 +31,8 @@ export class VadentisActorSheet extends ActorSheet {
data.editScore = this.options.editScore;
data.donnees = this.actor.getDonnees();
data.competences = this.actor.getCompetences();
+ data.sorts = this.actor.getSorts();
+ data.devotions = this.actor.getDevotions();
data.isGM = game.user.isGM;
return data;
@@ -50,17 +52,6 @@ export class VadentisActorSheet extends ActorSheet {
const item = this.actor.getOwnedItem(li.data("item-id"));
item.sheet.render(true);
});
- html.find('.item-equip').click(ev => {
- const li = $(ev.currentTarget).parents(".item");
- const item = this.actor.equipObject( li.data("item-id") );
- this.render(true);
- });
- html.find('.item-worn').click(ev => {
- const li = $(ev.currentTarget).parents(".item");
- const item = this.actor.wornObject( li.data("item-id") );
- this.render(true);
- });
-
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
@@ -76,6 +67,16 @@ export class VadentisActorSheet extends ActorSheet {
const competenceId = li.data("item-id");
this.actor.rollCompetence(competenceId);
});
+ html.find('.sort-label a').click((event) => {
+ const li = $(event.currentTarget).parents(".item");
+ const sortId = li.data("item-id");
+ this.actor.rollSort(sortId);
+ });
+ html.find('.devotion-label a').click((event) => {
+ const li = $(event.currentTarget).parents(".item");
+ const devotionId = li.data("item-id");
+ this.actor.rollDevotion(devotionId);
+ });
html.find('.weapon-label a').click((event) => {
const li = $(event.currentTarget).parents(".item");
const weapon = this.actor.getOwnedItem(li.data("item-id"));
@@ -93,11 +94,6 @@ export class VadentisActorSheet extends ActorSheet {
let skillName = event.currentTarget.attributes.skillname.value;
this.actor.updateCompetence(skillName, "malus", parseInt(event.target.value));
});
- html.find('.skill-xp').change((event) => {
- let skillName = event.currentTarget.attributes.skillname.value;
- //console.log("Competence changed :", skillName);
- this.actor.updateSkillExperience(skillName, parseInt(event.target.value));
- });
html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore;
this.render(true);
diff --git a/modules/vadentis-actor.js b/modules/vadentis-actor.js
index 610be34..abdb14b 100644
--- a/modules/vadentis-actor.js
+++ b/modules/vadentis-actor.js
@@ -57,6 +57,16 @@ export class VadentisActor extends Actor {
return this.data.items.filter( item => item.type == 'donnee');
}
+ /* -------------------------------------------- */
+ getSorts() {
+ return this.data.items.filter( item => item.type == 'sort');
+ }
+
+ /* -------------------------------------------- */
+ getDevotions() {
+ return this.data.items.filter( item => item.type == 'devotion');
+ }
+
/* -------------------------------------------- */
async updateCompetence( name, field, value) {
let competence = this.data.items.find( item => item.type == 'competence' && item.name == name);
@@ -65,10 +75,76 @@ export class VadentisActor extends Actor {
await this.updateOwnedItem( { _id: competence._id, [dataPath]:value });
}
}
+
+ /* -------------------------------------------- */
+ rollSort( sortId ) {
+ let sort = this.data.items.find( item => item.type == 'sort' && item._id == sortId );
+ if ( sort ) {
+
+ if ( sort.data.pe > this.data.data.stats.pointsenergie.value) { // Vérification du ~ de points d'énergie
+ ChatMessage.create({ content: `Vous n'avez pas assez de Points d'Energie pour lancer votre sort ${sort.name}` } );
+ return;
+ }
+
+ let magieElementaire = this.data.data.magie['matriseelementaire'];
+ let statValue = magieElementaire.base + magieElementaire.malus + magieElementaire.bonus;
+ let formulaFull = `1d20+${magieElementaire.base}+${magieElementaire.malus}+${magieElementaire.bonus}`;
+ let myRoll = new Roll("1d20+"+statValue);
+ myRoll.evaluate();
+ myRoll.toMessage( { flavor: `Lancer de Sort : ${sort.name} (${formulaFull})` } );
+
+ console.log("ROLL", myRoll);
+ if (myRoll.total >= sort.data.difficulty) {
+ let content = `Votre sort ${sort.name} a réussi ! Vous perdez ${sort.data.pe} Points d'Energie et votre sort produit l'effet :
${sort.data.effect}`;
+ if ( sort.data.damage != "") {
+ if (myRoll.results[0] == 20 ) { // Critique ?
+ content += `
Et provoque les dégats critiques suivants : ${sort.data.damagecritical}`;
+ } else {
+ content += `
Et provoque les dégats suivants : ${sort.data.damage}`;
+ }
+ }
+ ChatMessage.create({ content:content} );
+ } else {
+ ChatMessage.create({ content: `Votre sort ${sort.name} a échoué !`});
+ }
+ }
+ }
+
+ /* -------------------------------------------- */
+ rollDevotion( devotionId ) {
+ let devotion = this.data.items.find( item => item.type == 'devotion' && item._id == devotionId );
+ if ( devotion ) {
+
+ if ( devotion.data.pe > this.data.data.stats.pointsenergie.value) { // Vérification du ~ de points d'énergie
+ ChatMessage.create({ content: `Vous n'avez pas assez de Points d'Energie pour lancer votre dévotion ${devotion.name}` } );
+ return;
+ }
+
+ let devotionComp = this.data.data.magie['devotion'];
+ let statValue = devotionComp.base + devotionComp.malus + devotionComp.bonus;
+ let formulaFull = `1d20+${devotionComp.base}+${devotionComp.malus}+${devotionComp.bonus}`;
+ let myRoll = new Roll("1d20+"+statValue);
+ myRoll.evaluate();
+ myRoll.toMessage( { flavor: `Lancer de Dévotion : ${devotion.name} (${formulaFull})` } );
+
+ if (myRoll.total >= devotion.data.difficulty) {
+ let content = `Votre dévotion ${devotion.name} a réussie ! Vous perdez ${devotion.data.pe} Points d'Energie et votre dévotion produit l'effet :
${devotion.data.effect}`;
+ if ( devotion.data.damage != "") {
+ if (myRoll.results[0] == 20 ) { // Critique ?
+ content += `
Et provoque les dégats critiques suivants : ${devotion.data.damagecritical}`;
+ } else {
+ content += `
Et provoque les dégats suivants : ${devotion.data.damage}`;
+ }
+ }
+ ChatMessage.create({ content:content} );
+ } else {
+ ChatMessage.create({ content: `Votre dévotion ${devotion.name} a échoué !`});
+ }
+ }
+ }
/* -------------------------------------------- */
rollCompetence( competenceId ) {
- console.log("HERE !!!!", competenceId);
let competence = this.data.items.find( item => item.type == 'competence' && item._id == competenceId);
if ( competence) {
let statValue = competence.data.base + competence.data.malus + competence.data.bonus;
diff --git a/modules/vadentis-item-sheet.js b/modules/vadentis-item-sheet.js
index 4cc35db..81e14ff 100644
--- a/modules/vadentis-item-sheet.js
+++ b/modules/vadentis-item-sheet.js
@@ -44,7 +44,14 @@ export class VadentisItemSheet extends ItemSheet {
/* -------------------------------------------- */
async getData() {
let data = super.getData();
+ if (data.item.type == 'sort') {
+ data.donnees = await VadentisUtility.getDonnees();
+ }
+ if (data.item.type == 'devotion') {
+ data.eglises = await VadentisUtility.getEglises();
+ }
data.isGM = game.user.isGM;
+ console.log("DATA", data);
return data;
}
diff --git a/modules/vadentis-utility.js b/modules/vadentis-utility.js
index 7ba1742..b4b2bb7 100644
--- a/modules/vadentis-utility.js
+++ b/modules/vadentis-utility.js
@@ -61,6 +61,15 @@ export class VadentisUtility extends Entity {
return list;
}
+ /* -------------------------------------------- */
+ static getDonnees( ) {
+ return this.loadCompendiumNames('foundryvtt-vadentis.donnees');
+ }
+ /* -------------------------------------------- */
+ static getEglises( ) {
+ return this.loadCompendiumNames('foundryvtt-vadentis.eglises');
+ }
+
/* -------------------------------------------- */
static async confirmDelete(actorSheet, li) {
let itemId = li.data("item-id");
diff --git a/packs/donnees.db b/packs/donnees.db
new file mode 100644
index 0000000..30cd38f
--- /dev/null
+++ b/packs/donnees.db
@@ -0,0 +1,8 @@
+{"name":"Donnée du Vent","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"3Rm5NhRowtPPXDGY"}
+{"name":"Donnée de l'Ombre","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"5rTJDLgO7HjQsPbr"}
+{"name":"Donnée du Feu","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"RrwN3NGZQZmlE1xn"}
+{"name":"Donnée des Sentiments","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"aIpYtzCM1yWCDAU6"}
+{"name":"Donnée de la Lumière","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"grt6xY5BY1kPGsmV"}
+{"name":"Donnée de la Foudre","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"gypftiVXTACPuTg2"}
+{"name":"Donnée de la Terre","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"huZaByOsJ4OgOQM0"}
+{"name":"Donnée de l'Eau","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"donnee","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"xhNHMkKLL4kW0Sts"}
diff --git a/packs/eglises.db b/packs/eglises.db
new file mode 100644
index 0000000..71880dd
--- /dev/null
+++ b/packs/eglises.db
@@ -0,0 +1,7 @@
+{"name":"Eglise des 26","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"eglise","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"1gQX3Uq6tVXAtQcX"}
+{"name":"Eglise Estuanienne","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"eglise","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"5T2uht7mCGI9rzyo"}
+{"name":"Les Elus d'Estuans","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"eglise","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"9bBe6gQLAnM5dpFq"}
+{"name":"Eglise des Ombres","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"eglise","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"KWX1EDBkp1yPhoa0"}
+{"name":"Adorateurs de Yeshua","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"eglise","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"TV6QiHWXprN8PBjm"}
+{"name":"Eglise du Soleil","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"eglise","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"muPAkVllu9D6cE7Q"}
+{"name":"Eglise du Temps","permission":{"default":0,"sCecJLVlaPEcY7nF":3},"type":"eglise","data":{"description":""},"flags":{},"img":"icons/svg/mystery-man.svg","effects":[],"_id":"nEAicuYriaP3hmc2"}
diff --git a/styles/simple.css b/styles/simple.css
index 54e559c..b680d35 100644
--- a/styles/simple.css
+++ b/styles/simple.css
@@ -672,17 +672,8 @@ ul, li {
.arme-label,
.generic-label,
.competence-label,
-.astrologie-label,
-.tache-label,
-.subacteur-label,
-.chant-label,
-.musique-label,
-.oeuvre-label,
-.chant-label,
-.danse-label,
-.recette-label,
-.jeu-label,
-.recettecuisine-label,
+.devotion-label,
+.sort-label,
.description-label {
flex-grow: 2;
}
diff --git a/system.json b/system.json
index eb13bcd..c4d656c 100644
--- a/system.json
+++ b/system.json
@@ -2,11 +2,11 @@
"name": "foundryvtt-vadentis",
"title": "Vadentis",
"description": "Système Vadentis pour FoundryVTT",
- "version": "0.0.7",
+ "version": "0.0.9",
"manifestPlusVersion": "1.0.0",
"minimumCoreVersion": "0.7.5",
"compatibleCoreVersion": "0.7.9",
- "templateVersion": 6,
+ "templateVersion": 7,
"author": "Uberwald",
"esmodules": [ "modules/vadentis-main.js" ],
"styles": ["styles/simple.css"],
@@ -14,6 +14,24 @@
"media": [
],
"packs": [
+ {
+ "name": "eglises",
+ "label": "Eglises",
+ "system": "foundryvtt-vadentis",
+ "module": "foundryvtt-vadentis",
+ "path": "./packs/eglises.db",
+ "entity": "Item",
+ "tags" : [ "eglise" ]
+ },
+ {
+ "name": "donnees",
+ "label": "Données",
+ "system": "foundryvtt-vadentis",
+ "module": "foundryvtt-vadentis",
+ "path": "./packs/donnees.db",
+ "entity": "Item",
+ "tags" : [ "données", "donnee" ]
+ }
],
"library": false,
"languages": [
diff --git a/template.json b/template.json
index 8743bec..6ca68db 100644
--- a/template.json
+++ b/template.json
@@ -94,9 +94,9 @@
"difficulty": 0,
"description": "",
"effect": "",
- "critical": "",
"notes": "",
- "damage": ""
+ "damage": "",
+ "damagecritical": ""
},
"equipcommun": {
"description": "",
diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html
index 1bfccc5..fef66c1 100644
--- a/templates/actor-sheet.html
+++ b/templates/actor-sheet.html
@@ -142,30 +142,39 @@
{{!-- Sort Tab --}}